:root{--gpe-blue-50: #eff6ff;--gpe-blue-100: #dbeafe;--gpe-blue-200: #bfdbfe;--gpe-blue-300: #93c5fd;--gpe-blue-400: #60a5fa;--gpe-blue-500: #3b82f6;--gpe-blue-600: #2563eb;--gpe-blue-700: #1d4ed8;--gpe-blue-800: #1e40af;--gpe-blue-900: #1e3a8a;--gpe-blue: #1a56db;--gpe-blue-dark: #1e40af;--gpe-blue-light: #3b82f6;--gpe-green-50: #ecfdf5;--gpe-green-100: #d1fae5;--gpe-green-200: #a7f3d0;--gpe-green-300: #6ee7b7;--gpe-green-400: #34d399;--gpe-green-500: #10b981;--gpe-green-600: #059669;--gpe-green-700: #047857;--gpe-green-800: #065f46;--gpe-green-900: #064e3b;--gpe-green: #059669;--gpe-green-dark: #047857;--gpe-green-light: #10b981;--gpe-purple-50: #f5f3ff;--gpe-purple-100: #ede9fe;--gpe-purple-200: #ddd6fe;--gpe-purple-300: #c4b5fd;--gpe-purple-400: #a78bfa;--gpe-purple-500: #8b5cf6;--gpe-purple-600: #7c3aed;--gpe-purple-700: #6d28d9;--gpe-purple-800: #5b21b6;--gpe-purple-900: #4c1d95;--gpe-purple: #7c3aed;--gpe-purple-light: #8b5cf6;--gpe-purple-dark: #6d28d9;--gpe-orange-50: #fff7ed;--gpe-orange-100: #ffedd5;--gpe-orange-200: #fed7aa;--gpe-orange-300: #fdba74;--gpe-orange-400: #fb923c;--gpe-orange-500: #f97316;--gpe-orange-600: #ea580c;--gpe-orange-700: #c2410c;--gpe-orange-800: #9a3412;--gpe-orange-900: #7c2d12;--gpe-orange: #ea580c;--gpe-orange-light: #f97316;--gpe-orange-dark: #c2410c;--gpe-rose-50: #fff1f2;--gpe-rose-100: #ffe4e6;--gpe-rose-200: #fecdd3;--gpe-rose-300: #fda4af;--gpe-rose-400: #fb7185;--gpe-rose-500: #f43f5e;--gpe-rose-600: #e11d48;--gpe-rose-700: #be123c;--gpe-rose-800: #9f1239;--gpe-rose-900: #881337;--gpe-rose: #e11d48;--gpe-rose-light: #f43f5e;--gpe-rose-dark: #be123c;--gpe-amber-50: #fffbeb;--gpe-amber-100: #fef3c7;--gpe-amber-200: #fde68a;--gpe-amber-300: #fcd34d;--gpe-amber-400: #fbbf24;--gpe-amber-500: #f59e0b;--gpe-amber-600: #d97706;--gpe-amber-700: #b45309;--gpe-amber-800: #92400e;--gpe-amber-900: #78350f;--gpe-amber: #d97706;--gpe-amber-light: #f59e0b;--gpe-amber-dark: #b45309;--gpe-indigo-50: #eef2ff;--gpe-indigo-100: #e0e7ff;--gpe-indigo-200: #c7d2fe;--gpe-indigo-300: #a5b4fc;--gpe-indigo-400: #818cf8;--gpe-indigo-500: #6366f1;--gpe-indigo-600: #4f46e5;--gpe-indigo-700: #4338ca;--gpe-indigo-800: #3730a3;--gpe-indigo-900: #312e81;--gpe-indigo: #4f46e5;--gpe-indigo-light: #6366f1;--gpe-indigo-dark: #4338ca;--white: #ffffff;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-750: #293548;--gray-800: #1e293b;--gray-850: #172033;--gray-900: #0f172a;--gray-950: #020617;--font-xs: .75rem;--font-sm: .8125rem;--font-base: .875rem;--font-md: .9375rem;--font-lg: 1rem;--font-xl: 1.125rem;--font-2xl: 1.25rem;--font-3xl: 1.5rem;--font-4xl: 1.875rem;--font-5xl: 2.25rem;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--gradient-blue: linear-gradient(135deg, #1a56db 0%, #3b82f6 100%);--gradient-green: linear-gradient(135deg, #059669 0%, #10b981 100%);--gradient-orange: linear-gradient(135deg, #ea580c 0%, #f97316 100%);--gradient-purple: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 100%);--gradient-rose: linear-gradient(135deg, #e11d48 0%, #f43f5e 100%);--gradient-mixed: linear-gradient(135deg, #1a56db 0%, #7c3aed 50%, #e11d48 100%);--gradient-warm: linear-gradient(135deg, #f59e0b 0%, #ea580c 50%, #e11d48 100%);--gradient-cool: linear-gradient(135deg, #059669 0%, #1a56db 50%, #7c3aed 100%);--gradient-student: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);--gradient-student-hover: linear-gradient(135deg, #4338ca 0%, #4f46e5 100%);--gradient-student-subtle: linear-gradient(135deg, rgba(79, 70, 229, .08) 0%, rgba(99, 102, 241, .04) 100%);--shadow-student: 0 10px 40px -10px rgba(79, 70, 229, .3);--shadow-student-hover: 0 14px 44px -10px rgba(79, 70, 229, .4);--card-radius-premium: 20px;--card-radius-lg: 16px;--card-shadow-premium: 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);--card-shadow-hover: 0 20px 40px rgba(0,0,0,.1), 0 8px 16px rgba(0,0,0,.06);--card-shadow-colored: 0 20px 40px rgba(79, 70, 229, .12);--card-border-premium: 1px solid rgba(0,0,0,.06);--card-transition-premium: all .4s cubic-bezier(.4, 0, .2, 1);--card-hover-translate: -6px;--card-image-scale: 1.08;--glass-bg: rgba(255, 255, 255, .8);--glass-blur: blur(12px);--glass-border: 1px solid rgba(255, 255, 255, .3);--glass-shadow: 0 4px 16px rgba(0, 0, 0, .08);--accent-line-height: 4px;--accent-line-radius: 20px 20px 0 0;--text-display: 1.875rem;--text-heading: 1.25rem;--text-subheading: 1rem;--text-body: .875rem;--text-caption: .75rem;--transition-premium: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--transition-image: .6s cubic-bezier(.4, 0, .2, 1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--container-max: 1280px;--section-padding: 6rem;--radius-sm: 6px;--radius: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-md: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-lg: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-blue: 0 10px 40px -10px rgba(26, 86, 219, .3);--shadow-green: 0 10px 40px -10px rgba(5, 150, 105, .3);--shadow-purple: 0 10px 40px -10px rgba(124, 58, 237, .3);--transition-fast: .15s ease;--transition: .2s ease;--transition-slow: .3s ease;--primary-50: var(--gpe-blue-50);--primary-100: var(--gpe-blue-100);--primary-200: var(--gpe-blue-200);--primary-300: var(--gpe-blue-300);--primary-400: var(--gpe-blue-400);--primary-500: var(--gpe-blue-500);--primary-600: var(--gpe-blue-600);--primary-700: var(--gpe-blue-700);--primary-800: var(--gpe-blue-800);--primary-900: var(--gpe-blue-900);--success-50: var(--gpe-green-50);--success-100: var(--gpe-green-100);--success-200: var(--gpe-green-200);--success-400: var(--gpe-green-400);--success-500: var(--gpe-green-500);--success-600: var(--gpe-green-600);--success-700: var(--gpe-green-700);--danger-50: var(--gpe-rose-50);--danger-100: var(--gpe-rose-100);--danger-200: var(--gpe-rose-200);--danger-400: var(--gpe-rose-400);--danger-500: var(--gpe-rose-500);--danger-600: var(--gpe-rose-600);--danger-700: var(--gpe-rose-700);--warning-50: var(--gpe-amber-50);--warning-100: var(--gpe-amber-100);--warning-200: var(--gpe-amber-200);--warning-400: var(--gpe-amber-400);--warning-500: var(--gpe-amber-500);--warning-600: var(--gpe-amber-600);--warning-700: var(--gpe-amber-700);--info-50: var(--gpe-blue-50);--info-100: var(--gpe-blue-100);--info-500: var(--gpe-blue-500);--info-600: var(--gpe-blue-600)}:root.dark,.dark{--white: #1e293b;--gray-50: #0f172a;--gray-100: #1e293b;--gray-200: #334155;--gray-300: #475569;--gray-400: #64748b;--gray-500: #94a3b8;--gray-600: #cbd5e1;--gray-700: #e2e8f0;--gray-800: #f1f5f9;--gray-900: #f8fafc;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-md: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .3);--shadow-lg: 0 20px 25px -5px rgb(0 0 0 / .4), 0 8px 10px -6px rgb(0 0 0 / .3);--dark-bg: #0f172a;--dark-surface: #1e293b;--dark-border: #334155}:root.dark body,.dark body{background-color:var(--dark-bg);color:var(--gray-700)}:root.dark h1,:root.dark h2,:root.dark h3,:root.dark h4,:root.dark h5,:root.dark h6,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:var(--gray-900)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--gray-700);background-color:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;color:var(--gray-900);letter-spacing:-.025em}a{color:inherit;text-decoration:none;transition:color var(--transition)}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 1.5rem}@media(min-width:640px){.container{padding:0 2rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;line-height:1.5;border-radius:var(--radius);border:none;cursor:pointer;transition:all var(--transition);text-decoration:none;white-space:nowrap}.btn-lg{padding:1rem 2rem;font-size:1rem;border-radius:var(--radius-md)}.btn-primary{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 44px -10px #1a56db66}.btn-secondary{background:var(--white);color:var(--gray-700);border:1.5px solid var(--gray-200);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:var(--gpe-blue);color:var(--gpe-blue);background:var(--gpe-blue-50)}.btn-success:hover{transform:translateY(-2px);box-shadow:0 14px 44px -10px #05966966}.btn-ghost{background:transparent;color:var(--gray-600)}.btn-ghost:hover{color:var(--gpe-blue);background:var(--gpe-blue-50)}.section{padding:var(--section-padding) 0}.section-header{text-align:center;max-width:700px;margin:0 auto 4rem}.section-overline{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--gpe-blue);margin-bottom:1rem;padding:.375rem 1rem;background:var(--gpe-blue-50);border-radius:var(--radius-full)}.section-title{font-size:clamp(2rem,4vw,2.75rem);margin-bottom:1rem}.section-subtitle{font-size:1.125rem;color:var(--gray-500);line-height:1.7}.text-gradient{background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-blue{color:var(--gpe-blue)}.text-green{color:var(--gpe-green)}.text-orange{color:var(--gpe-orange)}.text-purple{color:var(--gpe-purple)}.text-left{text-align:left}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.animated-gradient{background:linear-gradient(-45deg,#1a56db,#7c3aed,#e11d48,#f59e0b);background-size:400% 400%;animation:gradient-shift 15s ease infinite}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--gray-50)}.loading-spinner{width:48px;height:48px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin .8s linear infinite}.desktop-only{display:block}.mobile-only{display:none}@media(max-width:768px){.desktop-only{display:none}.mobile-only{display:block}}.language-switcher{position:relative;display:inline-block}.language-switcher-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .2s ease}.language-switcher-button:hover{background:var(--gray-100);border-color:var(--gray-300)}.language-flag{font-size:1.25rem;line-height:1}.language-code{font-weight:600;letter-spacing:.05em}.language-arrow{transition:transform .2s ease;color:var(--gray-500)}.language-arrow-open{transform:rotate(180deg)}.language-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:180px;background:#fff;border:1px solid var(--gray-200);border-radius:.75rem;box-shadow:0 10px 25px #0000001a;overflow:hidden;z-index:1000;animation:dropdown-enter .2s ease}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.language-option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .2s ease;text-align:left}.language-option:hover{background:var(--gray-50)}.language-option-active{background:var(--blue-50);color:var(--blue-600)}.language-option-active:hover{background:var(--blue-100)}.language-name{flex:1}.language-check{color:var(--blue-600)}@media(max-width:768px){.language-switcher-button{padding:.5rem}.language-code{display:none}.language-dropdown{right:auto;left:50%;transform:translate(-50%)}}.path-modal-overlay{position:fixed;inset:0;background:#0f172ab3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.path-modal{background:#fff;border-radius:1.5rem;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s ease-out}.path-modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;border:none;background:#f1f5f9;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.path-modal-close:hover{background:#e2e8f0;color:#334155}.path-modal-header{text-align:center;padding:2.5rem 2rem 1.5rem;border-bottom:1px solid #f1f5f9}.path-modal-header h2{font-size:1.75rem;font-weight:700;color:#0f172a;margin:0 0 .5rem}.path-modal-header p{color:#64748b;font-size:1rem;margin:0}.path-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;padding:2rem}@media(max-width:768px){.path-options{grid-template-columns:1fr}}.path-option{position:relative;background:#fafafa;border:2px solid #e2e8f0;border-radius:1rem;padding:1.5rem;cursor:pointer;transition:all .2s}.path-option:hover{border-color:#cbd5e1;background:#f8fafc;transform:translateY(-2px)}.path-option.selected{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 4px #3b82f61a}.path-option-badge{position:absolute;top:-10px;left:1.5rem;padding:.25rem .75rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.path-option-badge.master{background:linear-gradient(135deg,#0ea5e9,#3b82f6);color:#fff}.path-option-badge.certification{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff}.path-option-icon{width:80px;height:80px;border-radius:1rem;display:flex;align-items:center;justify-content:center;margin:.5rem auto 1rem}.path-option-icon.master{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.path-option-icon.certification{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.path-option h3{font-size:1.25rem;font-weight:700;color:#0f172a;margin:0 0 .25rem;text-align:center}.path-option-subtitle{font-size:.875rem;color:#64748b;text-align:center;margin:0 0 1rem}.path-option-description{font-size:.875rem;color:#475569;line-height:1.6;margin:0 0 1rem;text-align:center}.path-option-features{list-style:none;padding:0;margin:0 0 1rem}.path-option-features li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#334155;padding:.35rem 0}.path-option-features svg{color:#22c55e;flex-shrink:0}.path-option-footer{display:flex;justify-content:center;gap:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.path-option-footer span{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#64748b}.path-option-footer svg{color:#94a3b8}.path-option-selected{position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:#22c55e;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.path-modal-actions{display:flex;justify-content:center;padding:1.5rem 2rem 2rem;border-top:1px solid #f1f5f9}.path-modal-actions .btn{min-width:200px}.path-modal-actions .btn:disabled{opacity:.5;cursor:not-allowed}@media(prefers-color-scheme:dark){.path-modal{background:#1e293b}.path-modal-header{border-bottom-color:#334155}.path-modal-header h2{color:#f1f5f9}.path-modal-header p{color:#94a3b8}.path-modal-close{background:#334155;color:#94a3b8}.path-modal-close:hover{background:#475569;color:#e2e8f0}.path-option{background:#0f172a;border-color:#334155}.path-option:hover{border-color:#475569;background:#1e293b}.path-option.selected{border-color:#3b82f6;background:#3b82f61a}.path-option h3{color:#f1f5f9}.path-option-subtitle{color:#94a3b8}.path-option-description{color:#cbd5e1}.path-option-features li{color:#e2e8f0}.path-option-footer,.path-modal-actions{border-top-color:#334155}}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:transparent;transition:all var(--transition-slow)}.header-scrolled{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}.header-container{display:flex;align-items:center;justify-content:space-between;height:72px}.logo{display:flex;align-items:center;gap:.625rem;text-decoration:none;z-index:10}.logo-icon{height:40px;width:auto}.logo-text{font-size:1rem;font-weight:600;color:var(--gray-800);letter-spacing:-.01em}.logo-accent{font-weight:800;background:var(--gradient-blue);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;align-items:center}.nav-list{display:flex;list-style:none;gap:.5rem}.nav-list a{display:block;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;color:var(--gray-600);border-radius:var(--radius);transition:all var(--transition)}.nav-list a:hover{color:var(--gpe-primary);background:var(--gray-50)}.nav-dropdown{position:relative}.nav-dropdown-trigger{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;color:var(--gray-600);background:none;border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.nav-dropdown-trigger:hover{color:var(--gpe-primary);background:var(--gray-50)}.nav-dropdown-trigger svg{transition:transform var(--transition)}.nav-dropdown:hover .nav-dropdown-trigger svg,.nav-dropdown-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:240px;padding-top:.5rem;background:transparent;z-index:100}.nav-dropdown-menu:before{content:"";position:absolute;top:0;left:0;right:0;height:.5rem;background:transparent}.nav-dropdown-menu-inner{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:dropdownFadeIn .15s ease-out}.nav-dropdown-divider{height:1px;background:var(--gray-200);margin:.25rem 0}.nav-dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;color:var(--gray-700);text-decoration:none;transition:all var(--transition)}.nav-dropdown-item:hover{background:var(--gray-50);color:var(--gpe-primary)}.nav-dropdown-item svg{flex-shrink:0;color:var(--gray-400);transition:color var(--transition)}.nav-dropdown-item:hover svg{color:var(--gpe-primary)}.header-actions{display:flex;align-items:center;gap:.75rem}.header-actions .btn{padding:.625rem 1.25rem;font-size:.875rem}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:4px;background:none;border:none;cursor:pointer;z-index:10}.menu-toggle span{display:block;width:100%;height:2px;background:var(--gray-700);border-radius:2px;transition:all var(--transition);transform-origin:center}.menu-toggle.menu-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.menu-open span:nth-child(2){opacity:0}.menu-toggle.menu-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:968px){.header{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-toggle{display:flex}.nav{position:fixed;inset:0;background:var(--white);flex-direction:column;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:all var(--transition-slow)}.nav-open{opacity:1;visibility:visible}.nav-list{flex-direction:column;align-items:center;gap:.5rem}.nav-list a,.nav-dropdown-trigger{font-size:1.25rem;padding:.75rem 1.5rem}.nav-dropdown-menu{position:static;transform:none;min-width:auto;width:100%;margin-top:.5rem;padding-top:0}.nav-dropdown-menu-inner{border:none;box-shadow:none;background:transparent}.nav-dropdown-item{justify-content:center;font-size:1rem;padding:.625rem 1rem}.nav-dropdown-divider,.header-actions{display:none}.nav-open+.header-actions,.nav .header-actions-mobile{display:flex}}.header-user-dropdown{position:relative}.header-user-btn{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition)}.header-user-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.header-user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gradient-blue);color:#fff;font-size:.75rem;font-weight:600;border-radius:50%;text-transform:uppercase}.header-user-name{font-size:.875rem;font-weight:500;color:var(--gray-700)}.header-dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:100;animation:dropdownFadeIn .15s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header-dropdown-header{padding:.875rem 1rem;background:var(--gray-50)}.header-dropdown-name{display:block;font-size:.875rem;font-weight:600;color:var(--gray-800)}.header-dropdown-email{display:block;font-size:.75rem;color:var(--gray-500);margin-top:.125rem}.header-dropdown-divider{height:1px;background:var(--gray-200)}.header-dropdown-item{display:flex;align-items:center;width:100%;padding:.75rem 1rem;font-size:.875rem;color:var(--gray-700);background:none;border:none;cursor:pointer;text-decoration:none;transition:background var(--transition)}.header-dropdown-item:hover{background:var(--gray-50)}.header-dropdown-logout{color:var(--error)}.header-dropdown-logout:hover{background:#fef2f2}@media(max-width:768px){.header-user-name{display:none}.header-user-btn svg{display:none}}.header-theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-100);border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.header-theme-toggle:hover{background:var(--gpe-blue-50);color:var(--gpe-blue)}:root.dark .header,.dark .header{background:transparent}:root.dark .header-scrolled,.dark .header-scrolled{background:#1e293bfa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:root.dark .logo-text,.dark .logo-text{color:var(--gray-100)}:root.dark .nav-list a,.dark .nav-list a{color:var(--gray-300)}:root.dark .nav-list a:hover,.dark .nav-list a:hover{color:var(--gpe-blue-light);background:#3b82f61a}:root.dark .nav-dropdown-trigger,.dark .nav-dropdown-trigger{color:var(--gray-300)}:root.dark .nav-dropdown-trigger:hover,.dark .nav-dropdown-trigger:hover{color:var(--gpe-blue-light);background:#3b82f61a}:root.dark .nav-dropdown-menu-inner,.dark .nav-dropdown-menu-inner{background:#1e293b;border-color:#334155}:root.dark .nav-dropdown-divider,.dark .nav-dropdown-divider{background:#334155}:root.dark .nav-dropdown-item,.dark .nav-dropdown-item{color:var(--gray-300)}:root.dark .nav-dropdown-item:hover,.dark .nav-dropdown-item:hover{background:#334155;color:#60a5fa}:root.dark .nav-dropdown-item svg,.dark .nav-dropdown-item svg{color:var(--gray-500)}:root.dark .nav-dropdown-item:hover svg,.dark .nav-dropdown-item:hover svg{color:#60a5fa}:root.dark .menu-toggle span,.dark .menu-toggle span{background:var(--gray-300)}:root.dark .header-theme-toggle,.dark .header-theme-toggle{background:#334155;color:var(--gray-400)}:root.dark .header-theme-toggle:hover,.dark .header-theme-toggle:hover{background:#3b82f633;color:#60a5fa}:root.dark .header-user-btn,.dark .header-user-btn{background:#334155;border-color:#475569}:root.dark .header-user-btn:hover,.dark .header-user-btn:hover{background:#475569}:root.dark .header-user-name,.dark .header-user-name{color:var(--gray-300)}:root.dark .header-dropdown-menu,.dark .header-dropdown-menu{background:#1e293b;border-color:#334155}:root.dark .header-dropdown-header,.dark .header-dropdown-header{background:#0f172a}:root.dark .header-dropdown-name,.dark .header-dropdown-name{color:var(--gray-100)}:root.dark .header-dropdown-divider,.dark .header-dropdown-divider{background:#334155}:root.dark .header-dropdown-item,.dark .header-dropdown-item{color:var(--gray-300)}:root.dark .header-dropdown-item:hover,.dark .header-dropdown-item:hover{background:#334155}:root.dark .header-dropdown-logout:hover,.dark .header-dropdown-logout:hover{background:#dc262626}@media(max-width:968px){:root.dark .header,.dark .header{background:#1e293bfa}:root.dark .nav,.dark .nav{background:#0f172a}:root.dark .nav-list a,.dark .nav-list a{color:var(--gray-200)}}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;padding-top:80px;overflow:hidden}.hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden}.hero-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float 20s ease-in-out infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.hero-blob-1{width:600px;height:600px;background:linear-gradient(135deg,#1a56db4d,#3b82f633);top:-200px;left:-100px;animation-delay:0s}.hero-blob-2{width:500px;height:500px;background:linear-gradient(135deg,#7c3aed40,#8b5cf626);top:20%;right:-150px;animation-delay:-5s}.hero-blob-3{width:400px;height:400px;background:linear-gradient(135deg,#05966933,#10b98126);bottom:10%;left:30%;animation-delay:-10s}@keyframes float{0%,to{transform:translate(0)}25%{transform:translate(15px,-10px)}50%{transform:translate(-10px,15px)}75%{transform:translate(10px,10px)}}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,86,219,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(26,86,219,.03) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%)}.hero-container{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding-top:3rem;padding-bottom:2rem}.hero-content{max-width:600px}.hero-badge{display:inline-flex;align-items:center;gap:.625rem;padding:.5rem .75rem .5rem .625rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;color:var(--gray-700);margin-bottom:1.5rem;box-shadow:var(--shadow);transition:all var(--transition);cursor:pointer}.hero-badge:hover{border-color:var(--gpe-blue);box-shadow:var(--shadow-md)}.hero-badge svg{color:var(--gpe-blue)}.badge-dot{width:8px;height:8px;background:var(--gpe-green);border-radius:50%;animation:badge-pulse 2s infinite;flex-shrink:0}@keyframes badge-pulse{0%,to{opacity:1;box-shadow:0 0 #05966966}50%{opacity:.8;box-shadow:0 0 0 6px #05966900}}.hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:1.5rem}.hero-title-gradient{display:block;background:linear-gradient(135deg,#1a56db,#7c3aed,#e11d48 80%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:1.125rem;line-height:1.7;color:var(--gray-500);margin-bottom:2rem}.hero-actions{display:flex;gap:1rem;margin-bottom:3rem}.hero-actions .btn svg{transition:transform var(--transition)}.hero-actions .btn-primary:hover svg{transform:translate(4px)}.hero-stats{display:flex;gap:2rem}.hero-stat{display:flex;align-items:center;gap:.75rem}.stat-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.stat-icon-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.stat-icon-green{background:var(--gpe-green-50);color:var(--gpe-green)}.stat-icon-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.stat-value{font-size:1.25rem;font-weight:800;color:var(--gray-900);line-height:1}.stat-label{font-size:.8125rem;color:var(--gray-500);margin-top:.125rem}.hero-visual{position:relative;height:500px}.hero-cards{position:relative;width:100%;height:100%}.floating-card{position:absolute;background:var(--white);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;box-shadow:var(--shadow-lg);border:1px solid var(--gray-100);animation:float-card 6s ease-in-out infinite;will-change:transform;transform:translateZ(0)}.card-1{top:10%;left:10%;animation-delay:0s}.card-2{top:35%;right:5%;animation-delay:-1.5s}.card-3{bottom:30%;left:5%;animation-delay:-3s}.card-4{bottom:10%;right:15%;animation-delay:-4.5s}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.card-icon-wrapper{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.card-icon-wrapper.blue{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.card-icon-wrapper.green{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.card-icon-wrapper.orange{background:var(--gradient-orange);color:var(--white);box-shadow:0 10px 40px -10px #ea580c4d}.card-icon-wrapper.purple{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.card-text{display:flex;flex-direction:column}.card-title{font-size:.9375rem;font-weight:700;color:var(--gray-900)}.card-subtitle{font-size:.75rem;color:var(--gray-500)}.hero-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;background:radial-gradient(circle,rgba(26,86,219,.15) 0%,transparent 70%);pointer-events:none}.hero-trust{padding:1.5rem 0;border-top:1px solid var(--gray-100);background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-trust .container{display:flex;align-items:center;gap:2rem}.trust-label{font-size:.75rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.1em}.trust-items{display:flex;align-items:center;gap:2rem}.trust-item{display:flex;align-items:center;gap:.75rem}.trust-item img{height:36px;width:auto}.trust-item span{font-size:.875rem;font-weight:500;color:var(--gray-600)}.trust-badge{padding:.375rem .75rem;background:var(--gradient-blue);color:var(--white);font-size:.75rem;font-weight:700;border-radius:var(--radius)}.trust-divider{width:1px;height:32px;background:var(--gray-200)}@media(max-width:1024px){.hero-container{grid-template-columns:1fr;text-align:center}.hero-content{max-width:100%}.hero-actions,.hero-stats{justify-content:center}.hero-visual{display:none}.hero-trust .container{flex-direction:column;gap:1rem}.trust-items{flex-wrap:wrap;justify-content:center}}@media(max-width:640px){.hero{padding-top:72px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.hero-stats{flex-direction:column;align-items:center;gap:1rem}.trust-divider{display:none}.trust-items{flex-direction:column;gap:1rem}}:root.dark .hero,.dark .hero{background:linear-gradient(180deg,#0f172a,#1e293b)}:root.dark .hero-badge,.dark .hero-badge{background:#1e293b;border-color:#334155;color:var(--gray-300)}:root.dark .hero-badge:hover,.dark .hero-badge:hover{border-color:#60a5fa}:root.dark .hero-description,.dark .hero-description{color:var(--gray-400)}:root.dark .stat-value,.dark .stat-value{color:var(--gray-100)}:root.dark .floating-card,.dark .floating-card{background:#1e293b;border-color:#334155;box-shadow:0 20px 25px -5px #0006}:root.dark .card-title,.dark .card-title{color:var(--gray-100)}:root.dark .card-subtitle,.dark .card-subtitle{color:var(--gray-400)}:root.dark .hero-trust,.dark .hero-trust{background:#1e293bcc;border-top-color:#334155}:root.dark .trust-item span,.dark .trust-item span{color:var(--gray-300)}:root.dark .trust-divider,.dark .trust-divider{background:#334155}.features{background:var(--gray-50);position:relative;overflow:hidden}.features:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gray-200),transparent)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.feature-card{background:var(--white);border-radius:var(--radius-xl);padding:2rem;display:flex;flex-direction:column;transition:all var(--transition-slow);border:1px solid var(--gray-100);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;opacity:0;transition:opacity var(--transition)}.feature-blue:before{background:var(--gradient-blue)}.feature-green:before{background:var(--gradient-green)}.feature-purple:before{background:var(--gradient-purple)}.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl)}.feature-card:hover:before{opacity:1}.feature-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.feature-icon{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.feature-blue .feature-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.feature-green .feature-icon{background:var(--gpe-green-50);color:var(--gpe-green)}.feature-purple .feature-icon{background:var(--gpe-purple-50);color:var(--gpe-purple)}.feature-card:hover .feature-icon{transform:scale(1.1)}.feature-blue:hover .feature-icon{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.feature-green:hover .feature-icon{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.feature-purple:hover .feature-icon{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.feature-tag{padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.tag-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.tag-green{background:var(--gpe-green-50);color:var(--gpe-green)}.tag-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.feature-content{flex:1}.feature-title{font-size:1.375rem;font-weight:700;margin-bottom:.25rem}.feature-subtitle{display:block;font-size:.875rem;font-weight:500;margin-bottom:1rem}.feature-blue .feature-subtitle{color:var(--gpe-blue)}.feature-green .feature-subtitle{color:var(--gpe-green)}.feature-purple .feature-subtitle{color:var(--gpe-purple)}.feature-description{font-size:.9375rem;line-height:1.6;color:var(--gray-500);margin-bottom:1.5rem}.feature-highlights{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:1.5rem}.feature-highlights li{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--gray-700)}.feature-blue .feature-highlights svg{color:var(--gpe-blue)}.feature-green .feature-highlights svg{color:var(--gpe-green)}.feature-purple .feature-highlights svg{color:var(--gpe-purple)}.feature-cta{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;transition:all var(--transition);margin-top:auto}.feature-blue .feature-cta{background:var(--gpe-blue-50);color:var(--gpe-blue)}.feature-green .feature-cta{background:var(--gpe-green-50);color:var(--gpe-green)}.feature-purple .feature-cta{background:var(--gpe-purple-50);color:var(--gpe-purple)}.feature-cta svg{transition:transform var(--transition)}.feature-cta:hover svg{transform:translate(4px)}.feature-blue .feature-cta:hover{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.feature-green .feature-cta:hover{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.feature-purple .feature-cta:hover{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}@media(max-width:1024px){.features-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}}@media(max-width:640px){.feature-card{padding:1.5rem}.feature-highlights{grid-template-columns:1fr}}:root.dark .features,.dark .features{background:#0f172a}:root.dark .features:before,.dark .features:before{background:linear-gradient(90deg,transparent,#334155,transparent)}:root.dark .feature-card,.dark .feature-card{background:#1e293b;border-color:#334155}:root.dark .feature-card:hover,.dark .feature-card:hover{box-shadow:0 25px 50px -12px #00000080}:root.dark .feature-title,.dark .feature-title{color:var(--gray-100)}:root.dark .feature-description,.dark .feature-description{color:var(--gray-400)}:root.dark .feature-highlights li,.dark .feature-highlights li{color:var(--gray-300)}.brochure-modal-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.brochure-modal{background:var(--white);border-radius:var(--radius-xl);padding:2.5rem;max-width:440px;width:100%;position:relative;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}.brochure-modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border:none;border-radius:var(--radius);color:var(--gray-500);cursor:pointer;transition:all var(--transition)}.brochure-modal-close:hover{background:var(--gray-200);color:var(--gray-700)}.brochure-modal-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--gpe-blue-50);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:var(--gpe-blue)}.brochure-modal-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);text-align:center;margin-bottom:.75rem}.brochure-modal-description{font-size:.9375rem;color:var(--gray-500);text-align:center;line-height:1.6;margin-bottom:1.5rem}.brochure-modal-form{display:flex;flex-direction:column;gap:1rem}.brochure-modal-form .form-group{display:flex;flex-direction:column;gap:.5rem}.brochure-modal-form label{font-size:.875rem;font-weight:500;color:var(--gray-700)}.brochure-modal-form input{padding:.875rem 1rem;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);font-size:1rem;transition:all var(--transition)}.brochure-modal-form input:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.brochure-modal-form input:disabled{background:var(--gray-50);cursor:not-allowed}.brochure-modal-form .btn{width:100%;padding:1rem;font-size:1rem}.brochure-modal-form .btn svg{flex-shrink:0}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.brochure-modal-error{font-size:.875rem;color:var(--gpe-rose);text-align:center}.brochure-modal-privacy{font-size:.75rem;color:var(--gray-400);text-align:center;margin-top:1rem}.brochure-modal-success{text-align:center}.brochure-success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--gpe-green-50);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gpe-green)}.brochure-modal-success .btn{margin-top:1.5rem}@media(max-width:480px){.brochure-modal{padding:2rem 1.5rem}.brochure-modal-icon,.brochure-success-icon{width:64px;height:64px}.brochure-modal-title{font-size:1.25rem}}.about{background:var(--white);position:relative}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.about-content .section-overline{justify-content:flex-start}.about-text{font-size:1.0625rem;line-height:1.7;color:var(--gray-600);margin-bottom:1.25rem}.about-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2.5rem 0;padding:2rem 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100)}.stat-item{text-align:center;padding:1rem;border-radius:var(--radius-lg);transition:all var(--transition)}.stat-item:hover{background:var(--gray-50)}.stat-value{display:block;font-size:2rem;font-weight:800;line-height:1;background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{display:block;font-size:.8125rem;color:var(--gray-500);margin-top:.5rem;font-weight:500}.about-actions{display:flex;gap:1rem}.about-visual{display:flex;justify-content:center;position:relative}.about-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;max-width:400px;width:100%;position:relative}.about-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#1a56db08,#7c3aed08);pointer-events:none}.about-card-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--gradient-blue);color:var(--white);position:relative;overflow:hidden}.about-card-header:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 60%)}.about-logo{width:52px;height:52px;background:var(--white);border-radius:var(--radius-md);padding:6px;position:relative}.about-card-header h4{font-size:1.125rem;font-weight:700;color:var(--white);margin-bottom:.125rem}.about-card-header span{font-size:.8125rem;opacity:.85}.about-card-body{padding:1.5rem;display:flex;flex-direction:column;gap:.875rem}.credential{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;background:var(--gray-50);border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;color:var(--gray-700);transition:all var(--transition);border:1px solid transparent}.credential:hover{background:var(--white);border-color:var(--gray-200);box-shadow:var(--shadow)}.credential:nth-child(1) svg{color:var(--gpe-amber)}.credential:nth-child(2) svg{color:var(--gpe-blue)}.credential:nth-child(3) svg{color:var(--gpe-green)}.about-visual:before{content:"";position:absolute;top:-20px;right:-20px;width:120px;height:120px;background:var(--gpe-blue-50);border-radius:50%;z-index:-1}.about-visual:after{content:"";position:absolute;bottom:-30px;left:-30px;width:80px;height:80px;background:var(--gpe-purple-50);border-radius:50%;z-index:-1}@media(max-width:1024px){.about-grid{grid-template-columns:1fr;gap:3rem}.about-content{text-align:center}.about-content .section-overline{justify-content:center}.about-content .section-title{text-align:center}.about-actions{justify-content:center}.about-visual{order:-1}}@media(max-width:640px){.about-stats{grid-template-columns:repeat(2,1fr);gap:1rem}.stat-item{padding:.75rem}.stat-value{font-size:1.5rem}.about-actions{flex-direction:column}.about-actions .btn{width:100%}}:root.dark .about,.dark .about{background:linear-gradient(180deg,#1e293b,#0f172a)}:root.dark .about-text,.dark .about-text{color:var(--gray-400)}:root.dark .about-stats,.dark .about-stats{border-top-color:#334155;border-bottom-color:#334155}:root.dark .stat-item:hover,.dark .stat-item:hover{background:#334155}:root.dark .stat-label,.dark .stat-label{color:var(--gray-400)}:root.dark .about-card,.dark .about-card{background:#1e293b;box-shadow:0 25px 50px -12px #00000080}:root.dark .about-card:before,.dark .about-card:before{background:linear-gradient(135deg,#1a56db1a,#7c3aed1a)}:root.dark .about-card-body,.dark .about-card-body{background:#1e293b}:root.dark .credential,.dark .credential{background:#334155;color:var(--gray-300)}:root.dark .credential:hover,.dark .credential:hover{background:#475569;border-color:#475569}:root.dark .about-visual:before,.dark .about-visual:before{background:#3b82f61a}:root.dark .about-visual:after,.dark .about-visual:after{background:#7c3aed1a}.virtual-office{position:relative;overflow:hidden}.virtual-office-teacher{background:var(--gray-50)}.virtual-office-student{background:var(--white)}.vo-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.vo-grid-reverse{direction:rtl}.vo-grid-reverse>*{direction:ltr}.vo-content .section-overline{justify-content:flex-start}.section-overline-green{color:var(--gpe-green)!important}.section-overline-green svg{color:var(--gpe-green)}.text-gradient-blue{background:var(--gradient-blue);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-green{background:var(--gradient-green);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.vo-description{font-size:1.0625rem;line-height:1.7;color:var(--gray-600);margin-bottom:2rem}.vo-features{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.vo-feature{display:flex;gap:1rem}.vo-feature-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vo-feature-icon.blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.vo-feature-icon.green{background:var(--gpe-green-50);color:var(--gpe-green)}.vo-feature h4{font-size:.9375rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.vo-feature p{font-size:.8125rem;color:var(--gray-500);line-height:1.5}.vo-visual{position:relative;display:flex;justify-content:center;padding:2rem}.vo-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;width:100%;max-width:380px;position:relative;z-index:1}.vo-card-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;color:var(--white)}.vo-card-teacher .vo-card-header{background:var(--gradient-blue)}.vo-card-student .vo-card-header{background:var(--gradient-green)}.vo-avatar{width:52px;height:52px;background:#fff3;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.vo-role{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.9}.vo-card-header h4{font-size:1.125rem;font-weight:700}.vo-card-body{padding:1.5rem}.vo-stat-row{display:flex;gap:2rem;margin-bottom:1.25rem}.vo-stat{display:flex;flex-direction:column}.vo-stat-value{font-size:1.75rem;font-weight:800;color:var(--gpe-blue);line-height:1}.vo-stat-label{font-size:.75rem;color:var(--gray-500);margin-top:.25rem}.vo-next-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--gpe-blue-50);border-radius:var(--radius-md);margin-bottom:1.25rem}.vo-next-icon{width:36px;height:36px;background:var(--gradient-blue);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--white)}.vo-next-label{display:block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.vo-next-value{font-size:.875rem;font-weight:600;color:var(--gray-900)}.vo-progress-section{margin-bottom:1.25rem}.vo-progress-header{display:flex;justify-content:space-between;font-size:.8125rem;margin-bottom:.5rem}.vo-progress-header span:first-child{color:var(--gray-600)}.vo-progress-value{font-weight:700;color:var(--gpe-green)}.vo-progress-bar{height:8px;background:var(--gray-100);border-radius:var(--radius-full);overflow:hidden}.vo-progress-fill{height:100%;background:var(--gradient-green);border-radius:var(--radius-full);transition:width 1s ease}.vo-modules{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.vo-module{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--radius-md);font-size:.875rem;font-weight:500}.vo-module-complete{background:var(--gpe-green-50);color:var(--gpe-green)}.vo-module-complete svg{color:var(--gpe-green)}.vo-module-progress{background:var(--gpe-blue-50);color:var(--gpe-blue)}.vo-module-indicator{width:16px;height:16px;border-radius:50%;border:3px solid var(--gpe-blue);border-top-color:transparent;animation:spin 1s linear infinite}.vo-module-locked{color:var(--gray-400)}.vo-module-locked svg{color:var(--gray-400)}.vo-quick-actions{display:flex;gap:.75rem}.vo-action{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition);border:none}.vo-card-teacher .vo-action:not(.vo-action-secondary){background:var(--gradient-blue);color:var(--white)}.vo-action-green{background:var(--gradient-green)!important;color:var(--white)!important}.vo-action-secondary{background:var(--gray-100);color:var(--gray-700)}.vo-action:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.vo-floating{position:absolute;display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.8125rem;font-weight:600;animation:float-card 6s ease-in-out infinite;z-index:2}.vo-floating-1{top:10%;right:5%;color:var(--gpe-amber);animation-delay:0s}.vo-floating-2{bottom:15%;left:5%;color:var(--gpe-green);animation-delay:-2s}.vo-floating-3{top:15%;left:10%;color:var(--gpe-green);animation-delay:-1s}.vo-floating-4{bottom:20%;right:10%;color:var(--gpe-purple);animation-delay:-3s}.btn-success{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.btn-success:hover{box-shadow:0 15px 50px -10px #05966966;transform:translateY(-2px)}@media(max-width:1024px){.vo-grid,.vo-grid-reverse{grid-template-columns:1fr;gap:3rem;direction:ltr}.vo-content{text-align:center}.vo-content .section-overline{justify-content:center}.vo-visual{order:-1}.vo-features{justify-items:center}.vo-feature{flex-direction:column;align-items:center;text-align:center}}@media(max-width:640px){.vo-features{grid-template-columns:1fr}.vo-card{max-width:100%}.vo-floating{display:none}.vo-quick-actions{flex-direction:column}}:root.dark .virtual-office-teacher,.dark .virtual-office-teacher{background:#0f172a}:root.dark .virtual-office-student,.dark .virtual-office-student{background:#1e293b}:root.dark .vo-description,.dark .vo-description{color:var(--gray-400)}:root.dark .vo-feature h4,.dark .vo-feature h4{color:var(--gray-100)}:root.dark .vo-feature p,.dark .vo-feature p{color:var(--gray-400)}:root.dark .vo-card,.dark .vo-card{background:#1e293b;box-shadow:0 25px 50px -12px #00000080}:root.dark .vo-card-body,.dark .vo-card-body{background:#1e293b}:root.dark .vo-stat-value,.dark .vo-stat-value{color:#60a5fa}:root.dark .vo-stat-label,.dark .vo-stat-label{color:var(--gray-400)}:root.dark .vo-next-item,.dark .vo-next-item{background:#3b82f626}:root.dark .vo-next-label,.dark .vo-next-label{color:var(--gray-400)}:root.dark .vo-next-value,.dark .vo-next-value{color:var(--gray-100)}:root.dark .vo-progress-header span:first-child,.dark .vo-progress-header span:first-child{color:var(--gray-400)}:root.dark .vo-progress-bar,.dark .vo-progress-bar{background:#334155}:root.dark .vo-module,.dark .vo-module{background:#334155;color:var(--gray-300)}:root.dark .vo-module-complete,.dark .vo-module-complete{background:#05966933}:root.dark .vo-module-progress,.dark .vo-module-progress{background:#3b82f633}:root.dark .vo-module-locked,.dark .vo-module-locked{color:var(--gray-500)}:root.dark .vo-action-secondary,.dark .vo-action-secondary{background:#334155;color:var(--gray-300)}:root.dark .vo-floating,.dark .vo-floating{background:#1e293b;box-shadow:0 20px 25px -5px #0006}.contact{background:var(--white);position:relative;overflow:hidden}.contact-glow{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none}.contact-glow-1{width:400px;height:400px;background:#1a56db14;top:10%;right:-100px}.contact-glow-2{width:300px;height:300px;background:#7c3aed0f;bottom:20%;left:-100px}.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:3rem;margin-bottom:4rem}.contact-info{display:flex;flex-direction:column;gap:1rem}.info-card{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-100);transition:all var(--transition)}.info-card:hover{transform:translate(8px);box-shadow:var(--shadow-lg)}.info-icon{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.info-card-blue .info-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.info-card-green .info-icon{background:var(--gpe-green-50);color:var(--gpe-green)}.info-card-purple .info-icon{background:var(--gpe-purple-50);color:var(--gpe-purple)}.info-card:hover .info-icon{transform:scale(1.1)}.info-card-blue:hover .info-icon{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.info-card-green:hover .info-icon{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.info-card-purple:hover .info-icon{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.info-content h4{font-size:1rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.info-content p{font-size:.9375rem;font-weight:500;color:var(--gray-700);margin-bottom:.125rem}.info-content span{font-size:.8125rem;color:var(--gray-500)}.contact-social{margin-top:1.5rem;padding:1.5rem;background:var(--gray-50);border-radius:var(--radius-lg)}.social-label{display:block;font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.social-links{display:flex;gap:.75rem}.social-link{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);transition:all var(--transition)}.social-link:hover{background:var(--gradient-blue);border-color:transparent;color:var(--white);transform:translateY(-3px);box-shadow:var(--shadow-blue)}.contact-form-wrapper{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;position:relative}.contact-form-wrapper:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-mixed)}.contact-form{padding:2.5rem}.form-header{margin-bottom:2rem}.form-header h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.form-header p{font-size:.9375rem;color:var(--gray-500)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;font-size:.9375rem;color:var(--gray-900);background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);transition:all var(--transition);font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;background:var(--white);border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}.btn-submit{width:100%;padding:1rem 2rem;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:.75rem}.btn-submit svg{transition:transform var(--transition)}.btn-submit:hover svg{transform:translate(4px) translateY(-4px)}.contact-map{position:relative;height:280px;border-radius:var(--radius-xl);overflow:hidden;background:var(--gray-100)}.map-placeholder{position:absolute;inset:0;background:linear-gradient(135deg,var(--gpe-blue-50) 0%,var(--gpe-purple-50) 100%)}.map-pattern{position:absolute;inset:0;background-image:linear-gradient(rgba(26,86,219,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(26,86,219,.05) 1px,transparent 1px);background-size:40px 40px}.map-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.map-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 2rem;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}.map-icon{width:60px;height:60px;background:var(--gradient-blue);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:var(--shadow-blue)}.map-info h4{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.map-info p{font-size:.9375rem;color:var(--gray-500);margin-bottom:.5rem}.map-link{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;color:var(--gpe-blue);transition:all var(--transition)}.map-link:hover{color:var(--gpe-blue-dark)}.map-link svg{transition:transform var(--transition)}.map-link:hover svg{transform:translate(2px,-2px)}@media(max-width:968px){.contact-grid{grid-template-columns:1fr;gap:2rem}.contact-info{order:1}.contact-form-wrapper{order:0}}@media(max-width:640px){.form-row{grid-template-columns:1fr}.contact-form{padding:1.5rem}.map-card{flex-direction:column;text-align:center;padding:1.5rem}.info-card{padding:1.25rem}.social-links{justify-content:center}}:root.dark .contact,.dark .contact{background:linear-gradient(180deg,#0f172a,#1e293b)}:root.dark .info-card,.dark .info-card{background:#1e293b;border-color:#334155}:root.dark .info-card:hover,.dark .info-card:hover{box-shadow:0 20px 25px -5px #0006}:root.dark .info-content h4,.dark .info-content h4{color:var(--gray-100)}:root.dark .info-content p,.dark .info-content p{color:var(--gray-300)}:root.dark .info-content span,.dark .info-content span{color:var(--gray-400)}:root.dark .contact-social,.dark .contact-social{background:#0f172a}:root.dark .social-link,.dark .social-link{background:#1e293b;border-color:#334155;color:var(--gray-400)}:root.dark .contact-form-wrapper,.dark .contact-form-wrapper{background:#1e293b;box-shadow:0 25px 50px -12px #00000080}:root.dark .form-header h3,.dark .form-header h3{color:var(--gray-100)}:root.dark .form-header p,.dark .form-header p{color:var(--gray-400)}:root.dark .form-group label,.dark .form-group label{color:var(--gray-300)}:root.dark .form-group input,:root.dark .form-group select,:root.dark .form-group textarea,.dark .form-group input,.dark .form-group select,.dark .form-group textarea{background:#334155;color:var(--gray-100)}:root.dark .form-group input::placeholder,:root.dark .form-group textarea::placeholder,.dark .form-group input::placeholder,.dark .form-group textarea::placeholder{color:var(--gray-500)}:root.dark .form-group input:focus,:root.dark .form-group select:focus,:root.dark .form-group textarea:focus,.dark .form-group input:focus,.dark .form-group select:focus,.dark .form-group textarea:focus{background:#1e293b}:root.dark .contact-map,.dark .contact-map{background:#1e293b}:root.dark .map-placeholder,.dark .map-placeholder{background:linear-gradient(135deg,#1a56db1a,#7c3aed1a)}:root.dark .map-overlay,.dark .map-overlay{background:#0f172acc}:root.dark .map-card,.dark .map-card{background:#1e293b;box-shadow:0 25px 50px -12px #00000080}:root.dark .map-info h4,.dark .map-info h4{color:var(--gray-100)}:root.dark .map-info p,.dark .map-info p{color:var(--gray-400)}.footer{background:linear-gradient(180deg,var(--gray-900) 0%,#0a1628 100%);color:var(--gray-300);padding-top:5rem;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gpe-blue),var(--gpe-purple),transparent)}.footer-top{display:grid;grid-template-columns:1.2fr 2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08)}.footer-logo{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.footer-logo img{height:40px;width:auto}.footer-logo span{font-size:1.125rem;font-weight:700;color:var(--white)}.footer-tagline{font-size:.9375rem;line-height:1.7;color:var(--gray-400);margin-bottom:1.75rem;max-width:300px}.footer-social{display:flex;gap:.625rem}.footer-social a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);color:var(--gray-400);transition:all var(--transition)}.footer-social a:hover{background:var(--gradient-blue);border-color:transparent;color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow-blue)}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.footer-column h4{font-size:.8125rem;font-weight:600;color:var(--white);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.footer-column h4:before{content:"";width:3px;height:12px;background:var(--gradient-blue);border-radius:2px}.footer-column ul{list-style:none}.footer-column li{margin-bottom:.75rem}.footer-column a{font-size:.9375rem;color:var(--gray-400);transition:all var(--transition);display:inline-flex;align-items:center;gap:.25rem}.footer-column a:hover{color:var(--white);transform:translate(4px)}.footer-contact li{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;color:var(--gray-400);margin-bottom:1rem}.footer-contact svg{color:var(--gpe-blue-light);flex-shrink:0}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 0}.footer-bottom p{font-size:.875rem;color:var(--gray-500)}.footer-legal{display:flex;gap:2rem}.footer-legal a{font-size:.875rem;color:var(--gray-500);transition:color var(--transition)}.footer-legal a:hover{color:var(--white)}.footer-bottom-right{display:flex;align-items:center;gap:1.5rem}.footer-theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);color:var(--gray-400);cursor:pointer;transition:all var(--transition)}.footer-theme-toggle:hover{background:#ffffff26;color:var(--white);transform:translateY(-2px)}.footer-glow{position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(26,86,219,.08) 0%,transparent 70%);top:-300px;right:-200px;pointer-events:none}@media(max-width:968px){.footer-top{grid-template-columns:1fr;gap:3rem}.footer-brand{text-align:center}.footer-tagline{max-width:100%}.footer-social{justify-content:center}.footer-links{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.footer{padding-top:3rem}.footer-links{grid-template-columns:1fr;text-align:center}.footer-column h4,.footer-contact li{justify-content:center}.footer-bottom{flex-direction:column;gap:1rem;text-align:center}.footer-bottom-right{flex-direction:column;gap:1rem}.footer-legal{flex-wrap:wrap;justify-content:center;gap:1rem}}:root.dark .footer,.dark .footer{background:linear-gradient(180deg,#0f172a,#030712)}:root.dark .footer-tagline,.dark .footer-tagline{color:#94a3b8}:root.dark .footer-social a,.dark .footer-social a{background:#ffffff0d;border-color:#ffffff1a;color:#94a3b8}:root.dark .footer-column h4,.dark .footer-column h4{color:#f8fafc}:root.dark .footer-column a,.dark .footer-column a{color:#94a3b8}:root.dark .footer-column a:hover,.dark .footer-column a:hover{color:#f8fafc}:root.dark .footer-contact li,.dark .footer-contact li{color:#94a3b8}:root.dark .footer-bottom p,.dark .footer-bottom p{color:#64748b}:root.dark .footer-legal a,.dark .footer-legal a{color:#64748b}:root.dark .footer-legal a:hover,.dark .footer-legal a:hover{color:#f8fafc}.modality-detail{padding-top:80px}.modality-hero{position:relative;padding:4rem 0;overflow:hidden}.modality-hero-bg{position:absolute;inset:0;z-index:-1}.modality-blob{position:absolute;border-radius:50%;filter:blur(100px);opacity:.4}.modality-blue .modality-blob-1{width:500px;height:500px;background:var(--gpe-blue);top:-200px;right:-100px}.modality-blue .modality-blob-2{width:400px;height:400px;background:var(--gpe-blue-light);bottom:-150px;left:-100px}.modality-green .modality-blob-1{width:500px;height:500px;background:var(--gpe-green);top:-200px;right:-100px}.modality-green .modality-blob-2{width:400px;height:400px;background:var(--gpe-green-light);bottom:-150px;left:-100px}.modality-purple .modality-blob-1{width:500px;height:500px;background:var(--gpe-purple);top:-200px;right:-100px}.modality-purple .modality-blob-2{width:400px;height:400px;background:var(--gpe-purple-light);bottom:-150px;left:-100px}.modality-orange .modality-blob-1{width:500px;height:500px;background:var(--gpe-amber);top:-200px;right:-100px}.modality-orange .modality-blob-2{width:400px;height:400px;background:var(--gpe-amber-light, #fef3c7);bottom:-150px;left:-100px}.back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500;color:var(--gray-600);margin-bottom:2rem;transition:all var(--transition)}.back-link:hover{color:var(--gray-900)}.back-link svg{transition:transform var(--transition)}.back-link:hover svg{transform:translate(-4px)}.modality-hero-content{max-width:700px}.modality-hero-icon{width:80px;height:80px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.modality-blue .modality-hero-icon{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.modality-green .modality-hero-icon{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.modality-purple .modality-hero-icon{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.modality-orange .modality-hero-icon{background:linear-gradient(135deg,var(--gpe-amber) 0%,#f59e0b 100%);color:var(--white);box-shadow:0 10px 40px -10px #f59e0b80}.modality-tag{display:inline-block;padding:.375rem 1rem;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);margin-bottom:1rem}.modality-blue .modality-tag{background:var(--gpe-blue-50);color:var(--gpe-blue)}.modality-green .modality-tag{background:var(--gpe-green-50);color:var(--gpe-green)}.modality-purple .modality-tag{background:var(--gpe-purple-50);color:var(--gpe-purple)}.modality-orange .modality-tag{background:#fef3c7;color:var(--gpe-amber)}.modality-hero-title{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:.75rem;color:var(--gray-900)}.modality-hero-tagline{font-size:1.25rem;font-weight:500;margin-bottom:1.5rem}.modality-blue .modality-hero-tagline{color:var(--gpe-blue)}.modality-green .modality-hero-tagline{color:var(--gpe-green)}.modality-purple .modality-hero-tagline{color:var(--gpe-purple)}.modality-orange .modality-hero-tagline{color:var(--gpe-amber)}.modality-hero-badge{display:inline-block;padding:.375rem 1rem;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);margin-bottom:1rem}.modality-blue .modality-hero-badge{background:var(--gpe-blue-50);color:var(--gpe-blue)}.modality-green .modality-hero-badge{background:var(--gpe-green-50);color:var(--gpe-green)}.modality-purple .modality-hero-badge{background:var(--gpe-purple-50);color:var(--gpe-purple)}.modality-orange .modality-hero-badge{background:#fef3c7;color:var(--gpe-amber)}.modality-hero-cta{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:1rem;font-weight:600;border-radius:var(--radius-full);color:var(--white);text-decoration:none;transition:all var(--transition)}.modality-hero-cta:hover{transform:translateY(-2px)}.modality-hero-cta svg{transition:transform var(--transition)}.modality-hero-cta:hover svg{transform:translate(4px)}.btn-blue{background:var(--gradient-blue);box-shadow:var(--shadow-blue)}.btn-green{background:var(--gradient-green);box-shadow:var(--shadow-green)}.btn-purple{background:var(--gradient-purple);box-shadow:var(--shadow-purple)}.btn-orange{background:linear-gradient(135deg,var(--gpe-amber) 0%,#f59e0b 100%);box-shadow:0 10px 40px -10px #f59e0b80}.modality-hero-description{font-size:1.125rem;line-height:1.7;color:var(--gray-600);margin-bottom:2rem}.modality-hero-actions{display:flex;gap:1rem}.modality-hero-actions .btn svg{transition:transform var(--transition)}.modality-hero-actions .btn:hover svg{transform:translate(4px)}.modality-stats{padding:4rem 0;background:var(--white)}.modality-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.modality-stat-card{text-align:center;padding:1.5rem;background:var(--gray-50);border-radius:var(--radius-lg)}.modality-stat-value{display:block;font-size:2.5rem;font-weight:800;line-height:1;margin-bottom:.5rem}.modality-stat-value.text-blue{color:var(--gpe-blue)}.modality-stat-value.text-green{color:var(--gpe-green)}.modality-stat-value.text-purple{color:var(--gpe-purple)}.modality-stat-value.text-orange{color:var(--gpe-amber)}.modality-stat-label{font-size:.875rem;color:var(--gray-600);font-weight:500}.modality-features{background:var(--white);padding:4rem 0}.modality-features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.modality-feature-card{padding:2rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-xl);transition:all var(--transition)}.modality-feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.modality-feature-icon{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;transition:all var(--transition)}.modality-feature-icon.bg-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.modality-feature-icon.bg-green{background:var(--gpe-green-50);color:var(--gpe-green)}.modality-feature-icon.bg-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.modality-feature-icon.bg-orange{background:#fef3c7;color:var(--gpe-amber)}.modality-feature-card:hover .modality-feature-icon.bg-blue{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.modality-feature-card:hover .modality-feature-icon.bg-green{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.modality-feature-card:hover .modality-feature-icon.bg-purple{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.modality-feature-card:hover .modality-feature-icon.bg-orange{background:linear-gradient(135deg,var(--gpe-amber) 0%,#f59e0b 100%);color:var(--white);box-shadow:0 10px 40px -10px #f59e0b80}.modality-feature-card:hover .modality-feature-icon{transform:scale(1.1)}.modality-feature-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.modality-feature-description{font-size:.9375rem;line-height:1.6;color:var(--gray-600)}.modality-schedule{background:var(--gray-50);padding:4rem 0}.modality-section-title{font-size:2rem;font-weight:800;color:var(--gray-900);text-align:center;margin-bottom:2.5rem}.modality-schedule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.modality-schedule-item{display:flex;flex-direction:column;align-items:center;padding:1.5rem;background:var(--white);border-radius:var(--radius-lg);border-top:4px solid;box-shadow:var(--shadow-sm);text-align:center}.modality-schedule-item.schedule-course{border-color:var(--gpe-blue)}.modality-schedule-item.schedule-td{border-color:var(--gpe-green)}.modality-schedule-item.schedule-workshop{border-color:var(--gpe-purple)}.modality-schedule-item.schedule-study{border-color:var(--gpe-amber)}.modality-schedule-time{font-size:.875rem;font-weight:600;color:var(--gray-500);margin-bottom:.5rem}.modality-schedule-activity{font-size:1rem;font-weight:600;color:var(--gray-800)}.schedule-visual{display:flex;justify-content:center}.schedule-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;max-width:400px;width:100%}.schedule-card-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;color:var(--white)}.modality-blue .schedule-card-header{background:var(--gradient-blue)}.modality-green .schedule-card-header{background:var(--gradient-green)}.modality-purple .schedule-card-header{background:var(--gradient-purple)}.schedule-card-icon{width:52px;height:52px;background:#fff3;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.schedule-card-header h4{font-size:1.125rem;font-weight:700;margin-bottom:.125rem}.schedule-card-header span{font-size:.875rem;opacity:.9}.schedule-card-body{padding:1.5rem}.requirement-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:1rem}.requirements-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.requirements-list li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;color:var(--gray-700)}.modality-blue .requirements-list svg{color:var(--gpe-blue)}.modality-green .requirements-list svg{color:var(--gpe-green)}.modality-purple .requirements-list svg{color:var(--gpe-purple)}.requirements-list svg{flex-shrink:0;margin-top:2px}.modality-requirements{padding:4rem 0;background:var(--gray-50)}.modality-requirements-list{list-style:none;max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.modality-requirement-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-size:1rem;color:var(--gray-700)}.modality-requirement-item svg.text-blue{color:var(--gpe-blue)}.modality-requirement-item svg.text-green{color:var(--gpe-green)}.modality-requirement-item svg.text-purple{color:var(--gpe-purple)}.modality-requirement-item svg.text-orange{color:var(--gpe-amber)}.modality-final-cta{padding:4rem 0;background:var(--white);text-align:center}.modality-final-cta-title{font-size:2rem;font-weight:800;color:var(--gray-900);margin-bottom:1rem}.modality-final-cta-text{font-size:1.125rem;color:var(--gray-600);max-width:600px;margin:0 auto 2rem}.modality-final-cta-btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1rem;font-weight:600;border-radius:var(--radius-full);color:var(--white);text-decoration:none;transition:all var(--transition)}.modality-final-cta-btn:hover{transform:translateY(-2px)}.modality-final-cta-btn svg{transition:transform var(--transition)}.modality-final-cta-btn:hover svg{transform:translate(4px)}.modality-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.modality-error h1{font-size:2rem;margin-bottom:1rem;color:var(--gray-900)}.modality-error a{color:var(--gpe-blue);text-decoration:none;font-weight:500}.modality-error a:hover{text-decoration:underline}.modality-cta{background:var(--white)}.cta-card{position:relative;padding:4rem;border-radius:var(--radius-xl);overflow:hidden;text-align:center}.modality-blue .cta-card{background:var(--gradient-blue)}.modality-green .cta-card{background:var(--gradient-green)}.modality-purple .cta-card{background:var(--gradient-purple)}.cta-content{position:relative;z-index:1}.cta-content h2{font-size:2.5rem;font-weight:800;color:var(--white);margin-bottom:1rem}.cta-content p{font-size:1.125rem;color:#ffffffe6;max-width:600px;margin:0 auto 2rem}.cta-actions{display:flex;justify-content:center;gap:1rem}.cta-actions .btn-primary{background:var(--white);color:var(--gray-900)}.cta-actions .btn-primary:hover{background:var(--gray-100)}.cta-actions .btn-ghost{color:var(--white);border-color:#ffffff4d}.cta-actions .btn-ghost:hover{background:#ffffff1a;border-color:var(--white)}.cta-decoration{position:absolute;inset:0;pointer-events:none}.cta-circle{position:absolute;border-radius:50%;background:#ffffff1a}.cta-circle-1{width:400px;height:400px;top:-200px;right:-100px}.cta-circle-2{width:300px;height:300px;bottom:-150px;left:-50px}.modality-not-found{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem}.modality-not-found h1{font-size:2rem;margin-bottom:1rem}.modality-not-found p{color:var(--gray-600);margin-bottom:2rem}@media(max-width:1024px){.modality-features-grid{grid-template-columns:1fr}.modality-schedule-grid,.modality-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.modality-hero{padding:2rem 0}.modality-schedule-grid{grid-template-columns:1fr}.modality-stats-grid{grid-template-columns:1fr 1fr;gap:1rem}.modality-stat-value{font-size:1.75rem}.modality-section-title,.modality-final-cta-title{font-size:1.5rem}.modality-requirement-item{padding:.875rem 1rem;font-size:.9375rem}}.page-hero{position:relative;padding:8rem 0 4rem;overflow:hidden;min-height:400px;display:flex;align-items:center}.page-hero-bg{position:absolute;inset:0;z-index:-1}.page-hero-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4}.page-hero-blob-1{width:500px;height:500px;top:-200px;left:-100px}.page-hero-blob-2{width:400px;height:400px;bottom:-150px;right:-100px}.page-hero-blue .page-hero-blob-1{background:linear-gradient(135deg,#1a56db4d,#3b82f633)}.page-hero-blue .page-hero-blob-2{background:linear-gradient(135deg,#7c3aed33,#8b5cf626)}.page-hero-green .page-hero-blob-1{background:linear-gradient(135deg,#0596694d,#10b98133)}.page-hero-green .page-hero-blob-2{background:linear-gradient(135deg,#1a56db33,#3b82f626)}.page-hero-purple .page-hero-blob-1{background:linear-gradient(135deg,#7c3aed4d,#8b5cf633)}.page-hero-purple .page-hero-blob-2{background:linear-gradient(135deg,#e11d4833,#f43f5e26)}.page-hero-orange .page-hero-blob-1{background:linear-gradient(135deg,#ea580c4d,#f9731633)}.page-hero-orange .page-hero-blob-2{background:linear-gradient(135deg,#d9770633,#f59e0b26)}.page-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,86,219,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(26,86,219,.03) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%)}.page-hero-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--gray-600);font-size:.875rem;font-weight:500;margin-bottom:2rem;transition:color var(--transition)}.page-hero-back:hover{color:var(--gpe-blue)}.page-hero-content{max-width:800px;text-align:center;margin:0 auto}.page-hero-icon{width:80px;height:80px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.page-hero-icon-blue{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.page-hero-icon-green{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.page-hero-icon-purple{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.page-hero-icon-orange{background:var(--gradient-orange);color:var(--white);box-shadow:0 10px 40px -10px #ea580c4d}.page-hero-overline{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;padding:.375rem 1rem;border-radius:var(--radius-full);margin-bottom:1rem}.page-hero-overline-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.page-hero-overline-green{background:var(--gpe-green-50);color:var(--gpe-green)}.page-hero-overline-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.page-hero-overline-orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.page-hero-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.2;letter-spacing:-.03em;color:var(--gray-900);margin-bottom:1.25rem}.page-hero-description{font-size:1.125rem;line-height:1.7;color:var(--gray-500);max-width:600px;margin:0 auto}.page-hero-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}@media(max-width:768px){.page-hero{padding:6rem 0 3rem;min-height:auto}.page-hero-icon{width:64px;height:64px}.page-hero-actions{flex-direction:column}.page-hero-actions .btn{width:100%}}.programs-page{min-height:100vh}.programs-tabs{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.programs-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.programs-tab:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.programs-tab.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.programs-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .5rem;background:var(--gray-100);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;color:var(--gray-600)}.programs-tab.active .programs-tab-count{background:#fff3;color:var(--white)}.programs-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.programs-loading p{font-size:.9375rem;color:var(--gray-500)}.programs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;text-align:center}.programs-empty svg{color:var(--gray-300)}.programs-empty h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.programs-empty p{font-size:.9375rem;color:var(--gray-500);margin:0}.programs-section{background:var(--gray-50)}.programs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.program-card{background:var(--white);border-radius:var(--radius-xl);padding:2rem;display:flex;flex-direction:column;border:1px solid var(--gray-100);position:relative;transition:all var(--transition-slow)}.program-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;opacity:0;transition:opacity var(--transition)}.program-card-blue:before{background:var(--gradient-blue)}.program-card-green:before{background:var(--gradient-green)}.program-card-purple:before{background:var(--gradient-purple)}.program-card-orange:before{background:var(--gradient-orange)}.program-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.program-card:hover:before{opacity:1}.program-card-featured{grid-column:span 3;flex-direction:row;gap:3rem;padding:2.5rem}.program-card-featured:before{opacity:1}.program-badge{position:absolute;top:1.5rem;right:1.5rem;padding:.375rem .875rem;background:var(--gradient-blue);color:var(--white);font-size:.75rem;font-weight:700;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.program-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.program-icon{width:64px;height:64px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.program-icon-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.program-icon-green{background:var(--gpe-green-50);color:var(--gpe-green)}.program-icon-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.program-icon-orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.program-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.program-duration{font-size:.875rem;font-weight:600;color:var(--gray-900)}.program-level{font-size:.75rem;color:var(--gray-500)}.program-content{flex:1}.program-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.375rem}.program-subtitle{font-size:.9375rem;font-weight:500;margin-bottom:1rem}.program-card-blue .program-subtitle{color:var(--gpe-blue)}.program-card-green .program-subtitle{color:var(--gpe-green)}.program-card-purple .program-subtitle{color:var(--gpe-purple)}.program-card-orange .program-subtitle{color:var(--gpe-orange)}.program-type-badge{display:inline-block;padding:.25rem .75rem;background:var(--gray-100);color:var(--gray-600);font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.75rem}.program-card-blue .program-type-badge{background:var(--gpe-blue-50);color:var(--gpe-blue)}.program-card-green .program-type-badge{background:var(--gpe-green-50);color:var(--gpe-green)}.program-card-purple .program-type-badge{background:var(--gpe-purple-50);color:var(--gpe-purple)}.program-card-orange .program-type-badge{background:var(--gpe-orange-50);color:var(--gpe-orange)}.program-description{font-size:.9375rem;line-height:1.6;color:var(--gray-500);margin-bottom:1.5rem}.program-partner{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-600);margin-bottom:1rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--radius)}.program-partner svg{color:var(--gray-400);flex-shrink:0}.program-partner strong{color:var(--gray-900)}.program-price{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--gray-50);border-radius:var(--radius);margin-bottom:1rem}.program-price-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.program-price-value{font-size:1.25rem;font-weight:700;color:var(--gray-900)}.program-modalities{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.modality-tag{display:inline-flex;align-items:center;padding:.375rem .75rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.75rem;font-weight:500;color:var(--gray-600);text-transform:uppercase;letter-spacing:.025em}.program-highlights{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:1.5rem}.program-highlights li{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--gray-700)}.program-card-blue .program-highlights svg{color:var(--gpe-blue)}.program-card-green .program-highlights svg{color:var(--gpe-green)}.program-card-purple .program-highlights svg{color:var(--gpe-purple)}.program-card-orange .program-highlights svg{color:var(--gpe-orange)}.program-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem}.program-no-session{display:block;padding:.5rem .75rem;background:var(--warning-50, #fef3c7);border:1px solid var(--warning-200, #fde68a);border-radius:var(--radius);font-size:.8125rem;font-weight:500;color:var(--warning-700, #b45309);text-align:center}.program-footer-buttons{display:flex;gap:.75rem}.program-footer-buttons .btn{flex:1}.program-footer-buttons .btn-secondary{flex:0 0 auto}.program-footer-buttons .btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.program-footer .btn{flex:1}.program-footer .btn-secondary{flex:0 0 auto}.program-card-featured .program-header{flex-direction:column;align-items:flex-start;gap:1rem;flex-shrink:0;width:200px}.program-card-featured .program-meta{align-items:flex-start}.program-card-featured .program-content{flex:1}.program-card-featured .program-footer{flex-shrink:0;display:flex;align-items:flex-end}.program-card-featured .program-footer .btn{width:auto}.programs-cta{background:var(--white)}.cta-card{background:var(--gradient-blue);border-radius:var(--radius-xl);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-content h2{font-size:1.75rem;font-weight:700;color:var(--white);margin-bottom:.5rem}.cta-content p{font-size:1rem;color:#fffc;max-width:500px}.cta-actions{display:flex;gap:1rem;flex-shrink:0}.cta-actions .btn-primary{background:var(--white);color:var(--gpe-blue);box-shadow:var(--shadow)}.cta-actions .btn-primary:hover{background:var(--gray-50);transform:translateY(-2px)}.cta-actions .btn-secondary{background:transparent;color:var(--white);border-color:#ffffff4d}.cta-actions .btn-secondary:hover{background:#ffffff1a;border-color:#ffffff80}.programs-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2rem}.programs-pagination .pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all var(--transition)}.programs-pagination .pagination-btn:hover:not(:disabled){border-color:var(--gpe-blue);color:var(--gpe-blue)}.programs-pagination .pagination-btn.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.programs-pagination .pagination-btn:disabled{opacity:.4;cursor:not-allowed}.programs-pagination .pagination-ellipsis{color:var(--gray-400);font-size:.875rem}.programs-results-info{text-align:center;margin-top:1rem}.programs-results-info p{font-size:.8125rem;color:var(--gray-500)}@media(max-width:1024px){.programs-grid{grid-template-columns:repeat(2,1fr)}.program-card-featured{grid-column:span 2;flex-direction:row;gap:2rem}}@media(max-width:768px){.programs-grid{grid-template-columns:1fr}.program-card-featured{grid-column:span 1;flex-direction:column;gap:1.5rem}.program-card-featured .program-header{width:100%;flex-direction:row;align-items:flex-start;justify-content:space-between}.program-card-featured .program-meta{align-items:flex-end}.program-card-featured .program-footer .btn{width:100%}.cta-card{flex-direction:column;text-align:center}.cta-content p{max-width:100%}.cta-actions{width:100%;flex-direction:column}.cta-actions .btn{width:100%}}@media(max-width:640px){.program-card{padding:1.5rem}.program-badge{top:1rem;right:1rem;font-size:.6875rem}.program-icon{width:52px;height:52px}.program-title{font-size:1.25rem}.program-highlights{grid-template-columns:1fr}.cta-card{padding:2rem 1.5rem}.cta-content h2{font-size:1.5rem}}.program-detail-page{min-height:100vh}.program-detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}.program-detail-loading p{font-size:1rem;color:var(--gray-500)}.program-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem;text-align:center;padding:2rem}.program-detail-error svg{color:var(--gray-300)}.program-detail-error h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.program-detail-error p{font-size:1rem;color:var(--gray-500);margin:0;max-width:400px}.program-detail-section{background:var(--gray-50)}.program-detail-grid{display:grid;grid-template-columns:1fr 380px;gap:2.5rem;align-items:start}.program-detail-main{display:flex;flex-direction:column;gap:2.5rem}.program-detail-block{background:var(--white);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--gray-100)}.program-detail-block h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.program-detail-description{font-size:1rem;line-height:1.8;color:var(--gray-600);margin:0}.program-detail-highlights{list-style:none;display:flex;flex-direction:column;gap:1rem;margin:0;padding:0}.program-detail-highlights li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;line-height:1.6;color:var(--gray-700)}.program-detail-highlights svg{flex-shrink:0;margin-top:.125rem;color:var(--gpe-green)}.program-detail-requirements{list-style:none;display:flex;flex-direction:column;gap:1rem;margin:0;padding:0}.program-detail-requirements li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;line-height:1.6;color:var(--gray-700)}.program-detail-requirements svg{flex-shrink:0;margin-top:.125rem;color:var(--gpe-blue)}.program-detail-documents{list-style:none;display:flex;flex-direction:column;gap:1rem;margin:0;padding:0}.program-detail-documents li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;line-height:1.6;color:var(--gray-700)}.program-detail-documents svg{flex-shrink:0;margin-top:.125rem;color:var(--gpe-orange)}.program-detail-audience{list-style:none;display:flex;flex-direction:column;gap:1rem;margin:0;padding:0}.program-detail-audience li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;line-height:1.6;color:var(--gray-700)}.program-detail-audience svg{flex-shrink:0;margin-top:.125rem;color:var(--gpe-purple)}.program-detail-sidebar{position:sticky;top:100px}.program-detail-card{background:var(--white);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--gray-100);box-shadow:var(--shadow-lg)}.program-detail-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.program-detail-card-blue:before{background:var(--gradient-blue)}.program-detail-card-green:before{background:var(--gradient-green)}.program-detail-card-purple:before{background:var(--gradient-purple)}.program-detail-card-orange:before{background:var(--gradient-orange)}.program-detail-info{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.info-item{display:flex;align-items:center;gap:1rem}.info-item svg{flex-shrink:0;color:var(--gray-400)}.info-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.program-detail-pricing{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.75rem}.program-detail-price{display:flex;flex-direction:column;gap:.375rem;padding:1rem;background:var(--gpe-blue-50);border-radius:var(--radius-lg);border:1px solid var(--gpe-blue-100)}.program-detail-price-institutional{background:var(--gray-50);border-color:var(--gray-200)}.price-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.price-value{font-size:1.375rem;font-weight:700;color:var(--gray-900)}.price-note{font-size:.875rem;font-weight:500;color:var(--gray-500)}.program-detail-fee{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--radius);border:1px dashed var(--gray-200)}.fee-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.fee-value{font-size:1rem;font-weight:600;color:var(--gray-700)}.fee-note{font-size:.75rem;color:var(--gray-400);font-style:italic}.program-detail-modalities{margin-bottom:1.5rem}.modalities-label{display:block;font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.modalities-list{display:flex;flex-wrap:wrap;gap:.5rem}.modality-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.8125rem;font-weight:500;color:var(--gray-700)}.modality-badge svg{color:var(--gray-400)}.program-detail-actions{display:flex;flex-direction:column;gap:.75rem}.program-detail-actions .btn{width:100%;justify-content:center}.program-detail-actions .btn-primary{display:flex;align-items:center;gap:.5rem}.program-detail-cta{background:var(--white)}.program-detail-cta .cta-card{background:var(--gradient-blue);border-radius:var(--radius-xl);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.program-detail-cta .cta-content h2{font-size:1.75rem;font-weight:700;color:var(--white);margin-bottom:.5rem}.program-detail-cta .cta-content p{font-size:1rem;color:#fffc;max-width:500px;margin:0}.program-detail-cta .cta-actions{flex-shrink:0}.program-detail-cta .cta-actions .btn-primary{background:var(--white);color:var(--gpe-blue);box-shadow:var(--shadow)}.program-detail-cta .cta-actions .btn-primary:hover{background:var(--gray-50);transform:translateY(-2px)}.program-detail-related{background:var(--gray-50)}.related-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);text-align:center;margin-bottom:2rem}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}.related-card{background:var(--white);border-radius:var(--radius-xl);padding:1.5rem;text-decoration:none;display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--gray-100);transition:all var(--transition);position:relative;overflow:hidden}.related-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.related-card-blue:before{background:var(--gradient-blue)}.related-card-green:before{background:var(--gradient-green)}.related-card-purple:before{background:var(--gradient-purple)}.related-card-orange:before{background:var(--gradient-orange)}.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.related-type{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;border-radius:var(--radius);width:fit-content}.related-card-blue .related-type{background:var(--gpe-blue-50);color:var(--gpe-blue)}.related-card-green .related-type{background:var(--gpe-green-50);color:var(--gpe-green)}.related-card-purple .related-type{background:var(--gpe-purple-50);color:var(--gpe-purple)}.related-card-orange .related-type{background:var(--gpe-orange-50);color:var(--gpe-orange)}.related-name{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0;line-height:1.3}.related-subtitle{font-size:.875rem;color:var(--gray-500);margin:0}.related-meta{display:flex;gap:1rem;font-size:.8125rem;color:var(--gray-500)}.related-meta span{display:flex;align-items:center;gap:.25rem}.related-link{margin-top:auto;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--gpe-blue);transition:gap var(--transition)}.related-card:hover .related-link{gap:.75rem}.related-card-green .related-link{color:var(--gpe-green)}.related-card-purple .related-link{color:var(--gpe-purple)}.related-card-orange .related-link{color:var(--gpe-orange)}.related-cta{text-align:center}@media(max-width:1024px){.program-detail-grid{grid-template-columns:1fr}.program-detail-sidebar{position:static}.program-detail-cta .cta-card{flex-direction:column;text-align:center}.program-detail-cta .cta-content p{max-width:100%}.related-grid{grid-template-columns:1fr}}@media(max-width:640px){.program-detail-block,.program-detail-card{padding:1.5rem}.program-detail-cta .cta-card{padding:2rem 1.5rem}.program-detail-cta .cta-content h2{font-size:1.5rem}.price-value{font-size:1.25rem}}.resources-page{min-height:100vh}.resources-section{background:var(--white)}.resources-section-alt{background:var(--gray-50)}.resources-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.resources-grid-reverse{direction:rtl}.resources-grid-reverse>*{direction:ltr}.resources-content{max-width:500px}.resources-overline{display:inline-block;font-size:.875rem;font-weight:600;color:var(--gpe-green);background:var(--gpe-green-50);padding:.375rem 1rem;border-radius:var(--radius-full);margin-bottom:1rem}.resources-overline-blue{color:var(--gpe-blue);background:var(--gpe-blue-50)}.resources-content h2{font-size:2rem;font-weight:700;color:var(--gray-900);margin-bottom:1rem}.resources-content>p{font-size:1rem;line-height:1.7;color:var(--gray-500);margin-bottom:2rem}.resources-features{display:flex;flex-direction:column;gap:1.25rem}.resource-feature{display:flex;gap:1rem}.resource-feature-icon{width:48px;height:48px;background:var(--gpe-green-50);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--gpe-green);flex-shrink:0}.resource-feature h4{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.resource-feature p{font-size:.875rem;color:var(--gray-500);line-height:1.5}.resources-list{list-style:none;display:flex;flex-direction:column;gap:.875rem}.resources-list li{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;color:var(--gray-700)}.resources-list svg{color:var(--gpe-blue);flex-shrink:0}.resources-visual{display:flex;justify-content:center}.resources-card{background:var(--white);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-xl);width:100%;max-width:400px}.resources-card-library{background:linear-gradient(135deg,var(--gpe-green-50) 0%,var(--white) 100%);border:1px solid var(--gpe-green-100)}.resources-card-header{margin-bottom:1.5rem}.resources-card-badge{display:inline-block;padding:.5rem 1rem;background:var(--gradient-green);color:var(--white);font-size:.875rem;font-weight:600;border-radius:var(--radius-full)}.resources-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.resources-card-stats .stat{text-align:center;padding:1rem .5rem;background:var(--white);border-radius:var(--radius-md)}.resources-card-stats .stat-value{display:block;font-size:1.5rem;font-weight:800;color:var(--gpe-green)}.resources-card-stats .stat-label{font-size:.75rem;color:var(--gray-500)}.resources-card-publications{background:linear-gradient(135deg,var(--gpe-blue-50) 0%,var(--white) 100%);border:1px solid var(--gpe-blue-100)}.publication-items{display:flex;flex-direction:column;gap:1rem}.publication-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--white);border-radius:var(--radius-md)}.publication-icon{width:44px;height:44px;background:var(--gpe-blue-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--gpe-blue);flex-shrink:0}.publication-type{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900)}.publication-count{font-size:.8125rem;color:var(--gray-500)}.resources-cta{background:var(--white)}.resources-cta-card{background:var(--gradient-green);border-radius:var(--radius-xl);padding:4rem;text-align:center}.resources-cta-card h2{font-size:2rem;font-weight:700;color:var(--white);margin-bottom:1rem}.resources-cta-card p{font-size:1.125rem;color:#ffffffd9;max-width:500px;margin:0 auto 2rem}.resources-cta-card .btn-primary{background:var(--white);color:var(--gpe-green);box-shadow:var(--shadow)}.resources-cta-card .btn-primary:hover{background:var(--gray-50);transform:translateY(-2px)}@media(max-width:1024px){.resources-grid{grid-template-columns:1fr;gap:3rem}.resources-grid-reverse{direction:ltr}.resources-content,.resources-card{max-width:100%}}@media(max-width:640px){.resources-content h2{font-size:1.5rem}.resources-card{padding:1.5rem}.resources-card-stats{grid-template-columns:1fr}.resources-cta-card{padding:2.5rem 1.5rem}.resources-cta-card h2{font-size:1.5rem}}.accordion{display:flex;flex-direction:column;gap:.75rem}.accordion-item{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition)}.accordion-item:hover{border-color:var(--gray-300)}.accordion-item-open{border-color:var(--gpe-blue);box-shadow:var(--shadow)}.accordion-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background var(--transition)}.accordion-trigger:hover{background:var(--gray-50)}.accordion-item-open .accordion-trigger{background:var(--gpe-blue-50)}.accordion-question{font-size:1rem;font-weight:600;color:var(--gray-900);line-height:1.4}.accordion-item-open .accordion-question{color:var(--gpe-blue)}.accordion-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--gray-100);color:var(--gray-500);transition:all var(--transition)}.accordion-item-open .accordion-icon{background:var(--gpe-blue);color:var(--white);transform:rotate(180deg)}.accordion-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}.accordion-item-open .accordion-content{grid-template-rows:1fr}.accordion-answer{overflow:hidden;padding:0 1.5rem;font-size:.9375rem;line-height:1.7;color:var(--gray-600)}.accordion-item-open .accordion-answer{padding:0 1.5rem 1.5rem}@media(max-width:640px){.accordion-trigger{padding:1rem 1.25rem}.accordion-question{font-size:.9375rem}.accordion-icon{width:28px;height:28px}.accordion-answer{font-size:.875rem;padding:0 1.25rem}.accordion-item-open .accordion-answer{padding:0 1.25rem 1.25rem}}.faq-page{min-height:100vh}.faq-section{background:var(--gray-50)}.faq-layout{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:start}.faq-sidebar{position:sticky;top:100px}.faq-categories{background:var(--white);border-radius:var(--radius-xl);padding:1rem;border:1px solid var(--gray-100);display:flex;flex-direction:column;gap:.5rem}.faq-category-btn{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);text-align:left}.faq-category-btn:hover{background:var(--gray-50)}.faq-category-btn.active{background:var(--gpe-purple-50)}.faq-category-icon{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;background:var(--gray-100);color:var(--gray-500);flex-shrink:0;transition:all var(--transition)}.faq-category-btn.active .faq-category-icon{background:var(--gpe-purple);color:var(--white)}.faq-category-label{font-size:.9375rem;font-weight:500;color:var(--gray-700);transition:color var(--transition)}.faq-category-btn.active .faq-category-label{color:var(--gpe-purple);font-weight:600}.faq-content{background:var(--white);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--gray-100)}.faq-content-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.faq-content-header h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.faq-content-header p{font-size:.9375rem;color:var(--gray-500)}.faq-cta{background:var(--white)}.faq-cta-card{background:var(--gpe-purple-50);border-radius:var(--radius-xl);padding:3rem;text-align:center;max-width:600px;margin:0 auto}.faq-cta-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--white);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:var(--gpe-purple);box-shadow:var(--shadow)}.faq-cta-card h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.75rem}.faq-cta-card p{font-size:1rem;color:var(--gray-600);margin-bottom:1.5rem}.faq-cta-actions{display:flex;gap:1rem;justify-content:center}@media(max-width:1024px){.faq-layout{grid-template-columns:1fr}.faq-sidebar{position:static}.faq-categories{flex-direction:row;overflow-x:auto;padding:.75rem;gap:.5rem}.faq-category-btn{flex-direction:column;min-width:100px;padding:.75rem;text-align:center}.faq-category-icon{width:36px;height:36px}.faq-category-label{font-size:.8125rem}}@media(max-width:640px){.faq-content{padding:1.5rem}.faq-content-header h2{font-size:1.25rem}.faq-cta-card{padding:2rem 1.5rem}.faq-cta-icon{width:64px;height:64px}.faq-cta-card h3{font-size:1.25rem}.faq-cta-actions{flex-direction:column}.faq-cta-actions .btn{width:100%}}.support-page{min-height:100vh}.support-section{background:var(--gray-50)}.support-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.support-card{background:var(--white);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--gray-100);position:relative;transition:all var(--transition-slow)}.support-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.support-card-disabled{opacity:.7;pointer-events:none}.support-card-disabled:hover{transform:none;box-shadow:none}.support-badge{position:absolute;top:1rem;right:1rem;padding:.375rem .75rem;background:var(--gray-100);color:var(--gray-600);font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.support-card-icon{width:64px;height:64px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.support-card-icon-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.support-card-icon-green{background:var(--gpe-green-50);color:var(--gpe-green)}.support-card-icon-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.support-card-icon-orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.support-card h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.support-card>p{font-size:.9375rem;color:var(--gray-500);line-height:1.6;margin-bottom:1.5rem}.support-card-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.support-card-list li{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--gray-700)}.support-card-blue .support-card-list svg{color:var(--gpe-blue)}.support-card-green .support-card-list svg{color:var(--gpe-green)}.support-card-purple .support-card-list svg{color:var(--gpe-purple)}.support-card-orange .support-card-list svg{color:var(--gpe-orange)}.support-card .btn{width:100%}.support-contact{background:var(--white)}.support-contact-card{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.support-contact-content h2{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:.75rem}.support-contact-content>p{font-size:1rem;color:var(--gray-500);line-height:1.6;margin-bottom:2rem}.support-contact-methods{display:flex;flex-direction:column;gap:1rem}.contact-method{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--gray-50);border-radius:var(--radius-md)}.contact-method-icon{width:44px;height:44px;background:var(--white);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--gpe-orange);flex-shrink:0}.contact-method a,.contact-method span{font-size:.9375rem;font-weight:500;color:var(--gray-900)}.contact-method a:hover{color:var(--gpe-orange)}.support-faq-card{background:var(--gpe-orange-50);border-radius:var(--radius-xl);padding:2.5rem;text-align:center}.support-faq-card svg{color:var(--gpe-orange);margin-bottom:1.5rem}.support-faq-card h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.support-faq-card p{font-size:.9375rem;color:var(--gray-600);margin-bottom:1.5rem}@media(max-width:1024px){.support-grid{grid-template-columns:1fr}.support-contact-card{grid-template-columns:1fr;gap:2rem}}@media(max-width:640px){.support-card{padding:1.5rem}.support-card-icon{width:52px;height:52px}.support-card h3{font-size:1.125rem}.support-contact-content h2{font-size:1.5rem}.support-faq-card{padding:2rem 1.5rem}}.legal-page{min-height:100vh}.legal-section{background:var(--gray-50)}.legal-container{max-width:800px;margin:0 auto}.legal-content{background:var(--white);border-radius:var(--radius-xl);padding:3rem;border:1px solid var(--gray-100)}.legal-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.legal-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.legal-meta{font-size:.875rem;color:var(--gray-500)}.legal-body h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-top:2rem;margin-bottom:1rem}.legal-body h2:first-child{margin-top:0}.legal-body h3{font-size:1.0625rem;font-weight:600;color:var(--gray-800);margin-top:1.5rem;margin-bottom:.75rem}.legal-body p{font-size:.9375rem;line-height:1.7;color:var(--gray-600);margin-bottom:1rem}.legal-body ul,.legal-body ol{margin-bottom:1rem;padding-left:1.5rem}.legal-body li{font-size:.9375rem;line-height:1.7;color:var(--gray-600);margin-bottom:.5rem}.legal-body a{color:var(--gpe-blue);text-decoration:underline}.legal-body a:hover{color:var(--gpe-blue-600)}.legal-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--gray-100);display:flex;justify-content:space-between;align-items:center}.legal-footer-back{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500;color:var(--gray-600);transition:color var(--transition)}.legal-footer-back:hover{color:var(--gpe-blue)}.legal-related{display:flex;gap:1.5rem}.legal-related a{font-size:.875rem;color:var(--gray-500);transition:color var(--transition)}.legal-related a:hover{color:var(--gpe-blue)}@media(max-width:768px){.legal-content{padding:2rem 1.5rem}.legal-header h1{font-size:1.5rem}.legal-body h2{font-size:1.125rem}.legal-footer{flex-direction:column;gap:1.5rem;text-align:center}.legal-related{flex-wrap:wrap;justify-content:center}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:2rem 1rem}.auth-bg{position:absolute;inset:0;z-index:-1}.auth-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:auth-float 20s ease-in-out infinite}.auth-blob-1{width:500px;height:500px;background:linear-gradient(135deg,#1a56db4d,#3b82f633);top:-150px;left:-100px;animation-delay:0s}.auth-blob-2{width:400px;height:400px;background:linear-gradient(135deg,#7c3aed40,#8b5cf626);bottom:-100px;right:-100px;animation-delay:-5s}.auth-blob-3{width:300px;height:300px;background:linear-gradient(135deg,#05966933,#10b98126);top:50%;left:60%;animation-delay:-10s}@keyframes auth-float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(20px,30px) scale(1.02)}}.auth-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,86,219,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(26,86,219,.03) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%)}.auth-container{width:100%;max-width:440px;position:relative;z-index:1}.auth-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;position:relative}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-mixed)}.auth-card-header{padding:2rem 2.5rem 0;text-align:center}.auth-logo{display:inline-flex;align-items:center;gap:.625rem;text-decoration:none}.auth-logo-img{height:44px;width:auto}.auth-logo-text{font-size:1rem;font-weight:600;color:var(--gray-800);letter-spacing:-.01em}.auth-card-body{padding:1.5rem 2.5rem 2rem}.auth-card-body .form-header{text-align:center;margin-bottom:1.5rem}.auth-card-body .form-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.375rem}.auth-card-body .form-header p{font-size:.9375rem;color:var(--gray-500)}.auth-error{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:var(--gpe-rose-50);color:var(--gpe-rose);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;margin-bottom:1.25rem}.auth-card-body .form-group{margin-bottom:1.25rem}.auth-card-body .form-group label{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.form-label-link{font-size:.8125rem;font-weight:500;color:var(--gpe-blue);transition:color var(--transition)}.form-label-link:hover{color:var(--gpe-blue-dark)}.auth-card-body .form-group input{width:100%;padding:.875rem 1rem;font-size:.9375rem;color:var(--gray-900);background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);transition:all var(--transition);font-family:inherit}.auth-card-body .form-group input::placeholder{color:var(--gray-400)}.auth-card-body .form-group input:focus{outline:none;background:var(--white);border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.input-password-wrapper{position:relative;display:flex;align-items:center}.input-password-wrapper input{padding-right:3rem}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--gray-400);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition)}.password-toggle:hover{color:var(--gray-600);background:var(--gray-100)}.password-toggle:focus{outline:none;color:var(--gpe-blue)}.auth-card-body .btn-submit{width:100%;padding:1rem 2rem;font-size:1rem;margin-top:.5rem}.auth-card-body .btn-submit svg{transition:transform var(--transition)}.auth-card-body .btn-submit:hover svg{transform:translate(4px)}.auth-card-body .btn-submit:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--white);border-radius:50%;animation:spin .6s linear infinite}.auth-card-footer{padding:1.25rem 2.5rem;text-align:center;background:var(--gray-50);border-top:1px solid var(--gray-100)}.auth-card-footer p{font-size:.9375rem;color:var(--gray-500)}.auth-card-footer a{color:var(--gpe-blue);font-weight:600;transition:color var(--transition)}.auth-card-footer a:hover{color:var(--gpe-blue-dark)}.auth-success{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:var(--gpe-green-50);color:var(--gpe-green);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;margin-bottom:1.25rem}@media(max-width:480px){.auth-card-body{padding:1.5rem}.auth-card-header{padding:1.5rem 1.5rem 0}.auth-card-footer{padding:1rem 1.5rem}}.wizard-stepper{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:0 1rem;margin-bottom:2rem}.stepper-step{display:flex;flex-direction:column;align-items:center;position:relative;flex:1;min-width:0}.stepper-connector{position:absolute;top:16px;right:50%;width:100%;height:2px;background:var(--gray-200);z-index:0;transition:background var(--transition)}.stepper-connector--active{background:var(--gpe-blue)}.stepper-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;background:var(--gray-100);color:var(--gray-400);border:2px solid var(--gray-200);position:relative;z-index:1;transition:all var(--transition)}.stepper-step--active .stepper-dot{background:var(--gpe-blue);color:var(--white);border-color:var(--gpe-blue);box-shadow:0 0 0 4px #2563eb26}.stepper-step--completed .stepper-dot{background:var(--gpe-green);color:var(--white);border-color:var(--gpe-green)}.stepper-label{margin-top:.5rem;font-size:.75rem;font-weight:500;color:var(--gray-400);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:color var(--transition)}.stepper-step--active .stepper-label{color:var(--gpe-blue);font-weight:600}.stepper-step--completed .stepper-label{color:var(--gpe-green)}@media(max-width:640px){.wizard-stepper{padding:0}.stepper-label{font-size:.65rem}.stepper-dot{width:28px;height:28px;font-size:.75rem}.stepper-connector{top:14px}}.auth-container-wide{max-width:680px}.wizard-step-content{animation:fadeInStep .3s ease}@keyframes fadeInStep{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-nav-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-100)}.wizard-nav-buttons .btn{display:inline-flex;align-items:center;gap:.5rem}.btn-outline{background:transparent;color:var(--gray-600);border:1px solid var(--gray-300);padding:.625rem 1.25rem;border-radius:var(--radius-md);font-weight:600;font-size:.875rem;cursor:pointer;transition:all var(--transition)}.btn-outline:hover{background:var(--gray-50);border-color:var(--gray-400);color:var(--gray-800)}.program-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 0;color:var(--gray-500)}.program-filter-tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.program-filter-tab{padding:.375rem .875rem;border-radius:999px;border:1px solid var(--gray-200);background:var(--white);color:var(--gray-600);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.program-filter-tab:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.program-filter-tab--active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.program-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;max-height:400px;overflow-y:auto;padding-right:.25rem}.program-card{position:relative;display:flex;flex-direction:column;gap:.375rem;padding:1rem;background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);text-align:left;width:100%}.program-card:hover{background:var(--white);border-color:var(--gray-200);box-shadow:var(--shadow)}.program-card--selected{border-color:var(--gpe-blue)!important;background:var(--gpe-blue-50)!important}.program-card--blue.program-card--selected{border-color:var(--gpe-blue)!important}.program-card--green.program-card--selected{border-color:var(--gpe-green)!important;background:var(--gpe-green-50)!important}.program-card--purple.program-card--selected{border-color:var(--gpe-purple)!important;background:var(--gpe-purple-50)!important}.program-card--orange.program-card--selected{border-color:var(--gpe-orange, #f97316)!important;background:#f973160d!important}.program-card-header{display:flex;align-items:center;gap:.5rem}.program-card-type{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.program-card-badge{font-size:.625rem;font-weight:700;padding:.125rem .5rem;border-radius:999px;background:var(--gpe-blue-50);color:var(--gpe-blue)}.program-card-name{font-size:.9375rem;font-weight:700;color:var(--gray-900);margin:0;line-height:1.3}.program-card-subtitle{font-size:.75rem;color:var(--gray-500);margin:0;line-height:1.3}.program-card-meta{display:flex;gap:.75rem;margin-top:.25rem}.program-card-meta span{font-size:.6875rem;color:var(--gray-400);font-weight:500}.program-card-check{position:absolute;top:.75rem;right:.75rem;width:24px;height:24px;border-radius:50%;background:var(--gpe-blue);color:var(--white);display:flex;align-items:center;justify-content:center}.modality-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.modality-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .75rem;background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);text-align:center}.modality-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.modality-option:hover{background:var(--white);border-color:var(--gray-200);box-shadow:var(--shadow)}.modality-option-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.modality-blue .modality-option-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.modality-green .modality-option-icon{background:var(--gpe-green-50);color:var(--gpe-green)}.modality-purple .modality-option-icon{background:var(--gpe-purple-50);color:var(--gpe-purple)}.modality-option-label{font-size:.875rem;font-weight:700;color:var(--gray-900)}.modality-option-desc{font-size:.75rem;color:var(--gray-500)}.modality-blue.selected{background:var(--gpe-blue-50);border-color:var(--gpe-blue)}.modality-blue.selected .modality-option-icon{background:var(--gradient-blue);color:var(--white);box-shadow:var(--shadow-blue)}.modality-green.selected{background:var(--gpe-green-50);border-color:var(--gpe-green)}.modality-green.selected .modality-option-icon{background:var(--gradient-green);color:var(--white);box-shadow:var(--shadow-green)}.modality-purple.selected{background:var(--gpe-purple-50);border-color:var(--gpe-purple)}.modality-purple.selected .modality-option-icon{background:var(--gradient-purple);color:var(--white);box-shadow:var(--shadow-purple)}.success-icon{width:72px;height:72px;margin:0 auto;border-radius:50%;background:var(--gpe-green-50);color:var(--gpe-green);display:flex;align-items:center;justify-content:center}.matricule-display{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem 2rem;margin:1.5rem auto;background:var(--gpe-blue-50);border:2px solid var(--gpe-blue);border-radius:var(--radius-lg);max-width:320px}.matricule-label{font-size:.75rem;font-weight:600;color:var(--gpe-blue);text-transform:uppercase;letter-spacing:.05em}.matricule-value{font-size:1.5rem;font-weight:800;color:var(--gray-900);font-family:Inter,monospace;letter-spacing:.02em}.recap-intro{color:var(--gray-500);font-size:.875rem;margin-bottom:1.5rem}.recap-section{margin-bottom:1.5rem}.recap-section-title{font-size:.875rem;font-weight:700;color:var(--gpe-blue);text-transform:uppercase;letter-spacing:.05em;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.recap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.recap-field{display:flex;flex-direction:column;gap:.125rem}.recap-field-label{font-size:.75rem;color:var(--gray-400);font-weight:500}.recap-field-value{font-size:.875rem;color:var(--gray-900);font-weight:600}.checkbox-group{display:flex;flex-direction:column;gap:.75rem}.checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;font-size:.875rem;color:var(--gray-700);line-height:1.4}.checkbox-label input[type=checkbox]{margin-top:.2rem;flex-shrink:0;width:18px;height:18px;accent-color:var(--gpe-blue)}.checkbox-error{color:var(--red-600, #dc2626)}.field-error{display:block;font-size:.75rem;color:var(--red-600, #dc2626);margin-top:.25rem}.input-error{border-color:var(--red-600, #dc2626)!important}.success-next-steps{text-align:left;background:var(--gray-50);border-radius:var(--radius-md);padding:1.25rem 1.5rem;margin:1.5rem 0}.success-next-steps h3{font-size:.875rem;font-weight:700;color:var(--gray-900);margin-bottom:.75rem}.success-next-steps ol{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem}.success-next-steps li{font-size:.8125rem;color:var(--gray-600);line-height:1.5}@media(max-width:640px){.auth-container-wide{max-width:100%}.program-cards{grid-template-columns:1fr;max-height:350px}.modality-selector{grid-template-columns:1fr}.modality-option{flex-direction:row;text-align:left;gap:.75rem;padding:.875rem 1rem}.recap-grid{grid-template-columns:1fr}.wizard-nav-buttons{flex-direction:column-reverse;gap:.75rem}.wizard-nav-buttons .btn{width:100%;justify-content:center}}.verify-page{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden;background:var(--gray-50)}.verify-bg{position:fixed;inset:0;pointer-events:none;z-index:0}.verify-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4}.verify-blob-1{width:400px;height:400px;background:var(--primary-200);top:-100px;right:-100px}.verify-blob-2{width:300px;height:300px;background:var(--success-200);bottom:20%;left:-50px}.verify-grid{position:absolute;inset:0;background-image:linear-gradient(to right,var(--gray-200) 1px,transparent 1px),linear-gradient(to bottom,var(--gray-200) 1px,transparent 1px);background-size:60px 60px;opacity:.3}.verify-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;max-width:600px;margin:0 auto;padding:2rem 1.5rem;width:100%}.verify-header{display:flex;justify-content:center;margin-bottom:2rem}.verify-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none}.verify-logo-img{height:48px;width:auto}.verify-logo-text{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.verify-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:1rem 0}.verify-card{width:100%;background:#fff;border-radius:20px;box-shadow:0 4px 24px #00000014;overflow:hidden}.verify-card-header{padding:2rem 2rem 1.5rem;text-align:center;border-bottom:1px solid var(--gray-100)}.verify-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--primary-50);color:var(--primary-600);border-radius:20px;margin:0 auto 1.25rem}.verify-card-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.verify-card-header p{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.5}.verify-form{padding:2rem}.form-group input{width:100%;padding:.875rem 1rem;border:2px solid var(--gray-200);border-radius:12px;font-size:1.125rem;font-family:SF Mono,Monaco,Consolas,monospace;letter-spacing:.05em;text-align:center;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary-500)}.form-group input::placeholder{font-size:.9375rem;letter-spacing:normal;font-family:inherit}.form-hint{display:block;font-size:.8125rem;color:var(--gray-400);margin-top:.5rem;text-align:center}.form-error{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;color:#dc2626;border-radius:10px;font-size:.875rem;margin-bottom:1.5rem}.verify-submit{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:1rem;background:var(--primary-600);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.verify-submit:hover:not(:disabled){background:var(--primary-700)}.verify-submit:disabled{opacity:.7;cursor:not-allowed}.verify-submit .btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.verify-result{padding:2rem}.result-header{text-align:center;margin-bottom:1.5rem}.result-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0 auto 1.25rem}.result-icon.valid{background:var(--success-50);color:var(--success-600)}.result-icon.invalid{background:#fef2f2;color:#dc2626}.result-header h2{font-size:1.375rem;font-weight:700;margin:0 0 .5rem}.verify-result.valid .result-header h2{color:var(--success-700)}.verify-result.invalid .result-header h2{color:#dc2626}.result-header p{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.5}.result-details{background:var(--gray-50);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.detail-group{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.detail-group:last-child{padding-bottom:0;border-bottom:none}.detail-group .detail-label{font-size:.875rem;color:var(--gray-500)}.detail-group .detail-value{font-size:.9375rem;font-weight:600;color:var(--gray-900);text-align:right;max-width:60%}.detail-group.code{margin-top:.5rem;padding-top:.75rem;border-top:1px dashed var(--gray-300);flex-direction:column;gap:.5rem}.detail-group.code .detail-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:1rem;letter-spacing:.05em;background:#fff;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--gray-200);text-align:center;max-width:100%}.result-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}.institution-info{display:flex;align-items:center;gap:.875rem;padding:1rem;background:var(--success-50);border-radius:12px;border:1px solid var(--success-200)}.institution-info svg{color:var(--success-600);flex-shrink:0}.institution-info strong{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900)}.institution-info span{font-size:.8125rem;color:var(--gray-500)}.invalid-tips{background:var(--gray-50);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.invalid-tips h4{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .75rem}.invalid-tips ul{margin:0;padding:0 0 0 1.25rem}.invalid-tips li{font-size:.875rem;color:var(--gray-600);margin-bottom:.5rem;line-height:1.4}.invalid-tips li:last-child{margin-bottom:0}.invalid-contact{text-align:center;padding:1.25rem;background:#fef2f2;border-radius:12px}.invalid-contact p{font-size:.875rem;color:var(--gray-600);margin:0 0 .75rem}.contact-link{display:inline-flex;align-items:center;gap:.5rem;color:#dc2626;font-weight:600;text-decoration:none;transition:opacity .2s}.contact-link:hover{opacity:.8}.verify-again{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:1.5rem;padding:.875rem 1rem;background:var(--gray-100);color:var(--gray-700);border:none;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s}.verify-again:hover{background:var(--gray-200)}.verify-footer{text-align:center;padding-top:2rem}.verify-footer p{font-size:.8125rem;color:var(--gray-400);margin:0 0 .75rem}.footer-links{display:flex;justify-content:center;gap:1.5rem}.footer-links a{font-size:.8125rem;color:var(--gray-500);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--primary-600)}@media(max-width:640px){.verify-container{padding:1.5rem 1rem}.verify-card-header{padding:1.5rem 1.5rem 1.25rem}.verify-card-header h1{font-size:1.25rem}.verify-form,.verify-result{padding:1.5rem}.verify-icon,.result-icon{width:56px;height:56px}.verify-icon svg,.result-icon svg{width:24px;height:24px}.detail-group{flex-direction:column;gap:.25rem}.detail-group .detail-value{text-align:left;max-width:100%}.institution-info{flex-direction:column;text-align:center}}.feed-post{position:relative;padding:1.25rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);transition:all var(--transition);cursor:default}.feed-post:hover{border-color:var(--gray-200);box-shadow:var(--shadow-sm)}.feed-post.unread{background:linear-gradient(to right,var(--gpe-blue-50),var(--white));border-color:var(--gpe-blue-100)}.feed-post.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gpe-blue);border-radius:3px 0 0 3px}.feed-post.priority{border-color:#e11d4833}.feed-post.priority.unread{background:linear-gradient(to right,var(--gpe-rose-50),var(--white));border-color:#e11d484d}.feed-post.priority.unread:before{background:var(--gpe-rose)}.feed-post-priority-badge{position:absolute;top:-8px;right:16px;display:flex;align-items:center;gap:.25rem;padding:.25rem .625rem;background:var(--gpe-rose);color:var(--white);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-full);box-shadow:0 2px 8px #e11d484d}.feed-post-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.875rem}.feed-post-avatar{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;color:var(--white);overflow:hidden}.feed-post-avatar img{width:100%;height:100%;object-fit:cover}.feed-post-avatar.role-prof{background:var(--gradient-green)}.feed-post-avatar.role-admin{background:var(--gradient-blue)}.feed-post-avatar.role-direction{background:var(--gradient-purple)}.feed-post-author-info{flex:1;min-width:0}.feed-post-author-name{font-size:.9375rem;font-weight:600;color:var(--gray-900);line-height:1.3}.feed-post-author-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.125rem}.feed-post-role{display:inline-flex;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.feed-post-role.role-prof{background:var(--gpe-green-50);color:var(--gpe-green)}.feed-post-role.role-admin{background:var(--gpe-blue-50);color:var(--gpe-blue)}.feed-post-role.role-direction{background:var(--gpe-purple-50);color:var(--gpe-purple)}.feed-post-title{font-size:.75rem;color:var(--gray-500)}.feed-post-date-wrapper{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.feed-post-date{font-size:.75rem;color:var(--gray-400);white-space:nowrap}.feed-post-unread-dot{width:8px;height:8px;background:var(--gpe-blue);border-radius:var(--radius-full);flex-shrink:0}.feed-post-type-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem}.feed-post-type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.feed-post-type-badge.type-annonce{background:var(--gpe-rose-50);color:var(--gpe-rose)}.feed-post-type-badge.type-info{background:var(--gpe-blue-50);color:var(--gpe-blue)}.feed-post-type-badge.type-rappel{background:var(--gpe-orange-50);color:var(--gpe-orange)}.feed-post-type-badge.type-evenement{background:var(--gpe-purple-50);color:var(--gpe-purple)}.feed-post-type-badge.type-cours{background:var(--gpe-green-50);color:var(--gpe-green)}.feed-post-course-badge{padding:.25rem .5rem;background:var(--gray-100);color:var(--gray-600);font-size:.6875rem;font-weight:600;border-radius:var(--radius-sm);font-family:monospace}.feed-post-headline{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;line-height:1.4}.feed-post-content{margin-bottom:.75rem}.feed-post-content p{font-size:.875rem;color:var(--gray-600);line-height:1.65;margin:0;white-space:pre-wrap}.feed-post-expand-btn{display:inline;background:none;border:none;color:var(--gpe-blue);font-size:.875rem;font-weight:500;cursor:pointer;padding:0;margin-left:.25rem}.feed-post-expand-btn:hover{text-decoration:underline}.feed-post-event-info{display:flex;flex-wrap:wrap;gap:1rem;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-md);margin-bottom:.75rem}.feed-post-event-date,.feed-post-event-location{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--gray-700)}.feed-post-event-date svg,.feed-post-event-location svg{color:var(--gpe-purple);flex-shrink:0}.feed-post-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.feed-post-link{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:var(--gpe-blue-50);color:var(--gpe-blue);font-size:.8125rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition)}.feed-post-link:hover{background:var(--gpe-blue-100);color:var(--gpe-blue-dark)}.feed-post-attachments{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.feed-post-attachment{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.8125rem;color:var(--gray-700);transition:all var(--transition)}.feed-post-attachment:hover{border-color:var(--gray-300);background:var(--gray-100)}.feed-post-attachment svg{color:var(--gpe-rose)}.feed-post-attachment .attachment-name{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-post-attachment .attachment-size{color:var(--gray-400);font-size:.75rem}.feed-post-footer{display:flex;align-items:center;justify-content:flex-end;padding-top:.75rem;border-top:1px solid var(--gray-100);margin-top:.5rem}.feed-post-views{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--gray-400)}.feed-post-views svg{opacity:.7}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.feed-post{animation:fadeInUp .3s ease-out}@media(max-width:768px){.feed-post{padding:1rem}.feed-post-header{flex-wrap:wrap}.feed-post-avatar{width:40px;height:40px;font-size:.8125rem}.feed-post-date-wrapper{order:3;width:100%;margin-top:.5rem;padding-left:52px}.feed-post-priority-badge{top:-6px;right:12px;font-size:.625rem;padding:.1875rem .5rem}.feed-post-headline{font-size:.9375rem}.feed-post-content p{font-size:.8125rem}.feed-post-event-info{flex-direction:column;gap:.5rem}.feed-post-attachment .attachment-name{max-width:150px}}@media(max-width:480px){.feed-post-type-row{flex-wrap:wrap}.feed-post-links{flex-direction:column}.feed-post-link{justify-content:center}}.feed-filters{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);margin-bottom:1rem}.feed-filters-section{width:100%}.feed-filters-types{display:flex;flex-wrap:wrap;gap:.5rem}.feed-filter-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition);white-space:nowrap}.feed-filter-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}.feed-filter-btn.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.feed-filter-btn.filter-annonce.active{background:var(--gpe-rose);border-color:var(--gpe-rose)}.feed-filter-btn.filter-info.active{background:var(--gpe-blue);border-color:var(--gpe-blue)}.feed-filter-btn.filter-rappel.active{background:var(--gpe-orange);border-color:var(--gpe-orange)}.feed-filter-btn.filter-evenement.active{background:var(--gpe-purple);border-color:var(--gpe-purple)}.feed-filter-btn.filter-cours.active{background:var(--gpe-green);border-color:var(--gpe-green)}.feed-filter-btn.filter-annonce:not(.active):hover{border-color:var(--gpe-rose);color:var(--gpe-rose)}.feed-filter-btn.filter-info:not(.active):hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.feed-filter-btn.filter-rappel:not(.active):hover{border-color:var(--gpe-orange);color:var(--gpe-orange)}.feed-filter-btn.filter-evenement:not(.active):hover{border-color:var(--gpe-purple);color:var(--gpe-purple)}.feed-filter-btn.filter-cours:not(.active):hover{border-color:var(--gpe-green);color:var(--gpe-green)}.feed-filters-secondary{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--gray-100)}.feed-filter-select-wrapper{position:relative;display:inline-flex}.feed-filter-select{appearance:none;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.feed-filter-select:hover{border-color:var(--gray-300)}.feed-filter-select:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px var(--gpe-blue-50)}.feed-filter-select-icon{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--gray-400)}.feed-filter-toggle{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.feed-filter-toggle:hover{border-color:var(--gpe-amber);color:var(--gpe-amber)}.feed-filter-toggle.active{background:var(--gpe-amber-50);border-color:var(--gpe-amber);color:var(--gpe-amber)}.feed-filter-toggle svg{opacity:.7}.feed-filter-toggle.active svg{opacity:1}.feed-filter-date-wrapper{position:relative;display:inline-flex}.feed-filter-date-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.feed-filter-date-btn:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.feed-filter-date-btn.active{background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.feed-filter-date-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:280px;padding:.75rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100}.feed-filter-date-presets{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.feed-filter-date-preset{padding:.375rem .75rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.feed-filter-date-preset:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.feed-filter-date-preset.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.feed-filter-date-custom-label{font-size:.6875rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.feed-filter-date-inputs{display:flex;gap:.75rem;margin-bottom:.75rem}.feed-filter-date-input-group{flex:1;display:flex;flex-direction:column;gap:.25rem}.feed-filter-date-input-group label{font-size:.6875rem;font-weight:500;color:var(--gray-500)}.feed-filter-date-input-group input[type=date]{padding:.5rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.8125rem;color:var(--gray-700);background:var(--white);width:100%}.feed-filter-date-input-group input[type=date]:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px var(--gpe-blue-50)}.feed-filter-date-apply{width:100%;padding:.5rem 1rem;border:none;background:var(--gpe-blue);color:var(--white);border-radius:var(--radius-md);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition)}.feed-filter-date-apply:hover:not(:disabled){background:var(--gpe-blue-dark, #2563eb)}.feed-filter-date-apply:disabled{opacity:.5;cursor:not-allowed}.feed-filters-unread{display:inline-flex;align-items:center;padding:.375rem .625rem;background:var(--gpe-blue-50);color:var(--gpe-blue);font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.feed-filter-reset{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border:none;background:transparent;font-size:.8125rem;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all var(--transition);margin-left:auto}.feed-filter-reset:hover{color:var(--gpe-rose)}@media(max-width:768px){.feed-filters{padding:.875rem}.feed-filters-types{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem;margin-bottom:-.5rem;scrollbar-width:none;-ms-overflow-style:none}.feed-filters-types::-webkit-scrollbar{display:none}.feed-filter-btn{padding:.5rem 1rem;font-size:.8125rem}.feed-filters-secondary{gap:.5rem}.feed-filter-select{flex:1;min-width:140px}.feed-filter-reset{margin-left:0;width:100%;justify-content:center;padding:.625rem;background:var(--gray-50);border-radius:var(--radius-md)}}@media(max-width:480px){.feed-filters-secondary{flex-direction:column;align-items:stretch}.feed-filter-select-wrapper,.feed-filter-select{width:100%}.feed-filter-toggle{justify-content:center}.feed-filter-date-wrapper{width:100%}.feed-filter-date-btn{width:100%;justify-content:center}.feed-filter-date-dropdown{left:0;right:0;min-width:auto}.feed-filter-date-inputs{flex-direction:column;gap:.5rem}.feed-filters-unread{justify-content:center}}.feed-list,.feed-list-items{display:flex;flex-direction:column;gap:1rem}.feed-list-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--gray-400);text-align:center}.feed-list-spinner{margin-bottom:1rem}.feed-list-spinner svg{animation:spin 1.5s linear infinite}.feed-list-loading p{font-size:.9375rem;margin:0}.feed-list-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--gray-500);text-align:center;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg)}.feed-list-error svg{color:var(--gpe-rose);opacity:.6;margin-bottom:1rem}.feed-list-error p{font-size:.9375rem;margin:0 0 1.5rem}.feed-list-retry-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--gpe-blue);color:var(--white);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.feed-list-retry-btn:hover{background:var(--gpe-blue-dark);transform:translateY(-1px)}.feed-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--gray-400);text-align:center;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg)}.feed-list-empty svg{margin-bottom:1rem;opacity:.4}.feed-list-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.feed-list-empty p{font-size:.875rem;margin:0 0 1.5rem}.feed-list-refresh-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--gray-100);color:var(--gray-600);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.feed-list-refresh-btn:hover{background:var(--gray-200);color:var(--gray-800)}.feed-list-load-more{display:flex;justify-content:center;padding:1rem 0}.feed-list-load-more-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.feed-list-load-more-btn:hover:not(:disabled){border-color:var(--gpe-blue);color:var(--gpe-blue);background:var(--gpe-blue-50)}.feed-list-load-more-btn:disabled{cursor:not-allowed;opacity:.7}.feed-list-load-more-spinner{animation:spin 1s linear infinite}.feed-list-end{display:flex;align-items:center;gap:1rem;padding:1.5rem 0}.feed-list-end-line{flex:1;height:1px;background:var(--gray-200)}.feed-list-end-text{font-size:.75rem;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}@media(max-width:768px){.feed-list-items{gap:.75rem}.feed-list-loading,.feed-list-error,.feed-list-empty{padding:3rem 1.5rem}.feed-list-empty h3{font-size:1rem}.feed-list-load-more-btn{width:100%;justify-content:center}}.campus-feed-page{display:flex;flex-direction:column;gap:1rem}.campus-feed-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#7c3aed14,#1a56db0d);border:1px solid rgba(124,58,237,.1);border-radius:var(--radius-xl);position:relative;overflow:hidden}.campus-feed-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-purple),var(--gpe-blue),var(--gpe-green))}.campus-feed-header-content{display:flex;align-items:flex-start;gap:1rem}.campus-feed-header-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--gradient-purple);border-radius:var(--radius-lg);color:var(--white);flex-shrink:0;box-shadow:var(--shadow-purple)}.campus-feed-header-text{flex:1}.campus-feed-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem}.campus-feed-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.4}.campus-feed-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.campus-feed-mark-all-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.campus-feed-mark-all-btn:hover{border-color:var(--gpe-blue);color:var(--gpe-blue);background:var(--gpe-blue-50)}.campus-feed-refresh-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;transition:all var(--transition)}.campus-feed-refresh-btn:hover:not(:disabled){border-color:var(--gray-300);color:var(--gray-700);background:var(--gray-50)}.campus-feed-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.campus-feed-refresh-btn svg.spinning{animation:spin 1s linear infinite}@media(max-width:768px){.campus-feed-header{flex-direction:column;padding:1.25rem;gap:1rem}.campus-feed-header-content{flex-direction:column;align-items:center;text-align:center}.campus-feed-header-icon{width:48px;height:48px}.campus-feed-header-icon svg{width:24px;height:24px}.campus-feed-title{font-size:1.25rem}.campus-feed-subtitle{font-size:.875rem}.campus-feed-header-actions{width:100%;justify-content:center}.campus-feed-mark-all-btn{flex:1;justify-content:center}}@media(max-width:480px){.campus-feed-header-actions{flex-direction:column}.campus-feed-mark-all-btn{width:100%}.campus-feed-refresh-btn{width:100%;height:44px}}.parcours-page{max-width:1100px;margin:0 auto;padding:0}.parcours-loading,.parcours-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:2rem}.loading-spinner{width:44px;height:44px;border:3px solid var(--gray-200);border-top-color:var(--gpe-indigo-500);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.parcours-error .error-icon{color:var(--gray-400);margin-bottom:1rem}.parcours-error h2{margin:0 0 .5rem;font-size:1.125rem;color:var(--gray-800)}.parcours-error p{margin:0;color:var(--gray-500)}.btn-retry{margin-top:1.5rem;padding:.625rem 1.25rem;background:var(--gpe-indigo-500);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer}.btn-retry:hover{background:var(--gpe-indigo-600)}.parcours-header{margin-bottom:1.5rem}.parcours-header .header-content{display:flex;justify-content:space-between;align-items:flex-start}.parcours-header h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--gray-900)}.header-subtitle{margin:.25rem 0 0;color:var(--gray-500);font-size:.9375rem}.btn-refresh{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--gray-100);border:none;border-radius:10px;color:var(--gray-500);cursor:pointer;transition:all .2s}.btn-refresh:hover{background:var(--gray-200);color:var(--gray-700)}.section-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--gray-800)}.roadmap-section{margin-bottom:1.5rem}.roadmap{display:flex;align-items:center;justify-content:center;gap:0;padding:1.5rem;background:linear-gradient(135deg,var(--gray-50) 0%,white 100%);border:1px solid var(--gray-200);border-radius:16px}.roadmap-step{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:0 1.5rem}.step-marker{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--gray-200);border-radius:50%;font-size:1.125rem;font-weight:700;color:var(--gray-500);transition:all .3s}.roadmap-step.completed .step-marker{background:var(--green-500);color:#fff}.roadmap-step.current .step-marker{background:var(--gpe-indigo-500);color:#fff;box-shadow:0 0 0 4px var(--gpe-indigo-100)}.step-marker.diploma{background:linear-gradient(135deg,var(--amber-400) 0%,var(--amber-500) 100%);color:#fff}.step-content{text-align:center}.step-label{display:block;font-weight:600;font-size:.9375rem;color:var(--gray-800)}.step-detail{font-size:.75rem;color:var(--gray-500)}.roadmap-connector{flex:1;max-width:100px;height:3px;background:var(--gray-200);border-radius:2px}.status-card{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.status-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.program-info .program-badge{display:inline-block;padding:.25rem .625rem;background:var(--gpe-indigo-100);color:var(--gpe-indigo-700);border-radius:6px;font-size:.6875rem;font-weight:700;letter-spacing:.5px;margin-bottom:.5rem}.program-info h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--gray-900)}.program-meta{display:flex;gap:.5rem}.meta-tag{padding:.2rem .5rem;background:var(--gray-100);color:var(--gray-600);border-radius:4px;font-size:.6875rem;font-weight:500}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--green-50);color:var(--green-700);border-radius:20px;font-size:.75rem;font-weight:600}.status-badge .pulse{width:8px;height:8px;background:var(--green-500);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.progress-overview{display:flex;align-items:center;gap:2.5rem}.progress-circle-large{position:relative;width:130px;height:130px;flex-shrink:0}.progress-circle-large svg{transform:rotate(-90deg)}.progress-circle-large .progress-bg{fill:none;stroke:var(--gray-100);stroke-width:10}.progress-circle-large .progress-fill{fill:none;stroke:url(#progressGradient);stroke:var(--gpe-indigo-500);stroke-width:10;stroke-linecap:round;transition:stroke-dasharray .5s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.progress-value{display:block;font-size:1.75rem;font-weight:700;color:var(--gray-900);line-height:1}.progress-label{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.progress-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;flex:1}.breakdown-item{display:flex;align-items:center;gap:.75rem}.breakdown-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px}.breakdown-icon.green{background:var(--green-100);color:var(--green-600)}.breakdown-icon.blue{background:var(--gpe-indigo-100);color:var(--gpe-indigo-600)}.breakdown-icon.purple{background:var(--purple-100);color:var(--purple-600)}.breakdown-icon.orange{background:var(--orange-100);color:var(--orange-600)}.breakdown-data{display:flex;flex-direction:column}.breakdown-value{font-size:1.25rem;font-weight:700;color:var(--gray-900);line-height:1.2}.breakdown-label{font-size:.75rem;color:var(--gray-500)}.semester-progress{margin-bottom:1.5rem}.semesters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.semester-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:1rem 1.25rem;transition:all .2s}.semester-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #0000000d}.semester-card.ongoing{border-color:var(--gpe-indigo-300);background:linear-gradient(135deg,var(--gpe-indigo-50) 0%,white 100%)}.semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.semester-title{display:flex;align-items:center;gap:.5rem}.semester-code{font-size:1rem;font-weight:700;color:var(--gray-800)}.ongoing-badge{padding:.125rem .5rem;background:var(--gpe-indigo-500);color:#fff;font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:10px}.semester-ects{font-size:.8125rem;font-weight:600;color:var(--gray-600)}.semester-progress-bar{position:relative;height:8px;background:var(--gray-100);border-radius:4px;overflow:hidden;margin-bottom:.75rem}.semester-progress-bar .progress-fill{position:absolute;top:0;height:100%;border-radius:4px;transition:width .3s ease}.semester-progress-bar .progress-fill.validated{background:var(--green-500);z-index:2}.semester-progress-bar .progress-fill.in-progress{background:var(--gpe-indigo-400);z-index:1}.semester-stats{display:flex;gap:1rem;font-size:.75rem;color:var(--gray-500)}.semester-stats .stat{display:flex;align-items:center;gap:.375rem}.semester-stats .stat.total{margin-left:auto;font-weight:600;color:var(--gray-600)}.semester-stats .dot{width:8px;height:8px;border-radius:50%}.dot.green{background:var(--green-500)}.dot.blue{background:var(--gpe-indigo-500)}.ue-summary{margin-bottom:1.5rem}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.link-all{display:flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:var(--gpe-indigo-600);text-decoration:none}.link-all:hover{color:var(--gpe-indigo-700)}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid var(--gray-200);border-radius:12px;transition:all .2s}.summary-card:hover{border-color:var(--gray-300)}.summary-card .card-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px}.summary-card.validated .card-icon{background:var(--green-100);color:var(--green-600)}.summary-card.in-progress .card-icon{background:var(--gpe-indigo-100);color:var(--gpe-indigo-600)}.summary-card.locked .card-icon{background:var(--gray-100);color:var(--gray-500)}.summary-card .card-content{flex:1}.summary-card .card-value{display:block;font-size:1.375rem;font-weight:700;color:var(--gray-900);line-height:1.2}.summary-card .card-label{font-size:.8125rem;color:var(--gray-500)}.summary-card .card-ects{font-size:.8125rem;font-weight:600;color:var(--gray-600);padding:.25rem .625rem;background:var(--gray-100);border-radius:6px}.quick-links{margin-bottom:2rem}.links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.quick-link{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid var(--gray-200);border-radius:12px;text-decoration:none;transition:all .2s}.quick-link:hover{border-color:var(--gray-300);background:var(--gray-50);transform:translate(4px)}.quick-link .link-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;flex-shrink:0}.link-icon.blue{background:var(--gpe-indigo-100);color:var(--gpe-indigo-600)}.link-icon.green{background:var(--green-100);color:var(--green-600)}.link-icon.purple{background:var(--purple-100);color:var(--purple-600)}.link-icon.orange{background:var(--orange-100);color:var(--orange-600)}.quick-link .link-content{flex:1}.quick-link .link-title{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-800)}.quick-link .link-desc{font-size:.75rem;color:var(--gray-500)}.quick-link .link-arrow{color:var(--gray-400);transition:transform .2s}.quick-link:hover .link-arrow{transform:translate(4px);color:var(--gpe-indigo-500)}@media(max-width:900px){.progress-overview{flex-direction:column;text-align:center}.progress-breakdown{width:100%}.summary-cards,.links-grid{grid-template-columns:1fr}}@media(max-width:640px){.parcours-header h1{font-size:1.25rem}.roadmap{flex-direction:column;gap:.5rem;padding:1.25rem}.roadmap-step{flex-direction:row;padding:.5rem 0;width:100%;justify-content:flex-start;gap:1rem}.step-content{text-align:left}.roadmap-connector{width:3px;height:24px;max-width:none;margin-left:22px}.status-header{flex-direction:column;gap:1rem}.progress-circle-large{width:110px;height:110px}.progress-value{font-size:1.5rem}.semesters-grid{grid-template-columns:1fr}}.presences-page{padding:0}.presences-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.presences-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin 1s linear infinite}.attendance-alerts{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.alert{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:12px}.alert-warning{background:#fef3c7;border:1px solid #fcd34d}.alert-warning svg{color:#d97706;flex-shrink:0}.alert-critical{background:#fef2f2;border:1px solid #fca5a5}.alert-critical svg{color:#dc2626;flex-shrink:0}.alert-content{flex:1}.alert-content strong{font-size:.875rem;color:var(--gray-900)}.alert-content p{font-size:.8125rem;color:var(--gray-700);margin:.25rem 0 0}.alert-course{font-size:.75rem;font-weight:600;color:var(--gray-500)}.alert-rate{font-size:.875rem;font-weight:600;color:var(--gray-700);flex-shrink:0}.attendance-overview{display:flex;gap:1.5rem;margin-bottom:1.5rem}.overview-main{display:flex;align-items:center;gap:1.5rem;background:#fff;border-radius:16px;padding:1.5rem;border:1px solid var(--gray-200);flex-shrink:0}.overview-circle{position:relative;width:120px;height:120px}.overview-circle svg{transform:rotate(-90deg);width:100%;height:100%}.overview-circle .circle-bg{fill:none;stroke:var(--gray-100);stroke-width:10}.overview-circle .circle-fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dasharray .5s ease}.circle-fill.success{stroke:var(--success-500)}.circle-fill.danger{stroke:#ef4444}.circle-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.rate-value{font-size:1.5rem;font-weight:700;display:block}.rate-value.success{color:var(--success-600)}.rate-value.danger{color:#dc2626}.rate-label{font-size:.75rem;color:var(--gray-500)}.overview-info{display:flex;flex-direction:column;gap:.75rem}.threshold-info{display:flex;align-items:center;gap:.5rem}.threshold-label{font-size:.8125rem;color:var(--gray-500)}.threshold-value{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.threshold-status{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500}.threshold-status.success{color:var(--success-600)}.threshold-status.danger{color:#dc2626}.overview-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;flex:1}.overview-stats .stat-card{background:#fff;border-radius:12px;padding:1rem;border:1px solid var(--gray-200);text-align:center}.overview-stats .stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900);display:block}.overview-stats .stat-label{font-size:.75rem;color:var(--gray-500)}.stat-card.stat-present .stat-value{color:var(--success-600)}.stat-card.stat-late .stat-value{color:#d97706}.stat-card.stat-justified .stat-value{color:var(--primary-600)}.view-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.view-tabs .tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--gray-500);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.view-tabs .tab-btn:hover{color:var(--gray-700)}.view-tabs .tab-btn.active{color:var(--primary-600);border-bottom-color:var(--primary-600)}.overview-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.monthly-chart{background:#fff;border-radius:12px;padding:1.25rem;border:1px solid var(--gray-200)}.section-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.chart-bars{display:flex;gap:.75rem;height:200px;align-items:flex-end}.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}.bar-container{width:100%;height:150px;background:var(--gray-100);border-radius:4px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;border-radius:4px 4px 0 0;transition:height .3s ease}.bar-fill.success{background:var(--success-500)}.bar-fill.danger{background:#ef4444}.bar-label{font-size:.6875rem;color:var(--gray-500)}.bar-value{font-size:.75rem;font-weight:600;color:var(--gray-700)}.recent-attendance{background:#fff;border-radius:12px;padding:1.25rem;border:1px solid var(--gray-200)}.recent-list{display:flex;flex-direction:column;gap:.5rem}.recent-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--gray-50);border-radius:8px}.recent-date{display:flex;flex-direction:column;align-items:center;min-width:45px}.recent-date .date-day{font-size:1.125rem;font-weight:700;color:var(--gray-900);line-height:1}.recent-date .date-month{font-size:.6875rem;color:var(--gray-500);text-transform:uppercase}.recent-info{flex:1}.recent-course{font-size:.875rem;font-weight:600;color:var(--gray-900);display:block}.recent-time{font-size:.75rem;color:var(--gray-500)}.recent-status{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;padding:.25rem .625rem;border-radius:20px}.recent-status.status-present{background:var(--success-50);color:var(--success-700)}.recent-status.status-absent{background:#fef2f2;color:#dc2626}.recent-status.status-late{background:#fef3c7;color:#d97706}.recent-status.status-justified{background:var(--primary-50);color:var(--primary-700)}.history-content{background:#fff;border-radius:12px;border:1px solid var(--gray-200);overflow:hidden}.history-filters{display:flex;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100)}.filter-select{padding:.5rem 2rem .5rem .75rem;border:1px solid var(--gray-200);border-radius:8px;font-size:.875rem;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .5rem center no-repeat;background-size:1.5em 1.5em;appearance:none;cursor:pointer}.reset-filters{padding:.5rem .75rem;background:transparent;border:none;color:var(--gray-500);font-size:.8125rem;cursor:pointer;transition:color .2s}.reset-filters:hover{color:var(--gray-700)}.history-list{padding:0}.history-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100)}.history-item:last-child{border-bottom:none}.history-date{min-width:120px}.date-full{font-size:.875rem;font-weight:500;color:var(--gray-900);display:block}.date-time{font-size:.75rem;color:var(--gray-500)}.history-course{flex:1;min-width:0}.history-course .course-code{font-size:.75rem;font-weight:600;color:var(--gray-400);display:block}.history-course .course-title{font-size:.875rem;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-course .course-type{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--gray-500)}.history-status{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;min-width:100px}.history-status .status-label{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500}.history-status.status-present{color:var(--success-600)}.history-status.status-absent{color:#dc2626}.history-status.status-late{color:#d97706}.history-status.status-justified{color:var(--primary-600)}.late-minutes{font-size:.6875rem;color:#d97706;font-weight:600}.checkin-time{font-size:.6875rem;color:var(--gray-400)}.courses-content{padding:0}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.course-card{background:#fff;border-radius:12px;padding:1.25rem;border:1px solid var(--gray-200)}.course-card.warning{border-color:#fcd34d;background:#fffbeb}.course-card .course-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.course-card .course-info{flex:1;min-width:0}.course-card .course-code{font-size:.75rem;font-weight:600;color:var(--gray-400);display:block}.course-card .course-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:.25rem 0 0}.course-rate{font-size:1.5rem;font-weight:700}.course-rate.success{color:var(--success-600)}.course-rate.danger{color:#dc2626}.course-progress{margin-bottom:1rem}.course-progress .progress-bar{position:relative;height:8px;background:var(--gray-100);border-radius:4px;overflow:visible}.course-progress .progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.progress-fill.success{background:var(--success-500)}.progress-fill.danger{background:#ef4444}.progress-threshold{position:absolute;top:-4px;width:2px;height:16px;background:var(--gray-400)}.course-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding:.75rem 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100)}.mini-stat{text-align:center}.mini-value{font-size:1rem;font-weight:700;color:var(--gray-900);display:block}.mini-stat.stat-present .mini-value{color:var(--success-600)}.mini-stat.stat-absent .mini-value{color:#dc2626}.mini-stat.stat-late .mini-value{color:#d97706}.mini-stat.stat-justified .mini-value{color:var(--primary-600)}.mini-label{font-size:.6875rem;color:var(--gray-500)}.course-footer{margin-top:.75rem}.sessions-count{font-size:.8125rem;color:var(--gray-500)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.empty-state p{font-size:.9375rem;color:var(--gray-500);margin:0}@media(max-width:1024px){.attendance-overview{flex-direction:column}.overview-stats{grid-template-columns:repeat(3,1fr)}.overview-content{grid-template-columns:1fr}}@media(max-width:768px){.overview-main{flex-direction:column;text-align:center}.overview-stats{grid-template-columns:repeat(2,1fr)}.view-tabs .tab-btn{padding:.625rem .75rem}.view-tabs .tab-btn svg{display:none}.history-filters{flex-wrap:wrap}.history-item{flex-direction:column;align-items:flex-start;gap:.75rem}.history-status{align-items:flex-start;flex-direction:row;gap:.75rem}.courses-grid{grid-template-columns:1fr}.chart-bars{overflow-x:auto;padding-bottom:.5rem}.chart-bar{min-width:50px}}:root.dark .presences-loading .loading-spinner,.dark .presences-loading .loading-spinner{border-color:#334155;border-top-color:var(--primary-400)}:root.dark .page-title,.dark .page-title{color:#f1f5f9}:root.dark .page-subtitle,.dark .page-subtitle{color:#94a3b8}:root.dark .alert-warning,.dark .alert-warning{background:#d9770626;border-color:#d977064d}:root.dark .alert-critical,.dark .alert-critical{background:#dc262626;border-color:#dc26264d}:root.dark .alert-content strong,.dark .alert-content strong{color:#f1f5f9}:root.dark .alert-content p,.dark .alert-content p{color:#e2e8f0}:root.dark .alert-course,.dark .alert-course{color:#94a3b8}:root.dark .alert-rate,.dark .alert-rate{color:#e2e8f0}:root.dark .overview-main,.dark .overview-main{background:#1e293b;border-color:#334155}:root.dark .overview-circle .circle-bg,.dark .overview-circle .circle-bg{stroke:#334155}:root.dark .rate-label,.dark .rate-label{color:#94a3b8}:root.dark .threshold-label,.dark .threshold-label{color:#94a3b8}:root.dark .threshold-value,.dark .threshold-value{color:#f1f5f9}:root.dark .overview-stats .stat-card,.dark .overview-stats .stat-card{background:#1e293b;border-color:#334155}:root.dark .overview-stats .stat-value,.dark .overview-stats .stat-value{color:#f1f5f9}:root.dark .overview-stats .stat-label,.dark .overview-stats .stat-label{color:#94a3b8}:root.dark .view-tabs,.dark .view-tabs{border-bottom-color:#334155}:root.dark .view-tabs .tab-btn,.dark .view-tabs .tab-btn{color:#94a3b8}:root.dark .view-tabs .tab-btn:hover,.dark .view-tabs .tab-btn:hover{color:#e2e8f0}:root.dark .view-tabs .tab-btn.active,.dark .view-tabs .tab-btn.active{color:var(--primary-400);border-bottom-color:var(--primary-400)}:root.dark .monthly-chart,.dark .monthly-chart{background:#1e293b;border-color:#334155}:root.dark .section-title,.dark .section-title{color:#f1f5f9}:root.dark .bar-container,.dark .bar-container{background:#334155}:root.dark .bar-label,.dark .bar-label{color:#94a3b8}:root.dark .bar-value,.dark .bar-value{color:#e2e8f0}:root.dark .recent-attendance,.dark .recent-attendance{background:#1e293b;border-color:#334155}:root.dark .recent-item,.dark .recent-item{background:#0f172a}:root.dark .recent-date .date-day,.dark .recent-date .date-day{color:#f1f5f9}:root.dark .recent-date .date-month,.dark .recent-date .date-month{color:#94a3b8}:root.dark .recent-course,.dark .recent-course{color:#f1f5f9}:root.dark .recent-time,.dark .recent-time{color:#94a3b8}:root.dark .recent-status.status-present,.dark .recent-status.status-present{background:#22c55e26;color:#4ade80}:root.dark .recent-status.status-absent,.dark .recent-status.status-absent{background:#dc262626;color:#f87171}:root.dark .recent-status.status-late,.dark .recent-status.status-late{background:#d9770626;color:#fbbf24}:root.dark .recent-status.status-justified,.dark .recent-status.status-justified{background:#6366f126;color:var(--primary-400)}:root.dark .history-content,.dark .history-content{background:#1e293b;border-color:#334155}:root.dark .history-filters,.dark .history-filters{border-bottom-color:#334155}:root.dark .filter-select,.dark .filter-select{background-color:#0f172a;border-color:#334155;color:#e2e8f0;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}:root.dark .reset-filters,.dark .reset-filters{color:#94a3b8}:root.dark .reset-filters:hover,.dark .reset-filters:hover{color:#e2e8f0}:root.dark .history-item,.dark .history-item{border-bottom-color:#334155}:root.dark .date-full,.dark .date-full{color:#f1f5f9}:root.dark .date-time,.dark .date-time{color:#94a3b8}:root.dark .history-course .course-code,.dark .history-course .course-code{color:#64748b}:root.dark .history-course .course-title,.dark .history-course .course-title{color:#e2e8f0}:root.dark .history-course .course-type,.dark .history-course .course-type{color:#94a3b8}:root.dark .checkin-time,.dark .checkin-time{color:#64748b}:root.dark .course-card,.dark .course-card{background:#1e293b;border-color:#334155}:root.dark .course-card.warning,.dark .course-card.warning{background:#d977061a;border-color:#d977064d}:root.dark .course-card .course-code,.dark .course-card .course-code{color:#64748b}:root.dark .course-card .course-title,.dark .course-card .course-title{color:#f1f5f9}:root.dark .course-progress .progress-bar,.dark .course-progress .progress-bar{background:#334155}:root.dark .progress-threshold,.dark .progress-threshold{background:#64748b}:root.dark .course-stats,.dark .course-stats{border-top-color:#334155;border-bottom-color:#334155}:root.dark .mini-value,.dark .mini-value{color:#f1f5f9}:root.dark .mini-label,.dark .mini-label{color:#94a3b8}:root.dark .sessions-count,.dark .sessions-count{color:#94a3b8}:root.dark .empty-state svg,.dark .empty-state svg{color:#475569}.qr-scanner-overlay{position:fixed;inset:0;background:#000000e6;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.qr-scanner-container{width:100%;max-width:400px;background:var(--gray-900);border-radius:20px;overflow:hidden}.qr-scanner-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-800)}.qr-scanner-title{font-size:1.125rem;font-weight:600;color:#fff;margin:0}.qr-scanner-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:background .2s}.qr-scanner-close:hover{background:#fff3}.qr-scanner-area{position:relative;aspect-ratio:1;background:#000;overflow:hidden}.qr-scanner-viewfinder{width:100%;height:100%}.qr-scanner-viewfinder video{width:100%!important;height:100%!important;object-fit:cover!important}.qr-scanner-animation{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scanner-frame{position:relative;width:250px;height:250px}.corner{position:absolute;width:30px;height:30px;border-color:var(--primary-500);border-style:solid;border-width:0}.corner.top-left{top:0;left:0;border-top-width:4px;border-left-width:4px;border-top-left-radius:12px}.corner.top-right{top:0;right:0;border-top-width:4px;border-right-width:4px;border-top-right-radius:12px}.corner.bottom-left{bottom:0;left:0;border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:12px}.corner.bottom-right{bottom:0;right:0;border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:12px}.scanner-line{position:absolute;left:10px;right:10px;height:2px;background:linear-gradient(90deg,transparent,var(--primary-500),transparent);animation:scan 2s ease-in-out infinite}@keyframes scan{0%,to{top:10px;opacity:0}10%{opacity:1}50%{top:calc(100% - 12px)}90%{opacity:1}}.qr-scanner-processing{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000c;gap:1rem}.processing-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--primary-500);border-radius:50%;animation:spin 1s linear infinite}.qr-scanner-processing p{font-size:.9375rem;color:#fff;margin:0}.qr-scanner-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;padding:2rem;text-align:center;gap:1rem}.error-icon svg{color:#ef4444}.error-message{font-size:.9375rem;color:#ffffffe6;margin:0;line-height:1.5}.retry-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--primary-600);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.retry-button:hover{background:var(--primary-700)}.qr-scanner-instructions{padding:1rem;text-align:center}.qr-scanner-instructions p{font-size:.875rem;color:#ffffffb3;margin:0}.qr-scanner-footer{padding:1rem 1.25rem;border-top:1px solid var(--gray-800)}.cancel-button{width:100%;padding:.875rem;background:#ffffff1a;border:none;border-radius:10px;color:#fff;font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .2s}.cancel-button:hover{background:#ffffff26}@media(max-width:480px){.qr-scanner-overlay{padding:0}.qr-scanner-container{max-width:none;height:100%;border-radius:0;display:flex;flex-direction:column}.qr-scanner-area{flex:1;aspect-ratio:unset}}.scan-result-overlay{position:fixed;inset:0;background:#000000d9;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.scan-result-container{position:relative;width:100%;max-width:380px;background:#fff;border-radius:24px;padding:2.5rem 2rem 2rem;text-align:center;overflow:hidden}.result-animation{position:absolute;top:0;left:50%;transform:translate(-50%);width:200px;height:200px}.pulse-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;animation:pulse 2s ease-out infinite}.scan-result-container.success .pulse-ring{background:#05966933}.scan-result-container.late .pulse-ring{background:#d9770633}.scan-result-container.error .pulse-ring{background:#dc262633}.scan-result-container.warning .pulse-ring{background:#d9770633}.scan-result-container.info .pulse-ring{background:#1a56db33}.pulse-ring.delay-1{animation-delay:.3s}.pulse-ring.delay-2{animation-delay:.6s}@keyframes pulse{0%{width:80px;height:80px;opacity:.8}to{width:200px;height:200px;opacity:0}}.result-icon{position:relative;display:flex;align-items:center;justify-content:center;width:100px;height:100px;margin:0 auto 1.5rem;border-radius:50%;z-index:1}.result-icon.success{background:linear-gradient(135deg,#059669,#10b981);color:#fff}.result-icon.late{background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff}.result-icon.error{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}.result-icon.warning{background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff}.result-icon.info{background:linear-gradient(135deg,#1a56db,#3b82f6);color:#fff}.result-icon svg{width:48px;height:48px}.result-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.result-message{font-size:.9375rem;color:var(--gray-600);margin:0 0 1.5rem;line-height:1.5}.result-details{background:var(--gray-50);border-radius:12px;padding:1rem;margin-bottom:1.5rem;text-align:left}.detail-item{padding:.5rem 0;border-bottom:1px solid var(--gray-100)}.detail-item:last-child{border-bottom:none}.detail-label{display:block;font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.detail-value{display:block;font-size:1rem;font-weight:600;color:var(--gray-900)}.detail-subtitle{display:block;font-size:.8125rem;color:var(--gray-600);margin-top:.125rem}.detail-item.late-info .detail-value{color:#d97706}.result-actions{display:flex;gap:.75rem}.primary-button,.secondary-button{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.25rem;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.primary-button{background:var(--primary-600);border:none;color:#fff}.primary-button:hover{background:var(--primary-700)}.secondary-button{background:#fff;border:1px solid var(--gray-200);color:var(--gray-700)}.secondary-button:hover{background:var(--gray-50);border-color:var(--gray-300)}@media(max-width:480px){.scan-result-container{border-radius:20px;padding:2rem 1.5rem 1.5rem}.result-icon{width:80px;height:80px}.result-icon svg{width:40px;height:40px}.result-title{font-size:1.25rem}.result-actions{flex-direction:column}}.today-attendance{background:#fff;border-radius:16px;padding:1.25rem;border:1px solid var(--gray-200)}.today-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.today-title svg{color:var(--primary-600)}.today-count{display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .5rem;background:var(--primary-100);color:var(--primary-700);border-radius:20px;font-size:.75rem;font-weight:600;margin-left:auto}.today-loading{display:flex;flex-direction:column;gap:.75rem}.today-loading .loading-skeleton{height:72px;background:var(--gray-100);border-radius:10px;animation:shimmer 1.5s infinite}.today-empty{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center}.today-empty svg{color:var(--gray-300);margin-bottom:.75rem}.today-empty p{font-size:.9375rem;font-weight:500;color:var(--gray-700);margin:0 0 .25rem}.today-empty span{font-size:.8125rem;color:var(--gray-500)}.today-list{display:flex;flex-direction:column;gap:.625rem}.today-item{display:flex;align-items:center;gap:.875rem;padding:.875rem;background:var(--gray-50);border-radius:10px;transition:background .2s}.today-item:hover{background:var(--gray-100)}.today-item.late{background:#fef3c7;border:1px solid #fcd34d}.today-item.late:hover{background:#fef9c3}.item-status{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex-shrink:0}.today-item:not(.late) .item-status{background:var(--success-100);color:var(--success-600)}.today-item.late .item-status{background:#fde68a;color:#d97706}.item-info{flex:1;min-width:0}.item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.125rem}.item-course{font-size:.8125rem;font-weight:600;color:var(--primary-700)}.item-time{font-size:.75rem;color:var(--gray-500)}.item-title{display:block;font-size:.875rem;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-room{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--gray-500);margin-top:.25rem}.item-checkin{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.checkin-time{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.checkin-method{display:flex;align-items:center;gap:.25rem;font-size:.6875rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em}.late-badge{font-size:.6875rem;font-weight:600;color:#d97706;background:#fff;padding:.125rem .375rem;border-radius:4px}@media(max-width:480px){.today-item{flex-wrap:wrap}.item-info{width:calc(100% - 48px)}.item-checkin{width:100%;flex-direction:row;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--gray-200)}.today-item.late .item-checkin{border-top-color:#fcd34d}}.quick-scan-widget{position:relative;background:#fff;border-radius:16px;padding:1.25rem;border:1px solid var(--gray-200);overflow:hidden}.widget-loading{display:flex;align-items:center;gap:1rem;padding:.5rem 0}.widget-loading .loading-icon{width:48px;height:48px;background:var(--gray-100);border-radius:12px;animation:shimmer 1.5s infinite}.widget-loading .loading-text{flex:1;height:40px;background:var(--gray-100);border-radius:8px;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.quick-scan-widget.no-session{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1.25rem}.widget-icon-bg{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--gray-100);border-radius:16px;color:var(--gray-400);margin-bottom:1rem}.quick-scan-widget.ended .widget-icon-bg{background:var(--success-50);color:var(--success-600)}.widget-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem}.widget-subtitle{font-size:.875rem;color:var(--gray-500);margin:0;line-height:1.4}.quick-scan-widget.active{background:linear-gradient(135deg,var(--primary-50),var(--success-50));border-color:var(--primary-200)}.widget-pulse{position:absolute;top:12px;right:12px;width:12px;height:12px;background:var(--success-500);border-radius:50%;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 #05966966}50%{box-shadow:0 0 0 8px #05966900}}.widget-content{margin-bottom:1rem}.session-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem}.session-badge.live{background:var(--success-100);color:var(--success-700)}.session-badge.upcoming{background:var(--primary-100);color:var(--primary-700)}.live-dot{width:6px;height:6px;background:var(--success-500);border-radius:50%;animation:blink 1.5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.widget-course{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .125rem}.widget-course-title{font-size:.875rem;color:var(--gray-600);margin:0 0 .625rem;line-height:1.4}.widget-meta{display:flex;flex-wrap:wrap;gap:.75rem}.meta-item{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--gray-500)}.meta-item svg{flex-shrink:0}.countdown{display:flex;align-items:baseline;gap:.375rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--gray-200)}.countdown-label{font-size:.8125rem;color:var(--gray-500)}.countdown-value{font-size:1.125rem;font-weight:700;color:var(--primary-600)}.scan-button{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:1rem;background:var(--primary-600);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.scan-button:hover{background:var(--primary-700);transform:translateY(-1px)}.scan-button:active{transform:translateY(0)}.scan-button svg{flex-shrink:0}.widget-link{display:flex;align-items:center;justify-content:center;gap:.375rem;width:100%;padding:.75rem;background:var(--gray-100);border-radius:10px;color:var(--gray-700);font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;margin-top:1rem}.widget-link:hover{background:var(--gray-200);color:var(--gray-900)}.widget-link.alt{background:var(--primary-100);color:var(--primary-700)}.widget-link.alt:hover{background:var(--primary-200)}.quick-scan-widget.upcoming{background:var(--gray-50);border-style:dashed}.quick-scan-widget.ended{text-align:center}@media(max-width:480px){.quick-scan-widget{padding:1rem}.scan-button{padding:.875rem}}.pointage-page{padding:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.page-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:480px}.header-link{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--gray-100);border-radius:8px;color:var(--gray-700);font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;flex-shrink:0}.header-link:hover{background:var(--gray-200);color:var(--gray-900)}.pointage-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}.pointage-main{display:flex;flex-direction:column;gap:1.5rem}.pointage-side{display:flex;flex-direction:column;gap:1rem}.scanner-instructions{background:#fff;border-radius:16px;padding:1.5rem;border:1px solid var(--gray-200)}.instructions-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 1.25rem}.instructions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.instructions-list li{display:flex;gap:1rem}.step-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--primary-100);color:var(--primary-700);border-radius:50%;font-size:.875rem;font-weight:700;flex-shrink:0}.step-content{flex:1;padding-top:.125rem}.step-content strong{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900);margin-bottom:.125rem}.step-content p{font-size:.8125rem;color:var(--gray-500);margin:0;line-height:1.4}.manual-scan-button{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem;background:linear-gradient(135deg,var(--primary-600),var(--primary-700));border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #1a56db33}.manual-scan-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1a56db4d}.manual-scan-button:active{transform:translateY(0)}.refresh-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#fff;border:1px solid var(--gray-200);border-radius:10px;color:var(--gray-600);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.refresh-button:hover{background:var(--gray-50);color:var(--gray-800)}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.refresh-button svg.spinning{animation:spin 1s linear infinite}.help-card{display:flex;gap:1rem;background:var(--primary-50);border-radius:14px;padding:1.25rem;border:1px solid var(--primary-100)}.help-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#fff;border-radius:12px;color:var(--primary-600);flex-shrink:0}.help-content{flex:1}.help-content h4{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .375rem}.help-content p{font-size:.8125rem;color:var(--gray-600);margin:0 0 .75rem;line-height:1.4}.help-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;color:var(--primary-600);text-decoration:none;transition:color .2s}.help-link:hover{color:var(--primary-700)}@media(max-width:1024px){.pointage-grid{grid-template-columns:1fr}.pointage-side{order:-1}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.header-link{align-self:flex-start}.page-title{font-size:1.5rem}}@media(max-width:480px){.instructions-list li{flex-direction:column;gap:.5rem}.step-number{align-self:flex-start}.help-card{flex-direction:column;text-align:center}.help-icon{align-self:center}}.profil-page{padding:0}.profil-header{background:#fff;border-radius:16px;border:1px solid var(--gray-200);overflow:hidden;margin-bottom:1.5rem}.profil-banner{height:120px;background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-400) 100%)}.profil-main-info{display:flex;align-items:flex-end;gap:1.5rem;padding:0 1.5rem 1.5rem;margin-top:-50px}.profil-avatar{position:relative;width:100px;height:100px;border-radius:50%;border:4px solid white;background:var(--primary-100);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #0000001a}.profil-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-initials{font-size:2rem;font-weight:700;color:var(--primary-600)}.avatar-edit{position:absolute;bottom:0;right:0;width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--gray-200);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.avatar-edit:hover{background:var(--gray-50);border-color:var(--gray-300)}.avatar-edit svg{color:var(--gray-600)}.profil-identity{flex:1;padding-bottom:.5rem}.profil-name{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.profil-matricule{font-size:.875rem;color:var(--gray-500);margin:0 0 .75rem}.profil-badges{display:flex;gap:.5rem}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:500}.badge-role{background:var(--primary-50);color:var(--primary-700)}.badge-status{background:var(--success-50);color:var(--success-700)}.profil-actions{padding-bottom:.5rem}.edit-actions{display:flex;gap:.5rem}.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-outline:hover{background:var(--gray-50);border-color:var(--gray-400)}.profil-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.profil-tabs .tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--gray-500);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.profil-tabs .tab-btn:hover{color:var(--gray-700)}.profil-tabs .tab-btn.active{color:var(--primary-600);border-bottom-color:var(--primary-600)}.profil-content{background:#fff;border-radius:16px;border:1px solid var(--gray-200)}.section-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.info-field span.code{font-family:monospace;font-size:.9375rem;color:var(--primary-600);background:var(--primary-50);padding:.25rem .5rem;border-radius:4px;width:fit-content}.info-field input,.info-field textarea{padding:.5rem .75rem;border:1px solid var(--gray-200);border-radius:8px;font-size:.9375rem;transition:border-color .2s}.info-field input:focus,.info-field textarea:focus{outline:none;border-color:var(--primary-500)}.email-verified{display:flex;align-items:center;gap:.375rem}.email-verified svg{color:var(--success-500)}.documents-list{display:flex;flex-direction:column;gap:.75rem}.document-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:12px}.document-item.pending{background:#fef3c7}.document-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;color:var(--primary-600)}.document-item.pending .document-icon{color:#d97706}.document-info{flex:1}.document-name{font-size:.9375rem;font-weight:600;color:var(--gray-900);display:block}.document-validity{font-size:.8125rem;color:var(--gray-500)}.document-pending{font-size:.8125rem;color:#d97706;font-style:italic}.document-download{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:var(--primary-600);color:#fff;border:none;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .2s}.document-download:hover{background:var(--primary-700)}.document-status-badge{padding:.375rem .75rem;background:#fff;color:#d97706;border-radius:20px;font-size:.75rem;font-weight:500}.security-card{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.25rem;background:var(--gray-50);border-radius:12px}.security-info p{font-size:.9375rem;color:var(--gray-700);margin:0 0 .5rem}.security-status{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;margin-top:.5rem}.security-status.disabled{color:#dc2626}.security-status.enabled{color:var(--success-600)}.session-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:12px}.session-item.current{background:var(--primary-50);border:1px solid var(--primary-200)}.session-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;color:var(--gray-600)}.session-item.current .session-icon{color:var(--primary-600)}.session-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.session-device{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.session-location{font-size:.8125rem;color:var(--gray-600)}.session-time{font-size:.75rem;color:var(--gray-400)}.session-badge{padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:500}.session-badge.current{background:var(--primary-600);color:#fff}.session-revoke{padding:.375rem .75rem;background:transparent;color:#dc2626;border:1px solid #fca5a5;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.session-revoke:hover{background:#fef2f2;border-color:#dc2626}@media(max-width:768px){.profil-main-info{flex-direction:column;align-items:center;text-align:center;gap:1rem;margin-top:-40px}.profil-avatar{width:80px;height:80px}.avatar-initials{font-size:1.5rem}.profil-name{font-size:1.25rem}.profil-badges{justify-content:center}.profil-tabs{overflow-x:auto}.profil-tabs .tab-btn{padding:.625rem .75rem;white-space:nowrap}.profil-tabs .tab-btn svg{display:none}.info-grid{grid-template-columns:1fr}.info-field.full-width{grid-column:span 1}.security-card{flex-direction:column;align-items:stretch;text-align:center;gap:1rem}.security-card .btn-outline{justify-content:center}.session-item{flex-direction:column;text-align:center}.session-info{align-items:center}}:root.dark .profil-header,.dark .profil-header{background:#1e293b;border-color:#334155}:root.dark .profil-avatar,.dark .profil-avatar{border-color:#1e293b;background:#334155}:root.dark .avatar-initials,.dark .avatar-initials{color:#60a5fa}:root.dark .avatar-edit,.dark .avatar-edit{background:#1e293b;border-color:#334155}:root.dark .avatar-edit:hover,.dark .avatar-edit:hover{background:#334155}:root.dark .profil-name,.dark .profil-name{color:#f1f5f9}:root.dark .profil-matricule,.dark .profil-matricule{color:#94a3b8}:root.dark .profil-tabs,.dark .profil-tabs{background:#1e293b;border-color:#334155}:root.dark .tab-btn,.dark .tab-btn{color:#94a3b8}:root.dark .tab-btn:hover,.dark .tab-btn:hover{color:#e2e8f0;background:#334155}:root.dark .tab-btn.active,.dark .tab-btn.active{color:#3b82f6}:root.dark .section-title,.dark .section-title{color:#f1f5f9;border-bottom-color:#334155}:root.dark .info-field label,.dark .info-field label{color:#94a3b8}:root.dark .info-field span,.dark .info-field span{color:#f1f5f9}:root.dark .info-field span.code,.dark .info-field span.code{background:#3b82f633;color:#60a5fa}:root.dark .info-field input,:root.dark .info-field textarea,.dark .info-field input,.dark .info-field textarea{background:#334155;border-color:#475569;color:#f1f5f9}:root.dark .document-item,.dark .document-item{background:#334155}:root.dark .document-icon,.dark .document-icon{background:#1e293b}:root.dark .document-name,.dark .document-name{color:#f1f5f9}:root.dark .security-card,.dark .security-card{background:#334155}:root.dark .security-info p,.dark .security-info p{color:#e2e8f0}:root.dark .session-item,.dark .session-item{background:#334155}:root.dark .session-item.current,.dark .session-item.current{background:#3b82f626;border-color:#3b82f64d}:root.dark .session-icon,.dark .session-icon{background:#1e293b}:root.dark .session-device,.dark .session-device{color:#f1f5f9}:root.dark .session-location,.dark .session-location{color:#94a3b8}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.close-btn{background:none;border:none;font-size:1.5rem;color:#94a3b8;cursor:pointer;padding:.25rem;line-height:1;transition:color .2s ease}.close-btn:hover{color:#475569}.modal-content form{padding:1.5rem}.modal-error{background:#fef2f2;color:#dc2626;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#475569;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;color:#1e293b;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f8fafc;cursor:not-allowed}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.btn-cancel,.btn-submit{padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel{background:#f1f5f9;border:none;color:#64748b}.btn-cancel:hover:not(:disabled){background:#e2e8f0}.btn-submit{background:#3b82f6;border:none;color:#fff}.btn-submit:hover:not(:disabled){background:#2563eb}.btn-cancel:disabled,.btn-submit:disabled{opacity:.6;cursor:not-allowed}:root.dark .modal-backdrop,.dark .modal-backdrop{background:#000000b3}:root.dark .modal-content,.dark .modal-content{background:#1e293b;box-shadow:0 20px 40px #0006}:root.dark .close-btn:hover,.dark .close-btn:hover{color:#e2e8f0}:root.dark .modal-error,.dark .modal-error{background:#dc262633}:root.dark .form-group label,.dark .form-group label{color:#e2e8f0}:root.dark .form-group input,:root.dark .form-group select,:root.dark .form-group textarea,.dark .form-group input,.dark .form-group select,.dark .form-group textarea{background:#334155;border-color:#475569;color:#f1f5f9}:root.dark .form-group input:focus,:root.dark .form-group select:focus,:root.dark .form-group textarea:focus,.dark .form-group input:focus,.dark .form-group select:focus,.dark .form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}:root.dark .form-group input:disabled,:root.dark .form-group select:disabled,:root.dark .form-group textarea:disabled,.dark .form-group input:disabled,.dark .form-group select:disabled,.dark .form-group textarea:disabled{background:#1e293b}:root.dark .modal-actions,.dark .modal-actions{border-top-color:#334155}:root.dark .btn-cancel,.dark .btn-cancel{background:#334155;color:#e2e8f0}:root.dark .btn-cancel:hover:not(:disabled),.dark .btn-cancel:hover:not(:disabled){background:#475569}.forum-page{padding:1.5rem;max-width:1000px;margin:0 auto}.forum-page .loading-state,.forum-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.forum-page .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.forum-page .error-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fef2f2;color:#dc2626;border-radius:50%;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.forum-page .error-state h3{margin:0 0 .5rem;color:#1e293b}.forum-page .error-state p{color:#64748b;margin:0 0 1.5rem}.forum-page .retry-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s ease}.forum-page .retry-btn:hover{background:#2563eb}.forum-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.new-thread-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-thread-btn:hover{background:#2563eb;transform:translateY(-1px)}.new-thread-btn.secondary{background:#f1f5f9;color:#475569}.new-thread-btn.secondary:hover{background:#e2e8f0}.forum-toolbar{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.forum-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem}.forum-tabs .tab{background:none;border:none;padding:.625rem 1rem;font-size:.9rem;color:#64748b;cursor:pointer;border-radius:8px;transition:all .2s ease;white-space:nowrap}.forum-tabs .tab:hover{background:#f1f5f9;color:#475569}.forum-tabs .tab.active{background:#3b82f6;color:#fff}.forum-filters{display:flex;gap:.75rem}.search-input{flex:1;padding:.625rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.sort-select{padding:.625rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#fff;cursor:pointer;min-width:140px}.sort-select:focus{outline:none;border-color:#3b82f6}.threads-list{display:flex;flex-direction:column;gap:1rem}.thread-card{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;text-decoration:none;color:inherit;transition:all .2s ease}.thread-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a;transform:translateY(-2px)}.thread-card-main{flex:1;min-width:0}.thread-card-badges{display:flex;gap:.5rem;margin-bottom:.5rem}.thread-badge{font-size:.875rem}.thread-card-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#1e293b;line-height:1.3}.thread-card-preview{margin:0 0 .75rem;font-size:.9rem;color:#64748b;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.thread-card-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:#94a3b8}.thread-author strong{color:#475569}.thread-card-stats{display:flex;gap:1rem;margin-left:1.5rem;flex-shrink:0}.thread-card-stats .stat{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;background:#f8fafc;border-radius:8px;min-width:60px}.thread-card-stats .stat-value{font-size:1.25rem;font-weight:700;color:#1e293b}.thread-card-stats .stat-label{font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.empty-state{text-align:center;padding:4rem 2rem;background:#f8fafc;border-radius:12px}.empty-icon{font-size:3rem;display:block;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;color:#1e293b}.empty-state p{color:#64748b;margin:0 0 1.5rem}@media(min-width:640px){.forum-toolbar{flex-direction:row;justify-content:space-between;align-items:center}.forum-filters{flex:0 0 auto}.search-input{width:200px;flex:none}}@media(max-width:640px){.forum-page{padding:1rem}.forum-header{flex-direction:column;gap:1rem}.new-thread-btn{width:100%;text-align:center}.forum-filters{flex-direction:column}.sort-select{width:100%}}:root.dark .forum-page .spinner,.dark .forum-page .spinner{border-color:#334155;border-top-color:#60a5fa}:root.dark .forum-page .error-icon,.dark .forum-page .error-icon{background:#dc262633}:root.dark .forum-page .error-state h3,.dark .forum-page .error-state h3{color:#f1f5f9}:root.dark .forum-page .error-state p,.dark .forum-page .error-state p{color:#94a3b8}:root.dark .forum-header .header-content h1,.dark .forum-header .header-content h1{color:#f1f5f9}:root.dark .forum-header .header-content p,.dark .forum-header .header-content p{color:#94a3b8}:root.dark .new-thread-btn.secondary,.dark .new-thread-btn.secondary{background:#334155;color:#e2e8f0}:root.dark .new-thread-btn.secondary:hover,.dark .new-thread-btn.secondary:hover{background:#475569}:root.dark .forum-tabs .tab,.dark .forum-tabs .tab{color:#94a3b8}:root.dark .forum-tabs .tab:hover,.dark .forum-tabs .tab:hover{background:#334155;color:#e2e8f0}:root.dark .search-input,.dark .search-input{background:#1e293b;border-color:#334155;color:#f1f5f9}:root.dark .search-input::placeholder,.dark .search-input::placeholder{color:#64748b}:root.dark .search-input:focus,.dark .search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}:root.dark .sort-select,.dark .sort-select{background:#1e293b;border-color:#334155;color:#f1f5f9}:root.dark .empty-state,.dark .empty-state{background:#1e293b}:root.dark .empty-state h3,.dark .empty-state h3{color:#f1f5f9}:root.dark .empty-state p,.dark .empty-state p{color:#94a3b8}:root.dark .thread-card,.dark .thread-card{background:#1e293b;border-color:#334155}:root.dark .thread-card:hover,.dark .thread-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633}:root.dark .thread-card-title,.dark .thread-card-title{color:#f1f5f9}:root.dark .thread-card-preview,.dark .thread-card-preview{color:#94a3b8}:root.dark .thread-author strong,.dark .thread-author strong{color:#e2e8f0}:root.dark .thread-card-stats .stat,.dark .thread-card-stats .stat{background:#334155}:root.dark .thread-card-stats .stat-value,.dark .thread-card-stats .stat-value{color:#f1f5f9}.post-card{display:flex;gap:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem}.post-votes{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:40px}.vote-btn{background:none;border:none;font-size:1rem;color:#94a3b8;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease}.vote-btn:hover:not(:disabled){background:#f1f5f9}.vote-btn.up:hover:not(:disabled),.vote-btn.up.active{color:#22c55e}.vote-btn.down:hover:not(:disabled),.vote-btn.down.active{color:#ef4444}.vote-btn:disabled{cursor:not-allowed;opacity:.5}.vote-count{font-weight:700;font-size:1rem;color:#475569}.vote-count.positive{color:#22c55e}.vote-count.negative{color:#ef4444}.post-content{flex:1;min-width:0}.post-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.post-author{font-weight:600;color:#1e293b}.post-date{font-size:.8rem;color:#94a3b8}.post-edited{font-size:.75rem;color:#94a3b8;font-style:italic}.post-body{color:#334155;line-height:1.6}.post-body p{margin:0 0 .75rem}.post-body p:last-child{margin-bottom:0}.post-actions{display:flex;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #f1f5f9}.action-btn{background:none;border:none;font-size:.85rem;color:#64748b;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.action-btn:hover{background:#f1f5f9}.action-btn.reply:hover{color:#3b82f6}.action-btn.delete:hover{color:#ef4444}@media(max-width:640px){.post-card{flex-direction:column;gap:.75rem}.post-votes{flex-direction:row;justify-content:flex-start}}:root.dark .post-card,.dark .post-card{background:#1e293b;border-color:#334155}:root.dark .vote-btn:hover:not(:disabled),.dark .vote-btn:hover:not(:disabled){background:#334155}:root.dark .vote-count,.dark .vote-count{color:#e2e8f0}:root.dark .post-author,.dark .post-author{color:#f1f5f9}:root.dark .post-body,.dark .post-body{color:#e2e8f0}:root.dark .post-actions,.dark .post-actions{border-top-color:#334155}:root.dark .action-btn,.dark .action-btn{color:#94a3b8}:root.dark .action-btn:hover,.dark .action-btn:hover{background:#334155}.reply-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem}.reply-form.locked{background:#f8fafc;text-align:center}.reply-form.locked p{color:#64748b;margin:0;font-style:italic}.reply-error{background:#fef2f2;color:#dc2626;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.reply-form textarea{width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;color:#1e293b;background:#fff;resize:vertical;min-height:100px;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.reply-form textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.reply-form textarea:disabled{background:#f8fafc;cursor:not-allowed}.reply-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.reply-form .btn-cancel,.reply-form .btn-submit{padding:.625rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.reply-form .btn-cancel{background:#f1f5f9;border:none;color:#64748b}.reply-form .btn-cancel:hover:not(:disabled){background:#e2e8f0}.reply-form .btn-submit{background:#3b82f6;border:none;color:#fff}.reply-form .btn-submit:hover:not(:disabled){background:#2563eb}.reply-form .btn-cancel:disabled,.reply-form .btn-submit:disabled{opacity:.6;cursor:not-allowed}:root.dark .reply-form,.dark .reply-form{background:#1e293b;border-color:#334155}:root.dark .reply-form.locked,.dark .reply-form.locked{background:#0f172a}:root.dark .reply-error,.dark .reply-error{background:#dc262633}:root.dark .reply-form textarea,.dark .reply-form textarea{background:#334155;border-color:#475569;color:#f1f5f9}:root.dark .reply-form textarea:focus,.dark .reply-form textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}:root.dark .reply-form textarea:disabled,.dark .reply-form textarea:disabled{background:#1e293b}:root.dark .reply-form .btn-cancel,.dark .reply-form .btn-cancel{background:#334155;color:#e2e8f0}:root.dark .reply-form .btn-cancel:hover:not(:disabled),.dark .reply-form .btn-cancel:hover:not(:disabled){background:#475569}.forum-thread-page{padding:1.5rem;max-width:900px;margin:0 auto}.forum-thread-page .loading-state,.forum-thread-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.forum-thread-page .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.forum-thread-page .error-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fef2f2;color:#dc2626;border-radius:50%;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.forum-thread-page .error-state h3{margin:0 0 .5rem;color:#1e293b}.forum-thread-page .error-state p{color:#64748b;margin:0 0 1.5rem}.forum-thread-page .back-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s ease}.forum-thread-page .back-btn:hover{background:#2563eb}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.9rem}.breadcrumb a{color:#3b82f6;text-decoration:none}.breadcrumb .separator{color:#94a3b8}.breadcrumb span:last-child{color:#64748b}.thread-main{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.thread-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #f1f5f9}.thread-badges{display:flex;gap:.5rem;margin-bottom:.75rem}.thread-badges .badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.thread-badges .badge.pinned{background:#fef3c7;color:#92400e}.thread-badges .badge.locked{background:#fee2e2;color:#991b1b}.thread-header h1{margin:0 0 .75rem;font-size:1.5rem;font-weight:700;color:#1e293b;line-height:1.3}.thread-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem;color:#64748b}.thread-meta .author strong{color:#475569}.thread-meta .edited{font-style:italic}.thread-content{color:#334155;line-height:1.7}.thread-content p{margin:0 0 1rem}.thread-content p:last-child{margin-bottom:0}.replies-section{margin-bottom:2rem}.replies-section h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#1e293b}.refresh-btn{background:none;border:none;font-size:1.1rem;color:#94a3b8;cursor:pointer;padding:.25rem;transition:all .2s ease}.refresh-btn:hover{color:#3b82f6;transform:rotate(180deg)}.replies-list{display:flex;flex-direction:column;gap:1rem}.reply-wrapper{display:flex;flex-direction:column;gap:.75rem}.nested-reply-form{margin-left:3rem}.no-replies{background:#f8fafc;border-radius:12px;padding:2rem;text-align:center}.no-replies p{margin:0;color:#64748b}.main-reply-section{margin-top:2rem}.main-reply-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}@media(max-width:640px){.forum-thread-page,.thread-main{padding:1rem}.thread-header h1{font-size:1.25rem}.thread-meta{flex-direction:column;gap:.25rem}.nested-reply-form{margin-left:0}}:root.dark .forum-thread-page .spinner,.dark .forum-thread-page .spinner{border-color:#334155;border-top-color:#60a5fa}:root.dark .forum-thread-page .error-icon,.dark .forum-thread-page .error-icon{background:#dc262633}:root.dark .forum-thread-page .error-state h3,.dark .forum-thread-page .error-state h3{color:#f1f5f9}:root.dark .forum-thread-page .error-state p,.dark .forum-thread-page .error-state p{color:#94a3b8}:root.dark .breadcrumb span:last-child,.dark .breadcrumb span:last-child{color:#94a3b8}:root.dark .thread-main,.dark .thread-main{background:#1e293b;border-color:#334155}:root.dark .thread-header,.dark .thread-header{border-bottom-color:#334155}:root.dark .thread-badges .badge.pinned,.dark .thread-badges .badge.pinned{background:#fbbf2433;color:#fbbf24}:root.dark .thread-badges .badge.locked,.dark .thread-badges .badge.locked{background:#ef444433;color:#f87171}:root.dark .thread-header h1,.dark .thread-header h1{color:#f1f5f9}:root.dark .thread-meta,.dark .thread-meta{color:#94a3b8}:root.dark .thread-meta .author strong,.dark .thread-meta .author strong{color:#e2e8f0}:root.dark .thread-content,.dark .thread-content{color:#e2e8f0}:root.dark .replies-section h2,.dark .replies-section h2{color:#f1f5f9}:root.dark .no-replies,.dark .no-replies{background:#1e293b}:root.dark .no-replies p,.dark .no-replies p{color:#94a3b8}:root.dark .main-reply-section h3,.dark .main-reply-section h3{color:#f1f5f9}.calendrier-page{padding:1.5rem;max-width:1000px;margin:0 auto}.calendrier-page .loading-state,.calendrier-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.calendrier-page .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.calendrier-page .error-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fef2f2;color:#dc2626;border-radius:50%;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.calendrier-page .retry-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer}.calendrier-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.header-content h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:700;color:#1e293b}.header-content p{margin:0;color:#64748b}.export-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s ease}.export-btn:hover{background:#2563eb}.view-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.view-tabs .tab{background:none;border:none;padding:.625rem 1rem;font-size:.9rem;color:#64748b;cursor:pointer;border-radius:8px;transition:all .2s ease}.view-tabs .tab:hover{background:#f1f5f9}.view-tabs .tab.active{background:#3b82f6;color:#fff}.calendar-view{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem}.calendar-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.nav-btn{background:#f1f5f9;border:none;width:36px;height:36px;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s ease}.current-month{font-size:1.1rem;font-weight:600;color:#1e293b;text-transform:capitalize}.today-btn{margin-left:auto;background:none;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:8px;font-size:.85rem;color:#64748b;cursor:pointer}.today-btn:hover{border-color:#3b82f6;color:#3b82f6}.calendar-grid{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.weekday-header{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid #e2e8f0}.weekday-header span{padding:.75rem;text-align:center;font-size:.8rem;font-weight:600;color:#64748b}.days-grid{display:grid;grid-template-columns:repeat(7,1fr)}.day-cell{min-height:80px;padding:.5rem;border-right:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .2s ease}.day-cell:hover{background:#f8fafc}.day-cell:nth-child(7n){border-right:none}.day-cell.other-month{background:#fafafa}.day-cell.other-month .day-number{color:#cbd5e1}.day-cell.today{background:#eff6ff}.day-cell.today .day-number{background:#3b82f6;color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.day-number{font-size:.9rem;font-weight:500;color:#475569;margin-bottom:.25rem}.day-events{display:flex;flex-wrap:wrap;gap:2px}.event-dot{width:8px;height:8px;border-radius:50%}.more-events{font-size:.7rem;color:#94a3b8}.month-events{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.month-events h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.month-events ul{list-style:none;padding:0;margin:0}.event-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.event-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.event-date{font-size:.85rem;color:#64748b;min-width:60px}.event-title{font-size:.9rem;color:#334155}.list-view{display:flex;flex-direction:column;gap:2rem}.upcoming-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#1e293b}.events-list{display:flex;flex-direction:column;gap:.75rem}.event-card{display:flex;gap:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1rem}.event-date-block{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8fafc;border-radius:8px;min-width:60px;padding:.5rem}.event-day{font-size:1.5rem;font-weight:700;color:#1e293b;line-height:1}.event-month{font-size:.75rem;color:#64748b;text-transform:uppercase}.event-details{flex:1}.event-details h4{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:#1e293b}.event-type{font-size:.8rem;font-weight:500}.no-events{text-align:center;color:#64748b;padding:2rem;background:#f8fafc;border-radius:12px}.legend-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.legend-items{display:flex;flex-wrap:wrap;gap:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#475569}.legend-color{width:16px;height:16px;border-radius:4px}.semesters-view{display:flex;flex-direction:column;gap:2rem}.semesters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.semester-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem}.semester-card.ongoing{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.semester-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#1e293b}.badge.ongoing{background:#dbeafe;color:#1d4ed8;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.semester-periods{display:flex;flex-direction:column;gap:.75rem}.period{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:8px}.period.courses{background:#3b82f61a}.period.exams{background:#ef44441a}.period.catchup{background:#f973161a}.period-label{font-weight:500;font-size:.9rem;color:#475569}.period-dates{font-size:.85rem;color:#64748b}.schedule-info{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem}.schedule-info h3{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#1e293b}.schedule-hours{font-size:1.25rem;font-weight:600;color:#3b82f6;margin:0 0 .5rem}.schedule-note,.schedule-weekend{margin:0;color:#64748b;font-size:.9rem}.schedule-weekend{margin-top:.25rem;font-style:italic}.no-semesters{text-align:center;color:#64748b;padding:2rem;background:#f8fafc;border-radius:12px}@media(max-width:768px){.calendrier-page{padding:1rem}.calendrier-header{flex-direction:column;gap:1rem}.export-btn{width:100%;text-align:center}.calendar-nav{flex-wrap:wrap}.today-btn{margin-left:0;margin-top:.5rem;width:100%;text-align:center}.day-cell{min-height:60px;padding:.25rem}.weekday-header span{padding:.5rem .25rem;font-size:.7rem}.day-number{font-size:.8rem}}:root.dark .calendrier-page .spinner,.dark .calendrier-page .spinner{border-color:#334155;border-top-color:#60a5fa}:root.dark .calendrier-page .error-icon,.dark .calendrier-page .error-icon{background:#dc262633}:root.dark .header-content h1,.dark .header-content h1{color:#f1f5f9}:root.dark .header-content p,.dark .header-content p{color:#94a3b8}:root.dark .view-tabs .tab,.dark .view-tabs .tab{color:#94a3b8}:root.dark .view-tabs .tab:hover,.dark .view-tabs .tab:hover{background:#334155}:root.dark .calendar-view,.dark .calendar-view{background:#1e293b;border-color:#334155}:root.dark .current-month,.dark .current-month{color:#f1f5f9}:root.dark .nav-btn,.dark .nav-btn{background:#334155;color:#e2e8f0}:root.dark .nav-btn:hover,.dark .nav-btn:hover{background:#475569}:root.dark .today-btn,.dark .today-btn{border-color:#475569;color:#94a3b8}:root.dark .today-btn:hover,.dark .today-btn:hover{border-color:#60a5fa;color:#60a5fa}:root.dark .calendar-grid,.dark .calendar-grid{border-color:#334155}:root.dark .weekday-header,.dark .weekday-header{background:#0f172a;border-bottom-color:#334155}:root.dark .weekday-header span,.dark .weekday-header span{color:#94a3b8}:root.dark .day-cell,.dark .day-cell{border-color:#334155}:root.dark .day-cell:hover,.dark .day-cell:hover{background:#334155}:root.dark .day-cell.other-month,.dark .day-cell.other-month{background:#0f172a}:root.dark .day-cell.other-month .day-number,.dark .day-cell.other-month .day-number{color:#475569}:root.dark .day-cell.today,.dark .day-cell.today{background:#3b82f626}:root.dark .day-number,.dark .day-number{color:#e2e8f0}:root.dark .month-events,.dark .month-events{border-top-color:#334155}:root.dark .month-events h3,.dark .month-events h3{color:#f1f5f9}:root.dark .event-title,.dark .event-title{color:#e2e8f0}:root.dark .upcoming-section h2,.dark .upcoming-section h2{color:#f1f5f9}:root.dark .event-card,.dark .event-card{background:#1e293b;border-color:#334155}:root.dark .event-date-block,.dark .event-date-block{background:#0f172a}:root.dark .event-day,.dark .event-day{color:#f1f5f9}:root.dark .event-details h4,.dark .event-details h4{color:#f1f5f9}:root.dark .no-events,.dark .no-events{background:#1e293b;color:#94a3b8}:root.dark .legend-section h3,.dark .legend-section h3{color:#f1f5f9}:root.dark .legend-item,.dark .legend-item{color:#e2e8f0}:root.dark .semester-card,.dark .semester-card{background:#1e293b;border-color:#334155}:root.dark .semester-card.ongoing,.dark .semester-card.ongoing{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}:root.dark .semester-header h3,.dark .semester-header h3{color:#f1f5f9}:root.dark .badge.ongoing,.dark .badge.ongoing{background:#3b82f633;color:#60a5fa}:root.dark .period-label,.dark .period-label{color:#e2e8f0}:root.dark .schedule-info,.dark .schedule-info{background:#1e293b;border-color:#334155}:root.dark .schedule-info h3,.dark .schedule-info h3{color:#f1f5f9}:root.dark .no-semesters,.dark .no-semesters{background:#1e293b;color:#94a3b8}.take-assessment-page{padding:0;min-height:100%}.take-assessment-page.taking{display:flex;flex-direction:column;height:100%}.assessment-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.assessment-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin 1s linear infinite}.assessment-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.assessment-error svg{color:var(--gray-300);margin-bottom:1.5rem}.assessment-error h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.assessment-error p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.back-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--gray-600);text-decoration:none;font-size:.875rem;font-weight:500;margin-bottom:1.5rem;transition:color .2s}.back-link:hover{color:var(--primary-600)}.assessment-start{max-width:720px;margin:0 auto}.start-card{background:#fff;border-radius:16px;border:1px solid var(--gray-200);overflow:hidden}.start-header{padding:2rem;background:linear-gradient(135deg,var(--primary-50) 0%,var(--primary-100) 100%);border-bottom:1px solid var(--gray-200)}.start-header .assessment-type{display:inline-flex;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;margin-bottom:.75rem}.start-header .assessment-type.type-qcm{background:#dbeafe;color:#1e40af}.start-header .assessment-type.type-devoir{background:var(--success-50);color:var(--success-700)}.start-header .assessment-type.type-examen{background:#fef3c7;color:#d97706}.start-header .assessment-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.start-header .assessment-course{font-size:.9375rem;color:var(--gray-600);margin:0}.start-description,.start-instructions{padding:1.5rem 2rem;border-bottom:1px solid var(--gray-100)}.start-description h3,.start-instructions h3{font-size:.875rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.start-description p,.start-instructions p{font-size:.9375rem;color:var(--gray-700);margin:0;line-height:1.6}.start-info{padding:1.5rem 2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;border-bottom:1px solid var(--gray-100)}.info-item{display:flex;gap:.75rem}.info-item svg{color:var(--primary-500);flex-shrink:0;margin-top:.125rem}.info-item>div{display:flex;flex-direction:column;gap:.125rem}.info-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em}.info-value{font-size:.9375rem;color:var(--gray-700)}.start-warning{padding:1.5rem 2rem;display:flex;gap:1rem;background:#fffbeb;border-bottom:1px solid var(--gray-100)}.start-warning svg{color:#d97706;flex-shrink:0;margin-top:.125rem}.start-warning strong{display:block;color:#92400e;margin-bottom:.5rem}.start-warning ul{margin:0;padding-left:1.25rem;color:#92400e;font-size:.875rem;line-height:1.6}.start-actions{padding:1.5rem 2rem;display:flex;justify-content:center}.btn-large{padding:.875rem 2rem;font-size:1rem}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.assessment-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:#fff;border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:10}.toolbar-left{flex:1}.assessment-title-small{font-size:.9375rem;font-weight:600;color:var(--gray-700)}.toolbar-center{flex:1;display:flex;justify-content:center}.timer{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--gray-100);border-radius:8px;font-size:1.25rem;font-weight:700;color:var(--gray-700);font-variant-numeric:tabular-nums}.timer svg{color:var(--gray-500)}.timer.timer-warning{background:#fef3c7;color:#d97706}.timer.timer-warning svg{color:#d97706}.timer.timer-critical{background:#fef2f2;color:#dc2626;animation:pulse 1s infinite}.timer.timer-critical svg{color:#dc2626}.toolbar-right{flex:1;display:flex;justify-content:flex-end}.progress-text{font-size:.875rem;color:var(--gray-500)}.assessment-content{display:flex;flex:1;gap:1.5rem;padding:1.5rem;overflow:hidden}.question-nav{width:200px;flex-shrink:0;background:#fff;border-radius:12px;padding:1rem;border:1px solid var(--gray-200);height:fit-content}.nav-title{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.375rem}.nav-item{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gray-200);border-radius:6px;background:#fff;color:var(--gray-600);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.nav-item:hover{border-color:var(--primary-300);color:var(--primary-600)}.nav-item.current{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.nav-item.answered{background:var(--success-50);border-color:var(--success-200);color:var(--success-700)}.nav-item.answered.current{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.question-main{flex:1;background:#fff;border-radius:12px;padding:1.5rem;border:1px solid var(--gray-200);overflow-y:auto}.question-container{max-width:720px}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.question-number{font-size:.875rem;font-weight:600;color:var(--primary-600)}.question-points{font-size:.8125rem;color:var(--gray-500);background:var(--gray-100);padding:.25rem .75rem;border-radius:20px}.question-text{margin-bottom:1.5rem}.question-text p{font-size:1.125rem;color:var(--gray-900);line-height:1.6;margin:0}.question-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.option-label{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--gray-50);border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all .2s}.option-label:hover{background:var(--primary-50);border-color:var(--primary-200)}.option-label.selected{background:var(--primary-50);border-color:var(--primary-500)}.option-input{position:absolute;opacity:0;width:0;height:0}.option-indicator{width:22px;height:22px;border:2px solid var(--gray-300);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.option-label input[type=checkbox]+.option-indicator{border-radius:4px}.option-label.selected .option-indicator{border-color:var(--primary-600);background:var(--primary-600);color:#fff}.radio-dot{width:10px;height:10px;background:transparent;border-radius:50%;transition:background .2s}.option-label.selected .radio-dot{background:#fff}.option-text{font-size:.9375rem;color:var(--gray-700);line-height:1.5;padding-top:.125rem}.question-text-answer{margin-bottom:2rem}.text-answer-input{width:100%;padding:1rem;border:1px solid var(--gray-300);border-radius:10px;font-size:.9375rem;line-height:1.6;resize:vertical;transition:border-color .2s,box-shadow .2s}.text-answer-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #1a56db1a}.question-navigation{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;border-top:1px solid var(--gray-100)}.btn-nav{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;color:var(--gray-700);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-nav:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-nav:disabled{opacity:.5;cursor:not-allowed}.btn-nav-next{background:var(--primary-50);border-color:var(--primary-200);color:var(--primary-700)}.btn-nav-next:hover{background:var(--primary-100);border-color:var(--primary-300)}.devoir-form{max-width:100%}.devoir-instructions{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.devoir-instructions h2{font-size:1rem;font-weight:600;color:var(--gray-700);margin:0 0 .75rem}.devoir-instructions p{font-size:.9375rem;color:var(--gray-600);line-height:1.6;margin:0}.devoir-answer{margin-bottom:2rem}.devoir-answer h3{font-size:.9375rem;font-weight:600;color:var(--gray-700);margin:0 0 .75rem}.answer-textarea{width:100%;padding:1rem;border:1px solid var(--gray-300);border-radius:10px;font-size:.9375rem;line-height:1.6;resize:vertical;min-height:200px;transition:border-color .2s,box-shadow .2s}.answer-textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #1a56db1a}.devoir-files{margin-bottom:2rem}.devoir-files h3{font-size:.9375rem;font-weight:600;color:var(--gray-700);margin:0 0 .75rem}.file-upload-zone{position:relative}.file-input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;border:2px dashed var(--gray-300);border-radius:12px;background:var(--gray-50);cursor:pointer;transition:all .2s}.file-upload-label:hover{border-color:var(--primary-400);background:var(--primary-50)}.file-upload-label svg{color:var(--gray-400);margin-bottom:.75rem}.file-upload-label span{font-size:.9375rem;color:var(--gray-600);text-align:center}.file-hint{font-size:.8125rem!important;color:var(--gray-400)!important;margin-top:.25rem}.uploaded-files{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.5rem}.uploaded-file{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:8px}.uploaded-file svg{color:var(--gray-400)}.file-name{flex:1;font-size:.875rem;color:var(--gray-700)}.file-size{font-size:.75rem;color:var(--gray-400)}.file-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--gray-400);border-radius:6px;cursor:pointer;transition:all .2s}.file-remove:hover{background:#fef2f2;color:#dc2626}.devoir-submit{display:flex;justify-content:center;padding-top:1.5rem;border-top:1px solid var(--gray-100)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-content{background:#fff;border-radius:16px;padding:2rem;max-width:480px;width:100%}.modal-content h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.modal-stats{font-size:.9375rem;color:var(--primary-600);font-weight:500;margin:0 0 .5rem}.modal-content p{font-size:.9375rem;color:var(--gray-600);margin:0 0 1.5rem;line-height:1.6}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.assessment-submitted{max-width:560px;margin:0 auto}.submitted-card{background:#fff;border-radius:16px;border:1px solid var(--gray-200);padding:3rem 2rem;text-align:center}.submitted-icon{margin-bottom:1.5rem}.submitted-icon svg{color:var(--success-500)}.submitted-card h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.submitted-title{font-size:1.125rem;color:var(--gray-700);margin:0 0 .25rem}.submitted-course{font-size:.9375rem;color:var(--gray-500);margin:0 0 2rem}.submitted-info{background:var(--gray-50);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.info-row:not(:last-child){border-bottom:1px solid var(--gray-200)}.info-row .info-label{font-size:.875rem;color:var(--gray-500)}.info-row .info-value{font-size:.875rem;color:var(--gray-700);font-weight:500}.score-row .score-value{font-size:1.25rem;font-weight:700;color:var(--success-600)}.submitted-pending{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:#fffbeb;border-radius:8px;margin-bottom:1.5rem;font-size:.875rem;color:#92400e}.submitted-feedback{background:var(--primary-50);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;text-align:left}.submitted-feedback h3{font-size:.875rem;font-weight:600;color:var(--primary-700);margin:0 0 .5rem}.submitted-feedback p{font-size:.9375rem;color:var(--primary-800);margin:0;line-height:1.6}.submitted-actions{display:flex;justify-content:center;gap:.75rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--primary-600);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s}.btn-primary:hover{background:var(--primary-700)}.btn-primary:focus{outline:none;box-shadow:0 0 0 3px #1a56db4d}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--gray-100);color:var(--gray-700);border:none;border-radius:8px;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:var(--gray-200)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:1024px){.start-info{grid-template-columns:1fr}.question-nav{display:none}.assessment-content{padding:1rem}}@media(max-width:640px){.assessment-toolbar{padding:.625rem 1rem}.assessment-title-small{font-size:.8125rem}.timer{font-size:1rem;padding:.375rem .75rem}.start-header{padding:1.5rem}.start-header .assessment-title{font-size:1.25rem}.start-description,.start-instructions,.start-info,.start-warning,.start-actions{padding:1.25rem 1.5rem}.question-main{padding:1rem}.question-text p{font-size:1rem}.option-label{padding:.875rem}.question-navigation{flex-direction:column;gap:.75rem}.question-navigation .btn-nav,.question-navigation .btn-primary{width:100%;justify-content:center}.modal-content{padding:1.5rem}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.submitted-card{padding:2rem 1.5rem}}.certificats-page{padding:0}.header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.request-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--primary-600);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.request-btn:hover{background:var(--primary-700)}.alert{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1rem}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.alert-success{background:var(--success-50);color:var(--success-700);border:1px solid var(--success-200)}.alert-close{margin-left:auto;padding:.25rem;background:transparent;border:none;cursor:pointer;opacity:.6;transition:opacity .2s}.alert-close:hover{opacity:1}.verification-info{display:flex;gap:1rem;padding:1.25rem;background:var(--primary-50);border-radius:12px;border:1px solid var(--primary-200);margin-bottom:1.5rem}.verification-info .info-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;color:var(--primary-600);flex-shrink:0}.verification-info .info-content h3{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 .375rem}.verification-info .info-content p{font-size:.9375rem;color:var(--gray-700);margin:0;line-height:1.5}.verification-info .info-content a{color:var(--primary-600);font-weight:500;text-decoration:none}.verification-info .info-content a:hover{text-decoration:underline}.filter-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-200);overflow-x:auto}.filter-tabs .tab-btn{padding:.75rem 1rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--gray-500);font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.filter-tabs .tab-btn:hover{color:var(--gray-700)}.filter-tabs .tab-btn.active{color:var(--primary-600);border-bottom-color:var(--primary-600)}.certificates-section{margin-bottom:2rem}.certificates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.certificate-card{background:#fff;border-radius:16px;border:1px solid var(--gray-200);overflow:hidden;transition:box-shadow .2s,transform .2s}.certificate-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.certificate-card.status-issued{border-color:var(--success-200)}.certificate-card.status-pending{border-color:#fcd34d}.certificate-card.status-rejected{border-color:#fca5a5}.certificate-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.25rem 0}.certificate-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#fff}.certificate-icon.type-completion{background:linear-gradient(135deg,#f59e0b,#d97706)}.certificate-icon.type-attendance{background:linear-gradient(135deg,var(--primary-500),var(--primary-700))}.certificate-icon.type-transcript{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.certificate-icon.type-enrollment{background:linear-gradient(135deg,var(--success-500),var(--success-700))}.status-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.status-badge.status-issued{background:var(--success-50);color:var(--success-700)}.status-badge.status-pending{background:#fef3c7;color:#d97706}.status-badge.status-rejected{background:#fef2f2;color:#dc2626}.status-badge.status-expired{background:var(--gray-100);color:var(--gray-600)}.certificate-body{padding:1rem 1.25rem}.certificate-type{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem}.certificate-course,.certificate-program{font-size:.9375rem;color:var(--gray-600);margin:0 0 .75rem}.certificate-details{display:flex;flex-direction:column;gap:.5rem}.certificate-details .detail-item{display:flex;justify-content:space-between;align-items:center}.certificate-details .detail-label{font-size:.8125rem;color:var(--gray-500)}.certificate-details .detail-value{font-size:.875rem;color:var(--gray-900);font-weight:500}.certificate-details .detail-value.code{font-family:SF Mono,Monaco,Consolas,monospace;background:var(--gray-100);padding:.25rem .5rem;border-radius:6px;font-size:.8125rem;letter-spacing:.05em}.verification-code{margin-top:.5rem;padding-top:.75rem;border-top:1px dashed var(--gray-200)}.certificate-actions{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--gray-100)}.download-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--primary-600);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s}.download-btn:hover:not(:disabled){background:var(--primary-700)}.download-btn:disabled{opacity:.7;cursor:not-allowed}.download-btn .btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.pending-info{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:#fef3c7;color:#92400e;border-radius:10px;font-size:.875rem;font-weight:500}.rejection-info{display:block;padding:.75rem;background:#fef2f2;color:#dc2626;border-radius:10px;font-size:.875rem;text-align:center}.request-section{background:#fff;border-radius:16px;border:1px solid var(--gray-200);padding:1.5rem;position:relative}.request-section h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.request-description{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.request-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.request-option{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:var(--gray-50);border:2px solid transparent;border-radius:12px;text-align:left;cursor:pointer;transition:all .2s}.request-option:hover:not(:disabled){background:#fff;border-color:var(--primary-500);box-shadow:0 4px 12px #00000014}.request-option:disabled{opacity:.6;cursor:not-allowed}.request-option .option-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;color:var(--primary-600);flex-shrink:0;border:1px solid var(--gray-200)}.request-option:hover:not(:disabled) .option-icon{background:var(--primary-50);border-color:var(--primary-200)}.request-option .option-content h4{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 .375rem}.request-option .option-content p{font-size:.875rem;color:var(--gray-500);margin:0;line-height:1.4}.requesting-overlay{position:absolute;inset:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-radius:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;background:#fff;border-radius:16px;border:1px solid var(--gray-200)}.empty-state svg{color:var(--gray-300);margin-bottom:1rem}.empty-state h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.empty-state p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:320px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--gray-500)}.spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@media(max-width:768px){.header-content{flex-direction:column;align-items:stretch}.request-btn{justify-content:center}.verification-info{flex-direction:column}.certificates-grid{grid-template-columns:1fr}.filter-tabs .tab-btn{padding:.625rem .75rem;font-size:.8125rem}.request-options{grid-template-columns:1fr}.request-option{flex-direction:column;align-items:center;text-align:center}}.cand-status-banner{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;background:var(--gray-50);border-radius:var(--radius-md);border-left:4px solid;margin-bottom:1.5rem;flex-wrap:wrap;gap:.5rem}.cand-status-info{display:flex;align-items:center;gap:.75rem}.cand-status-badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.3px}.cand-ref{font-family:monospace;font-weight:700;color:var(--gpe-blue);letter-spacing:.5px;font-size:.875rem}.cand-name{color:var(--gray-600);font-size:.875rem;font-weight:500}.cand-stepper{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;position:relative;padding:0 .5rem}.cand-step{display:flex;flex-direction:column;align-items:center;position:relative;flex:0 0 auto;z-index:1}.cand-step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;background:var(--gray-100);color:var(--gray-400);border:2px solid var(--gray-200);transition:all .3s}.cand-step.active .cand-step-circle{background:var(--gpe-blue);color:#fff;border-color:var(--gpe-blue);box-shadow:0 0 0 4px #1a56db26}.cand-step.completed .cand-step-circle{background:#16a34a;color:#fff;border-color:#16a34a}.cand-step-label{margin-top:.375rem;font-size:.6875rem;color:var(--gray-400);text-align:center;max-width:80px;line-height:1.3}.cand-step.active .cand-step-label{color:var(--gpe-blue);font-weight:600}.cand-step.completed .cand-step-label{color:#16a34a}.cand-step-line{position:absolute;top:18px;left:calc(50% + 20px);width:calc(100% - 10px);height:2px;background:var(--gray-200)}.cand-step-line.completed{background:#16a34a}@media(max-width:480px){.cand-stepper{overflow-x:auto;padding-bottom:.5rem}.cand-step{min-width:64px}}.cand-section{margin-bottom:2rem}.cand-section-title{display:flex;align-items:center;gap:.5rem;font-size:1.0625rem;font-weight:700;margin:0 0 .375rem;color:var(--gray-800)}.cand-section-desc{color:var(--gray-500);font-size:.875rem;margin:0 0 1rem}.cand-alert{display:flex;gap:.75rem;padding:1rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1.25rem;line-height:1.5}.cand-alert p{margin:.25rem 0 0}.cand-alert-warning{background:#fffbeb;border-left:4px solid #d97706;color:#92400e}.cand-alert-error{background:#fef2f2;border-left:4px solid #dc2626;color:#991b1b}.cand-alert-info{background:#eff6ff;border-left:4px solid #2563eb;color:#1e40af}.doc-upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.doc-upload-card{border:2px dashed var(--gray-200);border-radius:var(--radius-md);padding:1rem;transition:all .2s}.doc-upload-card.doc-uploaded{border-style:solid;border-color:#16a34a;background:#f0fdf4}.doc-upload-card.doc-drag-over{border-color:var(--gpe-blue);background:var(--gpe-blue-50, #eff6ff)}.doc-upload-card.doc-disabled{opacity:.6;pointer-events:none}.doc-upload-header{display:flex;align-items:center;gap:.625rem;margin-bottom:.75rem}.doc-upload-icon{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.doc-uploaded .doc-upload-icon{background:#dcfce7;color:#16a34a}.doc-upload-card:not(.doc-uploaded) .doc-upload-icon{background:var(--gray-100);color:var(--gray-400)}.doc-upload-label{font-size:.8125rem;font-weight:600;color:var(--gray-700)}.doc-upload-required{color:#dc2626;margin-left:2px}.doc-upload-zone{text-align:center;padding:.5rem 0}.doc-upload-text{margin:0 0 .5rem;font-size:.8125rem;color:var(--gray-400)}.doc-upload-btn{display:inline-flex;padding:.375rem .875rem;border:1px solid var(--gpe-blue);border-radius:var(--radius-sm, 6px);background:transparent;color:var(--gpe-blue);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.doc-upload-btn:hover{background:var(--gpe-blue);color:#fff}.doc-upload-hint{margin:.375rem 0 0;font-size:.6875rem;color:var(--gray-300)}.doc-upload-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem 0;color:var(--gray-400);font-size:.8125rem}.doc-upload-file{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.doc-file-details{display:flex;flex-direction:column;gap:.125rem;min-width:0}.doc-file-name{font-size:.8125rem;font-weight:500;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-file-size{font-size:.6875rem;color:var(--gray-400)}.doc-file-actions{display:flex;gap:.375rem;flex-shrink:0}.doc-file-btn{width:28px;height:28px;border-radius:6px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.doc-file-view{background:var(--gpe-blue-50, #eff6ff);color:var(--gpe-blue)}.doc-file-view:hover{background:var(--gpe-blue);color:#fff}.doc-file-delete{background:#fef2f2;color:#dc2626}.doc-file-delete:hover{background:#dc2626;color:#fff}.doc-upload-error{margin:.5rem 0 0;font-size:.75rem;color:#dc2626}.cand-payment-status{background:var(--gray-50);border-radius:var(--radius-md);padding:1rem}.cand-payment-badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;margin-bottom:.5rem}.cand-payment-badge.completed{background:#dcfce7;color:#16a34a}.cand-payment-badge.pending{background:#fef3c7;color:#d97706}.cand-payment-badge.rejected,.cand-payment-badge.failed{background:#fef2f2;color:#dc2626}.cand-payment-details{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--gray-600)}.cand-payment-form{border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.cand-payment-methods{display:flex;border-bottom:1px solid var(--gray-200)}.cand-payment-method{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem;cursor:pointer;border:none;background:var(--gray-50);color:var(--gray-500);font-size:.8125rem;transition:all .2s;position:relative}.cand-payment-method.selected{background:#fff;color:var(--gpe-blue);font-weight:600;box-shadow:inset 0 -2px 0 var(--gpe-blue)}.cand-payment-method input{position:absolute;opacity:0}.cand-coming-soon{display:inline-flex;padding:.125rem .375rem;background:var(--gray-200);border-radius:4px;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500)}.cand-bank-transfer{padding:1.25rem}.cand-bank-info{background:#eff6ff;border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}.cand-bank-info h4{margin:0 0 .375rem;font-size:.875rem;color:var(--gpe-blue)}.cand-bank-info p{margin:0 0 .75rem;font-size:.8125rem;color:var(--gray-600);line-height:1.5}.cand-bank-details{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem}.cand-bank-details strong{color:var(--gray-700)}.cand-online-stub{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;text-align:center;color:var(--gray-400);font-size:.875rem}.space-selector{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#eef2ff,#f0fdf4);padding:2rem}.space-selector__container{max-width:720px;width:100%;text-align:center}.space-selector__logo{width:56px;height:56px;margin-bottom:1rem}.space-selector__header{margin-bottom:2.5rem}.space-selector__title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.space-selector__subtitle{font-size:.95rem;color:#64748b;max-width:480px;margin:0 auto;line-height:1.5}.space-selector__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:2rem}.space-selector__card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem 1.5rem;background:#fff;border:2px solid #e2e8f0;border-radius:16px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);text-align:center;box-shadow:0 1px 3px #0000000a}.space-selector__card:hover{border-color:var(--space-color, #4f46e5);box-shadow:0 8px 30px #00000014,0 0 0 1px var(--space-color, #4f46e5);transform:translateY(-4px)}.space-selector__card-icon{font-size:2.5rem;margin-bottom:.25rem}.space-selector__card-title{font-size:1.05rem;font-weight:700;color:#1a1a2e;margin:0}.space-selector__card:hover .space-selector__card-title{color:var(--space-color, #4f46e5)}.space-selector__card-desc{font-size:.82rem;color:#64748b;margin:0;line-height:1.5}.space-selector__card-arrow{position:absolute;top:1rem;right:1rem;color:#cbd5e1;transition:all .2s}.space-selector__card:hover .space-selector__card-arrow{color:var(--space-color, #4f46e5);transform:translate(3px)}.space-selector__hint{font-size:.8rem;color:#94a3b8;margin:0}@media(prefers-color-scheme:dark){.space-selector{background:linear-gradient(135deg,#0a0a14,#1a1a2e)}.space-selector__title{color:#f1f5f9}.space-selector__card{background:#1a1a2e;border-color:#2d2d44}.space-selector__card:hover{background:#2d2d44}.space-selector__card-title{color:#f1f5f9}}@media(max-width:640px){.space-selector__grid{grid-template-columns:1fr}.space-selector__card{padding:1.5rem 1rem}}.role-switcher{padding:.35rem .5rem}.role-switcher__select{width:100%;padding:.6rem 2rem .6rem .75rem;font-size:.85rem;font-weight:600;font-family:inherit;color:inherit;background-color:transparent;border:1px solid var(--border-color, rgba(0, 0, 0, .08));border-radius:8px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.25em 1.25em;transition:border-color .15s,background-color .15s}.role-switcher__select:hover{border-color:var(--border-color, rgba(0, 0, 0, .15));background-color:#00000008}.role-switcher__select:focus{outline:none;border-color:var(--gpe-blue, #4f46e5);box-shadow:0 0 0 2px #4f46e526}:root.dark .role-switcher__select,.dark .role-switcher__select{color:#e2e8f0;border-color:#ffffff1a;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}:root.dark .role-switcher__select:hover,.dark .role-switcher__select:hover{border-color:#fff3;background-color:#ffffff0d}:root.dark .role-switcher__select option,.dark .role-switcher__select option{background:#1a1a2e;color:#e2e8f0}.admin-nav{display:flex;flex-direction:column;height:100%;position:relative}.admin-sidebar-toggle{position:absolute;top:1rem;right:-12px;width:24px;height:24px;background:var(--white);border:1px solid var(--gray-200);border-radius:50%;color:var(--gray-500);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all var(--transition)}.admin-sidebar-toggle:hover{background:var(--gray-100);color:var(--gray-700)}.admin-nav-content{flex:1;padding:1rem .75rem;overflow-y:auto}.admin-nav-section{margin-bottom:1.5rem}.admin-nav-section-title{font-size:.6875rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;padding:0 .75rem;margin-bottom:.5rem}.admin-nav-list{list-style:none;padding:0;margin:0}.admin-nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;color:var(--gray-600);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition);font-size:.875rem}.admin-nav-link:hover{background:var(--gray-100);color:var(--gray-900)}.admin-nav-link.active{background:var(--gpe-blue-50);color:var(--gpe-blue)}.admin-nav-link.active .admin-nav-icon{color:var(--gpe-blue)}.admin-nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--gray-500);flex-shrink:0}.admin-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-nav-footer{padding:.75rem;border-top:1px solid var(--gray-100)}.admin-nav-back{color:var(--gray-500)}.admin-nav-back:hover{background:var(--gray-100);color:var(--gray-700)}.admin-sidebar.collapsed .admin-sidebar-toggle{right:-12px}.admin-sidebar.collapsed .admin-nav-content{padding:1rem .5rem}.admin-sidebar.collapsed .admin-nav-section-title{display:none}.admin-sidebar.collapsed .admin-nav-link{justify-content:center;padding:.75rem}.admin-sidebar.collapsed .admin-nav-footer{padding:.5rem}@media(max-width:1024px){.admin-sidebar-toggle{display:none}}:root.dark .admin-sidebar-toggle,.dark .admin-sidebar-toggle{background:#1e293b;border-color:#334155}:root.dark .admin-sidebar-toggle:hover,.dark .admin-sidebar-toggle:hover{background:#334155}:root.dark .admin-nav-link:hover,.dark .admin-nav-link:hover{background:#334155}:root.dark .admin-nav-link.active,.dark .admin-nav-link.active{background:#1a56db33}:root.dark .admin-nav-footer,.dark .admin-nav-footer{border-top-color:#334155}:root.dark .admin-nav-back:hover,.dark .admin-nav-back:hover{background:#334155}.admin-layout{min-height:100vh;background:var(--gray-50)}.admin-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 1.5rem;background:var(--white);border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow-sm)}.admin-header-left{display:flex;align-items:center;gap:1rem}.admin-menu-toggle{display:none;padding:.5rem;background:none;border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.admin-menu-toggle:hover{background:var(--gray-100);color:var(--gray-900)}.admin-logo{display:flex;align-items:center;gap:.75rem}.admin-logo-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gradient-blue);color:var(--white);border-radius:var(--radius-md)}.admin-logo-text{font-size:1.125rem;color:var(--gray-700)}.admin-logo-text strong{color:var(--gpe-blue)}.admin-header-right{display:flex;align-items:center;gap:1rem}.admin-user-menu{display:flex;align-items:center;gap:.75rem}.admin-user-info{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.admin-user-name{font-size:.875rem;font-weight:600;color:var(--gray-900)}.admin-user-role{font-size:.75rem;color:var(--gray-500)}.admin-user-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gradient-mixed);color:var(--white);font-size:.875rem;font-weight:600;border-radius:50%}.admin-logout-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.admin-logout-btn:hover{background:var(--gpe-rose-50);color:var(--gpe-rose)}.admin-theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-100);border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.admin-theme-toggle:hover{background:var(--gpe-blue-50);color:var(--gpe-blue)}.admin-container{display:flex;min-height:calc(100vh - 64px)}.admin-sidebar{width:260px;background:var(--white);border-right:1px solid var(--gray-200);transition:width .3s ease;flex-shrink:0}.admin-sidebar.collapsed{width:72px}.admin-main{flex:1;padding:1.5rem;overflow-x:hidden}.admin-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:90}@media(max-width:1024px){.admin-sidebar{position:fixed;top:64px;left:0;bottom:0;z-index:95;transform:translate(-100%);box-shadow:var(--shadow-xl)}.admin-sidebar.mobile-open{transform:translate(0)}.admin-sidebar.collapsed{width:260px}.admin-menu-toggle{display:flex}.admin-overlay{display:block}.admin-user-info{display:none}}@media(max-width:640px){.admin-header{padding:0 1rem}.admin-logo-text{display:none}.admin-main{padding:1rem}}.admin-page{max-width:1400px;margin:0 auto}.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.admin-page-title{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.admin-page-subtitle{font-size:.9375rem;color:var(--gray-500);margin-top:.25rem}.admin-page-actions{display:flex;align-items:center;gap:.75rem}.admin-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden}.admin-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-100)}.admin-card-title{font-size:1rem;font-weight:600;color:var(--gray-900)}.admin-card-body{padding:1.5rem}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--gray-100)}.admin-table th{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.admin-table td{font-size:.875rem;color:var(--gray-700)}.admin-table tbody tr:hover{background:var(--gray-50)}.admin-table-actions{display:flex;align-items:center;gap:.5rem}.admin-table-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.admin-table-btn:hover{background:var(--gray-100);color:var(--gray-700)}.admin-table-btn.edit:hover{background:var(--gpe-blue-50);color:var(--gpe-blue)}.admin-table-btn.delete:hover{background:var(--gpe-rose-50);color:var(--gpe-rose)}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.status-badge.pending{background:var(--gpe-orange-50);color:var(--gpe-orange)}.admin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.admin-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--gray-100);color:var(--gray-400);border-radius:50%;margin-bottom:1rem}.admin-empty-title{font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.admin-empty-text{font-size:.875rem;color:var(--gray-500);margin-bottom:1.5rem}.admin-loading{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--gray-500)}.admin-loading-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin .8s linear infinite}.admin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.admin-modal{width:100%;max-width:560px;max-height:90vh;background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;display:flex;flex-direction:column;animation:slide-up .3s ease}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.admin-modal-title{font-size:1.125rem;font-weight:600;color:var(--gray-900)}.admin-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.admin-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.admin-modal-body{padding:1.5rem;overflow-y:auto}.admin-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.admin-form-group{margin-bottom:1.25rem}.admin-form-label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.admin-form-label.required:after{content:" *";color:var(--gpe-rose)}.admin-form-input,.admin-form-select,.admin-form-textarea{width:100%;padding:.75rem 1rem;font-size:.9375rem;color:var(--gray-900);background:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-md);transition:all var(--transition);font-family:inherit}.admin-form-input:focus,.admin-form-select:focus,.admin-form-textarea:focus{outline:none;background:var(--white);border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.admin-form-input.error,.admin-form-select.error,.admin-form-textarea.error{border-color:var(--gpe-rose)}.admin-form-error{font-size:.8125rem;color:var(--gpe-rose);margin-top:.375rem}.admin-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:640px){.admin-form-row{grid-template-columns:1fr}}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.admin-stat-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:1.25rem}.admin-stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);margin-bottom:1rem}.admin-stat-icon.blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.admin-stat-icon.green{background:var(--gpe-green-50);color:var(--gpe-green)}.admin-stat-icon.purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.admin-stat-icon.orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.admin-stat-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.admin-stat-label{font-size:.875rem;color:var(--gray-500);margin-top:.25rem}:root.dark .admin-layout,.dark .admin-layout{background:linear-gradient(180deg,#0f172a,#1e293b)}:root.dark .admin-header,.dark .admin-header{background:#1e293b;border-bottom-color:#334155}:root.dark .admin-menu-toggle:hover,.dark .admin-menu-toggle:hover{background:#334155}:root.dark .admin-sidebar,.dark .admin-sidebar{background:#1e293b;border-right-color:#334155}:root.dark .admin-overlay,.dark .admin-overlay{background:#000000b3}:root.dark .admin-card,.dark .admin-card{background:#1e293b;border-color:#334155}:root.dark .admin-card-header,.dark .admin-card-header{border-bottom-color:#334155}:root.dark .admin-table th,.dark .admin-table th{background:#0f172a;color:var(--gray-400)}:root.dark .admin-table td,.dark .admin-table td{border-bottom-color:#334155}:root.dark .admin-table tbody tr:hover,.dark .admin-table tbody tr:hover{background:#334155}:root.dark .admin-table-btn:hover,.dark .admin-table-btn:hover{background:#334155}:root.dark .admin-empty-icon,.dark .admin-empty-icon{background:#334155}:root.dark .admin-modal-overlay,.dark .admin-modal-overlay{background:#000000b3}:root.dark .admin-modal,.dark .admin-modal{background:#1e293b}:root.dark .admin-modal-header,.dark .admin-modal-header{border-bottom-color:#334155}:root.dark .admin-modal-footer,.dark .admin-modal-footer{background:#0f172a;border-top-color:#334155}:root.dark .admin-form-input,:root.dark .admin-form-select,:root.dark .admin-form-textarea,.dark .admin-form-input,.dark .admin-form-select,.dark .admin-form-textarea{background:#334155;color:var(--gray-100)}:root.dark .admin-form-input:focus,:root.dark .admin-form-select:focus,:root.dark .admin-form-textarea:focus,.dark .admin-form-input:focus,.dark .admin-form-select:focus,.dark .admin-form-textarea:focus{background:#1e293b}:root.dark .admin-stat-card,.dark .admin-stat-card{background:#1e293b;border-color:#334155}:root.dark .admin-theme-toggle,.dark .admin-theme-toggle{background:#334155;color:var(--gray-400)}:root.dark .admin-theme-toggle:hover,.dark .admin-theme-toggle:hover{background:#3b82f633;color:#60a5fa}.curriculum-import-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .2s ease-out}.curriculum-import-modal{background:#fff;border-radius:16px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s ease-out}.curriculum-import-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;cursor:pointer;color:#64748b;transition:all .2s;z-index:10}.curriculum-import-close:hover{background:#f1f5f9;color:#1e293b}.curriculum-import-header{padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0;position:relative}.curriculum-import-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.curriculum-import-context{margin:.5rem 0 0;font-size:.9375rem;color:#64748b}.curriculum-import-content{padding:1.5rem 2rem 2rem;overflow-y:auto;flex:1}.step-icon{display:flex;justify-content:center;margin-bottom:1.5rem;color:#3b82f6}.step-template h3,.step-upload h3,.step-preview h3,.step-report h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .75rem;text-align:center}.step-template p,.step-upload p{text-align:center;color:#64748b;margin:0 0 1.5rem}.template-columns{margin:1.5rem 0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.template-columns table{width:100%;border-collapse:collapse;font-size:.875rem}.template-columns th{background:#f8fafc;padding:.75rem 1rem;text-align:left;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.template-columns td{padding:.625rem 1rem;border-bottom:1px solid #f1f5f9;color:#334155}.template-columns tr:last-child td{border-bottom:none}.template-columns code{background:#f1f5f9;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Monaco,monospace;font-size:.8125rem;color:#0f172a}.template-actions{display:flex;justify-content:center;margin:1.5rem 0}.btn-download-template{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:#eff6ff;border:2px solid #3b82f6;border-radius:8px;font-size:.9375rem;font-weight:600;color:#2563eb;cursor:pointer;transition:all .2s}.btn-download-template:hover{background:#3b82f6;color:#fff}.step-upload{min-height:300px;display:flex;flex-direction:column;justify-content:center}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;cursor:pointer;transition:all .2s ease}.dropzone:hover{border-color:#3b82f6;background:#eff6ff}.dropzone.dragging{border-color:#3b82f6;background:#dbeafe;border-style:solid}.dropzone-icon{color:#94a3b8;margin-bottom:1rem;transition:color .2s}.dropzone:hover .dropzone-icon,.dropzone.dragging .dropzone-icon{color:#3b82f6}.dropzone h3{margin:0 0 .5rem}.dropzone p{margin:0}.step-preview{display:flex;flex-direction:column;gap:1rem}.preview-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:.75rem 1rem;background:#f8fafc;border-radius:8px}.preview-file-info{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:#475569}.preview-stats{display:flex;gap:.75rem;flex-wrap:wrap}.stat-item{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:600}.stat-module{background:#dbeafe;color:#1d4ed8}.stat-ue{background:#dcfce7;color:#15803d}.stat-ecue{background:#f3e8ff;color:#7c3aed}.stat-error{background:#fee2e2;color:#dc2626}.preview-table-wrapper{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;max-height:400px;overflow-y:auto}.preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-table th{position:sticky;top:0;background:#f8fafc;padding:.625rem .5rem;text-align:left;font-weight:600;color:#64748b;border-bottom:2px solid #e2e8f0;white-space:nowrap;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.preview-table td{padding:.5rem;border-bottom:1px solid #f1f5f9;color:#334155;white-space:nowrap}.preview-table .cell-title{max-width:200px;overflow:hidden;text-overflow:ellipsis}.preview-table tr.row-error{background:#fef2f2}.preview-table tr.row-error:hover{background:#fee2e2}.preview-table .badge{padding:.25rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase}.preview-table .badge-module{background:#2563eb;color:#fff}.preview-table .badge-ue{background:#16a34a;color:#fff}.preview-table .badge-ecue{background:#9333ea;color:#fff}.status-valid{color:#16a34a}.status-error{color:#dc2626;cursor:help}.preview-more{padding:.75rem;text-align:center;font-size:.875rem;color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0}.error-summary{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-summary h4{margin:0 0 .75rem;font-size:.9375rem;color:#991b1b}.error-summary ul{margin:0;padding:0 0 0 1.25rem;font-size:.875rem;color:#b91c1c}.error-summary li{margin-bottom:.375rem}.error-summary .more-errors{color:#dc2626;font-style:italic}.step-report{text-align:center;padding:1rem 0}.report-icon{margin-bottom:1.5rem}.report-icon.success{color:#16a34a}.report-icon.partial{color:#f59e0b}.report-stats{display:flex;flex-direction:column;gap:1.5rem;margin:2rem 0;text-align:left}.report-stat-group{padding:1rem 1.25rem;background:#f8fafc;border-radius:10px}.report-stat-group h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.report-stat-items{display:flex;gap:1rem;flex-wrap:wrap}.report-stat-items span{padding:.5rem 1rem;border-radius:6px;font-size:.9375rem;font-weight:600}.report-errors{background:#fef2f2}.report-errors h4{color:#991b1b}.report-errors ul{margin:0;padding:0 0 0 1.25rem;font-size:.875rem;color:#b91c1c}.report-errors li{margin-bottom:.375rem}.import-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.9375rem;margin-top:1rem}.step-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1.5rem;border-top:1px solid #e2e8f0;margin-top:1.5rem}.step-actions .btn-secondary,.step-actions .btn-primary{padding:.75rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;display:inline-flex;align-items:center;gap:.5rem}.step-actions .btn-secondary{background:#fff;border:2px solid #cbd5e1;color:#475569}.step-actions .btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8}.step-actions .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;color:#fff;box-shadow:0 2px 8px #3b82f64d}.step-actions .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.step-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:768px){.curriculum-import-overlay{padding:1rem}.curriculum-import-modal{max-height:95vh}.curriculum-import-header{padding:1rem 1.5rem}.curriculum-import-content{padding:1rem 1.5rem 1.5rem}.template-columns{overflow-x:auto}.template-columns table{min-width:500px}.preview-header{flex-direction:column;align-items:flex-start}.preview-table-wrapper{max-height:300px}.step-actions{flex-direction:column}.step-actions button{width:100%;justify-content:center}}[data-theme=dark] .curriculum-import-modal{background:#1e293b}[data-theme=dark] .curriculum-import-header{border-color:#334155}[data-theme=dark] .curriculum-import-header h2{color:#f1f5f9}[data-theme=dark] .curriculum-import-context,[data-theme=dark] .curriculum-import-close{color:#94a3b8}[data-theme=dark] .curriculum-import-close:hover{background:#334155;color:#f1f5f9}[data-theme=dark] .step-template h3,[data-theme=dark] .step-upload h3,[data-theme=dark] .step-report h3{color:#f1f5f9}[data-theme=dark] .step-template p,[data-theme=dark] .step-upload p{color:#94a3b8}[data-theme=dark] .template-columns{border-color:#334155}[data-theme=dark] .template-columns th{background:#0f172a;color:#94a3b8;border-color:#334155}[data-theme=dark] .template-columns td{color:#cbd5e1;border-color:#334155}[data-theme=dark] .template-columns code{background:#334155;color:#f1f5f9}[data-theme=dark] .dropzone{background:#0f172a;border-color:#475569}[data-theme=dark] .dropzone:hover{background:#3b82f61a}[data-theme=dark] .preview-header{background:#0f172a}[data-theme=dark] .preview-file-info{color:#cbd5e1}[data-theme=dark] .preview-table-wrapper{border-color:#334155}[data-theme=dark] .preview-table th{background:#0f172a;color:#94a3b8;border-color:#334155}[data-theme=dark] .preview-table td{color:#cbd5e1;border-color:#334155}[data-theme=dark] .preview-table tr.row-error{background:#dc26261a}[data-theme=dark] .preview-more{background:#0f172a;border-color:#334155}[data-theme=dark] .report-stat-group{background:#0f172a}[data-theme=dark] .step-actions{border-color:#334155}[data-theme=dark] .step-actions .btn-secondary{background:#334155;border-color:#475569;color:#f1f5f9}[data-theme=dark] .step-actions .btn-secondary:hover{background:#475569}.maquette-manager{padding:1.5rem 2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;color:#1a1a1a;background:#f5f7fa;min-height:100vh}.message{position:fixed;top:1.5rem;right:1.5rem;padding:1rem 1.5rem;border-radius:8px;font-weight:600;font-size:15px;z-index:1000;animation:slideIn .25s ease-out;box-shadow:0 4px 12px #00000026}.message-success{background:#d1fae5;color:#065f46;border:2px solid #34d399}.message-error{background:#fee2e2;color:#991b1b;border:2px solid #f87171}.maquette-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.maquette-header h1{font-size:1.75rem;font-weight:700;margin:0;color:#1e293b}.maquette-header .subtitle{font-size:.95rem;color:#64748b;margin:.5rem 0 0}.maquette-header-actions{display:flex;gap:.75rem;align-items:center}.btn-import{padding:.75rem 1.25rem;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;color:#fff;transition:all .2s;display:flex;align-items:center;gap:.5rem;box-shadow:0 2px 6px #3b82f640}.btn-import:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6);transform:translateY(-1px);box-shadow:0 4px 10px #3b82f659}.btn-export{padding:.75rem 1.25rem;background:#fff;border:2px solid #60a5fa;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;color:#2563eb;transition:all .2s;display:flex;align-items:center;gap:.5rem}.btn-export:hover:not(:disabled){background:#eff6ff;border-color:#3b82f6;color:#1d4ed8;transform:translateY(-1px)}.btn-export:disabled{opacity:.4;cursor:not-allowed}.btn-clean{padding:.75rem 1.25rem;background:#fff;border:2px solid #fca5a5;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;color:#dc2626;transition:all .2s;display:flex;align-items:center;gap:.5rem}.btn-clean:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#b91c1c}.btn-clean:disabled{opacity:.4;cursor:not-allowed}.btn-refresh{padding:.75rem 1.25rem;background:#fff;border:2px solid #cbd5e1;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;color:#475569;transition:all .2s;display:flex;align-items:center;gap:.5rem}.btn-refresh:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.context-bar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1.5rem;padding:1.25rem;background:#fff;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000d}.context-bar select{padding:.75rem 2.5rem .75rem 1rem;border:2px solid #cbd5e1;border-radius:8px;font-size:15px;font-weight:500;background:#fff;cursor:pointer;min-width:160px;color:#1e293b;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.context-bar select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.context-bar select:hover{border-color:#94a3b8}.stats{display:flex;gap:1.5rem;margin-left:auto;font-size:14px;color:#64748b;padding:.5rem 1rem;background:#f8fafc;border-radius:8px}.stats span{display:flex;align-items:center;gap:.375rem;white-space:nowrap}.stats strong{font-size:16px;color:#1e293b}.stats .highlight{color:#2563eb;font-weight:700}.stats .highlight strong{color:#2563eb;font-size:18px}.empty{text-align:center;padding:4rem 2rem;color:#64748b;background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:16px}.grid-wrapper{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.grid{width:100%;border-collapse:collapse;table-layout:fixed}.grid th{padding:1rem .75rem;text-align:left;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;background:#f8fafc;border-bottom:2px solid #e2e8f0;position:sticky;top:0;z-index:10;white-space:nowrap}.grid td{padding:.875rem .75rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:15px}.row-module{background:#eff6ff}.row-module:hover{background:#dbeafe}.row-module td{border-bottom:2px solid #bfdbfe;font-weight:600;color:#000!important}.row-module td .cell-value,.row-module td .computed,.row-module td .total{color:#000!important}.row-ue{background:#f0fdf4}.row-ue:hover{background:#dcfce7}.row-ue td{border-bottom:1px solid #bbf7d0}.row-ue td:first-child{padding-left:2rem}.row-ec{background:#faf5ff}.row-ec:hover{background:#f3e8ff}.row-ec td{border-bottom:1px solid #e9d5ff}.row-ec td:first-child{padding-left:3.5rem}.row-new{background:#fefce8!important}.row-new td{border-bottom:2px solid #fde047!important}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.375rem .625rem;border-radius:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;min-width:3rem}.badge.mod{background:#2563eb;color:#fff}.badge.ue{background:#16a34a;color:#fff}.badge.ec{background:#9333ea;color:#fff}.btn-expand{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:2px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:14px;color:#475569;transition:all .15s;flex-shrink:0}.btn-expand:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.cell-value{display:block;padding:.5rem .625rem;border-radius:6px;cursor:text;min-height:2.25rem;transition:all .15s;border:2px solid transparent;line-height:1.4}.cell-value:hover{background:#3b82f614;border-color:#3b82f633}.cell-value.saving{opacity:.5;pointer-events:none}.cell-input{width:100%;padding:.5rem .625rem;border:2px solid #3b82f6;border-radius:6px;font-size:15px;font-family:inherit;background:#fff;outline:none;box-sizing:border-box;min-height:2.25rem}.cell-input:focus{box-shadow:0 0 0 3px #3b82f640}.muted{color:#94a3b8;text-align:center;font-size:14px}.total{font-weight:700;color:#1e293b;text-align:center;font-size:15px}.computed{font-weight:700;color:#2563eb;text-align:center;font-size:15px;background:#eff6ff;padding:.375rem .5rem;border-radius:4px}.actions{display:flex;gap:.5rem;justify-content:flex-end;align-items:center}.btn-add,.btn-del,.btn-ok,.btn-cancel{padding:.5rem .75rem;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;border:2px solid transparent;display:inline-flex;align-items:center;justify-content:center;min-height:36px}.btn-add{background:#dcfce7;color:#15803d;border-color:#86efac}.btn-add:hover{background:#16a34a;color:#fff;border-color:#16a34a}.btn-del{background:#fff;color:#dc2626;font-size:18px;padding:.375rem .625rem;border-color:#fecaca;min-width:36px}.btn-del:hover{background:#fef2f2;border-color:#f87171}.btn-ok{background:#16a34a;color:#fff;border-color:#16a34a;min-width:44px}.btn-ok:hover:not(:disabled){background:#15803d;border-color:#15803d}.btn-ok:disabled{opacity:.4;cursor:not-allowed}.btn-cancel{background:#f1f5f9;color:#64748b;font-size:16px;border-color:#cbd5e1;min-width:44px}.btn-cancel:hover:not(:disabled){background:#e2e8f0;color:#475569}.btn-add-module{width:100%;padding:1rem;background:#f8fafc;border:2px dashed #cbd5e1;color:#64748b;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border-radius:0 0 10px 10px}.btn-add-module:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.autocomplete-cell{position:relative}.dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #00000026;max-height:250px;overflow-y:auto;z-index:100;margin-top:4px}.dropdown-item{padding:.875rem 1rem;cursor:pointer;font-size:14px;border-bottom:1px solid #f1f5f9;transition:background .1s}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:#eff6ff}.dropdown-item strong{color:#2563eb;font-weight:700}@media(max-width:1200px){.maquette-manager{padding:1rem}.context-bar{flex-direction:column;align-items:stretch;gap:.75rem}.context-bar select{width:100%}.stats{margin-left:0;margin-top:.5rem;justify-content:center;flex-wrap:wrap}.grid-wrapper{overflow-x:auto}.grid{min-width:1000px}}.action-bar{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.5rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#1e293b,#334155);border-radius:12px;box-shadow:0 4px 12px #00000026}.action-bar-info{display:flex;flex-direction:column;gap:.375rem}.action-bar-title{font-size:16px;font-weight:700;color:#fff}.action-bar-stats{font-size:14px;color:#94a3b8}.action-bar-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.btn-action{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease;min-height:48px}.btn-action:disabled{opacity:.5;cursor:not-allowed}.btn-icon{font-size:18px}.btn-save{background:#475569;color:#fff;border:2px solid #64748b}.btn-save:hover:not(:disabled){background:#64748b;border-color:#94a3b8;transform:translateY(-1px)}.btn-apply{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:2px solid #22c55e;box-shadow:0 2px 8px #16a34a4d}.btn-apply:hover:not(:disabled){background:linear-gradient(135deg,#22c55e,#16a34a);transform:translateY(-2px);box-shadow:0 4px 12px #16a34a66}.btn-export{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:2px solid #3b82f6;box-shadow:0 2px 8px #2563eb4d}.btn-export:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb66}@media(max-width:900px){.action-bar{flex-direction:column;align-items:stretch;gap:1rem}.action-bar-info{text-align:center}.action-bar-buttons{justify-content:center}}@media(max-width:600px){.action-bar-buttons{flex-direction:column}.btn-action{width:100%;justify-content:center}}.btn-expand:focus-visible,.btn-add:focus-visible,.btn-del:focus-visible,.btn-ok:focus-visible,.btn-cancel:focus-visible,.btn-add-module:focus-visible,.btn-refresh:focus-visible,.btn-action:focus-visible,.context-bar select:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}@media(prefers-contrast:high){.badge{border:2px solid currentColor}.cell-value:hover{border-color:#1e293b}.grid td{border-bottom:2px solid #94a3b8}}@media(prefers-reduced-motion:reduce){.message,.cell-value,.btn-expand,.btn-add,.btn-del,.btn-ok,.btn-cancel,.btn-add-module,.btn-refresh{transition:none}@keyframes slideIn{0%{opacity:0}to{opacity:1}}}.clean-confirm-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .2s ease-out}.clean-confirm-modal{background:#fff;border-radius:16px;padding:2rem;max-width:480px;width:100%;text-align:center;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s ease-out}.clean-confirm-icon{color:#dc2626;margin-bottom:1rem}.clean-confirm-modal h3{font-size:1.375rem;font-weight:700;color:#1e293b;margin:0 0 1rem}.clean-confirm-modal p{font-size:.9375rem;color:#475569;margin:0 0 1rem;line-height:1.5}.clean-confirm-list{list-style:none;padding:0;margin:0 0 1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:1rem 1.25rem;text-align:left}.clean-confirm-list li{padding:.5rem 0;color:#991b1b;font-size:.9375rem;display:flex;align-items:center;gap:.5rem}.clean-confirm-list li:before{content:"×";font-weight:700;font-size:1rem;color:#dc2626}.clean-confirm-list li strong{color:#7f1d1d}.clean-confirm-warning{font-size:.875rem;color:#64748b;background:#f1f5f9;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.5rem}.clean-confirm-warning strong{color:#1e293b}.clean-confirm-actions{display:flex;gap:.75rem;justify-content:center}.clean-confirm-actions button{padding:.875rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:140px}.clean-confirm-actions .btn-cancel{background:#fff;border:2px solid #cbd5e1;color:#475569}.clean-confirm-actions .btn-cancel:hover{background:#f1f5f9;border-color:#94a3b8}.clean-confirm-actions .btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;color:#fff;box-shadow:0 2px 8px #dc26264d}.clean-confirm-actions .btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#dc2626);transform:translateY(-1px);box-shadow:0 4px 12px #dc262666}.clean-confirm-actions .btn-danger:disabled{opacity:.5;cursor:not-allowed;transform:none}[data-theme=dark] .clean-confirm-modal{background:#1e293b}[data-theme=dark] .clean-confirm-modal h3{color:#f1f5f9}[data-theme=dark] .clean-confirm-modal p{color:#94a3b8}[data-theme=dark] .clean-confirm-list{background:#dc26261a;border-color:#dc26264d}[data-theme=dark] .clean-confirm-list li{color:#fca5a5}[data-theme=dark] .clean-confirm-list li strong{color:#f87171}[data-theme=dark] .clean-confirm-warning{background:#0f172a;color:#94a3b8}[data-theme=dark] .clean-confirm-warning strong{color:#f1f5f9}[data-theme=dark] .clean-confirm-actions .btn-cancel{background:#334155;border-color:#475569;color:#f1f5f9}[data-theme=dark] .clean-confirm-actions .btn-cancel:hover{background:#475569}.assignment-import-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:assignFadeIn .2s ease-out}@keyframes assignFadeIn{0%{opacity:0}to{opacity:1}}.assignment-import-modal{background:#fff;border-radius:16px;width:100%;max-width:960px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:assignSlideUp .3s ease-out}@keyframes assignSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.assignment-import-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;cursor:pointer;color:#64748b;transition:all .2s;z-index:10}.assignment-import-close:hover{background:#f1f5f9;color:#1e293b}.assignment-import-header{padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0;position:relative}.assignment-import-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.assignment-import-context{margin:.5rem 0 0;font-size:.9375rem;color:#64748b}.assignment-import-content{padding:1.5rem 2rem 2rem;overflow-y:auto;flex:1}.assignment-step-icon{display:flex;justify-content:center;margin-bottom:1.5rem;color:#10b981}.assignment-step-template h3,.assignment-step-upload h3,.assignment-step-preview h3,.assignment-step-report h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .75rem;text-align:center}.assignment-step-template p,.assignment-step-upload p{text-align:center;color:#64748b;margin:0 0 1.5rem}.assignment-template-columns{margin:1.5rem 0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.assignment-template-columns table{width:100%;border-collapse:collapse;font-size:.875rem}.assignment-template-columns th{background:#f8fafc;padding:.75rem 1rem;text-align:left;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.assignment-template-columns td{padding:.625rem 1rem;border-bottom:1px solid #f1f5f9;color:#334155}.assignment-template-columns tr:last-child td{border-bottom:none}.assignment-template-columns code{background:#f1f5f9;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Monaco,monospace;font-size:.8125rem;color:#0f172a}.assignment-template-note{margin:1rem 0;padding:.875rem 1rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;font-size:.875rem;color:#92400e}.assignment-template-actions{display:flex;justify-content:center;margin:1.5rem 0}.assignment-btn-download-template{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:#ecfdf5;border:2px solid #10b981;border-radius:8px;font-size:.9375rem;font-weight:600;color:#059669;cursor:pointer;transition:all .2s}.assignment-btn-download-template:hover{background:#10b981;color:#fff}.assignment-step-upload{min-height:300px;display:flex;flex-direction:column;justify-content:center}.assignment-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;cursor:pointer;transition:all .2s ease}.assignment-dropzone:hover{border-color:#10b981;background:#ecfdf5}.assignment-dropzone.dragging{border-color:#10b981;background:#d1fae5;border-style:solid}.assignment-dropzone-icon{color:#94a3b8;margin-bottom:1rem;transition:color .2s}.assignment-dropzone:hover .assignment-dropzone-icon,.assignment-dropzone.dragging .assignment-dropzone-icon{color:#10b981}.assignment-dropzone h3{margin:0 0 .5rem}.assignment-dropzone p{margin:0}.assignment-step-preview{display:flex;flex-direction:column;gap:1rem}.assignment-preview-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:.75rem 1rem;background:#f8fafc;border-radius:8px}.assignment-preview-file-info{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:#475569}.assignment-preview-stats{display:flex;gap:.75rem;flex-wrap:wrap}.assignment-stat-item{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:600}.assignment-stat-assignment{background:#dcfce7;color:#15803d}.assignment-stat-new-teacher{background:#dbeafe;color:#1d4ed8}.assignment-stat-existing{background:#e0e7ff;color:#4338ca}.assignment-stat-skipped{background:#f3f4f6;color:#6b7280}.assignment-stat-error{background:#fee2e2;color:#dc2626}.assignment-preview-table-wrapper{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;max-height:400px;overflow-y:auto}.assignment-preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.assignment-preview-table th{position:sticky;top:0;background:#f8fafc;padding:.625rem .5rem;text-align:left;font-weight:600;color:#64748b;border-bottom:2px solid #e2e8f0;white-space:nowrap;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.assignment-preview-table td{padding:.5rem;border-bottom:1px solid #f1f5f9;color:#334155;white-space:nowrap}.assignment-preview-table .assignment-cell-title{max-width:180px;overflow:hidden;text-overflow:ellipsis}.assignment-preview-table tr.assignment-row-error{background:#fef2f2}.assignment-preview-table tr.assignment-row-error:hover{background:#fee2e2}.assignment-preview-table tr.assignment-row-skipped{background:#f9fafb;color:#9ca3af}.assignment-preview-table tr.assignment-row-new-teacher{background:#eff6ff}.assignment-badge{padding:.25rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase}.assignment-badge-new{background:#2563eb;color:#fff}.assignment-badge-existing{background:#6366f1;color:#fff}.assignment-badge-skipped{background:#9ca3af;color:#fff}.assignment-badge-update{background:#f59e0b;color:#fff}.assignment-status-valid{color:#16a34a}.assignment-status-error{color:#dc2626;cursor:help}.assignment-status-skipped{color:#9ca3af}.assignment-preview-more{padding:.75rem;text-align:center;font-size:.875rem;color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0}.assignment-error-summary{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.assignment-error-summary h4{margin:0 0 .75rem;font-size:.9375rem;color:#991b1b}.assignment-error-summary ul{margin:0;padding:0 0 0 1.25rem;font-size:.875rem;color:#b91c1c}.assignment-error-summary li{margin-bottom:.375rem}.assignment-error-summary .assignment-more-errors{color:#dc2626;font-style:italic}.assignment-step-report{text-align:center;padding:1rem 0}.assignment-report-icon{margin-bottom:1.5rem}.assignment-report-icon.success{color:#16a34a}.assignment-report-icon.partial{color:#f59e0b}.assignment-report-stats{display:flex;flex-direction:column;gap:1.5rem;margin:2rem 0;text-align:left}.assignment-report-stat-group{padding:1rem 1.25rem;background:#f8fafc;border-radius:10px}.assignment-report-stat-group h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.assignment-report-stat-items{display:flex;gap:1rem;flex-wrap:wrap}.assignment-report-stat-items span{padding:.5rem 1rem;border-radius:6px;font-size:.9375rem;font-weight:600}.assignment-report-password-note{margin:1.5rem 0;padding:1rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;text-align:left}.assignment-report-password-note h4{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#92400e}.assignment-report-password-note p{margin:0;font-size:.875rem;color:#78350f}.assignment-report-password-note code{background:#fde68a;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Monaco,monospace;font-weight:600}.assignment-report-errors{background:#fef2f2}.assignment-report-errors h4{color:#991b1b}.assignment-report-errors ul{margin:0;padding:0 0 0 1.25rem;font-size:.875rem;color:#b91c1c}.assignment-report-errors li{margin-bottom:.375rem}.assignment-import-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.9375rem;margin-top:1rem}.assignment-step-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1.5rem;border-top:1px solid #e2e8f0;margin-top:1.5rem}.assignment-step-actions .assignment-btn-secondary,.assignment-step-actions .assignment-btn-primary{padding:.75rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;display:inline-flex;align-items:center;gap:.5rem}.assignment-step-actions .assignment-btn-secondary{background:#fff;border:2px solid #cbd5e1;color:#475569}.assignment-step-actions .assignment-btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8}.assignment-step-actions .assignment-btn-primary{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff;box-shadow:0 2px 8px #10b9814d}.assignment-step-actions .assignment-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#10b981);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.assignment-step-actions .assignment-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.assignment-btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:assignSpin .8s linear infinite}@keyframes assignSpin{to{transform:rotate(360deg)}}@media(max-width:768px){.assignment-import-overlay{padding:1rem}.assignment-import-modal{max-height:95vh}.assignment-import-header{padding:1rem 1.5rem}.assignment-import-content{padding:1rem 1.5rem 1.5rem}.assignment-template-columns{overflow-x:auto}.assignment-template-columns table{min-width:500px}.assignment-preview-header{flex-direction:column;align-items:flex-start}.assignment-preview-table-wrapper{max-height:300px}.assignment-step-actions{flex-direction:column}.assignment-step-actions button{width:100%;justify-content:center}}[data-theme=dark] .assignment-import-modal{background:#1e293b}[data-theme=dark] .assignment-import-header{border-color:#334155}[data-theme=dark] .assignment-import-header h2{color:#f1f5f9}[data-theme=dark] .assignment-import-context,[data-theme=dark] .assignment-import-close{color:#94a3b8}[data-theme=dark] .assignment-import-close:hover{background:#334155;color:#f1f5f9}[data-theme=dark] .assignment-step-template h3,[data-theme=dark] .assignment-step-upload h3,[data-theme=dark] .assignment-step-report h3{color:#f1f5f9}[data-theme=dark] .assignment-step-template p,[data-theme=dark] .assignment-step-upload p{color:#94a3b8}[data-theme=dark] .assignment-template-columns{border-color:#334155}[data-theme=dark] .assignment-template-columns th{background:#0f172a;color:#94a3b8;border-color:#334155}[data-theme=dark] .assignment-template-columns td{color:#cbd5e1;border-color:#334155}[data-theme=dark] .assignment-template-columns code{background:#334155;color:#f1f5f9}[data-theme=dark] .assignment-template-note{background:#fbbf2426;border-color:#ca8a04;color:#fcd34d}[data-theme=dark] .assignment-dropzone{background:#0f172a;border-color:#475569}[data-theme=dark] .assignment-dropzone:hover{background:#10b9811a}[data-theme=dark] .assignment-preview-header{background:#0f172a}[data-theme=dark] .assignment-preview-file-info{color:#cbd5e1}[data-theme=dark] .assignment-preview-table-wrapper{border-color:#334155}[data-theme=dark] .assignment-preview-table th{background:#0f172a;color:#94a3b8;border-color:#334155}[data-theme=dark] .assignment-preview-table td{color:#cbd5e1;border-color:#334155}[data-theme=dark] .assignment-preview-table tr.assignment-row-error{background:#dc26261a}[data-theme=dark] .assignment-preview-table tr.assignment-row-skipped{background:#4b556333}[data-theme=dark] .assignment-preview-table tr.assignment-row-new-teacher{background:#3b82f61a}[data-theme=dark] .assignment-preview-more{background:#0f172a;border-color:#334155}[data-theme=dark] .assignment-report-stat-group{background:#0f172a}[data-theme=dark] .assignment-report-password-note{background:#fbbf2426;border-color:#ca8a04}[data-theme=dark] .assignment-report-password-note h4,[data-theme=dark] .assignment-report-password-note p{color:#fcd34d}[data-theme=dark] .assignment-report-password-note code{background:#fbbf244d}[data-theme=dark] .assignment-step-actions{border-color:#334155}[data-theme=dark] .assignment-step-actions .assignment-btn-secondary{background:#334155;border-color:#475569;color:#f1f5f9}[data-theme=dark] .assignment-step-actions .assignment-btn-secondary:hover{background:#475569}.assignments-manager{padding:24px;max-width:1600px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.message{position:fixed;top:20px;right:20px;padding:14px 24px;border-radius:8px;font-weight:500;font-size:14px;z-index:1000;animation:slideIn .3s ease;box-shadow:0 4px 12px #00000026}.message-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.message-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.assignments-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.assignments-header h1{font-size:28px;font-weight:700;color:#1a1a2e;margin:0 0 6px}.assignments-header .subtitle{font-size:15px;color:#6b7280;margin:0}.btn-refresh{padding:10px 18px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-refresh:hover{border-color:#3b82f6;color:#3b82f6}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.header-actions{display:flex;gap:10px;align-items:center}.btn-import{padding:10px 18px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #10b98140}.btn-import:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#10b981);transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}.btn-import:disabled{opacity:.5;cursor:not-allowed;transform:none}.context-bar{display:flex;flex-wrap:wrap;gap:14px;padding:18px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;margin-bottom:24px;align-items:center;border:1px solid #e2e8f0}.context-bar select{padding:10px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;color:#374151;cursor:pointer;min-width:180px;transition:all .2s}.context-bar select:hover{border-color:#3b82f6}.context-bar select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.stats{display:flex;gap:20px;margin-left:auto;font-size:14px;color:#6b7280}.stats span{display:flex;align-items:center;gap:4px}.stats strong{color:#1f2937}.stats .highlight,.stats .highlight strong{color:#3b82f6}.stats .warning,.stats .warning strong{color:#f59e0b}.stats .success,.stats .success strong{color:#10b981}.grid-wrapper{background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;box-shadow:0 1px 3px #0000000d}.staffing-grid{width:100%;border-collapse:collapse;font-size:14px}.staffing-grid th{background:#f8fafc;padding:14px 12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:2px solid #e2e8f0;white-space:nowrap}.staffing-grid td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.row-module td{background:linear-gradient(135deg,#3b82f6,#2563eb);padding:14px 16px!important;border-bottom:none!important}.module-header{display:flex;align-items:center;gap:12px;color:#fff}.module-badge{background:#fff3;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.module-code{font-weight:700;font-size:15px}.module-name{font-size:15px;opacity:.95}.row-ue{transition:background .15s ease}.row-ue:hover{background:#f8fafc}.row-ue.assigned{background:#f0fdf4}.row-ue.assigned:hover{background:#dcfce7}.row-ue.unassigned{background:#fffbeb}.row-ue.unassigned:hover{background:#fef3c7}.code-cell{font-family:SF Mono,Monaco,monospace;font-size:13px;color:#6366f1;font-weight:600}.title-cell{max-width:280px}.title-cell strong{display:block;font-weight:600;color:#1f2937;margin-bottom:2px}.uecue-count{font-size:12px;color:#9ca3af;font-weight:400}.hours-cell,.credits-cell{text-align:center;font-size:13px;color:#6b7280;font-family:SF Mono,Monaco,monospace}.empty-cell{color:#d1d5db}.suggested-hours{color:#9ca3af;font-style:italic;font-size:13px}.teacher-select-cell,.teacher-dropdown-wrapper{position:relative}.teacher-select-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;font-size:13px;text-align:left}.teacher-select-btn:hover{border-color:#3b82f6}.teacher-select-btn.has-teacher{border-color:#10b981;background:#f0fdf4}.teacher-select-btn.no-teacher{border-color:#f59e0b;background:#fffbeb;color:#92400e}.teacher-select-btn.saving{opacity:.6;pointer-events:none}.teacher-avatar-sm{width:28px;height:28px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.teacher-name-text{flex:1;font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plus-icon{width:28px;height:28px;background:#f59e0b;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.dropdown-arrow{color:#9ca3af;font-size:10px;margin-left:auto}.loading-dots{color:#6b7280}.teacher-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 40px #00000026;z-index:100;max-height:320px;overflow-y:auto;margin-top:4px;animation:dropdownFade .15s ease}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .1s}.dropdown-item:hover{background:#f3f4f6}.dropdown-item.selected{background:#eff6ff}.dropdown-item.remove-item{color:#dc2626;border-bottom:1px solid #f3f4f6}.dropdown-item.remove-item:hover{background:#fef2f2}.remove-icon{width:28px;height:28px;background:#fee2e2;color:#dc2626;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}.dropdown-divider{height:1px;background:#f3f4f6;margin:4px 0}.dropdown-search{padding:10px 12px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:1}.dropdown-search input{width:100%;padding:8px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s}.dropdown-search input:focus{border-color:#3b82f6}.dropdown-search input::placeholder{color:#9ca3af}.dropdown-list{max-height:240px;overflow-y:auto}.dropdown-empty{padding:20px 14px;text-align:center;color:#9ca3af;font-size:13px}.teacher-info-dropdown{flex:1;min-width:0}.teacher-info-dropdown strong{display:block;font-size:13px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-info-dropdown small{display:block;font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.check-icon{color:#10b981;font-size:16px;font-weight:600}.multi-teacher-wrapper{display:flex;flex-direction:column;gap:6px}.assigned-teachers-list{display:flex;flex-direction:column;gap:4px}.assigned-teacher-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;font-size:13px}.assigned-teacher-item .teacher-avatar-sm{width:24px;height:24px;font-size:10px}.assigned-teacher-item .teacher-name-text{flex:1;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase}.role-badge.responsable{background:#dbeafe;color:#1e40af}.role-badge.participant{background:#f3e8ff;color:#7c3aed}.remove-teacher-btn{width:20px;height:20px;padding:0;border:none;background:#fecaca;color:#dc2626;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.remove-teacher-btn:hover{background:#fca5a5}.remove-teacher-btn:disabled{opacity:.5;cursor:not-allowed}.teacher-select-btn.add-more{padding:6px 10px;font-size:12px;border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.teacher-select-btn.add-more:hover{background:#dbeafe}.teacher-select-btn.add-more .plus-icon{width:20px;height:20px;font-size:14px;background:#3b82f6}.multi-field-stack{display:flex;flex-direction:column;gap:4px;align-items:center}.inline-select.compact,.inline-input.compact{padding:4px 6px;font-size:11px}.inline-input.compact{width:50px}.type-cell,.role-cell,.allocated-hours-cell{text-align:center}.inline-select{padding:6px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;background:#fff;cursor:pointer;transition:all .2s}.inline-select:hover{border-color:#3b82f6}.inline-select:focus{outline:none;border-color:#3b82f6}.inline-input{width:60px;padding:6px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;text-align:center;font-family:SF Mono,Monaco,monospace;transition:all .2s}.inline-input:hover{border-color:#3b82f6}.inline-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.action-bar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:linear-gradient(135deg,#1e3a5f,#0f172a);border-radius:12px;margin-top:24px;color:#fff}.action-bar-info{display:flex;flex-direction:column;gap:6px}.action-bar-title{font-size:16px;font-weight:600}.action-bar-stats{font-size:13px;opacity:.8}.action-bar-warning{font-size:13px;color:#fbbf24;font-weight:500}.action-bar-buttons{display:flex;gap:12px}.btn-action{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-save{background:#3b82f6;color:#fff}.btn-save:hover{background:#2563eb}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-apply{background:#10b981;color:#fff}.btn-apply:hover{background:#059669}.btn-apply:disabled{opacity:.5;cursor:not-allowed;background:#6b7280}.btn-export{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.2)}.btn-export:hover{background:#ffffff40}.btn-icon{font-size:16px}.empty{text-align:center;padding:60px 20px;color:#6b7280;font-size:16px;background:#f9fafb;border-radius:12px;border:2px dashed #e5e7eb}@media(max-width:1400px){.staffing-grid{font-size:13px}.staffing-grid th,.staffing-grid td{padding:8px 10px}.teacher-select-btn{padding:6px 10px;font-size:12px}.teacher-avatar-sm,.plus-icon{width:24px;height:24px;font-size:10px}}@media(max-width:1200px){.context-bar{flex-direction:column;align-items:stretch}.context-bar select{width:100%}.stats{margin-left:0;margin-top:10px;justify-content:center;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.teacher-select-btn:focus-visible,.inline-select:focus-visible,.inline-input:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(prefers-contrast:high){.staffing-grid td{border:1px solid #000}.row-ue.unassigned{background:#fc0}.row-ue.assigned{background:#90ee90}}.admin-modal{max-height:90vh;display:flex;flex-direction:column}.admin-modal-body{flex:1;overflow-y:auto;max-height:calc(90vh - 140px)}.programs-table .admin-table td{vertical-align:middle}.program-name-cell{display:flex;align-items:center;gap:.75rem}.program-name-cell .color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.program-name-cell .color-dot.blue{background:var(--gpe-blue)}.program-name-cell .color-dot.green{background:var(--gpe-green)}.program-name-cell .color-dot.purple{background:var(--gpe-purple)}.program-name-cell .color-dot.orange{background:var(--gpe-orange)}.program-name-cell .program-info{display:flex;flex-direction:column}.program-name-cell .program-info strong{font-weight:600;color:var(--gray-900)}.program-name-cell .program-info small{font-size:.8125rem;color:var(--gray-500)}.type-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:capitalize}.type-badge.master{background:var(--gpe-blue-50);color:var(--gpe-blue)}.type-badge.certificat{background:var(--gpe-green-50);color:var(--gpe-green)}.type-badge.formation_continue{background:var(--gpe-purple-50);color:var(--gpe-purple)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.status-badge.active{background:var(--gpe-green-50);color:var(--gpe-green)}.status-badge.inactive{background:var(--gray-100);color:var(--gray-500)}.action-buttons{display:flex;align-items:center;gap:.5rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.btn-icon:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-900)}.btn-icon.edit:hover{background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.btn-icon.delete:hover{background:var(--gpe-rose-50, #fef2f2);border-color:var(--gpe-rose);color:var(--gpe-rose)}.admin-modal-body .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.admin-modal-body .form-group{margin-bottom:1rem}.admin-modal-body .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.admin-modal-body .form-group input,.admin-modal-body .form-group select,.admin-modal-body .form-group textarea{width:100%;padding:.75rem 1rem;font-size:.9375rem;color:var(--gray-900);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);transition:all var(--transition)}.admin-modal-body .form-group input:focus,.admin-modal-body .form-group select:focus,.admin-modal-body .form-group textarea:focus{outline:none;background:var(--white);border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.admin-modal-body .form-group textarea{resize:vertical;min-height:80px}.checkbox-group{display:flex;flex-wrap:wrap;gap:1rem}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-700);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--gpe-blue);cursor:pointer}.programs-filter{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.programs-filter label{font-size:.875rem;font-weight:500;color:var(--gray-600)}.programs-filter select{padding:.5rem 2rem .5rem 1rem;font-size:.875rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer}.programs-stats{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:var(--gray-600)}.programs-stats span{font-weight:600;color:var(--gray-900)}.programs-stats .active-count{color:var(--gpe-green)}@media(max-width:768px){.admin-modal-body .form-row{grid-template-columns:1fr}.action-buttons{flex-direction:column;gap:.25rem}.btn-icon{width:32px;height:32px}}:root.dark .btn-icon,.dark .btn-icon{background:#334155;border-color:#475569;color:#94a3b8}:root.dark .btn-icon:hover,.dark .btn-icon:hover{background:#475569;color:#e2e8f0}:root.dark .type-badge.master,.dark .type-badge.master{background:#3b82f633}:root.dark .type-badge.certificat,.dark .type-badge.certificat{background:#22c55e33}:root.dark .type-badge.formation_continue,.dark .type-badge.formation_continue{background:#a855f733}:root.dark .status-badge.inactive,.dark .status-badge.inactive{background:#334155;color:#94a3b8}:root.dark .admin-modal-body .form-group input,:root.dark .admin-modal-body .form-group select,:root.dark .admin-modal-body .form-group textarea,.dark .admin-modal-body .form-group input,.dark .admin-modal-body .form-group select,.dark .admin-modal-body .form-group textarea{background:#334155;border-color:#475569;color:#e2e8f0}:root.dark .admin-modal-body .form-group input:focus,:root.dark .admin-modal-body .form-group select:focus,:root.dark .admin-modal-body .form-group textarea:focus,.dark .admin-modal-body .form-group input:focus,.dark .admin-modal-body .form-group select:focus,.dark .admin-modal-body .form-group textarea:focus{background:#1e293b;border-color:var(--gpe-blue)}.program-detail-page{max-width:1200px}.pd-back-link{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:500;color:var(--gray-500);text-decoration:none;margin-bottom:1.5rem;transition:color var(--transition)}.pd-back-link:hover{color:var(--gpe-blue)}.pd-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem}.pd-header-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.pd-header-title-row h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0}.pd-subtitle{font-size:1rem;color:var(--gray-500);margin:.25rem 0 0}.pd-code{font-size:.8125rem;color:var(--gray-400);margin:.25rem 0 0}.pd-code code{background:var(--gray-100);padding:.125rem .5rem;border-radius:var(--radius);font-size:.8125rem}.pd-header-actions{display:flex;gap:.75rem;flex-shrink:0}.pd-print-header{display:none}.pd-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:2.5rem}.pd-info-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem 1.5rem}.pd-info-card-wide{grid-column:span 2}.pd-info-card h3{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.pd-info-card h3 svg{color:var(--gpe-blue)}.pd-info-rows{display:flex;flex-direction:column;gap:.5rem}.pd-info-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.pd-info-row>span:first-child{color:var(--gray-500)}.pd-info-row>span:last-child{font-weight:500;color:var(--gray-900)}.pd-tags{display:flex;flex-wrap:wrap;gap:.5rem}.pd-tag{display:inline-flex;align-items:center;padding:.375rem .875rem;background:var(--gpe-blue-50);color:var(--gpe-blue);font-size:.8125rem;font-weight:500;border-radius:var(--radius-full)}.pd-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.375rem}.pd-list li{font-size:.875rem;color:var(--gray-700);padding-left:1rem;position:relative}.pd-list li:before{content:"•";position:absolute;left:0;color:var(--gpe-blue);font-weight:700}.pd-highlights-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.pd-highlight-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--gray-700)}.pd-highlight-item svg{color:var(--gpe-green);flex-shrink:0}.pd-maquette-section{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.5rem}.pd-maquette-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.pd-maquette-header h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.pd-maquette-actions{display:flex;gap:.75rem}.pd-maquette-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;gap:.75rem;text-align:center}.pd-maquette-empty svg{color:var(--gray-300)}.pd-maquette-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.pd-maquette-empty p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:400px}.pd-maquette-table-wrapper{overflow-x:auto}.pd-maquette-table{width:100%;border-collapse:collapse;font-size:.8125rem}.pd-maquette-table th{background:var(--gray-50);padding:.625rem .75rem;font-weight:600;color:var(--gray-600);text-align:left;border-bottom:2px solid var(--gray-200);white-space:nowrap}.pd-maquette-table td{padding:.5rem .75rem;border-bottom:1px solid var(--gray-100);color:var(--gray-700)}.pd-maquette-table code{background:var(--gray-50);padding:.125rem .375rem;border-radius:3px;font-size:.75rem;color:var(--gray-600)}.text-center{text-align:center}.font-semibold{font-weight:600}.text-gray{color:var(--gray-400);font-size:.75rem}.pd-level-row td{background:var(--gpe-blue);color:var(--white);font-weight:700;font-size:.875rem;padding:.625rem .75rem;border-bottom:none}.pd-semester-row td{background:var(--gray-100);color:var(--gray-700);font-weight:600;font-size:.8125rem;padding:.5rem .75rem;border-bottom:1px solid var(--gray-200)}.pd-subtotal-row td{background:var(--gray-50);font-weight:600;color:var(--gray-600);font-size:.8125rem;border-bottom:2px solid var(--gray-200)}.pd-level-total-row td{background:var(--gpe-blue-50);font-weight:700;color:var(--gpe-blue);font-size:.8125rem;border-bottom:2px solid var(--gpe-blue)}.pd-grand-total-row td{background:var(--gpe-blue);color:var(--white);font-weight:700;font-size:.875rem;padding:.75rem;border-bottom:none}.badge-ue-type{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.badge-ue-fondamentale{background:var(--gpe-blue-50);color:var(--gpe-blue)}.badge-ue-complementaire{background:var(--gpe-green-50);color:var(--gpe-green)}.badge-ue-optionnelle{background:var(--gpe-orange-50);color:var(--gpe-orange)}.pd-row-actions{display:flex;align-items:center;gap:.25rem;justify-content:center}.pd-row-actions .btn-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--radius);color:var(--gray-400);cursor:pointer;transition:all var(--transition)}.pd-row-actions .btn-icon:hover{background:var(--gray-100);color:var(--gray-700)}.pd-row-actions .btn-icon.delete:hover{background:var(--danger-50, #fef2f2);color:var(--danger, #ef4444)}.form-hint{display:block;font-size:.75rem;color:var(--gray-400);margin-top:.25rem}.badge-type-master{background:var(--gpe-blue-50);color:var(--gpe-blue)}.badge-type-certificat{background:var(--gpe-green-50);color:var(--gpe-green)}.badge-type-formation_continue{background:var(--gpe-orange-50);color:var(--gpe-orange)}.btn-danger{background:var(--danger, #ef4444);color:var(--white);border:none;padding:.625rem 1.25rem;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:background var(--transition)}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.checkbox-group{display:flex;gap:1.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem}.checkbox-label input[type=checkbox]{width:18px;height:18px}@media(max-width:768px){.pd-header{flex-direction:column;gap:1rem}.pd-header-actions{width:100%}.pd-header-actions .btn{flex:1}.pd-info-grid{grid-template-columns:1fr}.pd-info-card-wide{grid-column:span 1}.pd-maquette-header{flex-direction:column;gap:1rem;align-items:flex-start}.pd-maquette-actions{width:100%;flex-direction:column}.pd-highlights-grid{grid-template-columns:1fr}}@media print{.no-print,.pd-back-link,.pd-header-actions,.pd-info-grid,.pd-maquette-header,.pd-maquette-empty{display:none!important}.pd-print-header{display:block!important;text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #333}.pd-print-header h1{font-size:18pt;font-weight:700;color:#000;margin:0 0 .25rem}.pd-print-header p{font-size:11pt;color:#555;margin:0}@page{size:A4 landscape;margin:1.5cm}.program-detail-page{padding:0!important;max-width:none!important}.pd-header{display:none!important}.pd-maquette-section{border:none;padding:0;box-shadow:none}.pd-maquette-table{font-size:8pt;page-break-inside:auto}.pd-maquette-table th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:4pt 6pt;font-size:7pt}.pd-maquette-table td{padding:3pt 6pt;border-bottom:.5pt solid #ddd}.pd-level-row td{background:#1a56db!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#fff!important;font-size:9pt;padding:5pt 6pt}.pd-semester-row td{background:#e5e7eb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:8pt}.pd-subtotal-row td{background:#f3f4f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pd-level-total-row td{background:#e0edff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#1a56db!important}.pd-grand-total-row td{background:#1a56db!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#fff!important;font-size:9pt}.pd-maquette-table tr{page-break-inside:avoid}.pd-maquette-table th:last-child,.pd-maquette-table td:last-child{display:none}.badge-ue-type{border:.5pt solid #999;background:transparent!important;color:#333!important}}.admin-explorer{display:flex;flex-direction:column;height:calc(100vh - 64px);background:var(--bg-subtle, #f8fafc);overflow:hidden}.admin-explorer__header{padding:1rem 1.5rem .75rem;background:var(--white, #fff);border-bottom:1px solid var(--border-color, #e2e8f0)}.admin-explorer__header-main{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.admin-explorer__title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0}.admin-explorer__header-hint{font-size:.75rem;color:var(--text-secondary, #94a3b8);margin-top:.5rem}.explorer-breadcrumb{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.85rem}.explorer-breadcrumb__item{display:inline-flex;align-items:center;gap:.4rem}.explorer-breadcrumb__link{background:none;border:none;color:var(--text-secondary, #64748b);cursor:pointer;padding:.2rem .5rem;border-radius:6px;font-size:.85rem;transition:all .15s}.explorer-breadcrumb__link:hover{background:var(--bg-subtle, #f1f5f9);color:var(--text-primary, #1a1a2e)}.explorer-breadcrumb__current{color:var(--text-primary, #1a1a2e);font-weight:600;padding:.2rem .5rem}.explorer-breadcrumb__separator{color:var(--text-secondary, #cbd5e1);flex-shrink:0}.explorer-columns{flex:1;display:flex;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;padding:1rem 1rem 1.25rem;gap:.75rem}.explorer-columns::-webkit-scrollbar{height:10px}.explorer-columns::-webkit-scrollbar-thumb{background:var(--border-color, #e2e8f0);border-radius:5px}.explorer-column{flex:0 0 300px;display:flex;flex-direction:column;background:var(--white, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a;max-height:100%}.explorer-column--detail{flex:0 0 440px;position:relative}.explorer-column__close-btn{position:absolute;top:8px;right:8px;z-index:5;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--border-color, #e2e8f0);background:#fff;color:var(--text-secondary, #64748b);border-radius:6px;cursor:pointer;transition:all .15s}.explorer-column__close-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}.explorer-column__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.explorer-column__title{font-size:.8rem;font-weight:700;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em}.explorer-column__count{font-size:.75rem;font-weight:600;color:var(--text-secondary, #94a3b8);background:var(--white, #fff);border:1px solid var(--border-color, #e2e8f0);padding:.1rem .45rem;border-radius:999px}.explorer-column__header-actions{display:flex;align-items:center;gap:.25rem}.explorer-column__view-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--text-secondary, #94a3b8);border-radius:4px;cursor:pointer;transition:all .15s}.explorer-column__view-btn:hover{background:#fff;color:var(--text-primary, #1a1a2e)}.explorer-column__body--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.35rem;padding:.45rem}.explorer-column__body--grid .explorer-item{flex-direction:column;align-items:flex-start;padding:.6rem;gap:.35rem;min-height:70px}.explorer-column__body--grid .explorer-item__body{width:100%}.explorer-column__body--grid .explorer-item__label{font-size:.82rem;white-space:normal}.explorer-column__body--grid .explorer-item__chevron,.explorer-column__body--grid .explorer-item__badge{display:none}.explorer-column__search{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #f1f5f9);color:var(--text-secondary, #94a3b8)}.explorer-column__search input{flex:1;border:none;outline:none;font-size:.85rem;background:transparent;color:var(--text-primary, #1a1a2e)}.explorer-column__search input::placeholder{color:var(--text-secondary, #cbd5e1)}.explorer-column__body{flex:1;overflow-y:auto;padding:.35rem}.explorer-column__body::-webkit-scrollbar{width:6px}.explorer-column__body::-webkit-scrollbar-thumb{background:var(--border-color, #e2e8f0);border-radius:3px}.explorer-column__loading,.explorer-column__empty,.explorer-column__error{padding:1.5rem .75rem;text-align:center;font-size:.85rem;color:var(--text-secondary, #94a3b8)}.explorer-column__error{color:#dc2626}.explorer-column__create-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;margin:.5rem;border:1px dashed var(--border-color, #cbd5e1);background:transparent;color:var(--text-secondary, #64748b);border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.explorer-column__create-btn:hover{border-color:var(--text-primary, #1a1a2e);background:var(--bg-subtle, #f1f5f9);color:var(--text-primary, #1a1a2e)}.explorer-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .6rem;border-radius:8px;cursor:pointer;transition:background .12s;position:relative}.explorer-item:hover{background:#eef2ff}.explorer-item--warning:not(.explorer-item--selected){background:#fffbeb;border-left:3px solid #f59e0b;padding-left:calc(.6rem - 3px)}.explorer-item--warning:not(.explorer-item--selected):hover{background:#fef3c7}.explorer-item--critical:not(.explorer-item--selected){background:#fef2f2;border-left:3px solid #ef4444;padding-left:calc(.6rem - 3px)}.explorer-item--critical:not(.explorer-item--selected):hover{background:#fee2e2}.explorer-item__status-dot{position:absolute;top:8px;left:4px;width:6px;height:6px;border-radius:50%;flex-shrink:0}.explorer-item__status-dot--warning{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.explorer-item__status-dot--critical{background:#ef4444;box-shadow:0 0 0 2px #ef444440;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 2px #ef444440}50%{box-shadow:0 0 0 4px #ef444426}}.explorer-item:hover .explorer-item__label{color:#1a1a2e}.explorer-item:hover .explorer-item__subtitle{color:#4b5563}.explorer-item--selected,.explorer-item--selected:hover{background:#1a1a2e;color:#fff}.explorer-item--selected .explorer-item__label,.explorer-item--selected:hover .explorer-item__label{color:#fff}.explorer-item--selected .explorer-item__subtitle,.explorer-item--selected:hover .explorer-item__subtitle,.explorer-item--selected .explorer-item__badge,.explorer-item--selected:hover .explorer-item__badge{color:#ffffffbf;background:#ffffff1f}.explorer-item--selected .explorer-item__chevron,.explorer-item--selected:hover .explorer-item__chevron{color:#ffffffbf}.explorer-item__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary, #64748b)}.explorer-item--selected .explorer-item__icon{color:#fff}.explorer-item__body{flex:1;min-width:0}.explorer-item__label{font-size:.88rem;font-weight:600;color:var(--text-primary, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explorer-item--selected .explorer-item__label{color:#fff}.explorer-item__subtitle{font-size:.76rem;color:var(--text-secondary, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.explorer-item__badge{font-size:.7rem;font-weight:600;color:var(--text-secondary, #64748b);background:var(--bg-subtle, #f1f5f9);padding:.1rem .4rem;border-radius:4px;flex-shrink:0}.explorer-item__chevron{color:var(--text-secondary, #cbd5e1);flex-shrink:0}.explorer-item__menu-wrap{position:relative;flex-shrink:0}.explorer-item__menu-btn{display:none;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:currentColor;cursor:pointer;border-radius:4px;opacity:.6}.explorer-item:hover .explorer-item__menu-btn,.explorer-item--selected .explorer-item__menu-btn{display:inline-flex}.explorer-item__menu-btn:hover{background:#00000014;opacity:1}.explorer-item--selected .explorer-item__menu-btn:hover{background:#ffffff26}.explorer-item__menu-backdrop{position:fixed;inset:0;z-index:50}.explorer-item__menu{position:absolute;right:0;top:calc(100% + 4px);z-index:60;min-width:180px;background:#fff;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:0 6px 24px #0000001f;padding:.25rem;color:var(--text-primary, #1a1a2e)}.explorer-item__menu-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:transparent;font-size:.85rem;color:var(--text-primary, #1a1a2e);cursor:pointer;border-radius:6px}.explorer-item__menu-item:hover{background:var(--bg-subtle, #f1f5f9)}.explorer-item__menu-item--danger{color:#dc2626}.explorer-item__menu-item--danger:hover{background:#fee2e2}.detail-panel__actions{display:flex;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc);flex-wrap:wrap}.detail-panel__action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border:1px solid var(--border-color, #e2e8f0);background:#fff;border-radius:6px;font-size:.8rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .15s}.detail-panel__action-btn:hover{background:var(--bg-subtle, #f1f5f9);border-color:var(--text-primary, #1a1a2e)}.detail-panel__action-btn--danger{color:#dc2626;border-color:#fecaca}.detail-panel__action-btn--danger:hover{background:#fee2e2;border-color:#dc2626}.detail-panel__body{flex:1;display:flex;flex-direction:column;overflow:hidden}.detail-panel__header{display:flex;gap:.75rem;padding:1rem 1.25rem;align-items:flex-start;border-bottom:1px solid var(--border-color, #e2e8f0)}.detail-panel__code-badge{padding:.35rem .6rem;background:#1a1a2e;color:#fff;border-radius:6px;font-size:.8rem;font-weight:700;letter-spacing:.03em;flex-shrink:0}.detail-panel__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;flex-shrink:0;overflow:hidden}.detail-panel__avatar img{width:100%;height:100%;object-fit:cover}.detail-panel__title-block{flex:1;min-width:0}.detail-panel__title{font-size:1rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0;line-height:1.3}.detail-panel__subtitle{font-size:.78rem;color:var(--text-secondary, #64748b);margin-top:3px;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.detail-panel__inactive-badge{display:inline-block;padding:.1rem .35rem;background:#fee2e2;color:#991b1b;border-radius:4px;font-size:.7rem;font-weight:600}.detail-panel__tabs{display:flex;gap:.25rem;padding:0 .75rem;border-bottom:1px solid var(--border-color, #e2e8f0);overflow-x:auto}.detail-panel__tab{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem .8rem;background:none;border:none;color:var(--text-secondary, #64748b);font-size:.82rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}.detail-panel__tab:hover{color:var(--text-primary, #1a1a2e)}.detail-panel__tab--active{color:#1a1a2e;border-bottom-color:#1a1a2e;font-weight:600}.detail-panel__tab-badge{font-size:.7rem;padding:.05rem .35rem;background:var(--bg-subtle, #f1f5f9);color:var(--text-secondary, #64748b);border-radius:999px;font-weight:600}.detail-panel__content{flex:1;overflow-y:auto;padding:1rem 1.25rem}.detail-panel__fields{margin:0;display:flex;flex-direction:column;gap:.5rem}.field-row{display:grid;grid-template-columns:120px 1fr;gap:.75rem;padding:.35rem 0;font-size:.85rem}.field-row--multiline{grid-template-columns:1fr;gap:.25rem}.field-row__label{color:var(--text-secondary, #64748b);font-weight:500;margin:0}.field-row__value{color:var(--text-primary, #1a1a2e);margin:0;word-break:break-word}.detail-panel__list{display:flex;flex-direction:column;gap:.35rem}.detail-list-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:#fff;transition:all .15s}.detail-list-item--clickable{cursor:pointer}.detail-list-item--clickable:hover{background:var(--bg-subtle, #f1f5f9);border-color:#1a1a2e}.detail-list-item__main{flex:1;min-width:0}.detail-list-item__label{font-size:.85rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.detail-list-item__sub{font-size:.74rem;color:var(--text-secondary, #94a3b8);margin-top:2px}.detail-list-item__meta{font-size:.78rem;color:var(--text-secondary, #64748b);font-weight:500}.detail-list-item__badge{font-size:.7rem;font-weight:600;color:var(--text-secondary, #64748b);background:var(--bg-subtle, #f1f5f9);padding:.1rem .45rem;border-radius:4px}.detail-panel__actionable-tab{display:flex;flex-direction:column;gap:.65rem}.detail-panel__tab-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.4rem .55rem;background:var(--bg-subtle, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #e2e8f0)}.detail-panel__tab-summary{font-size:.78rem;color:var(--text-secondary, #64748b);font-weight:600}.detail-panel__tab-add-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .7rem;background:#1a1a2e;color:#fff;border:none;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.detail-panel__tab-add-btn:hover{background:#4f46e5}.session-row--actionable{display:flex;align-items:center;gap:.55rem}.session-row__delete,.detail-list-item__delete{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid transparent;background:transparent;color:var(--text-secondary, #94a3b8);border-radius:5px;cursor:pointer;flex-shrink:0;transition:all .15s}.session-row__delete:hover,.detail-list-item__delete:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}.evaluation-status{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.evaluation-status--pending{background:#f3f4f6;color:#6b7280}.evaluation-status--open{background:#d1fae5;color:#065f46}.evaluation-status--closed{background:#fee2e2;color:#991b1b}.evaluation-toggle-btn{flex-shrink:0;padding:.4rem .75rem;border:1px solid var(--border-color, #e2e8f0);background:#fff;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s}.evaluation-toggle-btn--open{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.evaluation-toggle-btn--open:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5}.evaluation-toggle-btn--close{background:#fff;color:#dc2626;border-color:#fecaca}.evaluation-toggle-btn--close:hover:not(:disabled){background:#fef2f2}.evaluation-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.detail-panel__sessions{display:flex;flex-direction:column;gap:1rem}.session-month__label{font-size:.78rem;font-weight:700;color:var(--text-secondary, #94a3b8);text-transform:capitalize;letter-spacing:.02em;margin-bottom:.5rem}.session-row{display:flex;gap:.75rem;padding:.55rem .75rem;border-radius:6px;background:var(--bg-subtle, #f8fafc);margin-bottom:.35rem}.session-row__date{font-size:.78rem;font-weight:700;color:var(--text-primary, #1a1a2e);min-width:80px}.session-row__info{flex:1}.session-row__time{font-size:.82rem;color:var(--text-primary, #1a1a2e)}.session-row__meta{font-size:.72rem;color:var(--text-secondary, #94a3b8);margin-top:2px}.detail-panel__loading,.detail-panel__empty,.detail-panel__error{padding:2rem 1rem;text-align:center;font-size:.85rem;color:var(--text-secondary, #94a3b8)}.detail-panel__error{color:#dc2626}.entity-modal__header--danger{background:#fef2f2;border-bottom-color:#fecaca}.entity-modal__header--danger h3{color:#991b1b}.entity-modal__loading{text-align:center;padding:2rem;color:var(--text-secondary, #94a3b8)}.delete-modal__ue-header{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;background:var(--bg-subtle, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px}.delete-modal__code{font-size:.78rem;font-weight:700;color:#fff;background:#1a1a2e;padding:.2rem .5rem;border-radius:4px}.delete-modal__title{font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.delete-modal__option{border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.delete-modal__option--safe{border-color:#86efac;background:#f0fdf4}.delete-modal__option--danger{border-color:#fecaca;background:#fef2f2}.delete-modal__option-header{display:flex;gap:.6rem;align-items:flex-start}.delete-modal__option-header svg{flex-shrink:0;margin-top:2px}.delete-modal__option--safe .delete-modal__option-header svg{color:#16a34a}.delete-modal__option--danger .delete-modal__option-header svg{color:#dc2626}.delete-modal__option-header strong{display:block;font-size:.88rem;margin-bottom:.15rem}.delete-modal__option-header p{margin:0;font-size:.78rem;color:var(--text-secondary, #64748b)}.delete-modal__btn{align-self:flex-end;padding:.5rem 1.1rem;border:none;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s}.delete-modal__btn:disabled{opacity:.5;cursor:not-allowed}.delete-modal__btn--deactivate{background:#16a34a;color:#fff}.delete-modal__btn--deactivate:hover:not(:disabled){background:#15803d}.delete-modal__btn--force-delete{background:#dc2626;color:#fff}.delete-modal__btn--force-delete:hover:not(:disabled){background:#b91c1c}.delete-modal__cascade{padding:.85rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.delete-modal__cascade-title{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:#92400e;margin-bottom:.6rem}.delete-modal__cascade-title svg{flex-shrink:0;color:#f59e0b;margin-top:1px}.delete-modal__cascade-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.delete-modal__cascade-item{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#78350f;padding:.3rem .5rem;border-radius:4px}.delete-modal__cascade-item--danger{background:#fee2e2;color:#991b1b;font-weight:600}.delete-modal__cascade-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;background:#00000014;border-radius:4px;font-size:.75rem;font-weight:700;color:inherit}.delete-modal__cascade-item--danger .delete-modal__cascade-count{background:#dc2626;color:#fff}.delete-modal__confirm-input{display:flex;flex-direction:column;gap:.35rem}.delete-modal__confirm-input label{font-size:.78rem;color:#991b1b}.entity-modal-backdrop{position:fixed;inset:0;background:#0a0a148c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:fadeIn .15s ease-out}.entity-modal{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0000004d;overflow:hidden;animation:modalIn .2s cubic-bezier(.2,.9,.3,1.1)}.entity-modal--large{max-width:680px}.entity-modal--picker{max-width:460px;height:560px}@keyframes modalIn{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.entity-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.entity-modal__header h3{margin:0;font-size:1rem;font-weight:700;color:var(--text-primary, #1a1a2e)}.entity-modal__close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;border-radius:6px}.entity-modal__close:hover{background:#e2e8f0;color:var(--text-primary, #1a1a2e)}.entity-modal__body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:1.25rem;display:flex;flex-direction:column;gap:.9rem;min-height:0}.entity-modal__body::-webkit-scrollbar{width:8px}.entity-modal__body::-webkit-scrollbar-thumb{background:var(--border-color, #e2e8f0);border-radius:4px}.entity-modal__body::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.entity-modal__error{padding:.6rem .85rem;background:#fee2e2;color:#991b1b;border-radius:8px;font-size:.82rem;border:1px solid #fecaca}.entity-modal__field{display:flex;flex-direction:column;gap:.35rem}.entity-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.entity-modal__label{font-size:.78rem;font-weight:600;color:var(--text-secondary, #64748b)}.entity-modal__required{color:#dc2626;margin-left:2px}.entity-modal__input,.entity-modal__select,.entity-modal__textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.88rem;font-family:inherit;background:#fff;color:var(--text-primary, #1a1a2e);transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.entity-modal__textarea{resize:vertical;min-height:60px}.entity-modal__input:focus,.entity-modal__select:focus,.entity-modal__textarea:focus{outline:none;border-color:#1a1a2e;box-shadow:0 0 0 3px #1a1a2e14}.entity-modal__input:disabled,.entity-modal__select:disabled,.entity-modal__textarea:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.entity-modal__checkbox{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--text-primary, #1a1a2e);cursor:pointer}.entity-modal__checkbox input{width:16px;height:16px;cursor:pointer}.entity-modal__hint{margin:0;font-size:.72rem;color:var(--text-secondary, #94a3b8)}.entity-modal__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.entity-modal__btn{padding:.55rem 1.1rem;border-radius:8px;font-size:.85rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all .15s}.entity-modal__btn--cancel{background:#fff;color:var(--text-primary, #1a1a2e);border-color:var(--border-color, #e2e8f0)}.entity-modal__btn--cancel:hover{background:#f1f5f9}.entity-modal__btn--primary{background:#1a1a2e;color:#fff}.entity-modal__btn--primary:hover:not(:disabled){background:#2d2d44}.entity-modal__btn--primary:disabled{opacity:.6;cursor:not-allowed}.entity-modal__mode-tabs{display:flex;background:#f1f5f9;border-radius:8px;padding:3px;gap:2px}.entity-modal__mode-tab{flex:1;padding:.5rem .75rem;border:none;background:transparent;font-size:.82rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;border-radius:6px;transition:all .15s}.entity-modal__mode-tab--active{background:#fff;color:var(--text-primary, #1a1a2e);box-shadow:0 1px 3px #00000014}.entity-modal__day-picker{display:flex;gap:.3rem;flex-wrap:wrap}.entity-modal__day-btn{flex:1;min-width:44px;padding:.45rem .25rem;border:1px solid var(--border-color, #e2e8f0);background:#fff;border-radius:6px;font-size:.78rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s}.entity-modal__day-btn--active{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.entity-modal__day-btn:disabled{opacity:.5;cursor:not-allowed}.ue-picker{display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:.35rem;background:#fafbfc}.ue-picker__toolbar{display:flex;justify-content:space-between;align-items:center;padding:.4rem .6rem;font-size:.78rem;color:var(--text-secondary, #64748b);border-bottom:1px solid var(--border-color, #e2e8f0);margin-bottom:.25rem}.ue-picker__link{background:none;border:none;padding:0;color:var(--text-primary, #1a1a2e);font-weight:600;font-size:.78rem;cursor:pointer;text-decoration:underline}.ue-picker__link:hover{color:#4f46e5}.ue-picker__sep{margin:0 .5rem;color:var(--text-secondary, #cbd5e1)}.ue-picker__item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .65rem;border-radius:6px;cursor:pointer;transition:background .12s;border:1px solid transparent}.ue-picker__item:hover{background:#fff}.ue-picker__item--selected{background:#eef2ff;border-color:#c7d2fe}.ue-picker__item input[type=checkbox]{flex-shrink:0;margin-top:3px;width:16px;height:16px;cursor:pointer}.ue-picker__main{flex:1;min-width:0}.ue-picker__label{font-size:.85rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.ue-picker__meta{font-size:.74rem;color:var(--text-secondary, #64748b);margin-top:2px}.ue-picker__meta strong{color:var(--text-primary, #1a1a2e)}.picker-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.picker-list__empty{padding:1.5rem;text-align:center;color:var(--text-secondary, #94a3b8);font-size:.85rem}.picker-list__item{display:flex;flex-direction:column;gap:2px;padding:.55rem .75rem;border:1px solid transparent;background:transparent;border-radius:8px;text-align:left;cursor:pointer;transition:all .12s}.picker-list__item:hover{background:var(--bg-subtle, #f1f5f9)}.picker-list__item--selected{background:#1a1a2e;color:#fff}.picker-list__label{font-size:.88rem;font-weight:600;color:inherit}.picker-list__subtitle{font-size:.74rem;color:var(--text-secondary, #94a3b8)}.picker-list__item--selected .picker-list__subtitle{color:#ffffffbf}.command-palette-backdrop{position:fixed;inset:0;background:#0a0a148c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:300;animation:fadeIn .15s ease-out}.command-palette{background:#fff;border-radius:14px;width:100%;max-width:600px;max-height:65vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000059;overflow:hidden;animation:modalIn .2s cubic-bezier(.2,.9,.3,1.1)}.command-palette__input-wrap{display:flex;align-items:center;gap:.6rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.command-palette__icon{color:var(--text-secondary, #94a3b8);flex-shrink:0}.command-palette__input{flex:1;border:none;outline:none;font-size:1rem;background:transparent;color:var(--text-primary, #1a1a2e)}.command-palette__input::placeholder{color:#cbd5e1}.command-palette__kbd,.command-palette__footer kbd{font-size:.68rem;font-family:inherit;font-weight:600;padding:.1rem .4rem;border:1px solid var(--border-color, #e2e8f0);border-bottom-width:2px;border-radius:4px;background:#f8fafc;color:var(--text-secondary, #64748b)}.command-palette__results{flex:1;overflow-y:auto;padding:.35rem}.command-palette__empty{padding:2rem 1rem;text-align:center;color:var(--text-secondary, #94a3b8);font-size:.88rem}.command-palette__item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.55rem .75rem;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .1s}.command-palette__item--selected{background:#1a1a2e;color:#fff}.command-palette__item--selected .command-palette__subtitle{color:#ffffffbf}.command-palette__item--selected .command-palette__type-badge{background:#fff3;color:#fff}.command-palette__type{font-size:1.2rem;flex-shrink:0}.command-palette__body{flex:1;min-width:0}.command-palette__label{font-size:.88rem;font-weight:600;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette__subtitle{font-size:.74rem;color:var(--text-secondary, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette__type-badge{font-size:.68rem;font-weight:600;padding:.1rem .45rem;background:var(--bg-subtle, #f1f5f9);color:var(--text-secondary, #64748b);border-radius:4px;text-transform:uppercase}.command-palette__footer{padding:.55rem 1.25rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc);font-size:.72rem;color:var(--text-secondary, #94a3b8);display:flex;align-items:center;gap:.35rem}.admin-explorer__header-actions{display:flex;align-items:center;gap:.5rem}.admin-explorer__cmdk-btn{display:flex;align-items:center;gap:.45rem;padding:.45rem .8rem;background:var(--bg-subtle, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;color:var(--text-secondary, #64748b);font-size:.82rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.admin-explorer__cmdk-btn:hover{background:#fff;color:var(--text-primary, #1a1a2e);border-color:var(--text-primary, #1a1a2e)}.admin-explorer__cmdk-btn kbd{font-size:.72rem;font-weight:600;padding:.05rem .35rem;background:#fff;border:1px solid var(--border-color, #e2e8f0);border-bottom-width:2px;border-radius:4px;color:var(--text-secondary, #64748b)}.admin-explorer__toast{position:fixed;bottom:1.5rem;right:1.5rem;padding:.75rem 1.25rem;background:#1a1a2e;color:#fff;border-radius:10px;font-size:.85rem;font-weight:500;box-shadow:0 8px 24px #0003;z-index:100;max-width:420px}@media(max-width:768px){.explorer-columns{padding:.5rem}.explorer-column{flex:0 0 100%;max-width:100%}.explorer-column--detail{flex:0 0 100%}.admin-explorer__header-hint{display:none}}:root.dark .admin-explorer,.dark .admin-explorer{background:#0a0a14}:root.dark .admin-explorer__header,.dark .admin-explorer__header{background:#1a1a2e;border-color:#2d2d44}:root.dark .admin-explorer__title,:root.dark .explorer-breadcrumb__current,:root.dark .explorer-item__label,:root.dark .field-row__value,:root.dark .detail-list-item__label,:root.dark .session-row__date,:root.dark .detail-panel__title,.dark .admin-explorer__title,.dark .explorer-breadcrumb__current,.dark .explorer-item__label,.dark .field-row__value,.dark .detail-list-item__label,.dark .session-row__date,.dark .detail-panel__title{color:#f1f5f9}:root.dark .explorer-column,.dark .explorer-column{background:#1a1a2e;border-color:#2d2d44}:root.dark .explorer-column__header,:root.dark .detail-panel__actions,.dark .explorer-column__header,.dark .detail-panel__actions{background:#0f0f1e;border-color:#2d2d44}:root.dark .explorer-item:hover,.dark .explorer-item:hover{background:#2d2d44}:root.dark .explorer-item:hover .explorer-item__label,.dark .explorer-item:hover .explorer-item__label{color:#f1f5f9}:root.dark .explorer-item:hover .explorer-item__subtitle,.dark .explorer-item:hover .explorer-item__subtitle{color:#cbd5e1}:root.dark .explorer-item--selected,:root.dark .explorer-item--selected:hover,.dark .explorer-item--selected,.dark .explorer-item--selected:hover{background:#4f46e5;color:#fff}:root.dark .detail-list-item,.dark .detail-list-item{background:#0f0f1e;border-color:#2d2d44}:root.dark .session-row,:root.dark .explorer-item__badge,:root.dark .detail-panel__tab-badge,:root.dark .detail-list-item__badge,.dark .session-row,.dark .explorer-item__badge,.dark .detail-panel__tab-badge,.dark .detail-list-item__badge{background:#2d2d44;color:#94a3b8}:root.dark .entity-modal,:root.dark .command-palette,.dark .entity-modal,.dark .command-palette{background:#1a1a2e;color:#f1f5f9}:root.dark .entity-modal__header,:root.dark .entity-modal__footer,:root.dark .command-palette__footer,.dark .entity-modal__header,.dark .entity-modal__footer,.dark .command-palette__footer{background:#0f0f1e;border-color:#2d2d44}:root.dark .entity-modal__input,:root.dark .entity-modal__select,:root.dark .entity-modal__textarea,:root.dark .command-palette__input-wrap,.dark .entity-modal__input,.dark .entity-modal__select,.dark .entity-modal__textarea,.dark .command-palette__input-wrap{background:#0f0f1e;border-color:#2d2d44;color:#f1f5f9}:root.dark .entity-modal__input:disabled,.dark .entity-modal__input:disabled{background:#1a1a2e}:root.dark .entity-modal__header h3,:root.dark .entity-modal__label,:root.dark .picker-list__label,:root.dark .command-palette__label,.dark .entity-modal__header h3,.dark .entity-modal__label,.dark .picker-list__label,.dark .command-palette__label{color:#f1f5f9}:root.dark .entity-modal__btn--cancel,.dark .entity-modal__btn--cancel{background:#2d2d44;color:#f1f5f9;border-color:#3d3d5c}:root.dark .entity-modal__mode-tabs,.dark .entity-modal__mode-tabs{background:#0f0f1e}:root.dark .entity-modal__mode-tab--active,.dark .entity-modal__mode-tab--active{background:#2d2d44;color:#f1f5f9}:root.dark .picker-list__item:hover,:root.dark .command-palette__item:hover,.dark .picker-list__item:hover,.dark .command-palette__item:hover{background:#2d2d44}:root.dark .admin-explorer__cmdk-btn,.dark .admin-explorer__cmdk-btn{background:#2d2d44;color:#94a3b8;border-color:#3d3d5c}:root.dark .admin-explorer__cmdk-btn:hover,.dark .admin-explorer__cmdk-btn:hover{background:#1a1a2e;color:#f1f5f9}:root.dark .admin-explorer__cmdk-btn kbd,:root.dark .command-palette__kbd,:root.dark .command-palette__footer kbd,.dark .admin-explorer__cmdk-btn kbd,.dark .command-palette__kbd,.dark .command-palette__footer kbd{background:#0f0f1e;border-color:#2d2d44;color:#94a3b8}.admin-teacher-docs{padding:2rem;max-width:1200px;margin:0 auto}.admin-teacher-docs__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.admin-teacher-docs__title{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .25rem}.admin-teacher-docs__subtitle{font-size:.9rem;color:var(--text-secondary, #64748b);margin:0}.admin-teacher-docs__btn-add{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.admin-teacher-docs__btn-add:hover{background:#16213e}.admin-teacher-docs__filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.admin-teacher-docs__filter-select{padding:.45rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.85rem;color:var(--text-primary, #1a1a2e);background:#fff;min-width:160px}.admin-teacher-docs__stats{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.admin-teacher-docs__stat{background:#fff;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:.75rem 1.25rem;display:flex;align-items:center;gap:.5rem;font-size:.85rem}.admin-teacher-docs__stat-count{font-weight:700;font-size:1.1rem;color:var(--text-primary, #1a1a2e)}.admin-teacher-docs__stat-label{color:var(--text-secondary, #64748b)}.admin-teacher-docs__table-wrap{background:#fff;border:1px solid var(--border-color, #e2e8f0);border-radius:12px;overflow:hidden}.admin-teacher-docs__table{width:100%;border-collapse:collapse}.admin-teacher-docs__table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.admin-teacher-docs__table td{padding:.75rem 1rem;font-size:.88rem;color:var(--text-primary, #1a1a2e);border-bottom:1px solid #f1f5f9;vertical-align:middle}.admin-teacher-docs__table tr:last-child td{border-bottom:none}.admin-teacher-docs__table tr:hover td{background:#fafbfc}.admin-teacher-docs__file-info{display:flex;align-items:center;gap:.6rem}.admin-teacher-docs__file-icon{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.admin-teacher-docs__file-icon--pdf{background:#fee2e2;color:#dc2626}.admin-teacher-docs__file-icon--doc,.admin-teacher-docs__file-icon--docx{background:#dbeafe;color:#2563eb}.admin-teacher-docs__file-icon--xls,.admin-teacher-docs__file-icon--xlsx{background:#d1fae5;color:#059669}.admin-teacher-docs__file-icon--jpg,.admin-teacher-docs__file-icon--jpeg,.admin-teacher-docs__file-icon--png{background:#fef3c7;color:#d97706}.admin-teacher-docs__file-name{font-weight:500}.admin-teacher-docs__file-size{font-size:.78rem;color:var(--text-secondary, #94a3b8)}.admin-teacher-docs__category{display:inline-block;padding:.15rem .5rem;border-radius:6px;font-size:.78rem;font-weight:600}.admin-teacher-docs__category--contract{background:#dbeafe;color:#2563eb}.admin-teacher-docs__category--admin{background:#fef3c7;color:#d97706}.admin-teacher-docs__category--payment{background:#d1fae5;color:#059669}.admin-teacher-docs__category--resource{background:#ede9fe;color:#7c3aed}.admin-teacher-docs__status{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:6px;font-size:.78rem;font-weight:600}.admin-teacher-docs__status--draft{background:#f1f5f9;color:#64748b}.admin-teacher-docs__status--published{background:#d1fae5;color:#059669}.admin-teacher-docs__status--archived{background:#fee2e2;color:#dc2626}.admin-teacher-docs__teacher-name{font-weight:500}.admin-teacher-docs__global-badge{font-size:.75rem;color:#7c3aed;font-weight:600;background:#ede9fe;padding:.1rem .4rem;border-radius:4px}.admin-teacher-docs__actions{display:flex;gap:.35rem}.admin-teacher-docs__action-btn{width:30px;height:30px;border-radius:6px;border:1px solid var(--border-color, #e2e8f0);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary, #64748b);transition:all .15s}.admin-teacher-docs__action-btn:hover{background:#f1f5f9;color:var(--text-primary, #1a1a2e)}.admin-teacher-docs__action-btn--danger:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}.admin-teacher-docs__action-btn--publish:hover{background:#d1fae5;color:#059669;border-color:#a7f3d0}.admin-teacher-docs__empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary, #94a3b8)}.admin-teacher-docs__empty svg{margin-bottom:.75rem;opacity:.3}.admin-teacher-docs__empty p{margin:0;font-size:.95rem}.admin-teacher-docs__modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.admin-teacher-docs__modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.admin-teacher-docs__modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.admin-teacher-docs__modal-title{font-size:1.1rem;font-weight:700;margin:0}.admin-teacher-docs__modal-close{width:32px;height:32px;border:none;background:none;cursor:pointer;color:var(--text-secondary, #94a3b8);border-radius:8px;display:flex;align-items:center;justify-content:center}.admin-teacher-docs__modal-close:hover{background:#f1f5f9;color:var(--text-primary, #1a1a2e)}.admin-teacher-docs__modal-body{padding:1.5rem}.admin-teacher-docs__form-group{margin-bottom:1.25rem}.admin-teacher-docs__form-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.35rem}.admin-teacher-docs__form-input,.admin-teacher-docs__form-select,.admin-teacher-docs__form-textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #1a1a2e);box-sizing:border-box}.admin-teacher-docs__form-textarea{min-height:80px;resize:vertical}.admin-teacher-docs__form-input:focus,.admin-teacher-docs__form-select:focus,.admin-teacher-docs__form-textarea:focus{outline:none;border-color:#1a1a2e;box-shadow:0 0 0 2px #1a1a2e1a}.admin-teacher-docs__file-input-wrap{position:relative}.admin-teacher-docs__file-input{width:100%;padding:.55rem .75rem;border:2px dashed var(--border-color, #e2e8f0);border-radius:8px;font-size:.85rem;cursor:pointer;background:var(--bg-subtle, #f8fafc)}.admin-teacher-docs__file-input:hover{border-color:#1a1a2e}.admin-teacher-docs__form-hint{font-size:.78rem;color:var(--text-secondary, #94a3b8);margin-top:.25rem}.admin-teacher-docs__form-row{display:flex;gap:1rem}.admin-teacher-docs__form-row .admin-teacher-docs__form-group{flex:1}.admin-teacher-docs__modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e2e8f0)}.admin-teacher-docs__btn{padding:.55rem 1.2rem;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;border:1px solid var(--border-color, #e2e8f0);background:#fff;color:var(--text-primary, #1a1a2e);transition:all .15s}.admin-teacher-docs__btn:hover{background:#f1f5f9}.admin-teacher-docs__btn--primary{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.admin-teacher-docs__btn--primary:hover{background:#16213e}.admin-teacher-docs__btn--primary:disabled{opacity:.6;cursor:not-allowed}.admin-teacher-docs__checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.88rem;cursor:pointer}.admin-teacher-docs__checkbox-label input{width:16px;height:16px}.admin-teacher-docs__alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.88rem}.admin-teacher-docs__alert--success{background:#d1fae5;color:#059669}.admin-teacher-docs__alert--error{background:#fee2e2;color:#dc2626}.admin-teacher-docs__loading{text-align:center;padding:3rem;color:var(--text-secondary, #94a3b8)}@media(max-width:768px){.admin-teacher-docs{padding:1rem}.admin-teacher-docs__header,.admin-teacher-docs__filters{flex-direction:column}.admin-teacher-docs__table-wrap{overflow-x:auto}.admin-teacher-docs__form-row{flex-direction:column;gap:0}}.teachers-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.teachers-search{flex:1;min-width:250px;position:relative}.teachers-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-secondary, #94a3b8);pointer-events:none}.teachers-search .admin-form-input{padding-left:2.75rem;width:100%}.teachers-filter-group{display:flex;gap:.75rem;flex-wrap:wrap}.teachers-filter-group .admin-form-select{min-width:150px}.teachers-name-cell{display:flex;align-items:center;gap:.75rem}.teachers-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--gpe-blue, #2563eb) 0%,var(--gpe-purple, #7c3aed) 100%);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#fff;flex-shrink:0;overflow:hidden}.teachers-avatar img{width:100%;height:100%;object-fit:cover}.teachers-name-info{display:flex;flex-direction:column;gap:.15rem}.teachers-name-info strong{font-weight:600;color:var(--text-primary, #1a1a2e)}.teachers-last-login{font-size:.75rem;color:var(--text-secondary, #94a3b8)}.type-badge{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.type-badge.type-titulaire{background:var(--gpe-green-50, #d1fae5);color:var(--gpe-green, #059669)}.type-badge.type-vacataire{background:var(--gpe-orange-50, #ffedd5);color:var(--gpe-orange, #ea580c)}.teachers-ue-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 .5rem;background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb);border-radius:8px;font-size:.85rem;font-weight:600}.teachers-hours{display:flex;flex-direction:column;gap:.35rem;min-width:100px}.teachers-hours-text{font-size:.8rem;font-weight:500;color:var(--text-primary, #1a1a2e)}.teachers-hours-bar{height:6px;background:var(--border-color, #e2e8f0);border-radius:3px;overflow:hidden}.teachers-hours-progress{height:100%;background:linear-gradient(90deg,var(--gpe-green, #059669) 0%,var(--gpe-blue, #2563eb) 100%);border-radius:3px;transition:width .3s ease}.teachers-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem;padding:1.25rem;background:var(--card-bg, #fff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0)}.teachers-stat{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;border-radius:8px;background:var(--bg-subtle, #f8fafc)}.teachers-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e)}.teachers-stat-label{font-size:.8rem;color:var(--text-secondary, #64748b);text-align:center}@media(max-width:768px){.teachers-filters{flex-direction:column}.teachers-search{min-width:100%}.teachers-filter-group{width:100%}.teachers-filter-group .admin-form-select{flex:1;min-width:unset}.teachers-hours{min-width:80px}}[data-theme=dark] .teachers-name-info strong,[data-theme=dark] .teachers-hours-text,[data-theme=dark] .teachers-stat-value{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .teachers-stats{background:var(--card-bg, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .teachers-stat{background:var(--bg-subtle, #0f172a)}.teacher-detail-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary, #64748b);font-size:.9rem;text-decoration:none;margin-bottom:1rem;transition:color .2s ease}.teacher-detail-back:hover{color:var(--gpe-blue, #2563eb)}.teacher-detail-header{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--card-bg, #fff);border-radius:16px;border:1px solid var(--border-color, #e2e8f0)}.teacher-detail-avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--gpe-blue, #2563eb) 0%,var(--gpe-purple, #7c3aed) 100%);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.teacher-detail-avatar img{width:100%;height:100%;object-fit:cover}.teacher-detail-info{flex:1}.teacher-detail-name{font-size:1.75rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .5rem}.teacher-detail-email{font-size:1rem;color:var(--text-secondary, #64748b);margin-bottom:.75rem}.teacher-detail-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.teacher-detail-meta{font-size:.85rem;color:var(--text-secondary, #64748b);display:flex;flex-wrap:wrap;gap:1rem}.teacher-detail-meta-item{display:flex;align-items:center;gap:.35rem}.teacher-detail-actions{display:flex;gap:.75rem;flex-wrap:wrap}.teacher-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.teacher-stat-card{background:var(--card-bg, #fff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);padding:1.25rem;display:flex;align-items:center;gap:1rem}.teacher-stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.teacher-stat-icon.blue{background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb)}.teacher-stat-icon.green{background:var(--gpe-green-50, #d1fae5);color:var(--gpe-green, #059669)}.teacher-stat-icon.orange{background:var(--gpe-orange-50, #ffedd5);color:var(--gpe-orange, #ea580c)}.teacher-stat-icon.purple{background:var(--gpe-purple-50, #ede9fe);color:var(--gpe-purple, #7c3aed)}.teacher-stat-content{flex:1}.teacher-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);line-height:1.2}.teacher-stat-label{font-size:.85rem;color:var(--text-secondary, #64748b)}.teacher-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0);padding-bottom:0}.teacher-tab{padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.95rem;font-weight:500;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;margin-bottom:-1px}.teacher-tab:hover{color:var(--gpe-blue, #2563eb)}.teacher-tab.active{color:var(--gpe-blue, #2563eb);border-bottom-color:var(--gpe-blue, #2563eb)}.teacher-tab-badge{background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb);padding:.15rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600}.teacher-tab-content{background:var(--card-bg, #fff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);padding:1.5rem}.teacher-ue-table{width:100%;border-collapse:collapse}.teacher-ue-table th,.teacher-ue-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0)}.teacher-ue-table th{font-weight:600;color:var(--text-secondary, #64748b);font-size:.85rem;text-transform:uppercase;letter-spacing:.02em;background:var(--bg-subtle, #f8fafc)}.teacher-ue-table tr:last-child td{border-bottom:none}.teacher-ue-code{font-family:monospace;font-weight:600;color:var(--gpe-blue, #2563eb)}.teacher-ue-title{font-weight:500;color:var(--text-primary, #1a1a2e)}.teacher-ue-role{display:inline-flex;padding:.2rem .6rem;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase}.teacher-ue-role.principal{background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb)}.teacher-ue-role.intervenant{background:var(--gpe-orange-50, #ffedd5);color:var(--gpe-orange, #ea580c)}.teacher-agenda-list{display:flex;flex-direction:column;gap:1rem}.teacher-agenda-item{display:flex;gap:1rem;padding:1rem;background:var(--bg-subtle, #f8fafc);border-radius:10px;border-left:4px solid var(--gpe-blue, #2563eb)}.teacher-agenda-date{min-width:80px;text-align:center;padding:.5rem;background:var(--card-bg, #fff);border-radius:8px}.teacher-agenda-day{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);line-height:1}.teacher-agenda-month{font-size:.75rem;color:var(--text-secondary, #64748b);text-transform:uppercase}.teacher-agenda-info{flex:1}.teacher-agenda-title{font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.25rem}.teacher-agenda-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--text-secondary, #64748b)}.teacher-agenda-meta-item{display:flex;align-items:center;gap:.35rem}.teacher-documents-section{margin-bottom:1.5rem}.teacher-documents-section:last-child{margin-bottom:0}.teacher-documents-section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.teacher-documents-list{display:flex;flex-direction:column;gap:.5rem}.teacher-document-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-subtle, #f8fafc);border-radius:8px;transition:background .2s ease}.teacher-document-item:hover{background:var(--border-color, #e2e8f0)}.teacher-document-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.teacher-document-icon.pdf{background:#fee2e2;color:#dc2626}.teacher-document-icon.word{background:#dbeafe;color:#2563eb}.teacher-document-icon.excel{background:#d1fae5;color:#059669}.teacher-document-icon.image{background:#fef3c7;color:#d97706}.teacher-document-icon.default{background:#f1f5f9;color:#64748b}.teacher-document-info{flex:1;min-width:0}.teacher-document-name{font-weight:500;color:var(--text-primary, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-document-meta{font-size:.75rem;color:var(--text-secondary, #64748b)}.teacher-document-action{padding:.5rem;background:transparent;border:none;color:var(--gpe-blue, #2563eb);border-radius:6px;cursor:pointer;transition:background .2s ease}.teacher-document-action:hover{background:var(--gpe-blue-50, #dbeafe)}.teacher-activity-timeline{position:relative;padding-left:1.5rem}.teacher-activity-timeline:before{content:"";position:absolute;left:0;top:.5rem;bottom:.5rem;width:2px;background:var(--border-color, #e2e8f0)}.teacher-activity-item{position:relative;padding-bottom:1.25rem}.teacher-activity-item:last-child{padding-bottom:0}.teacher-activity-item:before{content:"";position:absolute;left:-1.75rem;top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--gpe-blue, #2563eb);border:2px solid var(--card-bg, #fff)}.teacher-activity-content{background:var(--bg-subtle, #f8fafc);padding:.75rem 1rem;border-radius:8px}.teacher-activity-text{color:var(--text-primary, #1a1a2e);margin-bottom:.25rem}.teacher-activity-date{font-size:.75rem;color:var(--text-secondary, #64748b)}.teacher-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.teacher-stat-progress{margin-top:.5rem;height:4px;background:var(--border-color, #e2e8f0);border-radius:2px;overflow:hidden}.teacher-stat-progress-bar{height:100%;background:linear-gradient(90deg,var(--gpe-green, #059669),var(--gpe-blue, #2563eb));border-radius:2px;transition:width .3s ease}.teacher-detail-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.teacher-detail-content{background:var(--card-bg, #fff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);padding:1.5rem;min-height:300px}.teacher-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.teacher-section-header h2{font-size:1.1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0}.teacher-empty-section{text-align:center;padding:2rem;color:var(--text-secondary, #64748b);background:var(--bg-subtle, #f8fafc);border-radius:8px}.teacher-empty-section p{margin:0}.teacher-ue-cell{display:flex;flex-direction:column;gap:.15rem}.teacher-ue-cell strong{font-family:monospace;font-weight:600;color:var(--gpe-blue, #2563eb)}.teacher-ue-cell span{font-size:.85rem;color:var(--text-secondary, #64748b)}.role-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase}.role-badge.role-responsable{background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb)}.role-badge.role-participant{background:var(--gpe-orange-50, #ffedd5);color:var(--gpe-orange, #ea580c)}.teacher-sessions-list{display:flex;flex-direction:column;gap:.75rem}.teacher-session-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--bg-subtle, #f8fafc);border-radius:10px;border-left:4px solid var(--gpe-blue, #2563eb)}.teacher-session-date{display:flex;flex-direction:column;align-items:center;min-width:50px}.teacher-session-day{font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.teacher-session-month{font-size:.7rem;color:var(--text-secondary, #64748b);text-transform:uppercase}.teacher-session-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.teacher-session-info strong{font-weight:600;color:var(--text-primary, #1a1a2e)}.teacher-session-info span{font-size:.85rem;color:var(--text-secondary, #64748b)}.teacher-session-room{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--text-secondary, #64748b)}.teacher-session-type{padding:.25rem .5rem;background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb);font-size:.75rem;font-weight:600;border-radius:6px;text-transform:uppercase}.teacher-documents-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.teacher-documents-category h3{font-size:.95rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.teacher-documents-category ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.teacher-activity-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.teacher-activity-icon.grade{background:var(--gpe-green-50, #d1fae5);color:var(--gpe-green, #059669)}.teacher-activity-icon.attendance{background:var(--gpe-blue-50, #dbeafe);color:var(--gpe-blue, #2563eb)}.teacher-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary, #64748b)}.teacher-empty-icon{width:64px;height:64px;margin:0 auto 1rem;opacity:.5}.teacher-empty-text{font-size:.95rem}.teacher-modal{background:var(--card-bg, #fff);border-radius:16px;width:100%;max-width:400px;padding:1.5rem}.teacher-modal-title{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:1rem}.teacher-modal-text{color:var(--text-secondary, #64748b);margin-bottom:1.5rem}.teacher-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}@media(max-width:1024px){.teacher-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.teacher-detail-header{flex-direction:column;align-items:center;text-align:center}.teacher-detail-badges,.teacher-detail-meta{justify-content:center}.teacher-detail-actions{width:100%;justify-content:center}.teacher-stats-grid{grid-template-columns:1fr}.teacher-tabs{flex-wrap:wrap}.teacher-tab{flex:1;min-width:100px;justify-content:center}.teacher-agenda-item{flex-direction:column}.teacher-agenda-date{min-width:auto;display:flex;gap:.5rem;align-items:baseline;padding:0;background:transparent}}[data-theme=dark] .teacher-detail-header,[data-theme=dark] .teacher-stat-card,[data-theme=dark] .teacher-tab-content,[data-theme=dark] .teacher-modal{background:var(--card-bg, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .teacher-detail-name,[data-theme=dark] .teacher-stat-value,[data-theme=dark] .teacher-ue-title,[data-theme=dark] .teacher-agenda-title,[data-theme=dark] .teacher-document-name,[data-theme=dark] .teacher-activity-text,[data-theme=dark] .teacher-modal-title{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .teacher-ue-table th,[data-theme=dark] .teacher-agenda-item,[data-theme=dark] .teacher-document-item,[data-theme=dark] .teacher-activity-content{background:var(--bg-subtle, #0f172a)}[data-theme=dark] .teacher-agenda-date{background:var(--card-bg, #1e293b)}[data-theme=dark] .teacher-agenda-day{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .teacher-activity-item:before{border-color:var(--card-bg, #1e293b)}[data-theme=dark] .teacher-detail-content{background:var(--card-bg, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .teacher-section-header h2{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .teacher-empty-section{background:var(--bg-subtle, #0f172a)}[data-theme=dark] .teacher-ue-cell strong{color:var(--gpe-blue, #60a5fa)}[data-theme=dark] .teacher-session-item{background:var(--bg-subtle, #0f172a)}[data-theme=dark] .teacher-session-day,[data-theme=dark] .teacher-session-info strong,[data-theme=dark] .teacher-documents-category h3{color:var(--text-primary, #f1f5f9)}.students-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.students-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;transition:all .2s ease;position:relative}.students-stat-card.clickable{cursor:pointer}.students-stat-card.clickable:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.students-stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.students-stat-icon.blue{background:#3b82f61a;color:#3b82f6}.students-stat-icon.green{background:#10b9811a;color:#10b981}.students-stat-icon.purple{background:#8b5cf61a;color:#8b5cf6}.students-stat-icon.orange{background:#f59e0b1a;color:#f59e0b}.students-stat-icon.active{background:var(--primary-color);color:#fff}.students-stat-content{display:flex;flex-direction:column;gap:.25rem}.students-stat-content .students-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1}.students-stat-content .students-stat-label{font-size:.8rem;color:var(--text-secondary)}.students-stat-active-indicator{position:absolute;top:.5rem;right:.5rem;width:20px;height:20px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600}.students-filters{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.students-search{display:flex;align-items:center;gap:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:0 1rem;transition:border-color .2s,box-shadow .2s}.students-search:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b001a}.students-search svg{color:var(--text-tertiary);flex-shrink:0}.students-search input{flex:1;border:none;background:transparent;padding:.875rem 0;font-size:.9rem;color:var(--text-primary)}.students-search input:focus{outline:none}.students-search input::placeholder{color:var(--text-tertiary)}.students-search-clear{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.students-search-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}.students-filter-group{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.students-filter-select{padding:.625rem 2rem .625rem .875rem;font-size:.85rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-width:150px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .2s}.students-filter-select:hover{border-color:var(--primary-color)}.students-filter-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b001a}.students-filter-clear{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.85rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.students-filter-clear:hover{border-color:#ef4444;color:#ef4444;background:#ef44440d}.students-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px}.students-active-filters-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.students-filter-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem .25rem .75rem;font-size:.8rem;background:var(--primary-color);color:#fff;border-radius:20px;font-weight:500}.students-filter-chip button{background:none;border:none;color:#fff;cursor:pointer;padding:0;font-size:1rem;line-height:1;opacity:.8;transition:opacity .2s}.students-filter-chip button:hover{opacity:1}.students-results-count{margin-left:auto;font-size:.85rem;color:var(--text-secondary);font-weight:500}.students-table-card{padding:0;overflow:hidden}.students-table-wrapper{overflow-x:auto}.students-table th{text-align:left;padding:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap}.students-th-checkbox{width:40px}.students-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.students-th-sortable:hover{color:var(--primary-color)}.students-th-sortable span{display:inline-flex;align-items:center;gap:.375rem}.students-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.students-table tr:hover{background:var(--bg-secondary)}.students-table tr.selected{background:#ff6b000d}.students-table tr.selected:hover{background:#ff6b0014}.students-td-checkbox{width:40px}.students-td-checkbox input,.students-th-checkbox input{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.students-bulk-actions{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--primary-color);color:#fff;font-size:.9rem;font-weight:500}.students-bulk-actions .btn{padding:.375rem .75rem;font-size:.8rem}.students-name-cell{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.students-name-cell:hover .students-name-info strong{color:var(--primary-color)}.students-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.students-avatar img{width:100%;height:100%;object-fit:cover}.students-avatar span{color:#fff;font-weight:600;font-size:.85rem}.students-name-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.students-name-info strong{color:var(--text-primary);font-size:.9rem;transition:color .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.students-email{color:var(--text-tertiary);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.students-program-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:600;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.students-no-data{color:var(--text-tertiary);font-size:.9rem}.level-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:600;background:linear-gradient(135deg,#ff6b00,#e55a00);color:#fff}.modality-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500}.modality-badge.modality-presentiel{background:#10b9811a;color:#059669}.modality-badge.modality-distanciel{background:#3b82f61a;color:#2563eb}.modality-badge.modality-enligne{background:#8b5cf61a;color:#7c3aed}.students-attendance{display:flex;align-items:center;gap:.5rem;min-width:100px}.students-attendance-bar{flex:1;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;min-width:50px}.students-attendance-progress{height:100%;border-radius:3px;transition:width .3s ease}.students-attendance-progress.good{background:linear-gradient(90deg,#10b981,#34d399)}.students-attendance-progress.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.students-attendance-progress.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.students-attendance-text{font-size:.8rem;font-weight:600;min-width:36px;text-align:right}.students-attendance-text.good{color:#10b981}.students-attendance-text.warning{color:#f59e0b}.students-attendance-text.danger{color:#ef4444}.payment-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500}.payment-badge.payment-paid{background:#10b9811a;color:#059669}.payment-badge.payment-partial{background:#f59e0b1a;color:#d97706}.payment-badge.payment-unpaid{background:#ef44441a;color:#dc2626}.payment-badge.payment-overdue{background:#ef444426;color:#b91c1c}.status-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500}.status-badge.active{background:#10b9811a;color:#059669}.status-badge.inactive{background:#6b72801a;color:#6b7280}.students-last-login{font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.students-actions{display:flex;gap:.375rem}.students-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:all .2s;text-decoration:none;background:var(--bg-secondary);color:var(--text-secondary)}.students-action-btn:hover{transform:translateY(-1px)}.students-action-btn.view:hover{background:#3b82f61a;color:#3b82f6}.students-action-btn.edit:hover{background:#f59e0b1a;color:#f59e0b}.students-action-btn.activate:hover{background:#10b9811a;color:#10b981}.students-action-btn.deactivate:hover{background:#ef44441a;color:#ef4444}.students-table-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.students-table-count{font-size:.85rem;color:var(--text-secondary)}@media(max-width:1280px){.students-stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:1024px){.students-stats-grid{grid-template-columns:repeat(3,1fr)}.students-email{max-width:160px}}@media(max-width:768px){.students-stats-grid{grid-template-columns:repeat(2,1fr)}.students-stat-card{padding:1rem}.students-stat-icon{width:40px;height:40px}.students-stat-content .students-stat-value{font-size:1.25rem}.students-filter-group{flex-direction:column;align-items:stretch}.students-filter-select{min-width:100%}.students-filter-clear{justify-content:center}.students-active-filters{flex-direction:column;align-items:flex-start}.students-results-count{margin-left:0;margin-top:.5rem}}[data-theme=dark] .students-stat-card{background:var(--bg-secondary)}[data-theme=dark] .students-stat-icon.blue{background:#3b82f633}[data-theme=dark] .students-stat-icon.green{background:#10b98133}[data-theme=dark] .students-stat-icon.purple{background:#8b5cf633}[data-theme=dark] .students-stat-icon.orange{background:#f59e0b33}[data-theme=dark] .students-search{background:var(--bg-secondary)}[data-theme=dark] .students-filter-select{background:var(--bg-secondary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}[data-theme=dark] .students-active-filters{background:var(--bg-tertiary)}[data-theme=dark] .students-avatar{background:linear-gradient(135deg,var(--primary-color),var(--primary-light))}[data-theme=dark] .students-program-badge,[data-theme=dark] .students-table th,[data-theme=dark] .students-action-btn,[data-theme=dark] .students-table-footer{background:var(--bg-tertiary)}[data-theme=dark] .modality-badge.modality-presentiel{background:#10b98133}[data-theme=dark] .modality-badge.modality-distanciel{background:#3b82f633}[data-theme=dark] .modality-badge.modality-enligne{background:#8b5cf633}[data-theme=dark] .payment-badge.payment-paid{background:#10b98133}[data-theme=dark] .payment-badge.payment-partial{background:#f59e0b33}[data-theme=dark] .payment-badge.payment-unpaid{background:#ef444433}[data-theme=dark] .status-badge.active{background:#10b98133}[data-theme=dark] .status-badge.inactive{background:#6b728033}.student-detail-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.9rem;margin-bottom:1.5rem;text-decoration:none;transition:color .2s}.student-detail-back:hover{color:var(--primary-color)}.student-detail-header{display:flex;align-items:flex-start;gap:1.5rem;padding:1.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem}.student-detail-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.student-detail-avatar img{width:100%;height:100%;object-fit:cover}.student-detail-avatar span{color:#fff;font-weight:700;font-size:1.5rem}.student-detail-info{flex:1}.student-detail-name{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.student-detail-email{color:var(--text-secondary);font-size:.95rem;margin:0 0 .75rem}.student-detail-badges{display:flex;flex-wrap:wrap;gap:.5rem}.student-detail-actions{display:flex;gap:.75rem}.student-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.student-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px}.student-stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-stat-icon.blue{background:#3b82f61a;color:#3b82f6}.student-stat-icon.green{background:#10b9811a;color:#10b981}.student-stat-icon.purple{background:#8b5cf61a;color:#8b5cf6}.student-stat-icon.orange{background:#f59e0b1a;color:#f59e0b}.student-stat-content{display:flex;flex-direction:column}.student-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.student-stat-label{font-size:.8rem;color:var(--text-secondary)}.student-detail-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:.5rem}.student-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;background:transparent;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.student-tab:hover{background:var(--bg-secondary);color:var(--text-primary)}.student-tab.active{background:var(--primary-color);color:#fff}.student-detail-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.student-section{animation:fadeIn .2s ease}.student-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.student-section-header h2{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.student-average,.student-total-paid{font-size:.9rem;color:var(--text-secondary)}.student-average strong,.student-total-paid strong{color:var(--primary-color);font-weight:600}.student-empty{text-align:center;padding:3rem;color:var(--text-tertiary)}.student-subsection-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:1.5rem 0 1rem}.student-enrollments-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.student-enrollment-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.student-enrollment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.student-enrollment-year{font-weight:700;color:var(--primary-color);font-size:1rem}.enrollment-status-badge{padding:.25rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500}.enrollment-status-badge.status-active{background:#10b9811a;color:#059669}.enrollment-status-badge.status-enrolled{background:#3b82f61a;color:#2563eb}.enrollment-status-badge.status-passed,.enrollment-status-badge.status-graduated{background:#10b98126;color:#047857}.enrollment-status-badge.status-failed{background:#ef44441a;color:#dc2626}.enrollment-status-badge.status-suspended,.enrollment-status-badge.status-withdrawn{background:#6b72801a;color:#4b5563}.student-enrollment-details{display:flex;flex-direction:column;gap:.5rem}.student-enrollment-row{display:flex;justify-content:space-between;font-size:.85rem}.student-enrollment-row .label{color:var(--text-secondary)}.student-enrollment-row .value{color:var(--text-primary);font-weight:500}.student-enrollment-eligible{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);color:#10b981;font-size:.85rem;font-weight:500}.student-grade-ue{display:flex;flex-direction:column;gap:.15rem}.student-grade-ue strong{color:var(--text-primary)}.student-grade-ue span{color:var(--text-secondary);font-size:.8rem}.grade-score{font-weight:600}.grade-score.passing{color:#10b981}.grade-score.failing{color:#ef4444}.grade-retake{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.grade-status-badge{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500;text-transform:capitalize}.grade-status-badge.status-published{background:#10b9811a;color:#059669}.grade-status-badge.status-draft{background:#6b72801a;color:#6b7280}.grade-status-badge.status-submitted{background:#3b82f61a;color:#2563eb}.student-attendance-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.attendance-stat{text-align:center;padding:1rem;background:var(--bg-secondary);border-radius:8px}.attendance-stat-value{display:block;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.attendance-stat-label{font-size:.75rem;color:var(--text-secondary)}.attendance-stat.present .attendance-stat-value{color:#10b981}.attendance-stat.late .attendance-stat-value{color:#f59e0b}.attendance-stat.absent .attendance-stat-value{color:#ef4444}.attendance-stat.justified .attendance-stat-value{color:#3b82f6}.attendance-stat.rate .attendance-stat-value{color:var(--primary-color)}.student-attendance-list{display:flex;flex-direction:column;gap:.75rem}.student-attendance-record{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px}.attendance-status-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.attendance-status-icon.status-present{background:#10b9811a;color:#10b981}.attendance-status-icon.status-absent{background:#ef44441a;color:#ef4444}.attendance-status-icon.status-late{background:#f59e0b1a;color:#f59e0b}.attendance-status-icon.status-justified{background:#3b82f61a;color:#3b82f6}.attendance-record-info{display:flex;flex-direction:column;gap:.15rem}.attendance-record-status{font-weight:500;color:var(--text-primary)}.attendance-record-session{font-size:.8rem;color:var(--text-secondary)}.payment-status-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.payment-status-badge.status-completed{background:#10b9811a;color:#059669}.payment-status-badge.status-pending{background:#f59e0b1a;color:#d97706}.payment-status-badge.status-failed{background:#ef44441a;color:#dc2626}.payment-status-badge.status-refunded{background:#6b72801a;color:#6b7280}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-primary);border-radius:12px;padding:1.5rem;max-width:400px;width:90%}.modal-content h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.modal-content p{margin:0 0 1.5rem;color:var(--text-secondary)}@media(max-width:1024px){.student-detail-stats{grid-template-columns:repeat(2,1fr)}.student-attendance-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.student-detail-header{flex-direction:column;align-items:center;text-align:center}.student-detail-badges{justify-content:center}.student-detail-actions{width:100%;flex-direction:column}.student-detail-stats{grid-template-columns:1fr}.student-detail-tabs{flex-wrap:wrap}.student-tab{flex:1;justify-content:center;min-width:45%}.student-attendance-stats{grid-template-columns:repeat(2,1fr)}.student-enrollments-list{grid-template-columns:1fr}}[data-theme=dark] .student-detail-avatar{background:linear-gradient(135deg,var(--primary-color),var(--primary-light))}[data-theme=dark] .student-stat-icon.blue{background:#3b82f633}[data-theme=dark] .student-stat-icon.green{background:#10b98133}[data-theme=dark] .student-stat-icon.purple{background:#8b5cf633}[data-theme=dark] .student-stat-icon.orange{background:#f59e0b33}[data-theme=dark] .student-enrollment-card,[data-theme=dark] .attendance-stat,[data-theme=dark] .student-attendance-record{background:var(--bg-tertiary)}.admin-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.admin-breadcrumb-link{color:var(--gpe-blue);text-decoration:none;transition:color var(--transition)}.admin-breadcrumb-link:hover{color:var(--gpe-blue-600);text-decoration:underline}.admin-breadcrumb-separator{color:var(--gray-400)}.import-wizard-steps{display:flex;align-items:center;justify-content:center;margin-bottom:2rem;padding:1.5rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);flex-wrap:wrap;gap:.5rem}.import-wizard-step{display:flex;align-items:center;gap:.75rem}.import-wizard-step-indicator{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:.875rem;font-weight:600;background:var(--gray-100);color:var(--gray-500);transition:all var(--transition);flex-shrink:0}.import-wizard-step.active .import-wizard-step-indicator{background:var(--gpe-blue);color:var(--white)}.import-wizard-step.completed .import-wizard-step-indicator{background:var(--gpe-green);color:var(--white)}.import-wizard-step-label{font-size:.875rem;font-weight:500;color:var(--gray-500);white-space:nowrap}.import-wizard-step.active .import-wizard-step-label{color:var(--gray-900)}.import-wizard-step.completed .import-wizard-step-label{color:var(--gpe-green)}.import-wizard-step-connector{width:40px;height:2px;background:var(--gray-200);margin:0 .5rem}.import-wizard-step.completed+.import-wizard-step .import-wizard-step-connector,.import-wizard-step.completed .import-wizard-step-connector{background:var(--gpe-green)}@media(max-width:768px){.import-wizard-steps{flex-direction:column;align-items:flex-start;gap:1rem}.import-wizard-step-connector{display:none}}.import-step-content{max-width:800px;margin:0 auto;padding:1rem 0}.import-step-title{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin-bottom:.5rem;text-align:center}.import-step-description{font-size:.9375rem;color:var(--gray-500);text-align:center;margin-bottom:2rem}.import-role-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.import-role-card{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);text-align:center}.import-role-card:hover{border-color:var(--gpe-blue);box-shadow:var(--shadow-md);transform:translateY(-2px)}.import-role-card:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.import-role-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-lg)}.import-role-icon.student{background:var(--gpe-blue-50);color:var(--gpe-blue)}.import-role-icon.teacher{background:var(--gpe-purple-50);color:var(--gpe-purple)}.import-role-card h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.import-role-card p{font-size:.875rem;color:var(--gray-500);margin:0}.import-program-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.import-program-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);text-align:left;width:100%}.import-program-card:hover{border-color:var(--gpe-blue);background:var(--gray-50)}.import-program-card:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 4px var(--gpe-blue-50)}.import-program-badge{display:flex;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 .75rem;border-radius:var(--radius-md);font-size:.75rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.import-program-badge.blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.import-program-badge.green{background:var(--gpe-green-50);color:var(--gpe-green)}.import-program-badge.purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.import-program-badge.orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.import-program-info{flex:1;min-width:0}.import-program-info h3{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-program-info p{font-size:.8125rem;color:var(--gray-500);margin:0}.import-program-card>svg{color:var(--gray-400);flex-shrink:0}.import-template-section{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--gpe-blue-50);border-radius:var(--radius-md);flex-wrap:wrap}.import-template-hint{font-size:.8125rem;color:var(--gpe-blue-600)}.import-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;padding:2rem;border:2px dashed var(--gray-300);border-radius:var(--radius-lg);background:var(--gray-50);cursor:pointer;transition:all var(--transition)}.import-dropzone:hover{border-color:var(--gpe-blue);background:var(--gpe-blue-50)}.import-dropzone.dragging{border-color:var(--gpe-blue);background:var(--gpe-blue-50);border-style:solid}.import-dropzone.has-file{border-style:solid;border-color:var(--gpe-green);background:var(--gpe-green-50)}.import-dropzone-icon{color:var(--gray-400);margin-bottom:1rem}.import-dropzone.dragging .import-dropzone-icon,.import-dropzone:hover .import-dropzone-icon{color:var(--gpe-blue)}.import-dropzone-text{font-size:.9375rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.import-dropzone-hint{font-size:.8125rem;color:var(--gray-500)}.import-dropzone-validating{display:flex;flex-direction:column;align-items:center;gap:1rem}.import-dropzone-validating p{color:var(--gray-600);font-size:.9375rem}.import-dropzone-file{display:flex;align-items:center;gap:1rem;padding:.5rem;width:100%;max-width:400px}.import-file-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--white);border-radius:var(--radius-md);color:var(--gpe-green);flex-shrink:0}.import-file-info{flex:1;min-width:0;text-align:left}.import-file-name{font-size:.9375rem;font-weight:500;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 .25rem}.import-file-size{font-size:.8125rem;color:var(--gray-500);margin:0}.import-file-remove{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--white);border:none;border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;transition:all var(--transition);flex-shrink:0}.import-file-remove:hover{background:var(--gpe-rose-50);color:var(--gpe-rose)}.import-validation-summary{margin-bottom:1.5rem}.import-summary-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:var(--radius-lg)}.import-summary-card.success{background:var(--gpe-green-50);border:1px solid var(--gpe-green-200, #a7f3d0)}.import-summary-card.warning{background:var(--gpe-orange-50);border:1px solid var(--gpe-orange-200, #fed7aa)}.import-summary-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;flex-shrink:0}.import-summary-card.success .import-summary-icon{background:var(--gpe-green);color:var(--white)}.import-summary-card.warning .import-summary-icon{background:var(--gpe-orange);color:var(--white)}.import-summary-content h3{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem}.import-summary-content p{font-size:.8125rem;color:var(--gray-600);margin:0}.import-preview-table-container{max-height:400px;overflow:auto;border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:1.5rem}.import-preview-table tbody tr.error-row{background:var(--gpe-rose-50)}.import-preview-table tbody tr.error-row:hover{background:var(--gpe-rose-100, #ffe4e6)}.status-badge.error{background:var(--gpe-rose-50);color:var(--gpe-rose)}.import-errors-section{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem}.import-errors-section h3{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.import-errors-section h3 svg{color:var(--gpe-rose)}.import-error-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.import-error-item{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem;background:var(--white);border-radius:var(--radius-md);font-size:.8125rem}.import-error-line{font-weight:600;color:var(--gpe-rose);white-space:nowrap}.import-error-field{padding:.125rem .375rem;background:var(--gray-100);border-radius:var(--radius-sm);font-family:monospace;font-size:.75rem;color:var(--gray-700)}.import-error-message{color:var(--gray-600);flex:1}.import-error-value{padding:.125rem .375rem;background:var(--gpe-rose-50);border-radius:var(--radius-sm);font-family:monospace;font-size:.75rem;color:var(--gpe-rose)}.import-step-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}.import-step-actions .btn{display:flex;align-items:center;gap:.5rem}.import-progress-content{text-align:center;padding:3rem 1rem}.import-progress-icon{margin-bottom:1.5rem}.admin-loading-spinner.large{width:48px;height:48px;border-width:4px}.import-progress-bar{width:100%;max-width:400px;height:8px;background:var(--gray-200);border-radius:var(--radius-full);margin:2rem auto 1rem;overflow:hidden}.import-progress-fill{height:100%;background:var(--gradient-blue);border-radius:var(--radius-full);transition:width .3s ease}.import-progress-text{font-size:.875rem;font-weight:600;color:var(--gpe-blue)}.import-result-header{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem;padding:2rem;border-radius:var(--radius-lg)}.import-result-header.success{background:var(--gpe-green-50)}.import-result-header.partial{background:var(--gpe-orange-50)}.import-result-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%}.import-result-header.success .import-result-icon{background:var(--gpe-green);color:var(--white)}.import-result-header.partial .import-result-icon{background:var(--gpe-orange);color:var(--white)}.import-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.import-result-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem;background:var(--gray-50);border-radius:var(--radius-lg);text-align:center}.import-result-stat.success{background:var(--gpe-green-50)}.import-result-stat.error{background:var(--gpe-rose-50)}.import-result-stat-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.import-result-stat.success .import-result-stat-value{color:var(--gpe-green)}.import-result-stat.error .import-result-stat-value{color:var(--gpe-rose)}.import-result-stat-label{font-size:.8125rem;color:var(--gray-600)}@media(max-width:640px){.import-result-stats{grid-template-columns:1fr}.import-step-actions{flex-direction:column-reverse}.import-step-actions .btn{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){.import-wizard-step-indicator,.import-role-card,.import-program-card,.import-dropzone,.import-progress-fill{transition:none}}.import-role-card:focus-visible,.import-program-card:focus-visible,.import-dropzone:focus-visible{outline:2px solid var(--gpe-blue);outline-offset:2px}.ycw-page{max-width:900px;margin:0 auto;padding:2rem}.ycw-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.ycw-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--gray-500);text-decoration:none;font-size:.9375rem;transition:color .2s}.ycw-back:hover{color:var(--accent-blue)}.ycw-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;flex:1}.ycw-year-badge{padding:.5rem 1rem;background:var(--accent-blue);color:#fff;border-radius:8px;font-weight:600;font-size:.9375rem}.ycw-progress{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--gray-50);border-radius:12px}.ycw-step{display:flex;flex-direction:column;align-items:center;gap:.5rem}.ycw-step-number{width:40px;height:40px;border-radius:50%;background:var(--gray-200);color:var(--gray-500);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;transition:all .3s ease}.ycw-step.active .ycw-step-number{background:var(--accent-blue);color:#fff;box-shadow:0 4px 12px #1d4ed84d}.ycw-step.done .ycw-step-number{background:#059669;color:#fff}.ycw-step span{font-size:.8125rem;color:var(--gray-500);font-weight:500}.ycw-step.active span{color:var(--accent-blue)}.ycw-step.done span{color:#059669}.ycw-step-line{width:60px;height:2px;background:var(--gray-200);margin-bottom:1.5rem}.ycw-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;gap:1rem}.ycw-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--accent-blue);border-radius:50%;animation:spin 1s linear infinite}.ycw-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;margin-bottom:1.5rem}.ycw-content{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:2rem}.ycw-content h2{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.ycw-subtitle{font-size:1rem;color:var(--text-secondary);margin:0 0 1.5rem}.ycw-checks-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.ycw-check-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:var(--gray-50);border-radius:12px;border-left:4px solid var(--gray-300)}.ycw-check-item.passed{border-left-color:#059669;background:#f0fdf4}.ycw-check-item.blocked{border-left-color:#dc2626;background:#fef2f2}.ycw-check-item.warning{border-left-color:#f59e0b;background:#fffbeb}.ycw-check-icon{flex-shrink:0}.ycw-check-item.passed .ycw-check-icon{color:#059669}.ycw-check-item.blocked .ycw-check-icon{color:#dc2626}.ycw-check-item.warning .ycw-check-icon{color:#f59e0b}.ycw-check-content{flex:1}.ycw-check-content h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.ycw-check-content p{font-size:.9375rem;color:var(--text-secondary);margin:0}.ycw-check-content small{font-size:.8125rem;color:var(--gray-500);display:block;margin-top:.5rem}.ycw-check-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.ycw-check-badge.blocker{background:#fecaca;color:#dc2626}.ycw-check-badge.warning{background:#fef3c7;color:#d97706}.ycw-force-option{padding:1rem;background:#fffbeb;border:1px solid #fef3c7;border-radius:10px;margin-bottom:1.5rem}.ycw-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem;color:var(--text-primary)}.ycw-checkbox input{width:20px;height:20px;cursor:pointer}.ycw-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.ycw-stat-card{padding:1.5rem;background:var(--gray-50);border-radius:12px}.ycw-stat-card h3{font-size:.9375rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.ycw-stat-value{font-size:2rem;font-weight:700;color:var(--accent-blue);margin-bottom:1rem}.ycw-stat-details{display:flex;flex-direction:column;gap:.5rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200);margin-bottom:1rem}.ycw-stat-row{display:flex;justify-content:space-between;font-size:.9375rem}.ycw-stat-row span{color:var(--text-secondary)}.ycw-stat-row strong{color:var(--text-primary)}.ycw-stat-row.warning strong{color:#f59e0b}.ycw-stat-rate{font-size:.9375rem;color:var(--text-secondary)}.ycw-stat-rate strong{color:#059669}.ycw-warning-box{display:flex;gap:1rem;padding:1.25rem;background:#fffbeb;border:1px solid #fef3c7;border-radius:12px;margin-bottom:1.5rem}.ycw-warning-box svg{flex-shrink:0;color:#f59e0b}.ycw-warning-box strong{display:block;color:#d97706;margin-bottom:.25rem}.ycw-warning-box p{font-size:.9375rem;color:var(--text-secondary);margin:0}.ycw-form-group{margin-bottom:1.5rem}.ycw-form-group label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.ycw-form-group textarea{width:100%;padding:1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:10px;resize:vertical;transition:border-color .2s}.ycw-form-group textarea:focus{outline:none;border-color:var(--accent-blue)}.ycw-done{text-align:center;padding:2rem}.ycw-done-icon{width:100px;height:100px;margin:0 auto 1.5rem;background:#f0fdf4;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#059669}.ycw-done h2{margin-bottom:1rem}.ycw-done p{font-size:1rem;color:var(--text-secondary);margin-bottom:2rem}.ycw-actions{display:flex;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--gray-100)}.ycw-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:all .2s ease;min-height:48px}.ycw-btn:disabled{opacity:.6;cursor:not-allowed}.ycw-btn-primary{background:var(--accent-blue);color:#fff}.ycw-btn-primary:hover:not(:disabled){background:#1e40af}.ycw-btn-secondary{background:var(--gray-100);color:var(--text-primary)}.ycw-btn-secondary:hover:not(:disabled){background:var(--gray-200)}.ycw-btn-danger{background:#dc2626;color:#fff}.ycw-btn-danger:hover:not(:disabled){background:#b91c1c}.ycw-btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.ycw-page{padding:1rem}.ycw-header{flex-wrap:wrap}.ycw-title{order:3;width:100%;margin-top:.5rem}.ycw-progress{flex-wrap:wrap;gap:.25rem}.ycw-step-line{width:30px}.ycw-stats-grid{grid-template-columns:1fr}.ycw-actions{flex-direction:column}.ycw-btn{width:100%;justify-content:center}}.wizard-progress{background:linear-gradient(to bottom,#f8fafc,#fff);border-bottom:2px solid var(--wizard-border, #e2e8f0);padding:2rem 1.5rem;overflow-x:auto;scrollbar-width:thin}.wizard-progress::-webkit-scrollbar{height:8px}.wizard-progress::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.wizard-progress::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.wizard-progress-container{display:flex;align-items:flex-start;justify-content:center;gap:0;min-width:max-content;padding:0 1rem}.wizard-progress-item{display:flex;flex-direction:column;align-items:center;position:relative;flex-shrink:0}.wizard-progress-connector{display:none}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{content:"";position:absolute;top:50%;right:100%;transform:translateY(-50%);width:48px;height:4px;background:var(--gray-200, #e2e8f0);border-radius:2px;margin-right:0}.wizard-progress-item:not(:first-child) .wizard-progress-step.connector-completed:before{background:linear-gradient(90deg,var(--wizard-success, #059669),#10b981)}.wizard-progress-step{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;border:3px solid var(--gray-300, #d1d5db);background:var(--wizard-card-bg, #ffffff);color:var(--gray-500, #64748b);cursor:default;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;margin:0 24px;box-shadow:0 2px 8px #0000000f}.wizard-progress-step-number{font-size:1.375rem;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:-.02em}.wizard-progress-step-icon{display:none;width:28px;height:28px}.wizard-progress-step.clickable{cursor:pointer}.wizard-progress-step.clickable:hover{border-color:var(--wizard-primary, #1a56db);color:var(--wizard-primary, #1a56db);transform:scale(1.08);box-shadow:0 4px 16px #1a56db33}.wizard-progress-step.clickable:focus-visible{outline:4px solid var(--wizard-primary, #1a56db);outline-offset:4px}.wizard-progress-step.active{border-color:var(--wizard-primary, #1a56db);background:linear-gradient(135deg,#1a56db,#2563eb);color:#fff;box-shadow:0 0 0 6px #1a56db26,0 8px 24px #1a56db40;transform:scale(1.05)}.wizard-progress-step.active:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--wizard-primary, #1a56db);animation:pulse-ring 2s ease-out infinite;opacity:0;pointer-events:none}@keyframes pulse-ring{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.2);opacity:0}}.wizard-progress-step.completed{border-color:var(--wizard-success, #059669);background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 4px 12px #05966933}.wizard-progress-step.completed .wizard-progress-step-number{display:none}.wizard-progress-step.completed .wizard-progress-step-icon{display:flex}.wizard-progress-step.error{border-color:var(--wizard-danger, #dc2626);background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;box-shadow:0 4px 12px #dc262640}.wizard-progress-label{font-size:.9375rem;font-weight:600;color:var(--gray-600, #475569);text-align:center;margin-top:.875rem;max-width:100px;line-height:1.3;letter-spacing:-.01em;transition:all .3s ease}.wizard-progress-item:has(.wizard-progress-step.active) .wizard-progress-label{color:var(--wizard-primary, #1a56db);font-weight:700;font-size:1rem}.wizard-progress-item:has(.wizard-progress-step.completed) .wizard-progress-label{color:var(--wizard-success, #059669);font-weight:600}@media(max-width:1200px){.wizard-progress-step{width:54px;height:54px;margin:0 18px}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{width:36px}.wizard-progress-step-number{font-size:1.25rem}.wizard-progress-label{font-size:.8125rem;max-width:85px}.wizard-progress-item:has(.wizard-progress-step.active) .wizard-progress-label{font-size:.875rem}}@media(max-width:768px){.wizard-progress{padding:1.25rem .75rem}.wizard-progress-step{width:48px;height:48px;margin:0 12px;border-width:2px}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{width:24px;height:3px}.wizard-progress-step-number{font-size:1.125rem}.wizard-progress-label{display:none}.wizard-progress-item:has(.wizard-progress-step.active) .wizard-progress-label{display:block;font-size:.75rem;max-width:65px}}@media(max-width:480px){.wizard-progress-step{width:44px;height:44px;margin:0 8px}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{width:16px}.wizard-progress-step-number{font-size:1rem}}@media(min-width:1400px){.wizard-progress{padding:2.5rem 2rem}.wizard-progress-step{width:68px;height:68px;margin:0 32px}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{width:64px;height:5px}.wizard-progress-step-number{font-size:1.625rem}.wizard-progress-label{font-size:1rem;max-width:120px;margin-top:1rem}.wizard-progress-item:has(.wizard-progress-step.active) .wizard-progress-label{font-size:1.125rem}}@media(prefers-reduced-motion:reduce){.wizard-progress-step,.wizard-progress-label{transition:none}.wizard-progress-step.active:after{animation:none}.wizard-progress-step.clickable:hover{transform:none}}@media(prefers-contrast:high){.wizard-progress-step{border-width:4px}.wizard-progress-step.active{box-shadow:0 0 0 4px #000}.wizard-progress-label{font-weight:700}.wizard-progress-item:not(:first-child) .wizard-progress-step:before{height:6px}}.wizard-nav{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:linear-gradient(to top,#fff,#fafbfc);border-top:2px solid var(--wizard-border, #e2e8f0);position:sticky;bottom:0;z-index:50;box-shadow:0 -4px 20px #0000000f}.wizard-nav-left,.wizard-nav-center,.wizard-nav-right{display:flex;align-items:center;gap:1rem}.wizard-nav-left{flex:1;justify-content:flex-start}.wizard-nav-center{flex:1;justify-content:center}.wizard-nav-right{flex:1;justify-content:flex-end}.wizard-nav-unsaved{display:flex;align-items:center;gap:.625rem;font-size:1rem;font-weight:600;color:var(--wizard-warning, #d97706);padding:.625rem 1.25rem;background:#d977061a;border-radius:10px}.wizard-nav-unsaved-dot{width:10px;height:10px;background:var(--wizard-warning, #d97706);border-radius:50%;animation:pulse-warning 1.5s ease-in-out infinite}@keyframes pulse-warning{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #d9770666}50%{opacity:.8;transform:scale(1.1);box-shadow:0 0 0 8px #d9770600}}.wizard-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;min-height:56px;padding:1rem 1.75rem;font-size:1.125rem;font-weight:700;border-radius:14px;border:none;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap;letter-spacing:-.01em}.wizard-nav-btn svg{width:22px;height:22px;flex-shrink:0}.wizard-nav-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.wizard-nav-btn:focus-visible{outline:4px solid var(--wizard-primary, #1a56db);outline-offset:3px}.wizard-nav-btn-primary{background:linear-gradient(135deg,#1a56db,#2563eb,#3b82f6);color:#fff;box-shadow:0 6px 20px -4px #1a56db80,inset 0 1px #ffffff26;min-width:240px}.wizard-nav-btn-primary:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 10px 30px -5px #1a56db80,inset 0 1px #fff3}.wizard-nav-btn-primary:active:not(:disabled){transform:translateY(-1px) scale(1.01)}.wizard-nav-btn-success{background:linear-gradient(135deg,#059669,#10b981,#34d399);color:#fff;box-shadow:0 6px 20px -4px #05966980,inset 0 1px #ffffff26;min-width:240px}.wizard-nav-btn-success:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 10px 30px -5px #05966980,inset 0 1px #fff3}.wizard-nav-btn-secondary{background:#fff;color:var(--gray-700, #374151);border:2px solid var(--gray-300, #d1d5db);min-width:140px}.wizard-nav-btn-secondary:hover:not(:disabled){background:var(--gray-50, #f9fafb);border-color:var(--wizard-primary, #1a56db);color:var(--wizard-primary, #1a56db);transform:translateY(-2px);box-shadow:0 4px 12px #1a56db26}.wizard-nav-btn-ghost{background:transparent;color:var(--gray-500, #64748b);padding:1rem 1.25rem;border:2px solid transparent}.wizard-nav-btn-ghost:hover:not(:disabled){background:var(--gray-100, #f1f5f9);color:var(--gray-700, #374151);border-color:var(--gray-200, #e2e8f0)}.wizard-nav-btn-text-desktop{display:none}.wizard-nav-btn-spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media(min-width:768px){.wizard-nav-btn-text-desktop{display:inline}.wizard-nav-btn-ghost{padding:1rem 1.5rem}}@media(min-width:1200px){.wizard-nav{padding:1.5rem 3rem}.wizard-nav-btn{min-height:60px;padding:1.125rem 2rem;font-size:1.1875rem}.wizard-nav-btn-primary,.wizard-nav-btn-success{min-width:280px}.wizard-nav-btn-secondary{min-width:160px}}@media(max-width:640px){.wizard-nav{padding:1rem 1.25rem;gap:.75rem}.wizard-nav-center{display:none}.wizard-nav-btn{padding:.875rem 1.25rem;font-size:1rem;min-height:52px;border-radius:12px}.wizard-nav-btn-primary,.wizard-nav-btn-success{min-width:auto;flex:1}.wizard-nav-btn-secondary span{display:none}.wizard-nav-btn-secondary{padding:.875rem;min-width:auto}.wizard-nav-btn-ghost{padding:.875rem}}@media(prefers-reduced-motion:reduce){.wizard-nav-btn{transition:none}.wizard-nav-btn:hover:not(:disabled){transform:none}.wizard-nav-unsaved-dot{animation:none}}[data-theme=dark] .wizard-nav{background:linear-gradient(to top,#1e293b,#0f172a);border-top-color:#334155}[data-theme=dark] .wizard-nav-btn-secondary{background:#1e293b;border-color:#475569;color:#e2e8f0}[data-theme=dark] .wizard-nav-btn-secondary:hover:not(:disabled){background:#334155;border-color:var(--wizard-primary, #3b82f6)}[data-theme=dark] .wizard-nav-btn-ghost{color:#94a3b8}[data-theme=dark] .wizard-nav-btn-ghost:hover:not(:disabled){background:#334155;color:#e2e8f0;border-color:#475569}.field-with-help{display:flex;flex-direction:column;gap:.5rem}.field-with-help-header{display:flex;align-items:center;gap:.5rem}.field-with-help-label{font-size:.9375rem;font-weight:600;color:var(--wizard-text)}.field-with-help-required{color:var(--wizard-danger);margin-left:.25rem}.field-with-help-tooltip-container{position:relative;display:inline-flex}.field-with-help-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:var(--gray-100);border-radius:50%;cursor:pointer;color:var(--gray-500);transition:all .2s ease}.field-with-help-tooltip-trigger:hover{background:var(--wizard-primary-light);color:var(--wizard-primary)}.field-with-help-tooltip-trigger:focus{outline:2px solid var(--wizard-primary);outline-offset:2px}.field-with-help-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);width:max-content;max-width:280px;z-index:1000;animation:tooltipFadeIn .2s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.field-with-help-tooltip-arrow{position:absolute;left:50%;bottom:-6px;transform:translate(-50%);width:12px;height:12px;background:var(--gray-800);transform:translate(-50%) rotate(45deg);border-radius:2px}.field-with-help-tooltip-content{position:relative;padding:.75rem 1rem;background:var(--gray-800);color:#fff;font-size:.875rem;line-height:1.5;border-radius:8px;box-shadow:0 4px 12px #00000026}.field-with-help-input{display:flex;flex-direction:column}.field-with-help-input input,.field-with-help-input select,.field-with-help-input textarea{width:100%;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--wizard-text);background:#fff;border:2px solid var(--gray-200);border-radius:12px;transition:all .2s ease}.field-with-help-input input:hover,.field-with-help-input select:hover,.field-with-help-input textarea:hover{border-color:var(--gray-300)}.field-with-help-input input:focus,.field-with-help-input select:focus,.field-with-help-input textarea:focus{outline:none;border-color:var(--wizard-primary);box-shadow:0 0 0 3px var(--wizard-primary-light)}.field-with-help-input input::placeholder,.field-with-help-input textarea::placeholder{color:var(--gray-400)}.field-with-help-input textarea{min-height:100px;resize:vertical}.field-with-help.has-error .field-with-help-input input,.field-with-help.has-error .field-with-help-input select,.field-with-help.has-error .field-with-help-input textarea{border-color:var(--wizard-danger)}.field-with-help.has-error .field-with-help-input input:focus,.field-with-help.has-error .field-with-help-input select:focus,.field-with-help.has-error .field-with-help-input textarea:focus{box-shadow:0 0 0 3px #ef444426}.field-with-help-error{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--wizard-danger)}[data-theme=dark] .field-with-help-label{color:var(--gray-100)}[data-theme=dark] .field-with-help-tooltip-trigger{background:var(--gray-700);color:var(--gray-400)}[data-theme=dark] .field-with-help-tooltip-trigger:hover{background:var(--wizard-primary);color:#fff}[data-theme=dark] .field-with-help-tooltip-content,[data-theme=dark] .field-with-help-tooltip-arrow{background:var(--gray-700)}[data-theme=dark] .field-with-help-input input,[data-theme=dark] .field-with-help-input select,[data-theme=dark] .field-with-help-input textarea{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-100)}[data-theme=dark] .field-with-help-input input:hover,[data-theme=dark] .field-with-help-input select:hover,[data-theme=dark] .field-with-help-input textarea:hover{border-color:var(--gray-500)}[data-theme=dark] .field-with-help-input input::placeholder,[data-theme=dark] .field-with-help-input textarea::placeholder{color:var(--gray-500)}.side-drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:9999;animation:overlayFadeIn .2s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.side-drawer{position:fixed;top:0;right:0;height:100vh;background:#fff;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000026;animation:drawerSlideIn .3s ease}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.side-drawer-sm{width:min(400px,90vw)}.side-drawer-md{width:min(500px,90vw)}.side-drawer-lg{width:min(640px,90vw)}.side-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--gray-200);flex-shrink:0}.side-drawer-header-content{flex:1}.side-drawer-title{font-size:1.25rem;font-weight:700;color:var(--wizard-text);margin:0}.side-drawer-subtitle{font-size:.875rem;color:var(--wizard-text-muted);margin:.25rem 0 0}.side-drawer-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:var(--gray-100);border-radius:10px;cursor:pointer;color:var(--gray-600);transition:all .2s ease;flex-shrink:0}.side-drawer-close:hover{background:var(--gray-200);color:var(--gray-800)}.side-drawer-close:focus{outline:2px solid var(--wizard-primary);outline-offset:2px}.side-drawer-content{flex:1;padding:1.5rem;overflow-y:auto}.side-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50);flex-shrink:0}.side-drawer-footer button{min-height:44px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s ease}.side-drawer-footer .btn-cancel{background:#fff;border:2px solid var(--gray-300);color:var(--gray-700)}.side-drawer-footer .btn-cancel:hover{background:var(--gray-50);border-color:var(--gray-400)}.side-drawer-footer .btn-save{background:var(--wizard-primary);border:none;color:#fff}.side-drawer-footer .btn-save:hover{background:var(--wizard-primary-dark)}.side-drawer-footer .btn-save:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .side-drawer{background:var(--gray-900)}[data-theme=dark] .side-drawer-header{border-color:var(--gray-700)}[data-theme=dark] .side-drawer-title{color:var(--gray-100)}[data-theme=dark] .side-drawer-subtitle{color:var(--gray-400)}[data-theme=dark] .side-drawer-close{background:var(--gray-800);color:var(--gray-400)}[data-theme=dark] .side-drawer-close:hover{background:var(--gray-700);color:var(--gray-200)}[data-theme=dark] .side-drawer-footer{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .side-drawer-footer .btn-cancel{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-300)}[data-theme=dark] .side-drawer-footer .btn-cancel:hover{background:var(--gray-700)}@media(max-width:640px){.side-drawer{width:100vw}}.data-table-container{border:1px solid var(--gray-200);border-radius:12px;overflow:hidden;background:#fff}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--gray-50)}.data-table th{padding:.875rem 1rem;text-align:left;font-size:.8125rem;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200)}.data-table tbody tr{transition:background .15s ease}.data-table tbody tr:hover{background:var(--gray-50)}.data-table td{padding:1rem;font-size:.9375rem;color:var(--wizard-text);border-bottom:1px solid var(--gray-100);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table-actions-header{width:100px;text-align:center}.data-table-actions{display:flex;align-items:center;justify-content:center;gap:.5rem}.data-table-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.data-table-action-edit{background:var(--wizard-primary-light);color:var(--wizard-primary)}.data-table-action-edit:hover{background:var(--wizard-primary);color:#fff}.data-table-action-delete{background:#ef44441a;color:var(--wizard-danger)}.data-table-action-delete:hover{background:var(--wizard-danger);color:#fff}.data-table-action-btn:focus{outline:2px solid var(--wizard-primary);outline-offset:2px}.data-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;background:var(--gray-50);border:2px dashed var(--gray-200);border-radius:12px}.data-table-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:1rem;background:var(--gray-100);border-radius:50%;color:var(--gray-400)}.data-table-empty-icon svg{width:32px;height:32px}.data-table-empty-title{font-size:1.125rem;font-weight:600;color:var(--wizard-text);margin:0 0 .5rem}.data-table-empty-description{font-size:.9375rem;color:var(--wizard-text-muted);margin:0 0 1.5rem;max-width:360px}.data-table-empty-action{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--wizard-primary);color:#fff;font-size:.9375rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.data-table-empty-action:hover{background:var(--wizard-primary-dark);transform:translateY(-1px)}.data-table-empty-action:focus{outline:2px solid var(--wizard-primary);outline-offset:2px}.data-table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;gap:1rem;color:var(--wizard-text-muted)}.data-table-loading-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--wizard-primary);border-radius:50%;animation:tableSpinner .8s linear infinite}@keyframes tableSpinner{to{transform:rotate(360deg)}}[data-theme=dark] .data-table-container{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .data-table thead{background:var(--gray-750)}[data-theme=dark] .data-table th{color:var(--gray-400);border-color:var(--gray-700)}[data-theme=dark] .data-table tbody tr:hover{background:var(--gray-750)}[data-theme=dark] .data-table td{color:var(--gray-200);border-color:var(--gray-700)}[data-theme=dark] .data-table-empty{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .data-table-empty-icon{background:var(--gray-700);color:var(--gray-500)}[data-theme=dark] .data-table-empty-title{color:var(--gray-200)}[data-theme=dark] .data-table-empty-description{color:var(--gray-400)}[data-theme=dark] .data-table-action-edit{background:#3b82f633}[data-theme=dark] .data-table-action-delete{background:#ef444433}@media(max-width:768px){.data-table-container{overflow-x:auto}.data-table{min-width:600px}.data-table th,.data-table td{padding:.75rem}}.csv-importer{padding:1rem}.csv-importer-upload{display:flex;flex-direction:column;gap:1.5rem}.csv-importer-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;border:2px dashed var(--gray-300);border-radius:12px;background:var(--gray-50);cursor:pointer;transition:all .2s ease}.csv-importer-dropzone:hover{border-color:var(--wizard-primary);background:var(--wizard-primary-light)}.csv-importer-dropzone-icon{color:var(--gray-400);margin-bottom:1rem}.csv-importer-dropzone:hover .csv-importer-dropzone-icon{color:var(--wizard-primary)}.csv-importer-dropzone-title{font-size:1.125rem;font-weight:600;color:var(--wizard-text);margin:0 0 .5rem}.csv-importer-dropzone-text{font-size:.875rem;color:var(--wizard-text-muted);margin:0}.csv-importer-template{display:flex;justify-content:center}.csv-importer-template-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;color:var(--wizard-text);cursor:pointer;transition:all .2s ease}.csv-importer-template-btn:hover{background:var(--gray-50);border-color:var(--wizard-primary);color:var(--wizard-primary)}.csv-importer-mapping{display:flex;flex-direction:column;gap:1.5rem}.csv-importer-file-info{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:8px;font-size:.9375rem;color:var(--wizard-text)}.csv-importer-row-count{margin-left:auto;font-size:.8125rem;color:var(--wizard-text-muted)}.csv-importer-mapping-title{font-size:1.125rem;font-weight:600;color:var(--wizard-text);margin:0}.csv-importer-mapping-text{font-size:.9375rem;color:var(--wizard-text-muted);margin:-1rem 0 0}.csv-importer-mapping-list{display:flex;flex-direction:column;gap:1rem}.csv-importer-mapping-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:center}.csv-importer-mapping-label{font-size:.9375rem;font-weight:500;color:var(--wizard-text)}.csv-importer-mapping-label .required{color:var(--wizard-danger);margin-left:.25rem}.csv-importer-mapping-select{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .2s ease}.csv-importer-mapping-select:hover{border-color:var(--gray-300)}.csv-importer-mapping-select:focus{outline:none;border-color:var(--wizard-primary)}.csv-importer-preview{display:flex;flex-direction:column;gap:1.5rem}.csv-importer-stats{display:flex;gap:1rem}.csv-importer-stat{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px}.csv-importer-stat.valid{background:var(--wizard-success-light);color:var(--wizard-success)}.csv-importer-stat.error{background:#ef44441a;color:var(--wizard-danger)}.csv-importer-stat-count{font-size:1.25rem;font-weight:700}.csv-importer-stat-label{font-size:.875rem}.csv-importer-preview-table{border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.csv-importer-preview-table table{width:100%;border-collapse:collapse;font-size:.875rem}.csv-importer-preview-table th{padding:.75rem;text-align:left;background:var(--gray-50);font-weight:600;color:var(--gray-600);border-bottom:1px solid var(--gray-200)}.csv-importer-preview-table td{padding:.75rem;border-bottom:1px solid var(--gray-100);color:var(--wizard-text)}.csv-importer-preview-table tr.has-error{background:#ef44440d}.csv-importer-preview-table tr:last-child td{border-bottom:none}.csv-importer-row-valid{color:var(--wizard-success)}.csv-importer-row-error{color:var(--wizard-danger);cursor:help}.csv-importer-preview-more{padding:.75rem;text-align:center;font-size:.875rem;color:var(--wizard-text-muted);background:var(--gray-50);border-top:1px solid var(--gray-200)}.csv-importer-error{padding:.75rem 1rem;background:#ef44441a;border:1px solid var(--wizard-danger);border-radius:8px;color:var(--wizard-danger);font-size:.9375rem}.csv-importer-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}.csv-importer-actions button{min-height:44px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s ease}.csv-importer-actions .btn-cancel{background:#fff;border:2px solid var(--gray-300);color:var(--gray-700)}.csv-importer-actions .btn-cancel:hover{background:var(--gray-50)}.csv-importer-actions .btn-primary{background:var(--wizard-primary);border:none;color:#fff}.csv-importer-actions .btn-primary:hover:not(:disabled){background:var(--wizard-primary-dark)}.csv-importer-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .csv-importer-dropzone{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .csv-importer-dropzone:hover{background:#3b82f61a}[data-theme=dark] .csv-importer-dropzone-title{color:var(--gray-200)}[data-theme=dark] .csv-importer-template-btn{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-300)}[data-theme=dark] .csv-importer-file-info{background:var(--gray-800);color:var(--gray-200)}[data-theme=dark] .csv-importer-mapping-select{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-200)}[data-theme=dark] .csv-importer-preview-table{border-color:var(--gray-700)}[data-theme=dark] .csv-importer-preview-table th{background:var(--gray-800);color:var(--gray-400);border-color:var(--gray-700)}[data-theme=dark] .csv-importer-preview-table td{border-color:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .csv-importer-actions{border-color:var(--gray-700)}.setup-wizard{--wizard-primary: var(--gpe-blue, #1a56db);--wizard-primary-light: var(--gpe-blue-100, #dbeafe);--wizard-success: var(--gpe-green, #059669);--wizard-success-light: var(--gpe-green-100, #d1fae5);--wizard-warning: var(--gpe-amber, #d97706);--wizard-warning-light: var(--gpe-amber-100, #fef3c7);--wizard-danger: var(--gpe-rose, #e11d48);--wizard-danger-light: var(--gpe-rose-100, #ffe4e6);--wizard-bg: var(--gray-50, #f8fafc);--wizard-card-bg: var(--white, #ffffff);--wizard-border: var(--gray-200, #e2e8f0);--wizard-text: var(--gray-900, #0f172a);--wizard-text-muted: var(--gray-500, #64748b);--wizard-radius: 16px;--wizard-radius-sm: 12px;--wizard-radius-xs: 8px;--wizard-shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .04);--wizard-shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .08);--wizard-transition: .2s ease;--wizard-transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}:root.dark .setup-wizard{--wizard-bg: var(--gray-900, #0f172a);--wizard-card-bg: var(--gray-800, #1e293b);--wizard-border: var(--gray-700, #334155);--wizard-text: var(--gray-100, #f1f5f9);--wizard-text-muted: var(--gray-400, #94a3b8)}.setup-wizard{display:flex;flex-direction:column;min-height:100vh;background:var(--wizard-bg)}.setup-wizard-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:linear-gradient(135deg,var(--wizard-card-bg) 0%,#f8fafc 100%);border-bottom:2px solid var(--wizard-border);position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000000a}.setup-wizard-header-left{display:flex;align-items:center;gap:1.25rem}.setup-wizard-logo{flex-shrink:0;width:48px;height:48px}.setup-wizard-logo svg{width:100%;height:100%}.setup-wizard-title{font-size:1.5rem;font-weight:800;color:var(--wizard-text);margin:0;letter-spacing:-.02em}.setup-wizard-header-right{display:flex;align-items:center;gap:1.5rem}.setup-wizard-saved-indicator{display:flex;align-items:center;gap:.625rem;font-size:1rem;font-weight:600;color:var(--wizard-success);padding:.5rem 1rem;background:var(--wizard-success-light);border-radius:var(--wizard-radius-xs)}.setup-wizard-saving-dot{width:10px;height:10px;background:var(--wizard-primary);border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.9)}}.setup-wizard-close-btn{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--gray-100, #f1f5f9);border:2px solid transparent;border-radius:var(--wizard-radius-sm);color:var(--wizard-text-muted);cursor:pointer;transition:var(--wizard-transition)}.setup-wizard-close-btn svg{width:28px;height:28px}.setup-wizard-close-btn:hover{background:var(--wizard-danger-light);border-color:var(--wizard-danger);color:var(--wizard-danger)}.setup-wizard-close-btn:focus-visible{outline:4px solid var(--wizard-primary);outline-offset:2px}.setup-wizard-progress-bar-container{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 2rem;background:linear-gradient(to right,var(--wizard-card-bg) 0%,#f8fafc 100%);border-bottom:2px solid var(--wizard-border)}.setup-wizard-progress-info{display:flex;flex-direction:column;gap:.25rem;min-width:220px}.setup-wizard-step-label{font-size:1rem;font-weight:700;color:var(--wizard-primary);text-transform:uppercase;letter-spacing:.03em}.setup-wizard-step-name{font-size:1.25rem;font-weight:700;color:var(--wizard-text);line-height:1.3}.setup-wizard-progress-bar{flex:1;height:12px;background:var(--gray-200, #e2e8f0);border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.setup-wizard-progress-fill{height:100%;background:linear-gradient(90deg,var(--wizard-primary) 0%,#3b82f6 50%,var(--wizard-success) 100%);border-radius:6px;transition:width var(--wizard-transition-slow);position:relative}.setup-wizard-progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(to bottom,rgba(255,255,255,.3) 0%,transparent 100%);border-radius:6px 6px 0 0}.setup-wizard-progress-percent{font-size:1.5rem;font-weight:800;color:var(--wizard-primary);min-width:65px;text-align:right;letter-spacing:-.02em}.setup-wizard-error-alert{display:flex;align-items:center;gap:.75rem;margin:1rem 1.5rem 0;padding:1rem;background:var(--wizard-danger-light);border:1px solid var(--wizard-danger);border-radius:var(--wizard-radius-sm);color:var(--wizard-danger)}.setup-wizard-error-alert svg{flex-shrink:0}.setup-wizard-error-alert span{flex:1;font-size:.9375rem}.setup-wizard-error-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--wizard-danger);cursor:pointer;transition:var(--wizard-transition)}.setup-wizard-error-close:hover{background:#e11d481a}.setup-wizard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;background:var(--wizard-danger-light);border-radius:var(--wizard-radius-sm);text-align:center}.setup-wizard-error p{font-size:1rem;color:var(--wizard-danger);margin:0}.setup-wizard-empty{padding:2rem;text-align:center;color:var(--wizard-text-muted)}.setup-wizard-empty p{font-size:1rem;margin:0}.setup-wizard-content{flex:1;padding:2rem 2.5rem;overflow-y:auto;background:linear-gradient(180deg,#f1f5f9 0%,var(--wizard-bg) 100%)}.setup-wizard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.setup-wizard-loading-spinner,.setup-wizard-spinner{width:48px;height:48px;border:3px solid var(--gray-200, #e2e8f0);border-top-color:var(--wizard-primary);border-radius:50%;animation:spin .8s linear infinite}.setup-wizard-loading p{font-size:1rem;color:var(--wizard-text-muted)}.setup-wizard-btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;min-height:56px;padding:1rem 2rem;font-size:1.125rem;font-weight:700;border-radius:var(--wizard-radius-sm);border:none;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none;letter-spacing:-.01em}.setup-wizard-btn svg{width:22px;height:22px}.setup-wizard-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.setup-wizard-btn:focus-visible{outline:4px solid var(--wizard-primary);outline-offset:3px}.setup-wizard-btn-primary{background:linear-gradient(135deg,var(--wizard-primary) 0%,#2563eb 50%,#3b82f6 100%);color:#fff;box-shadow:0 4px 14px -3px #1a56db80,inset 0 1px #ffffff26}.setup-wizard-btn-primary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 25px -5px #1a56db80,inset 0 1px #fff3}.setup-wizard-btn-primary:active:not(:disabled){transform:translateY(-1px)}.setup-wizard-btn-secondary{background:var(--wizard-card-bg);color:var(--wizard-text);border:2px solid var(--wizard-border)}.setup-wizard-btn-secondary:hover:not(:disabled){background:var(--gray-50, #f8fafc);border-color:var(--wizard-primary);color:var(--wizard-primary);transform:translateY(-2px)}.setup-wizard-btn-ghost{background:transparent;color:var(--wizard-text-muted)}.setup-wizard-btn-ghost:hover:not(:disabled){background:var(--gray-100, #f1f5f9);color:var(--wizard-text)}.setup-wizard-btn-danger{background:var(--wizard-danger);color:#fff}.setup-wizard-btn-danger:hover:not(:disabled){background:#be123c}.setup-wizard-btn-success{background:linear-gradient(135deg,var(--wizard-success) 0%,#10b981 100%);color:#fff;box-shadow:0 4px 14px -3px #05966966}.setup-wizard-btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px -3px #05966980}.setup-wizard-modal-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.setup-wizard-modal{background:var(--wizard-card-bg);border-radius:var(--wizard-radius);box-shadow:var(--wizard-shadow-lg);width:90%;max-width:440px;animation:slideUp .3s ease}.setup-wizard-modal-header{padding:1.5rem 1.5rem 0}.setup-wizard-modal-header h2{font-size:1.25rem;font-weight:700;color:var(--wizard-text);margin:0}.setup-wizard-modal-body{padding:1rem 1.5rem}.setup-wizard-modal-body p{font-size:1rem;color:var(--wizard-text-muted);line-height:1.6;margin:0}.setup-wizard-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem 1.5rem}.setup-wizard-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:var(--wizard-success);color:#fff;border-radius:var(--wizard-radius-sm);box-shadow:var(--wizard-shadow-lg);z-index:1100;animation:toastIn .3s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.setup-wizard-toast svg{flex-shrink:0}.setup-wizard-toast span{font-size:.9375rem;font-weight:500}.setup-wizard-step-card{background:var(--wizard-card-bg);border-radius:var(--wizard-radius);box-shadow:0 4px 6px -1px #00000014,0 10px 20px -5px #0000000f;max-width:960px;margin:0 auto;border:1px solid rgba(0,0,0,.04)}.setup-wizard-step-header{padding:2rem 2.5rem;border-bottom:2px solid var(--wizard-border);background:linear-gradient(to bottom,#fff,#fafbfc);border-radius:var(--wizard-radius) var(--wizard-radius) 0 0}.setup-wizard-step-title{font-size:1.875rem;font-weight:800;color:var(--wizard-text);margin:0 0 .75rem;letter-spacing:-.02em}.setup-wizard-step-description{font-size:1.125rem;color:var(--wizard-text-muted);line-height:1.7;margin:0;max-width:700px}.setup-wizard-step-body{padding:2rem 2.5rem}.setup-wizard-form-section{margin-bottom:2.5rem}.setup-wizard-form-section:last-child{margin-bottom:0}.setup-wizard-form-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:var(--wizard-text);margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:3px solid var(--wizard-primary)}.setup-wizard-form-section-title:before{content:"";display:block;width:6px;height:24px;background:var(--wizard-primary);border-radius:3px}.setup-wizard-form-group{margin-bottom:1.75rem}.setup-wizard-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.setup-wizard-form-label{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:var(--wizard-text);margin-bottom:.625rem}.setup-wizard-form-label.required:after{content:"*";color:var(--wizard-danger);font-size:1.25rem}.setup-wizard-form-help{display:block;font-size:1rem;color:var(--wizard-text-muted);margin-bottom:.75rem;line-height:1.6}.setup-wizard-form-input,.setup-wizard-form-select,.setup-wizard-form-textarea{display:block;width:100%;min-height:56px;padding:1rem 1.25rem;font-size:1.125rem;color:var(--wizard-text);background:var(--wizard-card-bg);border:2px solid var(--wizard-border);border-radius:var(--wizard-radius-sm);transition:var(--wizard-transition)}.setup-wizard-form-input::placeholder{color:var(--gray-400);font-size:1rem}.setup-wizard-form-input:focus,.setup-wizard-form-select:focus,.setup-wizard-form-textarea:focus{outline:none;border-color:var(--wizard-primary);box-shadow:0 0 0 4px #1a56db26}.setup-wizard-form-input:disabled,.setup-wizard-form-select:disabled{background:var(--gray-100, #f1f5f9);cursor:not-allowed;opacity:.7}.setup-wizard-form-input.error,.setup-wizard-form-select.error{border-color:var(--wizard-danger);box-shadow:0 0 0 4px #e11d481a}.setup-wizard-form-error{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;color:var(--wizard-danger);margin-top:.625rem}.setup-wizard-form-textarea{min-height:140px;resize:vertical;line-height:1.6}.setup-wizard-form-checkbox-group{display:flex;flex-wrap:wrap;gap:1rem}.setup-wizard-form-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--wizard-text);cursor:pointer}.setup-wizard-form-checkbox{width:20px;height:20px;accent-color:var(--wizard-primary);cursor:pointer}.setup-wizard-data-table{width:100%;border-collapse:collapse}.setup-wizard-data-table th,.setup-wizard-data-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--wizard-border)}.setup-wizard-data-table th{font-size:.75rem;font-weight:600;color:var(--wizard-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50, #f8fafc)}.setup-wizard-data-table td{font-size:.9375rem;color:var(--wizard-text)}.setup-wizard-data-table tbody tr:hover{background:var(--gray-50, #f8fafc)}.setup-wizard-table-actions{display:flex;gap:.5rem}.setup-wizard-table-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:6px;color:var(--wizard-text-muted);cursor:pointer;transition:var(--wizard-transition)}.setup-wizard-table-btn:hover{background:var(--gray-100, #f1f5f9);color:var(--wizard-text)}.setup-wizard-table-btn.edit:hover{color:var(--wizard-primary)}.setup-wizard-table-btn.delete:hover{color:var(--wizard-danger)}.setup-wizard-empty{display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem;text-align:center}.setup-wizard-empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--gray-100, #f1f5f9);border-radius:50%;color:var(--wizard-text-muted);margin-bottom:1.5rem}.setup-wizard-empty-title{font-size:1.125rem;font-weight:600;color:var(--wizard-text);margin:0 0 .5rem}.setup-wizard-empty-text{font-size:1rem;color:var(--wizard-text-muted);margin:0 0 1.5rem;max-width:400px}@media(max-width:768px){.setup-wizard-header{padding:.75rem 1rem}.setup-wizard-title{font-size:1rem}.setup-wizard-saved-indicator{display:none}.setup-wizard-progress-bar-container{flex-direction:column;align-items:stretch;gap:.75rem}.setup-wizard-progress-info{flex-direction:row;justify-content:space-between;min-width:auto}.setup-wizard-progress-percent{text-align:left}.setup-wizard-content{padding:1rem}.setup-wizard-step-card{border-radius:var(--wizard-radius-sm)}.setup-wizard-step-header,.setup-wizard-step-body{padding:1rem}.setup-wizard-form-row{grid-template-columns:1fr}.setup-wizard-modal{width:95%;margin:1rem}}.setup-wizard-step-enter{opacity:0;transform:translate(20px)}.setup-wizard-step-enter-active{opacity:1;transform:translate(0);transition:all .3s ease}.setup-wizard-step-exit{opacity:1;transform:translate(0)}.setup-wizard-step-exit-active{opacity:0;transform:translate(-20px);transition:all .3s ease}.setup-wizard-stats-row{display:flex;gap:1rem;flex-wrap:wrap}.setup-wizard-stat-card{flex:1;min-width:140px;padding:1.25rem;background:var(--wizard-primary-light);border-radius:var(--wizard-radius-sm);text-align:center}.setup-wizard-stat-value{font-size:2rem;font-weight:700;color:var(--wizard-primary);line-height:1}.setup-wizard-stat-label{font-size:.875rem;color:var(--wizard-text-muted);margin-top:.5rem}.setup-wizard-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.setup-wizard-checkbox-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:2px solid var(--gray-200);border-radius:var(--wizard-radius-sm);cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-checkbox-card:hover{border-color:var(--gray-300);background:var(--gray-50)}.setup-wizard-checkbox-card.selected{border-color:var(--wizard-primary);background:var(--wizard-primary-light)}.setup-wizard-checkbox-input{position:absolute;opacity:0;pointer-events:none}.setup-wizard-checkbox-content{flex:1}.setup-wizard-checkbox-title{font-size:1rem;font-weight:600;color:var(--wizard-text)}.setup-wizard-checkbox-subtitle{font-size:.875rem;color:var(--wizard-text-muted);margin-top:.25rem}.setup-wizard-checkbox-check{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid var(--gray-300);border-radius:6px;color:transparent;flex-shrink:0;transition:all var(--wizard-transition)}.setup-wizard-checkbox-card.selected .setup-wizard-checkbox-check{background:var(--wizard-primary);border-color:var(--wizard-primary);color:#fff}.setup-wizard-btn-ghost{background:transparent;border:none;color:var(--wizard-text-muted);padding:.5rem .75rem;font-size:.875rem;cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-btn-ghost:hover{color:var(--wizard-primary);background:var(--wizard-primary-light);border-radius:var(--wizard-radius-xs)}[data-theme=dark] .setup-wizard-stat-card{background:#3b82f626}[data-theme=dark] .setup-wizard-checkbox-card{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-checkbox-card:hover{background:var(--gray-750);border-color:var(--gray-500)}[data-theme=dark] .setup-wizard-checkbox-card.selected{background:#3b82f626;border-color:var(--wizard-primary)}[data-theme=dark] .setup-wizard-checkbox-title{color:var(--gray-100)}[data-theme=dark] .setup-wizard-checkbox-subtitle{color:var(--gray-400)}[data-theme=dark] .setup-wizard-checkbox-check{border-color:var(--gray-500)}.setup-wizard-slider-container{padding:1rem 0}.setup-wizard-slider-row{display:flex;align-items:center;gap:1rem}.setup-wizard-slider-label{min-width:100px;font-weight:600;color:var(--wizard-text)}.setup-wizard-slider{flex:1;height:8px;background:var(--gray-200);border-radius:4px;appearance:none;cursor:pointer}.setup-wizard-slider::-webkit-slider-thumb{appearance:none;width:24px;height:24px;background:var(--wizard-primary);border-radius:50%;cursor:grab;box-shadow:0 2px 6px #0003}.setup-wizard-slider::-webkit-slider-thumb:active{cursor:grabbing}.setup-wizard-slider-value{min-width:60px;text-align:right;font-size:1.125rem;font-weight:700;color:var(--wizard-primary)}.setup-wizard-toggle{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:var(--wizard-radius-sm)}.setup-wizard-toggle-switch{position:relative;width:52px;height:28px;flex-shrink:0}.setup-wizard-toggle-input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.setup-wizard-toggle-track{position:absolute;inset:0;background:var(--gray-300);border-radius:14px;transition:background var(--wizard-transition)}.setup-wizard-toggle-input:checked+.setup-wizard-toggle-track{background:var(--wizard-primary)}.setup-wizard-toggle-thumb{position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform var(--wizard-transition)}.setup-wizard-toggle-input:checked~.setup-wizard-toggle-thumb{transform:translate(24px)}.setup-wizard-toggle-content{flex:1}.setup-wizard-toggle-label{font-weight:600;color:var(--wizard-text)}.setup-wizard-toggle-description{font-size:.875rem;color:var(--wizard-text-muted);margin-top:.25rem}[data-theme=dark] .setup-wizard-toggle{background:var(--gray-800)}[data-theme=dark] .setup-wizard-toggle-track{background:var(--gray-600)}.setup-wizard-tabs{display:flex;gap:.5rem;padding:.25rem;background:var(--gray-100);border-radius:var(--wizard-radius-sm);margin-bottom:1.5rem}.setup-wizard-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;font-size:1rem;font-weight:600;color:var(--wizard-text-muted);background:transparent;border:none;border-radius:var(--wizard-radius-xs);cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-tab:hover{color:var(--wizard-text);background:#ffffff80}.setup-wizard-tab.active{color:var(--wizard-primary);background:var(--wizard-card-bg);box-shadow:0 1px 3px #00000014}[data-theme=dark] .setup-wizard-tabs{background:var(--gray-800)}[data-theme=dark] .setup-wizard-tab:hover{background:#ffffff0d}[data-theme=dark] .setup-wizard-tab.active{background:var(--gray-700)}.setup-wizard-day-btn{display:flex;align-items:center;justify-content:center;min-width:100px;min-height:48px;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;color:var(--wizard-text-muted);background:var(--wizard-card-bg);border:2px solid var(--wizard-border);border-radius:var(--wizard-radius-sm);cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-day-btn:hover{border-color:var(--wizard-primary);color:var(--wizard-primary);background:var(--wizard-primary-light)}.setup-wizard-day-btn.selected{background:var(--wizard-primary);border-color:var(--wizard-primary);color:#fff;box-shadow:0 4px 12px -3px #1a56db59}[data-theme=dark] .setup-wizard-day-btn{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-day-btn:hover{background:#3b82f626}.setup-wizard-radio-card{display:flex;padding:1.25rem;background:var(--wizard-card-bg);border:2px solid var(--wizard-border);border-radius:var(--wizard-radius-sm);transition:all var(--wizard-transition)}.setup-wizard-radio-card:hover{border-color:var(--gray-300);background:var(--gray-50)}.setup-wizard-radio-card.selected{border-color:var(--wizard-primary);background:var(--wizard-primary-light)}.setup-wizard-radio-card-content{flex:1}.setup-wizard-radio-card-header{display:flex;align-items:flex-start;gap:1rem}.setup-wizard-radio-card-indicator{width:24px;height:24px;border:2px solid var(--gray-300);border-radius:50%;flex-shrink:0;position:relative;transition:all var(--wizard-transition)}.setup-wizard-radio-card.selected .setup-wizard-radio-card-indicator{border-color:var(--wizard-primary);background:var(--wizard-primary)}.setup-wizard-radio-card.selected .setup-wizard-radio-card-indicator:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;background:#fff;border-radius:50%;transform:translate(-50%,-50%)}.setup-wizard-radio-card-title{font-size:1rem;font-weight:600;color:var(--wizard-text);margin-bottom:.25rem}.setup-wizard-radio-card-description{font-size:.875rem;color:var(--wizard-text-muted);line-height:1.5}[data-theme=dark] .setup-wizard-radio-card{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-radio-card:hover{background:var(--gray-750);border-color:var(--gray-500)}[data-theme=dark] .setup-wizard-radio-card.selected{background:#3b82f626;border-color:var(--wizard-primary)}[data-theme=dark] .setup-wizard-radio-card-indicator{border-color:var(--gray-500)}.setup-wizard-chips{display:flex;flex-wrap:wrap;gap:.5rem}.setup-wizard-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--wizard-text-muted);background:var(--gray-100);border:1.5px solid transparent;border-radius:9999px;cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-chip:hover{background:var(--gray-200);color:var(--wizard-text)}.setup-wizard-chip.selected{background:var(--wizard-primary-light);border-color:var(--wizard-primary);color:var(--wizard-primary)}.setup-wizard-chip-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:transparent;border-radius:50%}.setup-wizard-chip.selected .setup-wizard-chip-icon{background:var(--wizard-primary);color:#fff}[data-theme=dark] .setup-wizard-chip{background:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .setup-wizard-chip:hover{background:var(--gray-600);color:var(--gray-100)}[data-theme=dark] .setup-wizard-chip.selected{background:#3b82f633}.setup-wizard-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:9999px;text-transform:uppercase;letter-spacing:.025em}.setup-wizard-badge-primary{background:var(--wizard-primary-light);color:var(--wizard-primary)}.setup-wizard-badge-success{background:var(--wizard-success-light);color:var(--wizard-success)}.setup-wizard-badge-warning{background:var(--wizard-warning-light);color:var(--wizard-warning)}.setup-wizard-badge-neutral{background:var(--gray-100);color:var(--wizard-text-muted)}[data-theme=dark] .setup-wizard-badge-neutral{background:var(--gray-700);color:var(--gray-300)}.setup-wizard-filter-bar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.setup-wizard-filter-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--wizard-text-muted);background:var(--gray-100);border:none;border-radius:var(--wizard-radius-xs);cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-filter-btn:hover{background:var(--gray-200);color:var(--wizard-text)}.setup-wizard-filter-btn.active{background:var(--wizard-primary);color:#fff}.setup-wizard-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;font-weight:600;background:#0000001a;border-radius:10px}.setup-wizard-filter-btn.active .setup-wizard-filter-count{background:#ffffff40}[data-theme=dark] .setup-wizard-filter-btn{background:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .setup-wizard-filter-btn:hover{background:var(--gray-600)}.setup-wizard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.setup-wizard-toolbar-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.setup-wizard-toolbar-right{display:flex;align-items:center;gap:.5rem}.setup-wizard-credits-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--gray-100);border-radius:var(--wizard-radius-xs);font-size:.875rem}.setup-wizard-credits-indicator.valid{background:var(--wizard-success-light);color:var(--wizard-success)}.setup-wizard-credits-indicator.warning{background:var(--wizard-warning-light);color:var(--wizard-warning)}.setup-wizard-credits-indicator.error{background:var(--wizard-danger-light);color:var(--wizard-danger)}.setup-wizard-credits-value{font-weight:700}.setup-wizard-tab-panel{animation:fadeIn .2s ease}@keyframes tabFadeIn{0%{opacity:0}to{opacity:1}}.setup-wizard-assignments-list{display:flex;flex-direction:column;gap:1.5rem}.setup-wizard-teacher-assignments-card{background:var(--wizard-card-bg);border:2px solid var(--wizard-border);border-radius:var(--wizard-radius-sm);overflow:hidden}.setup-wizard-teacher-assignments-card .teacher-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(to right,var(--gray-50),transparent);border-bottom:1px solid var(--wizard-border)}.setup-wizard-teacher-assignments-card .teacher-info{display:flex;flex-direction:column;gap:.25rem}.setup-wizard-teacher-assignments-card .teacher-name{font-size:1rem;font-weight:700;color:var(--wizard-text)}.setup-wizard-teacher-assignments-card .teacher-stats{font-size:.875rem;color:var(--wizard-text-muted)}.setup-wizard-teacher-assignments-card .assignments-list{padding:.5rem}.setup-wizard-teacher-assignments-card .assignment-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--wizard-radius-xs);margin-bottom:.5rem;transition:background var(--wizard-transition)}.setup-wizard-teacher-assignments-card .assignment-item:last-child{margin-bottom:0}.setup-wizard-teacher-assignments-card .assignment-item:hover{background:var(--wizard-primary-light)}.setup-wizard-teacher-assignments-card .assignment-info{flex:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.setup-wizard-teacher-assignments-card .assignment-ue{font-size:.875rem;font-weight:700;color:var(--wizard-primary);background:var(--wizard-primary-light);padding:.25rem .5rem;border-radius:4px}.setup-wizard-teacher-assignments-card .assignment-name{font-size:.875rem;color:var(--wizard-text);flex:1;min-width:120px}.setup-wizard-teacher-assignments-card .assignment-role{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.02em}.setup-wizard-teacher-assignments-card .assignment-role.role-enseignant{background:var(--gray-100);color:var(--wizard-text-muted)}.setup-wizard-teacher-assignments-card .assignment-role.role-responsable_ue{background:var(--wizard-success-light);color:var(--wizard-success)}.setup-wizard-teacher-assignments-card .assignment-role.role-responsable_programme{background:var(--wizard-primary-light);color:var(--wizard-primary)}.setup-wizard-teacher-assignments-card .assignment-role.role-membre_jury{background:var(--wizard-warning-light);color:var(--wizard-warning)}.setup-wizard-teacher-assignments-card .assignment-type{font-size:.75rem;font-weight:600;padding:.25rem .5rem;background:var(--gray-200);color:var(--gray-700);border-radius:4px}.setup-wizard-teacher-assignments-card .assignment-group{font-size:.75rem;padding:.25rem .5rem;background:var(--gray-100);color:var(--wizard-text-muted);border-radius:4px;font-style:italic}.setup-wizard-teacher-assignments-card .assignment-hours{font-size:.9375rem;font-weight:700;color:var(--wizard-text);padding-right:.5rem;min-width:45px;text-align:right}.setup-wizard-teacher-assignments-card .assignment-actions{display:flex;gap:.25rem}.setup-wizard-teacher-assignments-card .assignment-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--wizard-text-muted);cursor:pointer;transition:all var(--wizard-transition)}.setup-wizard-teacher-assignments-card .assignment-action-btn:hover{background:var(--gray-200);color:var(--wizard-primary)}.setup-wizard-teacher-assignments-card .assignment-action-btn.delete:hover{background:var(--wizard-danger-light);color:var(--wizard-danger)}[data-theme=dark] .setup-wizard-teacher-assignments-card{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-teacher-assignments-card .teacher-header{background:linear-gradient(to right,var(--gray-750),transparent);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-item{background:var(--gray-750)}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-item:hover{background:#3b82f626}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-type{background:var(--gray-600);color:var(--gray-200)}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-group{background:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-action-btn:hover{background:var(--gray-600)}[data-theme=dark] .setup-wizard-teacher-assignments-card .assignment-role.role-enseignant{background:var(--gray-700);color:var(--gray-300)}.setup-wizard-assignments-table-container{overflow-x:auto;border:1px solid var(--wizard-border);border-radius:var(--wizard-radius-sm)}.setup-wizard-assignments-table{width:100%;border-collapse:collapse;min-width:800px}.setup-wizard-assignments-table th{padding:.875rem .75rem;font-size:.75rem;font-weight:700;color:var(--wizard-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50);border-bottom:2px solid var(--wizard-border);text-align:left;white-space:nowrap}.setup-wizard-assignments-table td{padding:.625rem .75rem;border-bottom:1px solid var(--wizard-border);vertical-align:middle}.setup-wizard-assignments-table tbody tr{background:var(--wizard-card-bg);transition:background var(--wizard-transition)}.setup-wizard-assignments-table tbody tr:hover{background:var(--gray-50)}.setup-wizard-assignments-table tbody tr.has-assignment{background:var(--wizard-success-light)}.setup-wizard-assignments-table tbody tr.has-assignment:hover{background:#c6f6d5}.setup-wizard-assignments-table .ue-cell{padding:.5rem .75rem}.setup-wizard-assignments-table .ue-info{display:flex;flex-direction:column;gap:.125rem}.setup-wizard-assignments-table .ue-code{font-size:.8125rem;font-weight:700;color:var(--wizard-primary);background:var(--wizard-primary-light);padding:.125rem .375rem;border-radius:4px;display:inline-block;width:fit-content}.setup-wizard-assignments-table .ue-name{font-size:.875rem;font-weight:500;color:var(--wizard-text);line-height:1.3}.setup-wizard-assignments-table .ue-meta{font-size:.75rem;color:var(--wizard-text-muted)}.assignment-select{width:100%;padding:.5rem .625rem;font-size:.8125rem;color:var(--wizard-text);background:var(--wizard-card-bg);border:1.5px solid var(--wizard-border);border-radius:6px;cursor:pointer;transition:all var(--wizard-transition)}.assignment-select:hover:not(:disabled){border-color:var(--gray-300)}.assignment-select:focus{outline:none;border-color:var(--wizard-primary);box-shadow:0 0 0 3px #1a56db1a}.assignment-select:disabled{background:var(--gray-100);color:var(--wizard-text-muted);cursor:not-allowed;opacity:.7}.assignment-select-sm{padding:.375rem .5rem}.assignment-input{width:100%;padding:.5rem .625rem;font-size:.8125rem;color:var(--wizard-text);background:var(--wizard-card-bg);border:1.5px solid var(--wizard-border);border-radius:6px;transition:all var(--wizard-transition)}.assignment-input:focus{outline:none;border-color:var(--wizard-primary);box-shadow:0 0 0 3px #1a56db1a}.assignment-input:disabled{background:var(--gray-100);color:var(--wizard-text-muted);cursor:not-allowed}.assignment-input-hours{width:70px;text-align:center}.assignment-na{display:block;text-align:center;color:var(--wizard-text-muted);font-size:.875rem}.assignment-delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--wizard-text-muted);cursor:pointer;transition:all var(--wizard-transition)}.assignment-delete-btn:hover{background:var(--wizard-danger-light);color:var(--wizard-danger)}.assignments-summary{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem;background:var(--gray-50);border-top:1px solid var(--wizard-border);font-size:.875rem;color:var(--wizard-text-muted)}.assignments-summary span:not(:last-child):not(:first-child){color:var(--gray-300)}.assignments-summary.incomplete{background:var(--wizard-warning-light);border-top-color:var(--wizard-warning)}.assignments-summary.complete{background:var(--wizard-success-light);border-top-color:var(--wizard-success)}.assignments-summary .warning-text{display:flex;align-items:center;color:var(--wizard-warning);font-weight:600}.assignments-summary .success-text{display:flex;align-items:center;color:var(--wizard-success);font-weight:600}[data-theme=dark] .setup-wizard-assignments-table-container{border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-assignments-table th{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-assignments-table td{border-color:var(--gray-700)}[data-theme=dark] .setup-wizard-assignments-table tbody tr{background:var(--gray-800)}[data-theme=dark] .setup-wizard-assignments-table tbody tr:hover{background:var(--gray-750)}[data-theme=dark] .setup-wizard-assignments-table tbody tr.has-assignment{background:#05966926}[data-theme=dark] .setup-wizard-assignments-table tbody tr.has-assignment:hover{background:#05966933}[data-theme=dark] .assignment-select{background:var(--gray-750);border-color:var(--gray-600)}[data-theme=dark] .assignment-select:hover:not(:disabled){border-color:var(--gray-500)}[data-theme=dark] .assignment-select:disabled{background:var(--gray-700)}[data-theme=dark] .assignment-input{background:var(--gray-750);border-color:var(--gray-600)}[data-theme=dark] .assignment-input:disabled{background:var(--gray-700)}[data-theme=dark] .assignments-summary{background:var(--gray-800);border-color:var(--gray-600)}.setup-wizard-list-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:var(--wizard-radius-xs);border:1px solid var(--wizard-border);transition:background-color var(--wizard-transition)}.setup-wizard-list-item:hover{background:var(--gray-100)}.setup-wizard-simple-table{width:100%;border-collapse:collapse;font-size:.9375rem}.setup-wizard-simple-table th,.setup-wizard-simple-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--wizard-border)}.setup-wizard-simple-table th{font-weight:600;color:var(--wizard-text-muted);background:var(--gray-100);font-size:.8125rem;text-transform:uppercase;letter-spacing:.025em}.setup-wizard-simple-table th:first-child{border-top-left-radius:var(--wizard-radius-xs)}.setup-wizard-simple-table th:last-child{border-top-right-radius:var(--wizard-radius-xs)}.setup-wizard-simple-table td{color:var(--wizard-text)}.setup-wizard-simple-table tbody tr:hover{background:var(--gray-50)}[data-theme=dark] .setup-wizard-list-item{background:var(--gray-800);border-color:var(--gray-600)}[data-theme=dark] .setup-wizard-list-item:hover{background:var(--gray-700)}[data-theme=dark] .setup-wizard-simple-table th{background:var(--gray-800);color:var(--gray-400)}[data-theme=dark] .setup-wizard-simple-table td{border-color:var(--gray-700)}[data-theme=dark] .setup-wizard-simple-table tbody tr:hover{background:var(--gray-750)}.rooms-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.rooms-search{flex:1;min-width:250px;position:relative}.rooms-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.rooms-search input{padding-left:2.75rem}.rooms-filter-group{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.rooms-filter-group select{min-width:150px}.rooms-capacity{display:inline-flex;align-items:center;gap:.375rem;font-weight:500;color:var(--gray-700)}.rooms-capacity svg{color:var(--gray-400)}.rooms-equipment{display:flex;flex-wrap:wrap;gap:.25rem}.rooms-equipment-tag{display:inline-flex;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;background:var(--gray-100);color:var(--gray-600);border-radius:var(--radius-sm)}.rooms-equipment-more{display:inline-flex;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;background:var(--gpe-blue-50);color:var(--gpe-blue);border-radius:var(--radius-sm)}.room-type-amphitheatre{background:var(--gpe-purple-50)!important;color:var(--gpe-purple)!important}.room-type-salle_cours{background:var(--gpe-blue-50)!important;color:var(--gpe-blue)!important}.room-type-salle_td{background:var(--gpe-green-50)!important;color:var(--gpe-green)!important}.room-type-salle_tp{background:var(--gpe-orange-50)!important;color:var(--gpe-orange)!important}.room-type-salle_informatique{background:#e0f2fe!important;color:#0284c7!important}.room-type-salle_conference{background:#fce7f3!important;color:#db2777!important}.rooms-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.rooms-stat{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.rooms-stat-value{font-size:1.5rem;font-weight:700;color:var(--gpe-blue)}.rooms-stat-label{font-size:.8125rem;color:var(--gray-500);margin-top:.25rem}:root.dark .rooms-filters,.dark .rooms-filters{background:#1e293b;border-color:#334155}:root.dark .rooms-equipment-tag,.dark .rooms-equipment-tag{background:#334155;color:var(--gray-300)}:root.dark .rooms-stat,.dark .rooms-stat{background:#1e293b;border-color:#334155}@media(max-width:768px){.rooms-filters{flex-direction:column}.rooms-search{min-width:100%}.rooms-filter-group{width:100%}.rooms-filter-group select{flex:1;min-width:0}}.room-form-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.room-form-breadcrumb a{color:var(--gpe-blue);text-decoration:none}.room-form-breadcrumb a:hover{text-decoration:underline}.room-form-breadcrumb svg{color:var(--gray-400)}.room-form-breadcrumb span{color:var(--gray-500)}.room-form-section{padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.room-form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.room-form-section-title{font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.room-form-equipment{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.room-form-equipment-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:2px solid transparent}.room-form-equipment-item:hover{background:var(--gpe-blue-50)}.room-form-equipment-item:has(input:checked){background:var(--gpe-blue-50);border-color:var(--gpe-blue)}.room-form-equipment-item input{position:absolute;opacity:0;pointer-events:none}.room-form-equipment-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);transition:all var(--transition)}.room-form-equipment-item:has(input:checked) .room-form-equipment-check{background:var(--gpe-blue);border-color:var(--gpe-blue);color:#fff}.room-form-equipment-check svg{display:none}.room-form-equipment-item:has(input:checked) .room-form-equipment-check svg{display:block}.room-form-equipment-label{font-size:.9375rem;color:var(--gray-700);font-weight:500}.room-form-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;color:var(--gray-700)}.room-form-checkbox input{width:18px;height:18px;accent-color:var(--gpe-blue)}.room-form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;background:var(--gray-50);border-top:1px solid var(--gray-200);border-radius:0 0 var(--radius-lg) var(--radius-lg)}:root.dark .room-form-section,.dark .room-form-section{border-bottom-color:#334155}:root.dark .room-form-section-title,.dark .room-form-section-title{color:var(--gray-200)}:root.dark .room-form-equipment-item,.dark .room-form-equipment-item{background:#334155}:root.dark .room-form-equipment-item:hover,.dark .room-form-equipment-item:hover{background:#3b82f633}:root.dark .room-form-equipment-item:has(input:checked),.dark .room-form-equipment-item:has(input:checked){background:#3b82f633}:root.dark .room-form-equipment-label,.dark .room-form-equipment-label{color:var(--gray-300)}:root.dark .room-form-checkbox,.dark .room-form-checkbox{color:var(--gray-300)}:root.dark .room-form-actions,.dark .room-form-actions{background:#0f172a;border-top-color:#334155}@media(max-width:640px){.room-form-equipment{grid-template-columns:1fr}.room-form-actions{flex-direction:column-reverse}.room-form-actions .btn{width:100%}}.room-agenda-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.room-agenda-breadcrumb a{color:var(--gpe-blue);text-decoration:none}.room-agenda-breadcrumb a:hover{text-decoration:underline}.room-agenda-breadcrumb svg{color:var(--gray-400)}.room-agenda-breadcrumb span{color:var(--gray-500)}.room-agenda-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);flex-wrap:wrap;gap:1rem}.room-agenda-nav-left{display:flex;align-items:center;gap:.5rem}.room-agenda-week-label{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--gray-800)}.room-agenda-week-label svg{color:var(--gpe-blue)}.room-agenda-nav-right{display:flex;align-items:center;gap:.75rem}.room-agenda-conflict-badge{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--gpe-rose-50);color:var(--gpe-rose);font-size:.875rem;font-weight:600;border-radius:var(--radius-full)}.room-agenda-grid{overflow-x:auto}.room-agenda-header{display:grid;grid-template-columns:60px repeat(6,1fr);border-bottom:2px solid var(--gray-200);position:sticky;top:0;background:var(--white);z-index:10}.room-agenda-time-header{padding:.75rem;background:var(--gray-50);border-right:1px solid var(--gray-200)}.room-agenda-day-header{display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-right:1px solid var(--gray-200)}.room-agenda-day-header:last-child{border-right:none}.room-agenda-day-header.today{background:var(--gpe-blue-50)}.room-agenda-day-name{font-size:.875rem;font-weight:600;color:var(--gray-700)}.room-agenda-day-header.today .room-agenda-day-name{color:var(--gpe-blue)}.room-agenda-day-date{font-size:.75rem;color:var(--gray-500);margin-top:.125rem}.room-agenda-body{display:grid;grid-template-columns:60px repeat(6,1fr);position:relative}.room-agenda-time-column{background:var(--gray-50);border-right:1px solid var(--gray-200)}.room-agenda-time-slot{height:60px;display:flex;align-items:flex-start;justify-content:flex-end;padding:.25rem .5rem 0 0;font-size:.75rem;color:var(--gray-500);border-bottom:1px solid var(--gray-100)}.room-agenda-day-column{position:relative;border-right:1px solid var(--gray-200);min-height:780px}.room-agenda-day-column:last-child{border-right:none}.room-agenda-day-column.today{background:#3b82f608}.room-agenda-hour-slot{height:60px;border-bottom:1px solid var(--gray-100)}.room-agenda-session{position:absolute;left:4px;right:4px;padding:.375rem .5rem;border-radius:var(--radius-md);font-size:.75rem;overflow:hidden;cursor:pointer;transition:all var(--transition);z-index:5;border-left:3px solid}.room-agenda-session:hover{z-index:10;transform:scale(1.02);box-shadow:var(--shadow-md)}.room-agenda-session.conflict{background:var(--gpe-rose-50)!important;border-left-color:var(--gpe-rose)!important}.room-agenda-session.session-type-cours{background:var(--gpe-blue-50);border-left-color:var(--gpe-blue)}.room-agenda-session.session-type-td{background:var(--gpe-green-50);border-left-color:var(--gpe-green)}.room-agenda-session.session-type-tp{background:var(--gpe-orange-50);border-left-color:var(--gpe-orange)}.room-agenda-session.session-type-examen{background:var(--gpe-rose-50);border-left-color:var(--gpe-rose)}.room-agenda-session.session-type-reunion{background:var(--gpe-purple-50);border-left-color:var(--gpe-purple)}.room-agenda-session.session-type-autre{background:var(--gray-100);border-left-color:var(--gray-500)}.room-agenda-session-time{font-size:.6875rem;font-weight:600;color:var(--gray-600)}.room-agenda-session-title{font-weight:600;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-agenda-session-info{color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-agenda-session-teacher{font-size:.6875rem;color:var(--gray-500);font-style:italic}.room-agenda-session-type{display:none;font-size:.625rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.02em}.room-agenda-session-conflict{position:absolute;top:.25rem;right:.25rem;color:var(--gpe-rose)}.room-agenda-legend{margin-top:1.5rem;padding:1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.room-agenda-legend h4{font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.75rem}.room-agenda-legend-items{display:flex;flex-wrap:wrap;gap:1rem}.room-agenda-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--gray-600)}.room-agenda-legend-item.conflict{font-weight:500}.room-agenda-legend-color{width:16px;height:16px;border-radius:var(--radius-sm);border-left:3px solid}.room-agenda-legend-color.session-type-cours{background:var(--gpe-blue-50);border-left-color:var(--gpe-blue)}.room-agenda-legend-color.session-type-td{background:var(--gpe-green-50);border-left-color:var(--gpe-green)}.room-agenda-legend-color.session-type-tp{background:var(--gpe-orange-50);border-left-color:var(--gpe-orange)}.room-agenda-legend-color.session-type-examen{background:var(--gpe-rose-50);border-left-color:var(--gpe-rose)}.room-agenda-legend-color.session-type-reunion{background:var(--gpe-purple-50);border-left-color:var(--gpe-purple)}.room-agenda-legend-color.conflict{background:var(--gpe-rose-50);border-left-color:var(--gpe-rose);position:relative}.room-agenda-legend-color.conflict:after{content:"!";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:700;color:var(--gpe-rose)}:root.dark .room-agenda-nav,.dark .room-agenda-nav{background:#1e293b;border-color:#334155}:root.dark .room-agenda-week-label,.dark .room-agenda-week-label{color:var(--gray-200)}:root.dark .room-agenda-header,.dark .room-agenda-header{background:#1e293b;border-bottom-color:#334155}:root.dark .room-agenda-time-header,:root.dark .room-agenda-time-column,.dark .room-agenda-time-header,.dark .room-agenda-time-column{background:#0f172a;border-right-color:#334155}:root.dark .room-agenda-day-header,.dark .room-agenda-day-header{border-right-color:#334155}:root.dark .room-agenda-day-header.today,.dark .room-agenda-day-header.today{background:#3b82f626}:root.dark .room-agenda-day-column,.dark .room-agenda-day-column{border-right-color:#334155}:root.dark .room-agenda-day-column.today,.dark .room-agenda-day-column.today{background:#3b82f60d}:root.dark .room-agenda-time-slot,:root.dark .room-agenda-hour-slot,.dark .room-agenda-time-slot,.dark .room-agenda-hour-slot{border-bottom-color:#334155}:root.dark .room-agenda-legend,.dark .room-agenda-legend{background:#1e293b;border-color:#334155}:root.dark .room-agenda-legend h4,.dark .room-agenda-legend h4{color:var(--gray-200)}@media(max-width:1024px){.room-agenda-grid{min-width:800px}}@media(max-width:768px){.room-agenda-nav{flex-direction:column;align-items:stretch}.room-agenda-nav-left,.room-agenda-nav-right{justify-content:center}.room-agenda-legend-items{flex-direction:column;gap:.5rem}}.users-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.users-search{flex:1;min-width:250px;position:relative}.users-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.users-search input{padding-left:2.75rem}.users-filter-group{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.users-filter-group select{min-width:150px}.users-name-cell{display:flex;align-items:center;gap:.75rem}.users-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--gradient-mixed);color:var(--white);font-size:.875rem;font-weight:600;flex-shrink:0;overflow:hidden}.users-avatar img{width:100%;height:100%;object-fit:cover}.users-name-info{display:flex;flex-direction:column;gap:.125rem}.users-name-info strong{color:var(--gray-900);font-weight:600}.users-matricule{font-size:.75rem;color:var(--gray-500)}.users-roles{display:flex;flex-wrap:wrap;gap:.25rem}.role-badge{display:inline-flex;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;border-radius:var(--radius-sm);white-space:nowrap}.role-badge.role-super_admin{background:var(--gpe-purple-50);color:var(--gpe-purple)}.role-badge.role-admin{background:var(--gpe-blue-50);color:var(--gpe-blue)}.role-badge.role-responsable_academique{background:#e0f2fe;color:#0284c7}.role-badge.role-enseignant_titulaire{background:var(--gpe-green-50);color:var(--gpe-green)}.role-badge.role-enseignant_vacataire{background:#ecfdf5;color:#059669}.role-badge.role-auditeur{background:var(--gpe-orange-50);color:var(--gpe-orange)}.role-badge.role-etudiant{background:#fef3c7;color:#d97706}.role-badge.role-more{background:var(--gray-100);color:var(--gray-600)}.users-last-login{font-size:.8125rem;color:var(--gray-500)}.admin-table-btn.warning:hover{background:var(--gpe-orange-50);color:var(--gpe-orange)}.admin-table-btn.success:hover{background:var(--gpe-green-50);color:var(--gpe-green)}.users-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.users-stat{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.users-stat-value{font-size:1.5rem;font-weight:700;color:var(--gpe-blue)}.users-stat-label{font-size:.8125rem;color:var(--gray-500);margin-top:.25rem;text-align:center}:root.dark .users-filters,.dark .users-filters{background:#1e293b;border-color:#334155}:root.dark .users-name-info strong,.dark .users-name-info strong{color:var(--gray-100)}:root.dark .users-matricule,.dark .users-matricule{color:var(--gray-400)}:root.dark .role-badge.role-more,.dark .role-badge.role-more{background:#334155;color:var(--gray-300)}:root.dark .users-stat,.dark .users-stat{background:#1e293b;border-color:#334155}@media(max-width:768px){.users-filters{flex-direction:column}.users-search{min-width:100%}.users-filter-group{width:100%}.users-filter-group select{flex:1;min-width:0}.users-name-cell{flex-direction:column;align-items:flex-start;gap:.5rem}.users-avatar{width:32px;height:32px;font-size:.75rem}}.user-form-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.user-form-breadcrumb a{color:var(--gpe-blue);text-decoration:none}.user-form-breadcrumb a:hover{text-decoration:underline}.user-form-breadcrumb svg{color:var(--gray-400)}.user-form-breadcrumb span{color:var(--gray-500)}.user-form-section{padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-100)}.user-form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.user-form-section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--gray-800);margin-bottom:1rem}.user-form-section-title svg{color:var(--gpe-blue)}.user-form-section.collapsible{padding-bottom:0}.user-form-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin-bottom:0;background:none;border:none;cursor:pointer;text-align:left}.user-form-section-header:hover .user-form-section-title{color:var(--gpe-blue)}.user-form-section-chevron{color:var(--gray-400);transition:transform var(--transition)}.user-form-section-chevron.expanded{transform:rotate(180deg)}.user-form-section-content{padding-top:1rem;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-form-password-hint{font-weight:400;font-size:.8125rem;color:var(--gray-500);margin-left:.5rem}.user-form-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;padding:.5rem;border-radius:var(--radius-md);transition:all var(--transition)}.user-form-roles.error{background:var(--gpe-rose-50);padding:.75rem}.user-form-role-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:2px solid transparent}.user-form-role-item:hover{background:var(--gpe-blue-50)}.user-form-role-item:has(input:checked){background:var(--gpe-blue-50);border-color:var(--gpe-blue)}.user-form-role-item input{position:absolute;opacity:0;pointer-events:none}.user-form-role-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);transition:all var(--transition);flex-shrink:0}.user-form-role-item:has(input:checked) .user-form-role-check{background:var(--gpe-blue);border-color:var(--gpe-blue);color:#fff}.user-form-role-check svg{display:none}.user-form-role-item:has(input:checked) .user-form-role-check svg{display:block}.user-form-role-label{font-size:.9375rem;color:var(--gray-700);font-weight:500}.user-form-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer}.user-form-toggle input{position:absolute;opacity:0;pointer-events:none}.user-form-toggle-switch{position:relative;width:44px;height:24px;background:var(--gray-300);border-radius:12px;transition:all var(--transition);flex-shrink:0}.user-form-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--white);border-radius:50%;transition:all var(--transition);box-shadow:var(--shadow-sm)}.user-form-toggle:has(input:checked) .user-form-toggle-switch{background:var(--gpe-green)}.user-form-toggle:has(input:checked) .user-form-toggle-switch:after{left:22px}.user-form-toggle-label{font-size:.9375rem;font-weight:500;color:var(--gray-700)}.user-form-toggle-hint{font-size:.8125rem;color:var(--gray-500);margin-top:.375rem;margin-left:56px}.user-form-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:var(--gray-50);border:2px dashed var(--gray-200);border-radius:var(--radius-lg);text-align:center}.user-form-placeholder svg{color:var(--gray-400);margin-bottom:.75rem}.user-form-placeholder p{font-size:.9375rem;color:var(--gray-500);margin:0}.user-form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;background:var(--gray-50);border-top:1px solid var(--gray-200);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.alert{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500}.alert button{background:none;border:none;font-size:1.25rem;cursor:pointer;opacity:.7;padding:0;line-height:1}.alert button:hover{opacity:1}.alert-error{background:var(--gpe-rose-50);color:var(--gpe-rose)}.alert-error button{color:var(--gpe-rose)}.alert-success{background:var(--gpe-green-50);color:var(--gpe-green)}.alert-success button{color:var(--gpe-green)}:root.dark .user-form-section,.dark .user-form-section{border-bottom-color:#334155}:root.dark .user-form-section-title,.dark .user-form-section-title{color:var(--gray-200)}:root.dark .user-form-role-item,.dark .user-form-role-item{background:#334155}:root.dark .user-form-role-item:hover,.dark .user-form-role-item:hover{background:#3b82f633}:root.dark .user-form-role-item:has(input:checked),.dark .user-form-role-item:has(input:checked){background:#3b82f633}:root.dark .user-form-role-label,.dark .user-form-role-label{color:var(--gray-300)}:root.dark .user-form-toggle-label,.dark .user-form-toggle-label{color:var(--gray-300)}:root.dark .user-form-toggle-switch,.dark .user-form-toggle-switch{background:#475569}:root.dark .user-form-toggle-hint,.dark .user-form-toggle-hint{color:var(--gray-400)}:root.dark .user-form-password-hint,.dark .user-form-password-hint{color:var(--gray-400)}:root.dark .user-form-placeholder,.dark .user-form-placeholder{background:#334155;border-color:#475569}:root.dark .user-form-placeholder p,.dark .user-form-placeholder p{color:var(--gray-400)}:root.dark .user-form-actions,.dark .user-form-actions{background:#0f172a;border-top-color:#334155}:root.dark .user-form-roles.error,.dark .user-form-roles.error{background:#f43f5e26}:root.dark .alert-error,.dark .alert-error{background:#f43f5e26}:root.dark .alert-success,.dark .alert-success{background:#22c55e26}@media(max-width:640px){.user-form-roles{grid-template-columns:1fr}.user-form-actions{flex-direction:column-reverse}.user-form-actions .btn{width:100%}.user-form-toggle-hint{margin-left:0;margin-top:.5rem}}.user-detail-back{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-500);text-decoration:none;margin-bottom:1.5rem;transition:color var(--transition)}.user-detail-back:hover{color:var(--gpe-blue)}.user-detail-header{display:flex;align-items:flex-start;gap:1.5rem;padding:1.5rem;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);margin-bottom:1.5rem}.user-detail-avatar{flex-shrink:0}.user-detail-avatar-img{width:100px;height:100px;border-radius:50%;object-fit:cover;border:3px solid var(--gray-200)}.user-detail-avatar-placeholder{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:50%;background:var(--gradient-mixed);color:var(--white);font-size:2rem;font-weight:700}.user-detail-info{flex:1;min-width:0}.user-detail-name{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.user-detail-email{font-size:.9375rem;color:var(--gray-500);margin-bottom:.75rem}.user-detail-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.user-detail-status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;border-radius:var(--radius-full)}.user-detail-status-badge.active{background:var(--gpe-green-50);color:var(--gpe-green)}.user-detail-status-badge.inactive{background:var(--gray-100);color:var(--gray-500)}.user-detail-status-badge svg{width:14px;height:14px}.user-detail-role-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;background:var(--gpe-blue-50);color:var(--gpe-blue);border-radius:var(--radius-full)}.user-detail-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-left:auto;flex-shrink:0}.user-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}@media(max-width:1024px){.user-detail-grid{grid-template-columns:1fr}}.user-detail-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden}.user-detail-card-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.user-detail-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--gpe-blue-50);color:var(--gpe-blue)}.user-detail-card-icon.green{background:var(--gpe-green-50);color:var(--gpe-green)}.user-detail-card-icon.purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.user-detail-card-icon.orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.user-detail-card-title{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.user-detail-card-body{padding:1.25rem}.user-detail-info-row{display:flex;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--gray-100)}.user-detail-info-row:last-child{border-bottom:none;padding-bottom:0}.user-detail-info-row:first-child{padding-top:0}.user-detail-info-label{flex:0 0 140px;font-size:.8125rem;font-weight:500;color:var(--gray-500)}.user-detail-info-value{flex:1;font-size:.9375rem;color:var(--gray-900);word-break:break-word}.user-detail-info-value.empty{color:var(--gray-400);font-style:italic}.user-detail-info-value a{color:var(--gpe-blue);text-decoration:none}.user-detail-info-value a:hover{text-decoration:underline}.user-detail-payment-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.user-detail-payment-badge.complete{background:var(--gpe-green-50);color:var(--gpe-green)}.user-detail-payment-badge.partial{background:var(--gpe-orange-50);color:var(--gpe-orange)}.user-detail-payment-badge.pending{background:var(--gray-100);color:var(--gray-500)}.user-detail-modality-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);background:var(--gpe-purple-50);color:var(--gpe-purple)}.user-detail-activity{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden}.user-detail-activity-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.user-detail-activity-body{padding:2rem;text-align:center}.user-detail-activity-placeholder{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--gray-400)}.user-detail-activity-placeholder svg{width:48px;height:48px;opacity:.5}.user-detail-activity-placeholder p{font-size:.9375rem;color:var(--gray-500)}.user-detail-confirm-modal{text-align:center}.user-detail-confirm-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 1rem;border-radius:50%}.user-detail-confirm-icon.danger{background:var(--gpe-rose-50);color:var(--gpe-rose)}.user-detail-confirm-icon.warning{background:var(--gpe-orange-50);color:var(--gpe-orange)}.user-detail-confirm-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin-bottom:.5rem}.user-detail-confirm-text{font-size:.9375rem;color:var(--gray-600)}@media(max-width:768px){.user-detail-header{flex-direction:column;align-items:center;text-align:center}.user-detail-badges{justify-content:center}.user-detail-actions{margin-left:0;width:100%;justify-content:center}.user-detail-info-row{flex-direction:column;gap:.25rem}.user-detail-info-label{flex:none}}:root.dark .user-detail-header,.dark .user-detail-header{background:#1e293b;border-color:#334155}:root.dark .user-detail-avatar-img,.dark .user-detail-avatar-img{border-color:#334155}:root.dark .user-detail-card,.dark .user-detail-card{background:#1e293b;border-color:#334155}:root.dark .user-detail-card-header,.dark .user-detail-card-header{background:#0f172a;border-bottom-color:#334155}:root.dark .user-detail-info-row,.dark .user-detail-info-row{border-bottom-color:#334155}:root.dark .user-detail-activity,.dark .user-detail-activity{background:#1e293b;border-color:#334155}:root.dark .user-detail-activity-header,.dark .user-detail-activity-header{background:#0f172a;border-bottom-color:#334155}:root.dark .user-detail-status-badge.inactive,.dark .user-detail-status-badge.inactive{background:#334155;color:var(--gray-400)}:root.dark .user-detail-payment-badge.pending,.dark .user-detail-payment-badge.pending{background:#334155;color:var(--gray-400)}.schedule-page{min-height:100vh;background:#f8fafc;padding:1.5rem}.schedule-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:#64748b}.schedule-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.schedule-header{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000000d}.schedule-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.schedule-header h1{font-size:1.5rem;font-weight:600;color:#1e293b;margin:0}.schedule-stats{display:flex;gap:1.5rem}.schedule-stats .stat{font-size:.875rem;color:#64748b;font-weight:500}.schedule-filters{display:flex;gap:.75rem}.filter-group{flex:1;max-width:200px}.filter-select{width:100%;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#334155;background:#fff;cursor:pointer;transition:border-color .15s}.filter-select:hover{border-color:#cbd5e1}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.schedule-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000000d}.nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;transition:all .15s}.nav-btn:hover{background:#e2e8f0}.nav-btn svg{width:20px;height:20px;color:#475569}.nav-center{display:flex;align-items:center;gap:1rem}.week-label{font-size:1rem;font-weight:600;color:#1e293b}.today-btn{padding:.375rem .75rem;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:.8125rem;color:#475569;cursor:pointer;transition:all .15s}.today-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.schedule-content{display:flex;gap:1rem;min-height:500px}.schedule-calendar{flex:1;background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px #0000000d;overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day{background:#fafafa;border-radius:10px;padding:.75rem;min-height:180px;cursor:pointer;transition:all .15s;border:2px solid transparent;display:flex;flex-direction:column}.calendar-day:hover{background:#f1f5f9}.calendar-day.selected{border-color:#3b82f6;background:#eff6ff}.calendar-day.today{background:#fef3c7}.calendar-day.today.selected{background:#fef3c7;border-color:#f59e0b}.calendar-day.weekend{background:#f8fafc;opacity:.7}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.day-name{font-size:.75rem;font-weight:500;color:#64748b;text-transform:uppercase}.day-number{font-size:1rem;font-weight:600;color:#334155;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.day-number.today{background:#f59e0b;color:#fff}.day-sessions{flex:1;display:flex;flex-direction:column;gap:.375rem}.no-sessions{color:#cbd5e1;font-size:.875rem;text-align:center;padding:1rem 0}.session-card{background:#fff;border-radius:6px;padding:.375rem .5rem;border-left:3px solid #3b82f6;font-size:.75rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .15s;box-shadow:0 1px 2px #0000000d}.session-card:hover{transform:translate(2px);box-shadow:0 2px 4px #0000001a}.session-time{font-weight:600;color:#475569;font-size:.7rem}.session-info{display:flex;align-items:center;gap:.375rem;flex:1;min-width:0}.session-code{font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-type{padding:.125rem .375rem;border-radius:4px;font-size:.625rem;font-weight:600;color:#fff;flex-shrink:0}.more-sessions{font-size:.7rem;color:#64748b;text-align:center;padding:.25rem;font-weight:500}.day-footer{margin-top:auto;padding-top:.5rem;border-top:1px solid #e2e8f0}.session-count{font-size:.7rem;color:#64748b}.schedule-panel{width:340px;flex-shrink:0;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.panel-header h3{font-size:1rem;font-weight:600;color:#1e293b;margin:0;text-transform:capitalize}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:6px;cursor:pointer;transition:background .15s}.close-btn:hover{background:#e2e8f0}.close-btn svg{width:18px;height:18px;color:#64748b}.panel-content{flex:1;overflow-y:auto;padding:1rem 1.25rem}.panel-footer{display:flex;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid #e2e8f0;background:#f8fafc}.empty-day{text-align:center;padding:2rem 1rem;color:#64748b}.session-list{display:flex;flex-direction:column;gap:.75rem}.session-item{background:#f8fafc;border-radius:8px;padding:.75rem;border-left:3px solid #3b82f6;cursor:pointer;transition:all .15s}.session-item:hover{background:#f1f5f9;transform:translate(2px)}.session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.session-type-badge{padding:.125rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:600;color:#fff}.session-item .session-time{font-size:.8125rem;font-weight:500;color:#475569}.session-title{display:flex;flex-direction:column;gap:.125rem}.session-title .code{font-weight:600;color:#1e293b;font-size:.875rem}.session-title .title{font-size:.8125rem;color:#64748b;line-height:1.3}.session-meta{display:flex;gap:.75rem;margin-top:.5rem;font-size:.75rem;color:#64748b}.panel-edit .panel-content{display:flex;flex-direction:column;gap:1rem}.edit-ue{background:#f1f5f9;padding:.75rem;border-radius:8px}.edit-ue .ue-code{display:block;font-weight:600;color:#1e293b;font-size:.9375rem;margin-bottom:.25rem}.edit-ue .ue-title{display:block;font-size:.8125rem;color:#64748b}.edit-date{font-size:.875rem;color:#475569;text-transform:capitalize}.edit-row{display:flex;flex-direction:column;gap:.5rem}.edit-row label{font-size:.75rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.025em}.time-inputs{display:flex;align-items:center;gap:.5rem}.time-inputs input{flex:1;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.9375rem}.time-inputs input:focus{outline:none;border-color:#3b82f6}.time-inputs span{color:#64748b;font-size:.875rem}.type-buttons{display:flex;gap:.375rem}.type-btn{flex:1;padding:.5rem;border:2px solid var(--color, #e2e8f0);background:#fff;border-radius:6px;font-size:.8125rem;font-weight:600;color:var(--color, #64748b);cursor:pointer;transition:all .15s}.type-btn:hover{background:#f8fafc}.type-btn.active{color:#fff;border-color:transparent}.edit-row select{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#334155;background:#fff}.edit-row select:focus{outline:none;border-color:#3b82f6}.btn-save{padding:.5rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-save:hover:not(:disabled){background:#2563eb}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-delete{padding:.5rem 1rem;background:#fff;color:#ef4444;border:1px solid #fecaca;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-delete:hover:not(:disabled){background:#fef2f2;border-color:#ef4444}.btn-delete:disabled{opacity:.6;cursor:not-allowed}.schedule-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;padding:.75rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-color{width:12px;height:12px;border-radius:3px}.legend-label{font-size:.8125rem;color:#64748b}@media(max-width:1200px){.schedule-panel{width:300px}}@media(max-width:1024px){.schedule-content{flex-direction:column}.schedule-panel{width:100%;max-height:400px}.calendar-day{min-height:140px}}@media(max-width:768px){.schedule-page{padding:1rem}.calendar-grid{grid-template-columns:repeat(5,1fr)}.calendar-day.weekend{display:none}.schedule-filters{flex-wrap:wrap}.filter-group{max-width:none}.schedule-stats{display:none}.schedule-legend{flex-wrap:wrap;gap:.75rem 1.5rem}}.teacher-nav{display:flex;flex-direction:column;height:100%}.teacher-nav-content{flex:1;padding:1.25rem 1rem;overflow-y:auto}.teacher-nav-section{margin-bottom:1rem}.teacher-nav-section-title{font-size:.75rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;padding:0 .75rem;margin-bottom:.75rem}.teacher-nav-list{list-style:none;padding:0;margin:0}.teacher-nav-link{display:flex;align-items:center;gap:.875rem;min-height:48px;padding:.75rem 1rem;color:var(--gray-700);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition);font-size:16px;font-weight:500;position:relative}.teacher-nav-link:hover{background:var(--gray-100);color:var(--gray-900)}.teacher-nav-link:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.teacher-nav-link.active{background:var(--gpe-green-50);color:var(--gpe-green)}.teacher-nav-link.active .teacher-nav-icon{color:var(--gpe-green)}.teacher-nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--gray-500);flex-shrink:0}.teacher-nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--gpe-rose);color:var(--white);font-size:.75rem;font-weight:700;border-radius:var(--radius-full);flex-shrink:0}.teacher-nav-separator{height:1px;background:var(--gray-200);margin:1rem .75rem}.teacher-nav-footer{padding:1rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.teacher-nav-back{color:var(--gray-500)}.teacher-nav-back:hover{background:var(--gray-100);color:var(--gray-700)}.teacher-nav-link:hover .teacher-nav-badge{background:var(--gpe-rose-light)}.teacher-nav-link.active .teacher-nav-badge{background:var(--gpe-green)}.teacher-nav-external{margin-left:auto;opacity:.5;flex-shrink:0}.teacher-nav-link:hover .teacher-nav-external{opacity:.8}@media(max-width:1024px){.teacher-nav-content{padding:1rem}.teacher-nav-link{padding:.875rem 1rem}}@media(prefers-contrast:high){.teacher-nav-link{border:1px solid transparent}.teacher-nav-link:hover{border-color:var(--gray-400)}.teacher-nav-link.active{border-color:var(--gpe-green)}.teacher-nav-badge{border:2px solid var(--white)}}@media(prefers-reduced-motion:reduce){.teacher-nav-link{transition:none}}:root.dark .teacher-nav-link:hover,.dark .teacher-nav-link:hover{background:#334155}:root.dark .teacher-nav-link.active,.dark .teacher-nav-link.active{background:#05966933}:root.dark .teacher-nav-separator,.dark .teacher-nav-separator{background:#334155}:root.dark .teacher-nav-footer,.dark .teacher-nav-footer{background:#0f172a;border-top-color:#334155}:root.dark .teacher-nav-back:hover,.dark .teacher-nav-back:hover{background:#334155}.teacher-layout{--teacher-font-base: 16px;--teacher-font-large: 18px;--teacher-touch-target: 48px;min-height:100vh;background:var(--gray-50);font-size:var(--teacher-font-base)}.teacher-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 1.5rem;background:var(--white);border-bottom:2px solid var(--gray-200);box-shadow:var(--shadow-sm)}.teacher-header-left{display:flex;align-items:center;gap:1rem}.teacher-menu-toggle{display:none;min-width:var(--teacher-touch-target);min-height:var(--teacher-touch-target);padding:.75rem;background:none;border:none;color:var(--gray-700);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.teacher-menu-toggle:hover{background:var(--gray-100);color:var(--gray-900)}.teacher-menu-toggle:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.teacher-logo{display:flex;align-items:center;gap:.75rem}.teacher-logo-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--gradient-green);color:var(--white);border-radius:var(--radius-md)}.teacher-logo-text{font-size:var(--teacher-font-large);color:var(--gray-700);font-weight:500}.teacher-logo-text strong{color:var(--gpe-green);font-weight:700}.teacher-header-right,.teacher-user-menu{display:flex;align-items:center;gap:1rem}.teacher-user-info{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.teacher-user-name{font-size:var(--teacher-font-base);font-weight:600;color:var(--gray-900)}.teacher-user-role{font-size:.875rem;color:var(--gray-500)}.teacher-user-avatar{display:flex;align-items:center;justify-content:center;width:var(--teacher-touch-target);height:var(--teacher-touch-target);background:var(--gradient-green);color:var(--white);font-size:var(--teacher-font-base);font-weight:600;border-radius:50%}.teacher-logout-btn{display:flex;align-items:center;justify-content:center;min-width:var(--teacher-touch-target);min-height:var(--teacher-touch-target);background:none;border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.teacher-logout-btn:hover{background:var(--gpe-rose-50);color:var(--gpe-rose)}.teacher-logout-btn:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.teacher-theme-toggle{display:flex;align-items:center;justify-content:center;min-width:var(--teacher-touch-target);min-height:var(--teacher-touch-target);background:var(--gray-100);border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition)}.teacher-theme-toggle:hover{background:var(--gpe-green-50);color:var(--gpe-green)}.teacher-theme-toggle:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.teacher-container{display:flex;min-height:calc(100vh - 72px)}.teacher-sidebar{width:280px;background:var(--white);border-right:1px solid var(--gray-200);flex-shrink:0}.teacher-main{flex:1;padding:2rem;overflow-x:hidden}.teacher-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:90}@media(max-width:1024px){.teacher-sidebar{position:fixed;top:72px;left:0;bottom:0;z-index:95;transform:translate(-100%);box-shadow:var(--shadow-xl)}.teacher-sidebar.mobile-open{transform:translate(0)}.teacher-menu-toggle{display:flex}.teacher-overlay{display:block}}@media(max-width:640px){.teacher-header{padding:0 1rem;height:64px}.teacher-container{min-height:calc(100vh - 64px)}.teacher-sidebar{top:64px}.teacher-logo-text,.teacher-user-info{display:none}.teacher-main{padding:1rem}}.teacher-page{max-width:1200px;margin:0 auto}.teacher-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.teacher-page-title{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.teacher-page-subtitle{font-size:var(--teacher-font-base);color:var(--gray-500);margin-top:.25rem}.teacher-page-actions{display:flex;align-items:center;gap:.75rem}.teacher-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden}.teacher-card-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.teacher-card-title{font-size:var(--teacher-font-large);font-weight:600;color:var(--gray-900)}.teacher-card-body{padding:1.5rem}.teacher-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.teacher-stat-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);padding:1.5rem}.teacher-stat-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-md);margin-bottom:1rem}.teacher-stat-icon.green{background:var(--gpe-green-50);color:var(--gpe-green)}.teacher-stat-icon.blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.teacher-stat-icon.orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.teacher-stat-icon.purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.teacher-stat-value{font-size:2rem;font-weight:700;color:var(--gray-900)}.teacher-stat-label{font-size:var(--teacher-font-base);color:var(--gray-500);margin-top:.25rem}.teacher-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.teacher-empty-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--gray-100);color:var(--gray-400);border-radius:50%;margin-bottom:1.5rem}.teacher-empty-title{font-size:var(--teacher-font-large);font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.teacher-empty-text{font-size:var(--teacher-font-base);color:var(--gray-500);margin-bottom:2rem}.teacher-loading{display:flex;align-items:center;justify-content:center;padding:4rem;color:var(--gray-500)}.teacher-loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--gpe-green);border-radius:50%;animation:spin .8s linear infinite}.teacher-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--teacher-touch-target);padding:.75rem 1.5rem;font-size:var(--teacher-font-base);font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition)}.teacher-btn:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.teacher-btn-primary{background:linear-gradient(135deg,#059669,#10b981);color:#fff!important;box-shadow:0 10px 40px -10px #0596694d}.teacher-btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 44px -10px #05966966}.teacher-btn-secondary{background:#fff;color:var(--gray-700, #334155);border:2px solid var(--gray-200, #e2e8f0)}.teacher-btn-secondary:hover{border-color:var(--gpe-green, #059669);color:var(--gpe-green, #059669);background:var(--gpe-green-50, #ecfdf5)}:root.dark .teacher-layout,.dark .teacher-layout{background:linear-gradient(180deg,#0f172a,#1e293b)}:root.dark .teacher-header,.dark .teacher-header{background:#1e293b;border-bottom-color:#334155}:root.dark .teacher-menu-toggle:hover,.dark .teacher-menu-toggle:hover{background:#334155}:root.dark .teacher-sidebar,.dark .teacher-sidebar{background:#1e293b;border-right-color:#334155}:root.dark .teacher-overlay,.dark .teacher-overlay{background:#000000b3}:root.dark .teacher-card,.dark .teacher-card{background:#1e293b;border-color:#334155}:root.dark .teacher-card-header,.dark .teacher-card-header{border-bottom-color:#334155}:root.dark .teacher-stat-card,.dark .teacher-stat-card{background:#1e293b;border-color:#334155}:root.dark .teacher-empty-icon,.dark .teacher-empty-icon{background:#334155}:root.dark .teacher-btn-secondary,.dark .teacher-btn-secondary{background:#1e293b;border-color:#475569;color:var(--gray-300)}:root.dark .teacher-btn-secondary:hover,.dark .teacher-btn-secondary:hover{background:#334155;border-color:var(--gpe-green)}:root.dark .teacher-theme-toggle,.dark .teacher-theme-toggle{background:#334155;color:var(--gray-400)}:root.dark .teacher-theme-toggle:hover,.dark .teacher-theme-toggle:hover{background:#05966933;color:#10b981}.action-card{display:flex;align-items:center;gap:1rem;min-height:140px;padding:1.25rem 1.5rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-xl);text-decoration:none;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer}.action-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026}.action-card:focus{outline:3px solid var(--gpe-blue);outline-offset:2px}.action-card:focus:not(:focus-visible){outline:none}.action-card:focus-visible{outline:3px solid var(--gpe-blue);outline-offset:2px}.action-card--disabled{opacity:.6;cursor:not-allowed}.action-card--disabled:hover{transform:none;box-shadow:none}.action-card-icon-container{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-lg);flex-shrink:0}.action-card-icon{display:flex;align-items:center;justify-content:center}.action-card-icon svg{width:48px;height:48px}.action-card--primary{border-left:4px solid var(--gpe-blue)}.action-card--primary:hover{border-color:var(--gpe-blue)}.action-card--primary .action-card-icon-container{background:linear-gradient(135deg,#1a56db1a,#1a56db0d);color:var(--gpe-blue)}.action-card--primary .action-card-arrow{color:var(--gpe-blue)}.action-card--secondary{border-left:4px solid var(--gpe-green)}.action-card--secondary:hover{border-color:var(--gpe-green)}.action-card--secondary .action-card-icon-container{background:linear-gradient(135deg,#0596691a,#0596690d);color:var(--gpe-green)}.action-card--secondary .action-card-arrow{color:var(--gpe-green)}.action-card--tertiary{border-left:4px solid var(--gpe-purple)}.action-card--tertiary:hover{border-color:var(--gpe-purple)}.action-card--tertiary .action-card-icon-container{background:linear-gradient(135deg,#9333ea1a,#9333ea0d);color:var(--gpe-purple)}.action-card--tertiary .action-card-arrow{color:var(--gpe-purple)}.action-card-content{flex:1;min-width:0}.action-card-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem;line-height:1.3}.action-card-description{font-size:1rem;font-weight:400;color:var(--gray-500);margin:0;line-height:1.4}.action-card-arrow{display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .2s ease,transform .2s ease;flex-shrink:0}.action-card:hover .action-card-arrow{opacity:1;transform:translate(4px)}.action-card-badge{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;background:var(--gpe-rose);color:var(--white);font-size:.75rem;font-weight:700;border-radius:var(--radius-full);box-shadow:0 2px 8px #e11d484d}@media(max-width:768px){.action-card{min-height:120px;padding:1rem 1.25rem;gap:.875rem}.action-card-icon-container{width:60px;height:60px}.action-card-icon svg{width:40px;height:40px}.action-card-title{font-size:1rem}.action-card-description{font-size:.875rem}}@media(max-width:480px){.action-card{min-height:100px;padding:.875rem 1rem}.action-card-icon-container{width:52px;height:52px}.action-card-icon svg{width:32px;height:32px}.action-card-arrow{display:none}}.today-schedule{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem}.today-schedule-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.today-schedule-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0}.today-schedule-count{font-size:.8125rem;font-weight:500;color:var(--gray-500);background:var(--gray-100);padding:.25rem .625rem;border-radius:var(--radius-full)}.today-schedule-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.today-schedule-item{display:flex;gap:1rem;padding:.875rem;background:var(--gray-50);border-radius:var(--radius-md);border-left:3px solid var(--gpe-blue);transition:background-color .2s ease}.today-schedule-item:hover{background:var(--gray-100)}.today-schedule-time-block{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0}.today-schedule-time{font-size:.875rem;font-weight:600;color:var(--gpe-blue);white-space:nowrap}.today-schedule-content{flex:1;min-width:0}.today-schedule-course-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem;line-height:1.3}.today-schedule-location{display:flex;align-items:center;gap:.375rem}.today-schedule-location-icon{display:flex;align-items:center;justify-content:center;color:var(--gray-400)}.today-schedule-location-icon--online{color:var(--gpe-green)}.today-schedule-location-text{font-size:.8125rem;color:var(--gray-500)}.today-schedule-location-text--online{color:var(--gpe-green);font-weight:500}.today-schedule-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center}.today-schedule-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--gpe-green-50);color:var(--gpe-green);border-radius:var(--radius-full);margin-bottom:1rem}.today-schedule-empty-text{font-size:1rem;font-weight:600;color:var(--gray-700);margin:0 0 .25rem}.today-schedule-empty-hint{font-size:.875rem;color:var(--gray-500);margin:0}.today-schedule-item--skeleton{background:var(--gray-50)}.skeleton-time{width:80px;height:16px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.skeleton-title{width:70%;height:16px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-location{width:40%;height:12px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@media(max-width:480px){.today-schedule{padding:1rem}.today-schedule-item{flex-direction:column;gap:.5rem;padding:.75rem}.today-schedule-time-block{flex-direction:row;gap:.5rem}}.teacher-dashboard{display:flex;flex-direction:column;gap:1.5rem}.teacher-dashboard-welcome{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;background:linear-gradient(135deg,#1a56db14,#0596690d);border:1px solid rgba(26,86,219,.1);border-radius:var(--radius-xl);position:relative;overflow:hidden}.teacher-dashboard-welcome:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-mixed)}.teacher-welcome-content{flex:1}.teacher-welcome-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.teacher-welcome-title span{background:var(--gradient-blue);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.teacher-welcome-subtitle{font-size:1rem;color:var(--gray-500);margin:0;max-width:400px}.teacher-welcome-illustration{flex-shrink:0}.teacher-dashboard-actions{margin-bottom:.5rem}.teacher-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.teacher-dashboard-config{padding:1.5rem;background:var(--white);border-radius:var(--radius-xl);border:1px solid var(--gray-100);box-shadow:var(--shadow-sm)}.teacher-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.teacher-config-card{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-100);transition:all .2s ease}.teacher-config-card:hover{border-color:var(--gray-200);background:var(--white)}.teacher-config-card.highlight{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.teacher-config-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--gpe-blue-50);color:var(--gpe-blue);flex-shrink:0}.teacher-config-card.highlight .teacher-config-icon{background:#f59e0b33;color:#b45309}.teacher-config-content{display:flex;flex-direction:column;gap:.25rem}.teacher-config-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em}.teacher-config-value{font-size:1rem;font-weight:600;color:var(--gray-800)}.teacher-config-badge{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600;margin-top:.25rem;width:fit-content}.teacher-config-badge.active{background:#10b981;color:var(--white)}.teacher-config-loading{padding:2rem;text-align:center;color:var(--gray-400)}.teacher-dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.5rem}.teacher-quick-stats{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem}.teacher-section-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.teacher-stats-grid{display:flex;flex-direction:column;gap:.875rem}.teacher-stat-item{display:flex;align-items:center;gap:.875rem;padding:.875rem;background:var(--gray-50);border-radius:var(--radius-md);transition:background-color .2s ease}.teacher-stat-item:hover{background:var(--gray-100)}.teacher-stat-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);flex-shrink:0}.teacher-stat-icon--blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.teacher-stat-icon--green{background:var(--gpe-green-50);color:var(--gpe-green)}.teacher-stat-icon--purple{background:#9333ea1a;color:var(--gpe-purple)}.teacher-stat-content{display:flex;flex-direction:column;gap:.125rem}.teacher-stat-value{font-size:1.25rem;font-weight:700;color:var(--gray-900);line-height:1}.teacher-stat-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1280px){.teacher-actions-grid{grid-template-columns:repeat(3,1fr)}.teacher-dashboard-grid{grid-template-columns:1fr}}@media(max-width:1024px){.teacher-actions-grid{grid-template-columns:1fr 1fr;gap:1rem}}@media(max-width:768px){.teacher-config-grid{grid-template-columns:1fr}.teacher-dashboard-config{padding:1.25rem}.teacher-dashboard-welcome{padding:1.25rem;flex-direction:column;text-align:center;gap:1rem}.teacher-welcome-illustration{order:-1}.teacher-welcome-illustration svg{width:80px;height:80px}.teacher-welcome-title{font-size:1.5rem}.teacher-welcome-subtitle{max-width:none}}@media(max-width:640px){.teacher-actions-grid{grid-template-columns:1fr}.teacher-dashboard{gap:1rem}.teacher-dashboard-actions{margin-bottom:0}}@media(max-width:480px){.teacher-dashboard-welcome,.teacher-quick-stats{padding:1rem}}.attendance-wizard{max-width:800px;margin:0 auto;padding:1.5rem;min-height:100%;display:flex;flex-direction:column}.attendance-wizard-header{text-align:center;margin-bottom:1.5rem}.attendance-wizard-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.attendance-wizard-course{font-size:1rem;color:var(--gray-500)}.attendance-wizard-content{flex:1;margin-bottom:1.5rem}.attendance-wizard-nav{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--gray-100)}.wizard-nav-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:var(--radius-lg);border:none;cursor:pointer;transition:all .2s ease}.wizard-nav-btn--back{background:var(--gray-100);color:var(--gray-700)}.wizard-nav-btn--back:hover{background:var(--gray-200)}.wizard-nav-btn--next{background:var(--gpe-blue);color:var(--white);flex:1;max-width:200px}.wizard-nav-btn--next:hover:not(:disabled){background:var(--gpe-blue-dark)}.wizard-nav-btn--next:disabled{opacity:.5;cursor:not-allowed}.attendance-step{animation:fadeIn .3s ease}.attendance-step-title{font-size:1.375rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.attendance-step-subtitle{font-size:1rem;color:var(--gray-500);margin:0 0 1.5rem}.attendance-empty{text-align:center;padding:3rem 1rem;background:var(--gray-50);border-radius:var(--radius-xl);border:2px dashed var(--gray-200)}.attendance-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--white);border-radius:var(--radius-full);color:var(--gray-400);margin-bottom:1rem;box-shadow:var(--shadow-sm)}.attendance-empty-text{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.attendance-empty-hint{font-size:.875rem;color:var(--gray-500);margin:0}.attendance-empty-link{color:var(--gpe-blue);text-decoration:underline;background:none;border:none;cursor:pointer;font-size:inherit}.course-grid{display:grid;gap:1rem}.course-card{display:flex;align-items:center;gap:1rem;min-height:100px;padding:1.25rem;background:var(--white);border:2px solid var(--gray-100);border-radius:var(--radius-xl);text-align:left;cursor:pointer;transition:all .2s ease;position:relative;width:100%}.course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.course-card:focus{outline:3px solid var(--gpe-blue);outline-offset:2px}.course-card--selected{border-color:var(--gpe-blue);background:var(--gpe-blue-50)}.course-card--blue{border-left:4px solid var(--gpe-blue)}.course-card--blue .course-card-icon{color:var(--gpe-blue);background:var(--gpe-blue-50)}.course-card--green{border-left:4px solid var(--gpe-green)}.course-card--green .course-card-icon{color:var(--gpe-green);background:var(--gpe-green-50)}.course-card--purple{border-left:4px solid var(--gpe-purple)}.course-card--purple .course-card-icon{color:var(--gpe-purple);background:var(--gpe-purple-50)}.course-card--orange{border-left:4px solid var(--gpe-orange)}.course-card--orange .course-card-icon{color:var(--gpe-orange);background:var(--gpe-orange-50)}.course-card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-lg);flex-shrink:0}.course-card-content{flex:1;min-width:0}.course-card-code{display:inline-block;font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.course-card-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;line-height:1.3}.course-card-students{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--gray-500)}.course-card-students svg{opacity:.7}.course-card-arrow{color:var(--gray-400);opacity:.5;transition:opacity .2s ease,transform .2s ease}.course-card:hover .course-card-arrow{opacity:1;transform:translate(4px)}.course-card--skeleton{pointer-events:none}.skeleton-icon{width:56px;height:56px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-lg)}.skeleton-content{flex:1}.skeleton-title{height:20px;width:70%;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:.5rem}.skeleton-subtitle{height:16px;width:40%;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.selected-course-badge{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin-bottom:1.25rem;background:var(--success-50);border:1px solid var(--success-200);border-radius:var(--radius-lg)}.selected-course-code{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:.875rem;font-weight:700;color:#fff;background:var(--success-600);border-radius:var(--radius-full);letter-spacing:.025em}.selected-course-title{font-size:.9375rem;font-weight:500;color:var(--success-700)}.session-filters{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.session-filter-btn{min-height:44px;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;background:var(--gray-100);color:var(--gray-700);border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.session-filter-btn:hover{background:var(--gray-200)}.session-filter-btn--active{background:var(--gpe-blue-50);color:var(--gpe-blue);border-color:var(--gpe-blue)}.skeleton-filter{width:100px;height:44px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-full)}.session-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.session-card{display:flex;align-items:center;gap:1rem;min-height:80px;padding:1rem 1.25rem;background:var(--white);border:2px solid var(--gray-100);border-radius:var(--radius-xl);text-align:left;cursor:pointer;transition:all .2s ease;width:100%}.session-card:hover{border-color:var(--gray-200);background:var(--gray-50)}.session-card--selected{border-color:var(--gpe-blue);background:var(--gpe-blue-50)}.session-card--done{opacity:.8}.session-date-block{display:flex;flex-direction:column;min-width:120px}.session-date{font-size:.9375rem;font-weight:600;color:var(--gray-900);text-transform:capitalize}.session-time{font-size:.875rem;color:var(--gray-500)}.session-location{display:flex;align-items:center;gap:.375rem;flex:1;font-size:.9375rem;color:var(--gray-600)}.session-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-full)}.session-badge--done{background:var(--gpe-green-50);color:var(--gpe-green)}.session-badge--pending{background:var(--gpe-orange-50);color:var(--gpe-orange)}.session-delegate-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;transition:all .15s ease;flex-shrink:0}.session-delegate-btn:hover{background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.session-delegate-btn:active{transform:scale(.95)}.session-card-arrow{color:var(--gray-400);flex-shrink:0}.session-card--skeleton{pointer-events:none}.skeleton-date{width:120px;height:40px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-time,.skeleton-location{height:16px;width:80px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.mark-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.mark-all-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;background:var(--gpe-green);color:var(--white);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.mark-all-btn:hover{background:var(--gpe-green-dark)}.mark-progress-text{font-size:.875rem;font-weight:500;color:var(--gray-600);white-space:nowrap}.mark-progress-bar{width:100px;height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.mark-progress-fill{height:100%;background:var(--gpe-blue);border-radius:var(--radius-full);transition:width .3s ease}.student-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.student-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg)}.student-avatar{width:48px;height:48px;border-radius:var(--radius-full);background:var(--gray-100);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.student-avatar-initials{font-size:1rem;font-weight:600;color:var(--gray-600);text-transform:uppercase}.student-name{display:block;font-size:1rem;font-weight:600;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-matricule{display:block;font-size:.8125rem;color:var(--gray-500)}.status-buttons{display:flex;gap:.5rem}.status-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-lg);border:2px solid;cursor:pointer;transition:all .2s ease;background:var(--white)}.status-btn:focus{outline:3px solid var(--gpe-blue);outline-offset:2px}.status-btn-label{font-size:.6875rem;font-weight:700;margin-top:2px}.status-btn--present{border-color:var(--gpe-green-100);color:var(--gpe-green)}.status-btn--present:hover{background:var(--gpe-green-50);border-color:var(--gpe-green)}.status-btn--present.status-btn--selected{background:var(--gpe-green);border-color:var(--gpe-green);color:var(--white)}.status-btn--absent{border-color:var(--gpe-rose-50);color:var(--gpe-rose)}.status-btn--absent:hover{background:var(--gpe-rose-50);border-color:var(--gpe-rose)}.status-btn--absent.status-btn--selected{background:var(--gpe-rose);border-color:var(--gpe-rose);color:var(--white)}.status-btn--late{border-color:var(--gpe-orange-50);color:var(--gpe-orange)}.status-btn--late:hover{background:var(--gpe-orange-50);border-color:var(--gpe-orange)}.status-btn--late.status-btn--selected{background:var(--gpe-orange);border-color:var(--gpe-orange);color:var(--white)}.mark-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--gray-100)}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-600)}.legend-dot{width:12px;height:12px;border-radius:var(--radius-full)}.legend-dot--present{background:var(--gpe-green)}.legend-dot--absent{background:var(--gpe-rose)}.legend-dot--late{background:var(--gpe-orange)}.student-item--skeleton{pointer-events:none}.skeleton-avatar{width:48px;height:48px;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-name{height:18px;width:150px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:.25rem}.skeleton-matricule{height:14px;width:100px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-buttons{display:flex;gap:.5rem}.skeleton-buttons:before,.skeleton-buttons:after{content:"";width:52px;height:52px;border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-button{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-lg)}.skeleton-text{height:16px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.confirm-summary{display:flex;gap:1rem;margin-bottom:1.5rem;justify-content:center}.summary-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem 1.5rem;background:var(--white);border-radius:var(--radius-xl);min-width:90px}.summary-stat-value{font-size:2rem;font-weight:700;line-height:1}.summary-stat-label{font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.summary-stat--present{border:2px solid var(--gpe-green-100)}.summary-stat--present .summary-stat-value,.summary-stat--present .summary-stat-label{color:var(--gpe-green)}.summary-stat--absent{border:2px solid var(--gpe-rose-50)}.summary-stat--absent .summary-stat-value,.summary-stat--absent .summary-stat-label{color:var(--gpe-rose)}.summary-stat--late{border:2px solid var(--gpe-orange-50)}.summary-stat--late .summary-stat-value,.summary-stat--late .summary-stat-label{color:var(--gpe-orange)}.confirm-warning{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--gpe-amber-50);color:var(--gpe-amber);border-radius:var(--radius-lg);margin-bottom:1.5rem;font-size:.9375rem;font-weight:500}.confirm-lists{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.confirm-list{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);overflow:hidden}.confirm-list-title{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;margin:0;font-size:.9375rem;font-weight:600;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}.confirm-list-dot{width:10px;height:10px;border-radius:var(--radius-full)}.confirm-list-title--present .confirm-list-dot{background:var(--gpe-green)}.confirm-list-title--absent{color:var(--gpe-rose);background:var(--gpe-rose-50)}.confirm-list-title--absent .confirm-list-dot{background:var(--gpe-rose)}.confirm-list-title--late{color:var(--gpe-orange);background:var(--gpe-orange-50)}.confirm-list-title--late .confirm-list-dot{background:var(--gpe-orange)}.confirm-list--collapsible summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.confirm-list--collapsible summary::-webkit-details-marker{display:none}.confirm-list--collapsible summary svg{margin-left:auto;transition:transform .2s ease}.confirm-list--collapsible[open] summary svg{transform:rotate(180deg)}.confirm-student-list{list-style:none;padding:0;margin:0}.confirm-student-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--gray-100)}.confirm-student-item:last-child{border-bottom:none}.confirm-student-name{font-size:.9375rem;font-weight:500;color:var(--gray-900)}.confirm-student-matricule{font-size:.8125rem;color:var(--gray-500)}.confirm-actions{margin-top:auto}.confirm-save-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;min-height:56px;padding:1rem 1.5rem;font-size:1.125rem;font-weight:700;background:var(--gpe-green);color:var(--white);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all .2s ease}.confirm-save-btn:hover:not(:disabled){background:var(--gpe-green-dark)}.confirm-save-btn:disabled{opacity:.7;cursor:wait}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:var(--white);border-radius:50%;animation:spin .8s linear infinite}.confirm-success{text-align:center;padding:2rem 1rem}.confirm-success-icon{display:inline-flex;align-items:center;justify-content:center;width:100px;height:100px;background:var(--gpe-green-50);border-radius:var(--radius-full);color:var(--gpe-green);margin-bottom:1.5rem;animation:successPop .4s ease}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.confirm-success-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.confirm-success-text{font-size:1rem;color:var(--gray-500);margin:0 0 1.5rem}.confirm-success-summary{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.confirm-done-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 2rem;font-size:1rem;font-weight:600;background:var(--gpe-blue);color:var(--white);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.confirm-done-btn:hover{background:var(--gpe-blue-dark)}@media(max-width:768px){.attendance-wizard{padding:1rem}.attendance-wizard-title{font-size:1.5rem}.course-card{min-height:90px;padding:1rem}.course-card-icon{width:48px;height:48px}.course-card-icon svg{width:24px;height:24px}.course-card-title{font-size:1rem}.session-card{flex-wrap:wrap;gap:.75rem}.session-date-block{min-width:auto;flex:1}.session-location{order:3;width:100%}.session-badge{order:2}.student-item{flex-wrap:wrap}.status-buttons{width:100%;justify-content:flex-end;margin-top:.5rem}.status-btn{width:48px;height:48px}.mark-header{flex-direction:column;align-items:stretch}.mark-all-btn,.mark-progress{justify-content:center}.confirm-summary{flex-wrap:wrap}.summary-stat{min-width:80px;padding:.75rem 1rem}.summary-stat-value{font-size:1.5rem}.mark-legend{flex-wrap:wrap;gap:1rem}}@media(max-width:480px){.course-card-arrow,.session-card-arrow{display:none}.session-filters{justify-content:center}.session-filter-btn{flex:1;text-align:center}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.modal-content{background:var(--white);border-radius:var(--radius-xl);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.modal-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--gray-100);border:none;border-radius:var(--radius-lg);color:var(--gray-600);cursor:pointer;transition:all .2s ease}.modal-close-btn:hover{background:var(--gray-200);color:var(--gray-900)}.create-session-form{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;margin-bottom:1rem}.form-group:last-of-type{margin-bottom:0}.form-group label{font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.375rem}.form-group input,.form-group select,.form-group textarea{padding:.625rem .75rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--white);color:var(--gray-900);transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px var(--gpe-blue-50)}.form-group input.input-error,.form-group select.input-error,.form-group textarea.input-error{border-color:var(--gpe-rose)}.form-group textarea{resize:vertical;min-height:60px}.error-text{font-size:.75rem;color:var(--gpe-rose);margin-top:.25rem}.toggle-buttons{display:flex;gap:.5rem}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.625rem 1rem;font-size:.9375rem;font-weight:500;background:var(--gray-100);color:var(--gray-600);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.toggle-btn:hover{background:var(--gray-200)}.toggle-btn--active{background:var(--gpe-blue-50);color:var(--gpe-blue);border-color:var(--gpe-blue)}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-100)}.btn-secondary{flex:1;display:flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;background:var(--gray-100);color:var(--gray-700);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:var(--gray-200)}.btn-primary{flex:2;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;background:var(--gpe-blue);color:var(--white);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--gpe-blue-dark)}.btn-primary:disabled{opacity:.7;cursor:wait}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--white);border-radius:50%;animation:spin .8s linear infinite}.create-session-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:56px;padding:1rem;margin-top:1rem;font-size:1rem;font-weight:600;background:var(--white);color:var(--gpe-blue);border:2px dashed var(--gpe-blue-200);border-radius:var(--radius-xl);cursor:pointer;transition:all .2s ease}.create-session-btn:hover{background:var(--gpe-blue-50);border-color:var(--gpe-blue)}.create-session-btn svg{flex-shrink:0}@media(max-width:560px){.modal-content{max-height:100vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;position:fixed;bottom:0;left:0;right:0;max-width:100%}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.btn-secondary,.btn-primary{flex:none}}.delegation-modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .2s ease-out}.delegation-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.delegation-modal-header h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.delegation-session-info{font-size:.875rem;color:var(--gray-500);margin:0}.delegation-modal-body{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.delegation-error{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;font-size:.875rem}.delegation-section{display:flex;flex-direction:column;gap:1rem}.delegation-section-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em;margin:0}.delegation-count{font-size:.75rem;padding:.125rem .5rem;background:var(--gray-100);color:var(--gray-600);border-radius:9999px;font-weight:500}.delegation-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--gray-500)}.delegation-loading .spinner{width:1.25rem;height:1.25rem;border:2px solid var(--gray-200);border-top-color:var(--gpe-green);border-radius:50%;animation:spin .8s linear infinite}.delegation-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;color:var(--gray-500)}.delegation-empty svg{color:var(--gray-300);margin-bottom:.75rem}.delegation-empty p{margin:0}.delegation-hint{font-size:.8125rem;color:var(--gray-400);margin-top:.5rem!important}.delegation-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.delegation-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px}.delegation-card.delegation-completed{background:#ecfdf5;border-color:#a7f3d0}.delegation-card.delegation-expired,.delegation-card.delegation-cancelled{opacity:.6}.delegation-student{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.delegation-avatar{width:40px;height:40px;background:var(--gpe-green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0}.delegation-info{display:flex;flex-direction:column;min-width:0}.delegation-name{font-weight:600;color:var(--gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delegation-matricule{font-size:.8125rem;color:var(--gray-500)}.delegation-status-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.delegation-badge{display:inline-flex;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:9999px}.badge-pending{background:var(--amber-100, #fef3c7);color:var(--amber-700, #b45309)}.badge-active{background:var(--blue-100, #dbeafe);color:var(--blue-700, #1d4ed8)}.badge-completed{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d)}.badge-expired,.badge-cancelled{background:var(--gray-100);color:var(--gray-500)}.delegation-expires{font-size:.75rem;color:var(--gray-500)}.delegation-actions{display:flex;gap:.5rem}.delegation-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;border:1px solid var(--gray-200);border-radius:8px;cursor:pointer;transition:all .15s}.delegation-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn-copy{color:var(--gpe-green)}.btn-copy:hover{background:var(--gpe-green-50);border-color:var(--gpe-green)}.btn-cancel{color:var(--gray-400)}.btn-cancel:hover{background:#fef2f2;border-color:#fecaca;color:#dc2626}.delegation-search{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:10px;transition:all .15s}.delegation-search:focus-within{border-color:var(--gpe-green);box-shadow:0 0 0 3px #0596691a}.delegation-search svg{color:var(--gray-400);flex-shrink:0}.delegation-search input{flex:1;border:none;outline:none;font-size:.9375rem;color:var(--gray-900)}.delegation-search input::placeholder{color:var(--gray-400)}.search-spinner{width:18px;height:18px;border:2px solid var(--gray-200);border-top-color:var(--gpe-green);border-radius:50%;animation:spin .8s linear infinite}.search-results{list-style:none;padding:0;margin:0;background:#fff;border:1px solid var(--gray-200);border-radius:10px;overflow:hidden}.search-empty{padding:1rem;text-align:center;color:var(--gray-500);font-size:.875rem}.search-result-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .15s;text-align:left}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--gray-50)}.search-result-item:disabled{opacity:.5;cursor:not-allowed}.search-avatar{width:36px;height:36px;background:var(--gray-200);color:var(--gray-600);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600;flex-shrink:0}.search-info{flex:1;display:flex;flex-direction:column;min-width:0}.search-name{font-weight:500;color:var(--gray-900)}.search-matricule{font-size:.8125rem;color:var(--gray-500)}.search-add{color:var(--gpe-green)}.delegation-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50);border-radius:0 0 16px 16px}.btn-secondary{padding:.625rem 1.25rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .15s}.btn-secondary:hover{background:var(--gray-50)}:root.dark .delegation-modal,.dark .delegation-modal{background:#1e293b}:root.dark .delegation-modal-header,.dark .delegation-modal-header{border-bottom-color:#334155}:root.dark .delegation-modal-header h2,.dark .delegation-modal-header h2{color:#f1f5f9}:root.dark .delegation-card,.dark .delegation-card{background:#0f172a;border-color:#334155}:root.dark .delegation-search,.dark .delegation-search{background:#0f172a;border-color:#334155}:root.dark .delegation-search input,.dark .delegation-search input{background:transparent;color:#f1f5f9}:root.dark .search-results,.dark .search-results{background:#1e293b;border-color:#334155}:root.dark .search-result-item,.dark .search-result-item{border-bottom-color:#334155}:root.dark .search-result-item:hover,.dark .search-result-item:hover{background:#334155}:root.dark .delegation-modal-footer,.dark .delegation-modal-footer{background:#0f172a;border-top-color:#334155}:root.dark .btn-secondary,.dark .btn-secondary{background:#334155;border-color:#475569;color:#e2e8f0}@media(max-width:640px){.delegation-modal{max-width:100%;max-height:100vh;border-radius:0;height:100%}.delegation-card{flex-wrap:wrap}.delegation-student{flex:1 1 100%}.delegation-status-info{flex:1;align-items:flex-start}.delegation-actions{margin-left:auto}}.attendance-history{max-width:1000px;margin:0 auto}.history-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.history-header-content h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.history-header-content p{font-size:.9375rem;color:var(--gray-500);margin:0}.history-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group select,.filter-group input[type=date]{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:.375rem;font-size:.875rem;color:var(--gray-700);background:#fff}.history-error{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1.5rem}.history-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem;background:#fff;border:1px solid var(--gray-200);border-radius:.75rem}.history-empty svg{color:var(--gray-300);margin-bottom:1rem}.history-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.history-empty p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.session-date{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0;text-transform:capitalize}.session-meta{display:flex;gap:.5rem;flex-wrap:wrap}.meta-ue,.meta-time,.meta-room{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;font-weight:500}.meta-time{background:var(--gray-100);color:var(--gray-600)}.meta-room{background:#fef3c7;color:#b45309}.rate-badge{display:inline-block;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:700}.rate-badge.rate-green{background:#ecfdf5;color:#059669}.rate-badge.rate-orange{background:#fff7ed;color:#ea580c}.rate-badge.rate-red{background:#fef2f2;color:#dc2626}.session-stat .stat-value.stat-present{color:#059669}.session-stat .stat-value.stat-absent{color:#dc2626}.session-stat .stat-value.stat-late{color:#ea580c}.session-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--gray-50);border-top:1px solid var(--gray-100)}.session-footer-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.session-recorded{font-size:.8125rem;color:var(--gray-500)}.session-modified-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--gpe-orange-50, #fff7ed);color:var(--gpe-orange, #f59e0b);font-size:.75rem;font-weight:600;border-radius:9999px}.view-details{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:600;color:#1d4ed8}.history-summary{text-align:center;padding:1rem;color:var(--gray-500);font-size:.875rem}.detail-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.detail-title{flex:1}.detail-title h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;text-transform:capitalize}.detail-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.detail-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card.stat-present .stat-value{color:#059669}.stat-card.stat-absent .stat-value{color:#dc2626}.stat-card.stat-late .stat-value{color:#ea580c}.stat-card.stat-justified .stat-value{color:#2563eb}.stat-card.stat-rate{background:var(--gray-50)}.stat-card.stat-rate-green{background:#ecfdf5;border-color:#a7f3d0}.stat-card.stat-rate-green .stat-value{color:#059669}.stat-card.stat-rate-orange{background:#fff7ed;border-color:#fed7aa}.stat-card.stat-rate-orange .stat-value{color:#ea580c}.stat-card.stat-rate-red{background:#fef2f2;border-color:#fecaca}.stat-card.stat-rate-red .stat-value{color:#dc2626}.detail-actions{display:flex;gap:.75rem;margin-bottom:1.5rem}.btn-action.btn-edit{background:var(--gpe-green);border-color:var(--gpe-green);color:#fff}.btn-action.btn-edit:hover{background:#047857;border-color:#047857}.records-table-container{background:#fff;border:1px solid var(--gray-200);border-radius:.75rem;overflow:hidden}.records-table{width:100%;border-collapse:collapse}.records-table th,.records-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.records-table th{background:var(--gray-50);font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.records-table tbody tr:last-child td{border-bottom:none}.records-table tbody tr:hover{background:var(--gray-50)}.detail-footer{text-align:center;padding:1rem;color:var(--gray-500);font-size:.875rem}.detail-modification-info{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem;padding:.5rem 1rem;background:var(--gpe-orange-50, #fff7ed);color:var(--gpe-orange, #f59e0b);border-radius:.5rem;font-weight:500;flex-wrap:wrap}.detail-modification-info .modification-reason{font-style:italic;opacity:.9}.row-modified{background:var(--gpe-orange-50, #fff7ed)!important}.record-modified-indicator{display:inline-flex;align-items:center;margin-left:.5rem;color:var(--gpe-orange, #f59e0b);cursor:help}@media print{.no-print{display:none!important}.teacher-page{padding:0}.detail-header,.detail-stats,.detail-actions,.detail-footer{display:none}.print-header{display:block;text-align:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #000}.print-header h2{margin:0 0 .5rem;font-size:1.25rem}.print-header p{margin:.25rem 0;font-size:.875rem;color:#666}.records-table-container{border:none}.records-table{border:1px solid #000}.records-table th,.records-table td{border:1px solid #000;padding:.5rem}.records-table th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.status-badge{background:none!important;padding:0;font-weight:600}}@media(max-width:768px){.history-header{flex-direction:column;align-items:stretch}.history-filters{flex-direction:column}.filter-group{min-width:100%}.detail-stats{grid-template-columns:repeat(3,1fr)}.session-stats-row{flex-wrap:wrap;gap:1rem}.detail-actions{flex-direction:column}.records-table-container{overflow-x:auto}.records-table{min-width:500px}}@media(max-width:480px){.detail-stats{grid-template-columns:repeat(2,1fr)}.detail-header{flex-direction:column}}.edit-search-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin-bottom:1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);transition:all .15s}.edit-search-bar:focus-within{border-color:var(--gpe-blue);box-shadow:0 0 0 3px #2563eb1a}.edit-search-bar svg{color:var(--gray-400);flex-shrink:0}.edit-search-bar input{flex:1;border:none;outline:none;font-size:1rem;background:transparent;color:var(--gray-900)}.edit-search-bar input::placeholder{color:var(--gray-400)}.edit-search-clear{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--gray-100);border:none;border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;transition:all .15s}.edit-search-clear:hover{background:var(--gray-200);color:var(--gray-700)}.edit-modifications-badge{display:inline-block;padding:.25rem .625rem;background:var(--gpe-orange-50);color:var(--gpe-orange);font-size:.8125rem;font-weight:600;border-radius:var(--radius-full)}.student-item--modified{background:var(--gpe-orange-50);border-color:var(--gpe-orange-100)}.edit-success-banner,.edit-error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:var(--radius-lg);margin-bottom:1rem;font-size:.9375rem;font-weight:500}.edit-success-banner{background:var(--success-50);color:var(--success-700)}.edit-error-banner{background:var(--gpe-rose-50);color:var(--gpe-rose)}.edit-reason-inline{flex:1;max-width:300px}.edit-reason-inline input{width:100%;padding:.75rem 1rem;border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9375rem}.edit-reason-inline input:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #2563eb1a}.edit-reason-inline--required input{border-color:var(--gpe-orange);background:var(--gpe-orange-50)}.edit-reason-inline--required input:focus{border-color:var(--gpe-orange);box-shadow:0 0 0 3px #f59e0b26}.status-btn--justified{border-color:var(--gpe-blue-50);color:var(--gpe-blue)}.status-btn--justified:hover{background:var(--gpe-blue-50);border-color:var(--gpe-blue)}.status-btn--justified.status-btn--selected{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.legend-dot--justified{background:var(--gpe-blue)}:root.dark .edit-search-bar,.dark .edit-search-bar{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .edit-search-bar input,.dark .edit-search-bar input{color:var(--gray-100)}:root.dark .student-item--modified,.dark .student-item--modified{background:#f59e0b1a;border-color:#f59e0b4d}:root.dark .edit-reason-inline input,.dark .edit-reason-inline input{background:var(--gray-800);border-color:var(--gray-700);color:var(--gray-100)}.grade-wizard{max-width:900px;margin:0 auto;padding:1.5rem}.grade-wizard-header{text-align:center;margin-bottom:2rem}.grade-wizard-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.grade-wizard-header p{font-size:1rem;color:var(--gray-600);margin:0}.grade-wizard-stepper{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-bottom:2.5rem;flex-wrap:wrap}.grade-step{display:flex;align-items:center;gap:.5rem}.grade-step-number{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9375rem;background:var(--gray-200);color:var(--gray-500);transition:all .2s ease}.grade-step.active .grade-step-number{background:#1a56db;color:#fff}.grade-step.completed .grade-step-number{background:var(--green-500);color:#fff}.grade-step-label{font-size:.9375rem;color:var(--gray-500);font-weight:500;display:none}@media(min-width:768px){.grade-step-label{display:block}}.grade-step.active .grade-step-label{color:#1a56db}.grade-step.completed .grade-step-label{color:var(--green-600)}.grade-step-connector{width:40px;height:2px;background:var(--gray-200)}.grade-step-connector.active{background:var(--green-500)}.grade-step-content{background:#fff;border-radius:12px;padding:1.5rem 1.5rem 2rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem}.grade-step-title{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.grade-step-subtitle{font-size:1rem;color:var(--gray-600);margin:0 0 1.5rem}.grade-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.grade-course-card{padding:1.25rem;border-radius:12px;border:2px solid var(--gray-200);cursor:pointer;transition:all .2s ease;display:flex;gap:1rem;align-items:flex-start;min-height:100px}.grade-course-card:hover{border-color:#1a56db;background:var(--gray-50)}.grade-course-card.selected{border-color:#1a56db;background:#eff6ff}.grade-course-color{width:8px;height:100%;min-height:60px;border-radius:4px;flex-shrink:0}.grade-course-info{flex:1}.grade-course-code{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;margin-bottom:.25rem}.grade-course-title{font-size:1.0625rem;font-weight:600;color:var(--gray-900);margin-bottom:.5rem;line-height:1.3}.grade-course-students{font-size:.9375rem;color:var(--gray-600)}.grade-weight-info{margin-bottom:1.5rem;text-align:center}.grade-weight-badge{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#e0e7ff,#dbeafe);border-radius:20px;font-size:.875rem;font-weight:600;color:#1e40af}.grade-assessment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.grade-assessment-card{position:relative;padding:1.5rem;border-radius:12px;border:2px solid var(--gray-200);cursor:pointer;transition:all .2s ease;text-align:center;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}.grade-assessment-card:hover{border-color:#1a56db;background:var(--gray-50)}.grade-assessment-card.selected{border-color:#1a56db;background:#eff6ff}.grade-assessment-card.cc{border-left:4px solid #3b82f6}.grade-assessment-card.exam{border-left:4px solid #10b981}.grade-assessment-card.retake{border-left:4px solid #f59e0b}.grade-assessment-weight{position:absolute;top:.5rem;right:.5rem;background:#dbeafe;color:#1e40af;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.grade-assessment-icon{font-size:2.5rem}.grade-assessment-label{font-size:1.125rem;font-weight:600;color:var(--gray-900)}.grade-assessment-desc{font-size:.875rem;color:var(--gray-600);line-height:1.4}.grade-assessment-name{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}.grade-assessment-name label{display:block;font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.grade-assessment-name input{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:border-color .2s}.grade-assessment-name input:focus{outline:none;border-color:#1a56db}.grade-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.grade-entry-info{font-size:.9375rem;color:var(--gray-600)}.grade-entry-info strong{color:var(--gray-900)}.grade-autosave{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--green-600)}.grade-autosave svg{width:16px;height:16px}.grade-entry-list{display:flex;flex-direction:column;gap:.75rem}.grade-entry-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:8px;flex-wrap:wrap}.grade-entry-student{flex:1;min-width:200px}.grade-entry-name{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:.125rem}.grade-entry-matricule{font-size:.8125rem;color:var(--gray-500)}.grade-entry-input{display:flex;align-items:center;gap:.5rem}.grade-entry-input input{width:80px;padding:.75rem;font-size:1.125rem;font-weight:600;text-align:center;border:2px solid var(--gray-200);border-radius:8px;transition:all .2s}.grade-entry-input input:focus{outline:none;border-color:#1a56db}.grade-entry-input input.invalid{border-color:var(--red-500);background:var(--red-50)}.grade-entry-input input.valid{border-color:var(--green-500)}.grade-entry-input span{font-size:1rem;color:var(--gray-500)}.grade-review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.grade-stat-card{padding:1.25rem;background:var(--gray-50);border-radius:12px;text-align:center}.grade-stat-value{font-size:2rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.grade-stat-label{font-size:.875rem;color:var(--gray-600)}.grade-stat-card.success .grade-stat-value{color:var(--green-600)}.grade-stat-card.warning .grade-stat-value{color:var(--orange-600)}.grade-review-list{max-height:300px;overflow-y:auto;border:1px solid var(--gray-200);border-radius:8px}.grade-review-item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;border-bottom:1px solid var(--gray-100)}.grade-review-item:last-child{border-bottom:none}.grade-review-student{font-size:.9375rem;color:var(--gray-700)}.grade-review-grade{font-size:1rem;font-weight:600}.grade-review-grade.pass{color:var(--green-600)}.grade-review-grade.fail{color:var(--red-600)}.grade-review-grade.empty{color:var(--gray-400);font-style:italic;font-weight:400}.grade-wizard-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding:1.25rem 1.5rem;background:linear-gradient(to top,#fff 80%,#fffffff2);border-top:2px solid #dbeafe;flex-wrap:wrap;gap:1rem;position:sticky;bottom:0;z-index:100;box-shadow:0 -8px 20px #0000001f;border-radius:12px}.grade-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;min-height:48px;min-width:120px}.grade-btn-secondary{background:var(--gray-100);color:var(--gray-700)}.grade-btn-secondary:hover{background:var(--gray-200)}.grade-btn-primary{background:#1a56db;color:#fff;font-size:1.0625rem;padding:1rem 2rem;min-width:160px;box-shadow:0 4px 12px #1a56db4d}.grade-btn-primary:hover:not(:disabled){background:#1e40af;transform:translateY(-1px);box-shadow:0 6px 16px #1a56db66}.grade-btn-primary:not(:disabled){animation:pulse-attention 2s infinite}@keyframes pulse-attention{0%,to{box-shadow:0 4px 12px #1a56db4d}50%{box-shadow:0 4px 20px #1a56db80}}.grade-btn-success{background:#059669;color:#fff;font-size:1.0625rem;padding:1rem 2rem;min-width:200px;box-shadow:0 4px 12px #0596694d}.grade-btn-success:hover:not(:disabled){background:#047857;transform:translateY(-1px);box-shadow:0 6px 16px #05966966}.grade-btn:disabled{opacity:.6;cursor:not-allowed}.grade-btn svg{width:20px;height:20px}.grade-success{text-align:center;padding:3rem 1.5rem;max-width:600px;margin:0 auto}.grade-success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:grade-success-pop .5s ease}@keyframes grade-success-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.grade-success-icon svg{width:40px;height:40px;color:#059669}.grade-success h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.grade-success p{font-size:1rem;color:var(--gray-600);margin:0 0 1rem;line-height:1.5}.grade-success p strong{color:var(--gray-900)}.grade-success-info{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#eff6ff;color:#1e40af;border-radius:8px;font-size:.875rem;margin-bottom:2rem}.grade-success-info svg{flex-shrink:0}.grade-success-actions{background:var(--gray-50);border-radius:12px;padding:1.5rem;margin-top:1rem}.grade-success-actions h3{font-size:1rem;font-weight:600;color:var(--gray-700);margin:0 0 1rem}.grade-success-buttons{display:flex;flex-direction:column;gap:.75rem}.grade-success-btn{display:flex;align-items:center;justify-content:center;gap:.625rem;padding:.875rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;text-decoration:none;transition:all .2s}.grade-success-btn.primary{background:#1a56db;color:#fff}.grade-success-btn.primary:hover{background:#1e40af}.grade-success-btn.secondary{background:#fff;color:var(--gray-700);border:2px solid var(--gray-200)}.grade-success-btn.secondary:hover{border-color:#1a56db;color:#1a56db;background:#eff6ff}.grade-success-btn.tertiary{background:transparent;color:var(--gray-600)}.grade-success-btn.tertiary:hover{background:var(--gray-100);color:var(--gray-900)}.grade-success-btn svg{width:20px;height:20px;flex-shrink:0}.grade-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.grade-confirm-dialog{background:#fff;border-radius:16px;padding:2rem;max-width:400px;width:100%;text-align:center}.grade-confirm-icon{width:60px;height:60px;margin:0 auto 1rem;background:var(--orange-100);border-radius:50%;display:flex;align-items:center;justify-content:center}.grade-confirm-icon svg{width:30px;height:30px;color:var(--orange-600)}.grade-confirm-icon.warning{background:var(--red-100);width:70px;height:70px}.grade-confirm-icon.warning svg{width:36px;height:36px;color:var(--red-600)}.grade-confirm-dialog h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.grade-confirm-dialog p{font-size:.9375rem;color:var(--gray-600);margin:0 0 1rem;line-height:1.5}.grade-confirm-warning-box{background:#fef2f2;border:1px solid var(--red-200);border-radius:8px;padding:1rem;margin-bottom:1rem;text-align:left}.grade-confirm-warning-box .warning-title{color:var(--gray-800);margin:0 0 .5rem}.grade-confirm-warning-box .warning-highlight{color:var(--red-700);font-weight:500;margin:0;font-size:.875rem}.grade-confirm-summary{font-size:.875rem;color:var(--gray-500);margin:0 0 1.5rem}.grade-confirm-actions{display:flex;gap:1rem;justify-content:center}.grade-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.grade-loading .spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:#1a56db;border-radius:50%;animation:spin .8s linear infinite}.grade-loading p{color:var(--gray-600);font-size:1rem}.grade-step-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:var(--gray-500)}.grade-step-loading .spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:#1a56db;border-radius:50%;animation:spin .8s linear infinite}.grade-quick-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;margin-bottom:1.5rem;flex-wrap:wrap}.grade-quick-mode-info{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:#92400e}.grade-quick-mode-info svg{flex-shrink:0;color:#b45309}.grade-quick-mode-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;color:#b45309;font-weight:600;font-size:.875rem;border:2px solid #fbbf24;border-radius:8px;cursor:pointer;transition:all .2s}.grade-quick-mode-btn:hover{background:#fffbeb;border-color:#f59e0b}.grade-assessment-list{display:flex;flex-direction:column;gap:.75rem}.grade-assessment-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .2s}.grade-assessment-item:hover{border-color:#1a56db;background:#f8fafc}.grade-assessment-item.selected{border-color:#1a56db;background:#eff6ff}.grade-assessment-type-badge{padding:.375rem .75rem;font-size:.75rem;font-weight:700;color:#fff;border-radius:6px;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.grade-assessment-main{flex:1;min-width:0}.grade-assessment-title{font-size:1.0625rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-assessment-ue{font-size:.875rem;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-assessment-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.grade-assessment-date{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-500)}.grade-assessment-count{font-size:.75rem;padding:.25rem .5rem;background:#dcfce7;color:#166534;border-radius:4px;font-weight:500}.grade-assessment-arrow{color:var(--gray-400)}.grade-assessment-item:hover .grade-assessment-arrow{color:#1a56db}.grade-empty-state{text-align:center;padding:3rem 1.5rem}.grade-empty-state svg{color:var(--gray-300);margin-bottom:1rem}.grade-empty-state h3{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.grade-empty-state p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem;max-width:360px;margin-left:auto;margin-right:auto}.grade-quick-header{margin-bottom:1rem}.grade-back-link{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 0;font-size:.875rem;color:var(--gray-600);background:none;border:none;cursor:pointer;transition:color .2s}.grade-back-link:hover{color:#1a56db}.grade-quick-form{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.grade-form-group{display:flex;flex-direction:column;gap:.5rem}.grade-form-group label{font-size:.9375rem;font-weight:600;color:var(--gray-700)}.grade-input{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:border-color .2s}.grade-input:focus{outline:none;border-color:#1a56db}.grade-form-hint{font-size:.8125rem;color:var(--gray-500)}.grade-select-wrapper{position:relative}.grade-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;font-size:1rem;background:#fff;border:2px solid var(--gray-200);border-radius:8px;cursor:pointer;transition:border-color .2s;text-align:left;color:var(--gray-400)}.grade-select-trigger.has-value{color:var(--gray-900)}.grade-select-trigger:hover,.grade-select-trigger:focus{border-color:#1a56db;outline:none}.grade-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:2px solid var(--gray-200);border-radius:8px;box-shadow:0 10px 25px #0000001a;max-height:280px;overflow-y:auto;z-index:50}.grade-select-option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.75rem 1rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.grade-select-option:hover{background:var(--gray-50)}.grade-select-option.selected{background:#eff6ff}.grade-select-code{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase}.grade-select-title{font-size:.9375rem;color:var(--gray-900)}.grade-select-empty{padding:1rem;text-align:center;color:var(--gray-500);font-size:.9375rem}.grade-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media(max-width:640px){.grade-type-grid{grid-template-columns:1fr}}.grade-type-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem .75rem;background:#fff;border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .2s;text-align:center}.grade-type-card:hover{border-color:#1a56db;background:var(--gray-50)}.grade-type-card.selected{border-color:#1a56db;background:#eff6ff}.grade-type-icon{font-size:2rem}.grade-type-label{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.grade-type-desc{font-size:.75rem;color:var(--gray-500);line-height:1.4}.grade-quick-summary{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;background:#dcfce7;border-radius:8px;font-size:.9375rem;color:#166534;margin-top:.5rem}.grade-quick-summary svg{flex-shrink:0;color:#22c55e}.grade-confirm-icon.info{background:#dbeafe}.grade-confirm-icon.info svg{color:#1d4ed8}.grade-confirm-summary-box{background:var(--gray-50);border-radius:8px;padding:1rem;margin-bottom:1.5rem;text-align:left}.grade-confirm-summary-box p{margin:0}.grade-confirm-summary-box p+p{margin-top:.5rem}.grade-confirm-note{font-size:.8125rem;color:var(--gray-500)}.grade-history{max-width:1000px;margin:0 auto}.grade-history-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.grade-history-header-content h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.grade-history-header-content p{font-size:.9375rem;color:var(--gray-500);margin:0}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#1d4ed8;color:#fff;border:none;border-radius:.5rem;font-size:.9375rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s ease}.btn-primary:hover{background:#1e40af}.grade-history-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.375rem;min-width:180px}.filter-group label{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.filter-group select{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:.375rem;font-size:.875rem;color:var(--gray-700);background:#fff}.grade-history-error{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1.5rem}.grade-history-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem;background:#fff;border:1px solid var(--gray-200);border-radius:.75rem}.grade-history-empty svg{color:var(--gray-300);margin-bottom:1rem}.grade-history-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.grade-history-empty p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.session-card{background:#fff;border:1px solid var(--gray-200);border-radius:.75rem;cursor:pointer;transition:all .15s ease;overflow:hidden}.session-card:hover{border-color:#1d4ed8;box-shadow:0 4px 12px #1d4ed81a}.session-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100)}.session-info{display:flex;flex-direction:column;gap:.375rem}.session-name{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0}.session-meta{display:flex;gap:.5rem}.meta-ue,.meta-type{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;font-weight:500}.meta-ue{background:#eff6ff;color:#1d4ed8}.meta-type{background:var(--gray-100);color:var(--gray-600)}.session-card-body{padding:1rem 1.25rem}.session-stats-row{display:flex;gap:2rem}.session-stat{display:flex;align-items:baseline;gap:.375rem}.session-stat .stat-value{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.session-stat .stat-label{font-size:.75rem;color:var(--gray-500)}.session-card-footer{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--gray-50);border-top:1px solid var(--gray-100)}.session-date{font-size:.8125rem;color:var(--gray-500)}.pending-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;color:#ea580c;padding:.25rem .5rem;background:#fff7ed;border-radius:.25rem}.view-details{display:inline-flex;align-items:center;gap:.25rem;margin-left:auto;font-size:.8125rem;font-weight:600;color:#1d4ed8}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600}.status-badge.status-gray{background:var(--gray-100);color:var(--gray-600)}.grade-history-summary{text-align:center;padding:1rem;color:var(--gray-500);font-size:.875rem}.session-detail-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.btn-back{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--gray-100);border:none;border-radius:.375rem;color:var(--gray-600);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-back:hover{background:var(--gray-200);color:var(--gray-800)}.session-detail-title{flex:1}.session-detail-title h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.session-detail-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.session-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#fff;border:1px solid var(--gray-200);border-radius:.5rem}.stat-card .stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.stat-card .stat-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.session-actions{display:flex;gap:.75rem;margin-bottom:1.5rem}.btn-action{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:.5rem;color:var(--gray-700);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;text-decoration:none}.btn-action.btn-primary{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.btn-action.btn-primary:hover{background:#1e40af}.grades-table-container{background:#fff;border:1px solid var(--gray-200);border-radius:.75rem;overflow:hidden}.grades-table th,.grades-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.grades-table th{background:var(--gray-50);font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.grades-table tbody tr:last-child td{border-bottom:none}.grades-table tbody tr:hover{background:var(--gray-50)}.grades-table tbody tr.selected{background:#eff6ff}.col-checkbox{width:3rem;text-align:center}.col-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.pending-icon{display:inline-flex;color:#ea580c}.student-info{display:flex;flex-direction:column;gap:.125rem}.student-name{font-weight:500;color:var(--gray-900)}.student-email{font-size:.8125rem;color:var(--gray-500)}.col-matricule{color:var(--gray-600);font-family:monospace;font-size:.875rem}.score{display:inline-block;padding:.25rem .5rem;border-radius:.25rem;font-weight:600;font-size:.875rem}.score.score-green{background:#ecfdf5;color:#059669}.score.score-blue{background:#eff6ff;color:#2563eb}.score.score-orange{background:#fff7ed;color:#ea580c}.score.score-red{background:#fef2f2;color:#dc2626}.loading-inline{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--gray-500)}.loading-inline .spinner{width:1.5rem;height:1.5rem;border:2px solid var(--gray-200);border-top-color:#1d4ed8;border-radius:50%;animation:spin 1s linear infinite}.print-header{display:none}@media print{.no-print{display:none!important}.teacher-page{padding:0}.session-detail-header,.session-stats,.session-actions{display:none}.print-header{display:block;text-align:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #000}.print-header h2{margin:0 0 .5rem;font-size:1.25rem}.print-header p{margin:.25rem 0;font-size:.875rem;color:#666}.grades-table-container{border:none}.grades-table{border:1px solid #000}.grades-table th,.grades-table td{border:1px solid #000;padding:.5rem}.grades-table th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.score{background:none!important;padding:0}}@media(max-width:768px){.grade-history-header{flex-direction:column;align-items:stretch}.grade-history-filters{flex-direction:column}.filter-group{min-width:100%}.session-stats{grid-template-columns:repeat(2,1fr)}.session-stats-row{flex-wrap:wrap;gap:1rem}.session-actions{flex-direction:column}.grades-table-container{overflow-x:auto}.grades-table{min-width:600px}}@media(max-width:480px){.session-stats{grid-template-columns:1fr 1fr}.session-detail-header{flex-direction:column}}.grade-mod-wizard{max-width:800px;margin:0 auto;padding:1.5rem}.grade-mod-header{text-align:center;margin-bottom:2rem}.grade-mod-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.grade-mod-header p{font-size:.9375rem;color:var(--gray-500);margin:0}.grade-mod-stepper{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:2rem;padding:0 1rem}.grade-mod-step-wrapper{display:flex;align-items:center}.grade-mod-step{display:flex;flex-direction:column;align-items:center;gap:.375rem}.grade-mod-step-number{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;background:var(--gray-100);color:var(--gray-500);transition:all .2s ease}.grade-mod-step.active .grade-mod-step-number{background:#1d4ed8;color:#fff}.grade-mod-step.completed .grade-mod-step-number{background:#059669;color:#fff}.grade-mod-step-label{font-size:.75rem;color:var(--gray-500);font-weight:500;white-space:nowrap}.grade-mod-step.active .grade-mod-step-label{color:#1d4ed8}.grade-mod-step.completed .grade-mod-step-label{color:#059669}.grade-mod-step-connector{width:2rem;height:2px;background:var(--gray-200);margin:0 .5rem 1.25rem}.grade-mod-step-connector.active{background:#059669}.grade-mod-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1.5rem}.grade-mod-error button{background:none;border:none;color:#dc2626;font-size:1.25rem;cursor:pointer;padding:0 .25rem}.grade-mod-step-content{background:#fff;border-radius:.75rem;border:1px solid var(--gray-200);padding:1.5rem;margin-bottom:1.5rem}.grade-mod-step-content h2{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.grade-mod-step-content>p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.grade-mod-filters{display:flex;gap:1rem;margin-bottom:1.5rem}.grade-mod-filters select{flex:1;padding:.625rem .875rem;border:1px solid var(--gray-300);border-radius:.5rem;font-size:.875rem;color:var(--gray-700);background:#fff}.grade-mod-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.grade-mod-loading .spinner{width:2rem;height:2rem;border:3px solid var(--gray-200);border-top-color:#1d4ed8;border-radius:50%;animation:spin 1s linear infinite}.grade-mod-loading p{color:var(--gray-500);font-size:.875rem}.grade-mod-empty{text-align:center;padding:3rem;color:var(--gray-500)}.grade-mod-grade-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.grade-mod-grade-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--gray-200);border-radius:.5rem;cursor:pointer;transition:all .15s ease}.grade-mod-grade-card:hover{border-color:#1d4ed8;background:#f0f7ff}.grade-mod-grade-card.selected{border-color:#1d4ed8;background:#eff6ff;box-shadow:0 0 0 3px #1d4ed81a}.grade-card-main{display:flex;justify-content:space-between;align-items:center}.grade-card-student{display:flex;flex-direction:column;gap:.125rem}.grade-card-student .student-name{font-weight:600;color:var(--gray-900)}.grade-card-student .student-email{font-size:.8125rem;color:var(--gray-500)}.grade-card-score{display:flex;align-items:baseline}.grade-card-score .score-value{font-size:1.25rem;font-weight:700;color:#1d4ed8}.grade-card-score .score-max{font-size:.875rem;color:var(--gray-500)}.grade-card-meta{display:flex;gap:.5rem}.grade-card-meta span{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;background:var(--gray-100);color:var(--gray-600)}.grade-mod-score-section{display:flex;flex-direction:column;gap:1.5rem}.score-comparison{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1.5rem;background:var(--gray-50);border-radius:.75rem}.score-box{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.5rem;background:#fff;border-radius:.5rem;border:2px solid var(--gray-200)}.score-box.new{border-color:#1d4ed8}.score-box .score-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.score-box .score-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.score-box.new .score-value{color:#1d4ed8}.score-box .score-max{font-size:.875rem;color:var(--gray-500)}.score-box .score-input{width:4.5rem;font-size:1.75rem;font-weight:700;color:#1d4ed8;text-align:center;border:none;background:none;outline:none}.score-box .score-input::placeholder{color:var(--gray-300)}.score-arrow{font-size:1.5rem;color:var(--gray-400)}.score-difference{text-align:center;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;font-size:.9375rem}.score-difference.positive{background:#ecfdf5;color:#059669}.score-difference.negative{background:#fef2f2;color:#dc2626}.grade-info-card{background:var(--gray-50);border-radius:.5rem;padding:1rem}.info-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--gray-200)}.info-row:last-child{border-bottom:none}.info-label{font-size:.875rem;color:var(--gray-500)}.info-value{font-size:.875rem;color:var(--gray-900);font-weight:500}.grade-mod-justification textarea{width:100%;padding:.875rem;border:1px solid var(--gray-300);border-radius:.5rem;font-size:.9375rem;font-family:inherit;resize:vertical;min-height:150px}.grade-mod-justification textarea:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.char-count{text-align:right;margin-top:.5rem}.char-count span{font-size:.8125rem;color:#dc2626}.char-count span.valid{color:#059669}.grade-mod-documents{display:flex;flex-direction:column;gap:1rem}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;border:2px dashed var(--gray-300);border-radius:.75rem;cursor:pointer;transition:all .2s ease}.upload-zone:hover{border-color:#1d4ed8;background:#f0f7ff}.upload-zone input[type=file]{display:none}.upload-zone svg{color:var(--gray-400)}.upload-zone span{font-size:.9375rem;color:var(--gray-600)}.upload-zone .upload-hint{font-size:.8125rem;color:var(--gray-400)}.documents-list{display:flex;flex-direction:column;gap:.5rem}.document-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:.5rem}.document-icon{font-size:1.25rem}.document-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.document-name{font-size:.875rem;font-weight:500;color:var(--gray-900)}.document-size{font-size:.75rem;color:var(--gray-500)}.document-remove{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--gray-400);font-size:1.25rem;cursor:pointer;border-radius:.25rem}.document-remove:hover{background:#fef2f2;color:#dc2626}.grade-mod-review{display:flex;flex-direction:column;gap:1.5rem}.review-section h3{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.review-card{background:var(--gray-50);border-radius:.5rem;padding:1rem}.review-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--gray-200)}.review-row:last-child{border-bottom:none}.review-row span{font-size:.875rem;color:var(--gray-500)}.review-row strong{font-size:.875rem;color:var(--gray-900)}.review-score-change{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:.5rem}.review-score-change .score-from{font-size:1.25rem;font-weight:600;color:var(--gray-500)}.review-score-change .score-arrow{font-size:1.25rem;color:var(--gray-400)}.review-score-change .score-to{font-size:1.25rem;font-weight:700;color:#1d4ed8}.review-score-change .score-diff{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:.25rem}.review-score-change .score-diff.positive{background:#ecfdf5;color:#059669}.review-score-change .score-diff.negative{background:#fef2f2;color:#dc2626}.review-justification{padding:1rem;background:var(--gray-50);border-radius:.5rem;font-size:.9375rem;color:var(--gray-700);line-height:1.5;white-space:pre-wrap}.review-documents{display:flex;flex-wrap:wrap;gap:.5rem}.review-doc{font-size:.8125rem;padding:.375rem .75rem;background:var(--gray-100);border-radius:.375rem;color:var(--gray-700)}.review-warning{display:flex;gap:.75rem;padding:1rem;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem}.review-warning svg{flex-shrink:0;color:#d97706}.review-warning p{font-size:.875rem;color:#92400e;margin:0;line-height:1.5}.grade-mod-actions{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--gray-200)}.grade-mod-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.grade-mod-btn:disabled{opacity:.5;cursor:not-allowed}.grade-mod-btn.primary{background:#1d4ed8;color:#fff}.grade-mod-btn.primary:hover:not(:disabled){background:#1e40af}.grade-mod-btn.secondary{background:var(--gray-100);color:var(--gray-700)}.grade-mod-btn.secondary:hover:not(:disabled){background:var(--gray-200)}.grade-mod-btn.success{background:#059669;color:#fff}.grade-mod-btn.success:hover:not(:disabled){background:#047857}.grade-mod-btn.tertiary{background:transparent;color:var(--gray-600);border:1px solid var(--gray-300)}.grade-mod-btn.tertiary:hover:not(:disabled){background:var(--gray-50)}.grade-mod-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2rem}.grade-mod-success-icon{width:4rem;height:4rem;border-radius:50%;background:#ecfdf5;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.grade-mod-success-icon svg{width:2rem;height:2rem;color:#059669}.grade-mod-success h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.grade-mod-success>p{font-size:1rem;color:var(--gray-600);margin:0 0 1.5rem;max-width:400px}.grade-mod-success-info{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#eff6ff;border-radius:.5rem;margin-bottom:2rem}.grade-mod-success-info svg{color:#1d4ed8;flex-shrink:0}.grade-mod-success-info span{font-size:.875rem;color:#1e40af}.grade-mod-success-actions{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:300px}@media(max-width:640px){.grade-mod-wizard{padding:1rem}.grade-mod-stepper{flex-wrap:wrap;gap:.5rem}.grade-mod-step-connector,.grade-mod-step-label{display:none}.grade-mod-filters{flex-direction:column}.score-comparison{flex-direction:column;gap:1rem}.score-arrow{transform:rotate(90deg)}.grade-mod-actions{flex-direction:column-reverse;gap:.75rem}.grade-mod-btn{width:100%}}.student-requests{max-width:900px;margin:0 auto}.student-requests-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.student-requests-header-content h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.student-requests-header-content p{font-size:.9375rem;color:var(--gray-500);margin:0}.student-requests-success{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:.5rem;color:#059669;margin-bottom:1.5rem}.student-requests-error{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1.5rem}.student-requests-error button{background:none;border:none;color:#dc2626;font-size:1.25rem;cursor:pointer;padding:0 .25rem}.student-requests-filters{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;border:1px solid var(--gray-300);border-radius:.5rem;background:#fff;color:var(--gray-600);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.filter-btn:hover{border-color:#1d4ed8;color:#1d4ed8}.filter-btn.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.student-requests-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.student-requests-loading .spinner{width:2.5rem;height:2.5rem;border:3px solid var(--gray-200);border-top-color:#1d4ed8;border-radius:50%;animation:spin 1s linear infinite}.student-requests-loading p{color:var(--gray-500);font-size:.9375rem}.student-requests-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem;background:#fff;border:1px solid var(--gray-200);border-radius:.75rem}.student-requests-empty svg{color:var(--gray-300);margin-bottom:1rem}.student-requests-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.student-requests-empty p{font-size:.9375rem;color:var(--gray-500);margin:0}.student-requests-list{display:flex;flex-direction:column;gap:1rem}.request-card{background:#fff;border:1px solid var(--gray-200);border-radius:.75rem;overflow:hidden}.request-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.request-student{display:flex;flex-direction:column;gap:.125rem}.request-student .student-name{font-weight:600;color:var(--gray-900)}.request-student .student-email{font-size:.8125rem;color:var(--gray-500)}.status-badge{padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600}.status-badge.status-orange{background:#fff7ed;color:#ea580c}.status-badge.status-green{background:#ecfdf5;color:#059669}.status-badge.status-red{background:#fef2f2;color:#dc2626}.status-badge.status-blue{background:#eff6ff;color:#2563eb}.status-badge.status-purple{background:#faf5ff;color:#9333ea}.request-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.request-grade-info{display:flex;gap:2rem}.request-grade-info .label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.25rem}.request-grade-info .value{font-size:.9375rem;color:var(--gray-900)}.request-score-change{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:.5rem}.score-current,.score-requested{display:flex;flex-direction:column;align-items:center;gap:.25rem}.score-label{font-size:.6875rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.score-current .score-value{font-size:1.125rem;font-weight:600;color:var(--gray-600)}.score-requested .score-value{font-size:1.125rem;font-weight:700;color:#1d4ed8}.score-arrow{font-size:1.25rem;color:var(--gray-400)}.score-diff{padding:.25rem .5rem;border-radius:.25rem;font-size:.8125rem;font-weight:600}.score-diff.positive{background:#ecfdf5;color:#059669}.score-diff.negative{background:#fef2f2;color:#dc2626}.request-justification .label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.5rem}.request-justification p{margin:0;font-size:.9375rem;color:var(--gray-700);line-height:1.5;background:var(--gray-50);padding:.75rem 1rem;border-radius:.5rem;border-left:3px solid var(--gray-300)}.request-documents .label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.5rem}.request-documents .documents-list{display:flex;flex-wrap:wrap;gap:.5rem}.document-link{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--gray-100);border-radius:.375rem;font-size:.8125rem;color:var(--gray-700);text-decoration:none;transition:all .15s ease}.document-link:hover{background:#eff6ff;color:#1d4ed8}.request-meta{font-size:.8125rem;color:var(--gray-500)}.request-card-actions{display:flex;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border-radius:.375rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.approve{background:#ecfdf5;color:#059669}.action-btn.approve:hover:not(:disabled){background:#d1fae5}.action-btn.info{background:#eff6ff;color:#2563eb}.action-btn.info:hover:not(:disabled){background:#dbeafe}.action-btn.reject{background:#fef2f2;color:#dc2626}.action-btn.reject:hover:not(:disabled){background:#fee2e2}.request-info-box,.request-rejection-box{margin:0 1.25rem 1rem;padding:.75rem 1rem;border-radius:.5rem}.request-info-box{background:#eff6ff;border-left:3px solid #2563eb}.request-rejection-box{background:#fef2f2;border-left:3px solid #dc2626}.info-label,.rejection-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.375rem}.info-label{color:#2563eb}.rejection-label{color:#dc2626}.request-info-box p,.request-rejection-box p{margin:0;font-size:.875rem;line-height:1.5}.request-info-box p{color:#1e40af}.request-rejection-box p{color:#991b1b}.action-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.action-modal{background:#fff;border-radius:.75rem;width:100%;max-width:480px;max-height:90vh;overflow:auto;box-shadow:0 25px 50px -12px #00000040}.action-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-200)}.action-modal-header h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.close-btn{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--gray-400);font-size:1.5rem;cursor:pointer;border-radius:.25rem}.close-btn:hover{background:var(--gray-100);color:var(--gray-600)}.action-modal-body{padding:1.25rem}.modal-request-summary{padding:.75rem 1rem;background:var(--gray-50);border-radius:.5rem;margin-bottom:1rem}.modal-request-summary p{margin:0;font-size:.9375rem;color:var(--gray-700)}.modal-info{font-size:.9375rem;color:var(--gray-600);margin:0 0 1rem;padding:.75rem 1rem;background:#eff6ff;border-radius:.5rem}.modal-field{margin-bottom:1rem}.modal-field label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.modal-field textarea{width:100%;padding:.75rem;border:1px solid var(--gray-300);border-radius:.5rem;font-size:.9375rem;font-family:inherit;resize:vertical}.modal-field textarea:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.action-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.modal-btn{padding:.625rem 1.25rem;border-radius:.5rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.modal-btn.cancel{background:var(--gray-100);color:var(--gray-700)}.modal-btn.cancel:hover{background:var(--gray-200)}.modal-btn.approve{background:#059669;color:#fff}.modal-btn.approve:hover:not(:disabled){background:#047857}.modal-btn.reject{background:#dc2626;color:#fff}.modal-btn.reject:hover:not(:disabled){background:#b91c1c}.modal-btn.info{background:#2563eb;color:#fff}.modal-btn.info:hover:not(:disabled){background:#1d4ed8}@media(max-width:640px){.student-requests-filters{justify-content:center}.request-grade-info{flex-direction:column;gap:.75rem}.request-score-change{flex-wrap:wrap;justify-content:center}.request-card-actions{flex-direction:column}.action-btn{justify-content:center;width:100%}}.teacher-courses{max-width:1000px;margin:0 auto;padding:1.5rem}.teacher-courses-header{margin-bottom:1.5rem}.teacher-courses-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.teacher-courses-header p{font-size:1rem;color:var(--gray-600);margin:0}.teacher-courses-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;align-items:center}.teacher-courses-search{flex:1;min-width:200px;max-width:320px;position:relative;display:flex;align-items:center}.teacher-courses-search>svg{position:absolute;left:.75rem;width:18px;height:18px;color:var(--gray-400);pointer-events:none}.teacher-courses-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;font-size:.9375rem;border:1px solid var(--gray-300);border-radius:8px;background:#fff;color:var(--gray-900);transition:border-color .2s,box-shadow .2s}.teacher-courses-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50, rgba(59, 130, 246, .1))}.teacher-courses-search-input::placeholder{color:var(--gray-400)}.teacher-courses-search-clear{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:none;cursor:pointer;color:var(--gray-400);transition:color .2s}.teacher-courses-search-clear:hover{color:var(--gray-600)}.teacher-courses-search-clear svg{width:16px;height:16px}.teacher-courses-filter-select{padding:.625rem 2rem .625rem .875rem;font-size:.9375rem;border:1px solid var(--gray-300);border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right .5rem center;background-size:18px;color:var(--gray-700);cursor:pointer;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}.teacher-courses-filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50, rgba(59, 130, 246, .1))}.teacher-courses-clear-filters{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;color:var(--gray-600);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:8px;cursor:pointer;transition:all .2s}.teacher-courses-clear-filters:hover{background:var(--gray-200);color:var(--gray-700)}.teacher-courses-clear-filters svg{width:14px;height:14px}.teacher-courses-loading-overlay{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1rem;background:var(--primary-50, #eff6ff);border-radius:8px;font-size:.875rem;color:var(--primary)}.spinner-small{width:16px;height:16px;border:2px solid var(--primary-200, #bfdbfe);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.teacher-courses-error-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:.875rem;color:#dc2626}.teacher-courses-error-banner button{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#dc2626;background:#fff;border:1px solid #fecaca;border-radius:6px;cursor:pointer;transition:all .2s}.teacher-courses-error-banner button:hover{background:#fef2f2}.teacher-courses-grid{display:flex;flex-direction:column;gap:1rem}.teacher-course-card-wrapper{display:flex;flex-direction:column;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:all .2s ease}.teacher-course-card-wrapper:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.teacher-course-card{display:flex;align-items:stretch;text-decoration:none;min-height:140px}.teacher-course-accent{width:8px;flex-shrink:0}.teacher-course-content{flex:1;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.5rem}.teacher-course-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.teacher-course-code{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase}.teacher-course-badges{display:flex;gap:.375rem}.teacher-course-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;border-radius:4px}.badge-level{background:var(--primary-50, #eff6ff);color:var(--primary, #3b82f6)}.badge-semester{background:#f0fdf4;color:#16a34a}.teacher-course-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0;line-height:1.3}.teacher-course-meta{display:flex;align-items:center;gap:1.5rem;margin-top:.25rem}.teacher-course-credits,.teacher-course-students{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--gray-600)}.teacher-course-credits svg,.teacher-course-students svg{width:16px;height:16px;color:var(--gray-400)}.teacher-course-progress{margin-top:.5rem}.teacher-course-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem;font-size:.75rem;color:var(--gray-500)}.teacher-course-progress-bar{height:6px;background:var(--gray-100);border-radius:3px;overflow:hidden}.teacher-course-progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.teacher-course-hours-info{margin-top:.375rem;font-size:.75rem;color:var(--gray-500)}.teacher-course-assignment{display:flex;gap:.5rem;margin-top:.5rem}.teacher-course-assignment-badge,.teacher-course-role-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:9999px}.badge-titulaire{background:#dbeafe;color:#1d4ed8}.badge-vacataire{background:#fef3c7;color:#b45309}.badge-intervenant{background:#e0e7ff;color:#4338ca}.badge-responsable{background:#fce7f3;color:#be185d}.teacher-course-arrow{display:flex;align-items:center;justify-content:center;padding:0 1rem;color:var(--gray-400);transition:color .2s}.teacher-course-card-wrapper:hover .teacher-course-arrow{color:var(--primary)}.teacher-course-arrow svg{width:24px;height:24px}.teacher-course-quick-actions{display:none}.teacher-course-quick-action{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:#fff;border:1px solid var(--gray-200);border-radius:6px;font-size:.8125rem;font-weight:500;color:var(--gray-600);text-decoration:none;transition:all .2s ease}.teacher-course-quick-action:hover{background:var(--primary-50, #eff6ff);border-color:var(--primary);color:var(--primary)}.teacher-course-quick-action svg{width:16px;height:16px}.teacher-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.teacher-empty p{font-size:1rem;color:var(--gray-500);margin:0 0 1rem}.teacher-empty-action{padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;color:var(--primary);background:var(--primary-50, #eff6ff);border:none;border-radius:8px;cursor:pointer;transition:all .2s}.teacher-empty-action:hover{background:var(--primary-100, #dbeafe)}.teacher-courses-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.teacher-courses-error svg{width:64px;height:64px;color:#f87171;margin-bottom:1rem}.teacher-courses-error p{font-size:1rem;color:var(--gray-600);margin:0 0 1.5rem}.teacher-courses-retry-btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s}.teacher-courses-retry-btn:hover{background:var(--primary-600, #2563eb)}.teacher-courses-count{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--gray-100);font-size:.875rem;color:var(--gray-500);text-align:center}@media(max-width:768px){.teacher-courses-filters{flex-direction:column;align-items:stretch}.teacher-courses-search{max-width:none}.teacher-courses-filter-select{width:100%}.teacher-course-header-row,.teacher-course-meta{flex-direction:column;align-items:flex-start;gap:.5rem}}@media(max-width:640px){.teacher-courses,.teacher-course-content{padding:1rem}.teacher-course-title{font-size:1rem}.teacher-course-card{min-height:auto}}.resource-viewer-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.resource-viewer{background:#fff;border-radius:12px;width:100%;max-width:900px;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.resource-viewer__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.resource-viewer__title{font-size:.95rem;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:.75rem}.resource-viewer__actions{display:flex;gap:.4rem;flex-shrink:0}.resource-viewer__btn{width:34px;height:34px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .15s}.resource-viewer__btn:hover{background:#f1f5f9;color:#1a1a2e}.resource-viewer__btn--close:hover{background:#fee2e2;color:#dc2626}.resource-viewer__content{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f8fafc}.resource-viewer__iframe{width:100%;height:100%;border:none}.resource-viewer__image{max-width:100%;max-height:100%;object-fit:contain}.resource-viewer__video{max-width:100%;max-height:100%}.resource-viewer__fallback{text-align:center;padding:3rem;color:#94a3b8}.resource-viewer__fallback svg{margin-bottom:1rem;opacity:.4}.resource-viewer__fallback p{margin:0 0 1.5rem;font-size:.95rem}.resource-viewer__download-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.5rem;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.resource-viewer__download-btn:hover{background:#16213e}@media(max-width:768px){.resource-viewer{height:95vh;border-radius:8px}}.tcd-page{max-width:1200px;margin:0 auto;padding:1.5rem}.tcd-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.tcd-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:tcd-spin .8s linear infinite}@keyframes tcd-spin{to{transform:rotate(360deg)}}.tcd-loading span{color:var(--gray-600);font-size:.9375rem}.tcd-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;gap:1rem}.tcd-error svg{width:64px;height:64px;color:var(--gray-400)}.tcd-error h2{font-size:1.5rem;font-weight:600;color:var(--gray-900);margin:0}.tcd-error p{color:var(--gray-600);margin:0}.tcd-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.9375rem}.tcd-breadcrumb a{color:var(--primary);text-decoration:none}.tcd-breadcrumb a:hover{text-decoration:underline}.tcd-breadcrumb-separator{color:var(--gray-400)}.tcd-breadcrumb>span:last-child{color:var(--gray-600)}.tcd-header{background:linear-gradient(135deg,#fff,#f0fdf4,#ecfdf5);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #10b9811a;margin-bottom:1.5rem;border:1px solid var(--primary-100);position:relative;overflow:hidden}.tcd-header:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#10b981,#059669,#047857)}.tcd-header-main{margin-bottom:1.25rem}.tcd-header-title{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.tcd-code-badge{display:inline-block;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:6px;flex-shrink:0;box-shadow:0 2px 4px #10b9814d}.tcd-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0;line-height:1.4}.tcd-header-badges{display:flex;flex-wrap:wrap;gap:.5rem}.tcd-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:9999px}.tcd-badge-level{background:var(--blue-100);color:var(--blue-700)}.tcd-badge-semester{background:var(--purple-100);color:var(--purple-700)}.tcd-badge-credits{background:var(--amber-100);color:var(--amber-700)}.tcd-badge-assignment{background:var(--gray-100);color:var(--gray-700)}.tcd-badge-titulaire{background:var(--green-100);color:var(--green-700)}.tcd-badge-vacataire{background:var(--orange-100);color:var(--orange-700)}.tcd-badge-intervenant{background:var(--cyan-100);color:var(--cyan-700)}.tcd-badge-role{background:var(--gray-100);color:var(--gray-700)}.tcd-badge-responsable{background:var(--indigo-100);color:var(--indigo-700)}.tcd-badge-participant{background:var(--gray-100);color:var(--gray-600)}.tcd-header-progress{padding-top:1rem;border-top:1px solid var(--gray-100)}.tcd-progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem}.tcd-progress-info span:first-child{color:var(--gray-600)}.tcd-progress-info span:last-child{font-weight:600;color:var(--gray-900)}.tcd-progress-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.tcd-progress-fill{height:100%;background:var(--primary-500);border-radius:4px;transition:width .3s ease}.tcd-progress-hours{margin-top:.375rem;font-size:.8125rem;color:var(--gray-500);text-align:right}.tcd-tabs{display:flex;gap:.25rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:.5rem;border-radius:12px;box-shadow:0 2px 4px #00000014;margin-bottom:1.5rem;overflow-x:auto;border:1px solid var(--gray-200)}.tcd-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;color:var(--gray-600);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tcd-tab svg{width:18px;height:18px;flex-shrink:0}.tcd-tab:hover{background:#fff;color:var(--gray-900);box-shadow:0 2px 4px #0000000d}.tcd-tab-active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 6px #10b98159}.tcd-tab-active:hover{background:linear-gradient(135deg,#059669,#047857);color:#fff}.tcd-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:1.5rem;min-height:400px}.tcd-tab-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.tcd-tab-loading span{color:var(--gray-600);font-size:.9375rem}.tcd-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.tcd-empty-state svg{width:64px;height:64px;color:var(--gray-400);margin-bottom:1rem}.tcd-empty-state h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.tcd-empty-state p{color:var(--gray-600);margin:0 0 1.5rem}.tcd-overview{display:flex;flex-direction:column;gap:2rem}.tcd-section h2{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.tcd-description{color:var(--gray-700);line-height:1.6;margin:0}.tcd-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tcd-stat-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-radius:10px;border:1px solid var(--gray-200);transition:all .2s ease;box-shadow:0 2px 4px #0000000a}.tcd-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000014}.tcd-stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.tcd-stat-icon svg{width:24px;height:24px}.tcd-stat-card--blue{border-left:4px solid var(--blue-500);background:linear-gradient(135deg,white 0%,var(--blue-50) 100%)}.tcd-stat-card--blue:hover{border-left-color:var(--blue-600);background:linear-gradient(135deg,white 0%,var(--blue-100) 100%)}.tcd-stat-card--green{border-left:4px solid var(--green-500);background:linear-gradient(135deg,white 0%,var(--green-50) 100%)}.tcd-stat-card--green:hover{border-left-color:var(--green-600);background:linear-gradient(135deg,white 0%,var(--green-100) 100%)}.tcd-stat-card--purple{border-left:4px solid var(--purple-500);background:linear-gradient(135deg,white 0%,var(--purple-50) 100%)}.tcd-stat-card--purple:hover{border-left-color:var(--purple-600);background:linear-gradient(135deg,white 0%,var(--purple-100) 100%)}.tcd-stat-card--amber{border-left:4px solid var(--amber-500);background:linear-gradient(135deg,white 0%,var(--amber-50) 100%)}.tcd-stat-card--amber:hover{border-left-color:var(--amber-600);background:linear-gradient(135deg,white 0%,var(--amber-100) 100%)}.tcd-stat-students{background:var(--blue-100);color:var(--blue-600)}.tcd-stat-resources{background:var(--green-100);color:var(--green-600)}.tcd-stat-chapters{background:var(--purple-100);color:var(--purple-600)}.tcd-stat-hours{background:var(--amber-100);color:var(--amber-600)}.tcd-stat-info{display:flex;flex-direction:column}.tcd-stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900);line-height:1.2}.tcd-stat-label{font-size:.875rem;color:var(--gray-600)}.tcd-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.tcd-action-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid var(--gray-200);border-radius:10px;text-decoration:none;transition:all .2s ease}.tcd-action-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.tcd-action-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.tcd-action-icon svg{width:24px;height:24px}.tcd-action-content{background:var(--blue-100);color:var(--blue-600)}.tcd-action-attendance{background:var(--green-100);color:var(--green-600)}.tcd-action-grades{background:var(--purple-100);color:var(--purple-600)}.tcd-action-evaluation{background:var(--orange-100);color:var(--orange-600)}.tcd-action-card--blue{border-color:var(--blue-200);background:linear-gradient(135deg,white 0%,var(--blue-50) 100%)}.tcd-action-card--blue:hover{border-color:var(--blue-400);background:linear-gradient(135deg,white 0%,var(--blue-100) 100%)}.tcd-action-card--green{border-color:var(--green-200);background:linear-gradient(135deg,white 0%,var(--green-50) 100%)}.tcd-action-card--green:hover{border-color:var(--green-400);background:linear-gradient(135deg,white 0%,var(--green-100) 100%)}.tcd-action-card--purple{border-color:var(--purple-200);background:linear-gradient(135deg,white 0%,var(--purple-50) 100%)}.tcd-action-card--purple:hover{border-color:var(--purple-400);background:linear-gradient(135deg,white 0%,var(--purple-100) 100%)}.tcd-action-card--orange{border-color:var(--orange-200);background:linear-gradient(135deg,white 0%,var(--orange-50) 100%)}.tcd-action-card--orange:hover{border-color:var(--orange-400);background:linear-gradient(135deg,white 0%,var(--orange-100) 100%)}.tcd-action-info{display:flex;flex-direction:column}.tcd-action-title{font-size:1rem;font-weight:600;color:var(--gray-900)}.tcd-action-desc{font-size:.875rem;color:var(--gray-600)}.tcd-activity-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:var(--gray-50);border-radius:10px;border:2px dashed var(--gray-200)}.tcd-activity-placeholder svg{width:48px;height:48px;color:var(--gray-400);margin-bottom:.75rem}.tcd-activity-placeholder p{color:var(--gray-500);margin:0}.tcd-schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.tcd-schedule-day{background:var(--gray-50);border-radius:10px;padding:1rem}.tcd-day-header{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 .75rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.tcd-day-slots{display:flex;flex-direction:column;gap:.75rem}.tcd-slot{padding:.875rem;border-radius:8px;border-left:4px solid var(--gray-400)}.tcd-slot-time{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.tcd-slot-type{font-size:.8125rem;font-weight:600;margin-bottom:.5rem}.tcd-slot-room,.tcd-slot-location{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-600);margin-top:.25rem}.tcd-slot-room svg,.tcd-slot-location svg{width:14px;height:14px;flex-shrink:0}.tcd-slot-instructor{font-size:.8125rem;color:var(--gray-600);font-style:italic;margin-top:.375rem}.tcd-resources-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.tcd-resources-header h2{margin:0}.tcd-resources-list{display:flex;flex-direction:column;gap:.75rem}.tcd-resource-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;border:1px solid var(--gray-100)}.tcd-resource-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;border:1px solid var(--gray-200);flex-shrink:0}.tcd-resource-icon svg{width:22px;height:22px;color:var(--gray-600)}.tcd-resource-info{flex:1;min-width:0}.tcd-resource-title{display:block;font-size:.9375rem;font-weight:500;color:var(--gray-900);margin-bottom:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcd-resource-meta{font-size:.8125rem;color:var(--gray-500)}.tcd-resource-actions{display:flex;gap:.5rem;flex-shrink:0}.tcd-resource-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #00000014}.tcd-resource-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001f}.tcd-resource-btn svg{width:18px;height:18px}.tcd-resource-download{background:linear-gradient(135deg,#10b981,#059669);color:#fff;text-decoration:none}.tcd-resource-download:hover{background:linear-gradient(135deg,#059669,#047857)}.tcd-resource-external{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;text-decoration:none}.tcd-resource-external:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.tcd-resource-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.tcd-resource-delete:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}.tcd-students-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.tcd-students-header h2{margin:0}.tcd-students-search{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;min-width:250px}.tcd-students-search svg{width:18px;height:18px;color:var(--gray-400);flex-shrink:0}.tcd-students-search input{border:none;background:none;font-size:.9375rem;color:var(--gray-900);width:100%}.tcd-students-search input::placeholder{color:var(--gray-400)}.tcd-students-search input:focus{outline:none}.tcd-students-list{overflow-x:auto}.tcd-students-table-header{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:1rem;padding:.875rem 1rem;background:var(--gray-50);border-radius:8px;font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.tcd-student-row{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:1rem;padding:1rem;border-bottom:1px solid var(--gray-100);align-items:center}.tcd-student-row:last-child{border-bottom:none}.tcd-student-row:hover{background:var(--gray-50)}.tcd-student-info{display:flex;align-items:center;gap:.75rem}.tcd-student-photo{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.tcd-student-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-100);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0}.tcd-student-name{font-weight:500;color:var(--gray-900)}.tcd-student-email{font-size:.9375rem;color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcd-student-modality{display:flex;justify-content:flex-start}.tcd-modality-badge{display:inline-flex;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:9999px}.tcd-modality-presentiel{background:var(--green-100);color:var(--green-700)}.tcd-modality-distanciel{background:var(--blue-100);color:var(--blue-700)}.tcd-modality-enligne{background:var(--purple-100);color:var(--purple-700)}.tcd-students-empty{padding:2rem;text-align:center;color:var(--gray-500)}.tcd-syllabus-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.tcd-syllabus-header h2{margin:0}.tcd-syllabus-content{min-height:200px}.tcd-syllabus-file{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background:#fff;border:1px solid var(--gray-200);border-radius:12px}.tcd-syllabus-file-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--red-50);border-radius:12px;color:var(--red-600);flex-shrink:0}.tcd-syllabus-file-icon svg{width:28px;height:28px}.tcd-syllabus-file-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.tcd-syllabus-file-name{font-weight:600;font-size:1rem;color:var(--gray-900)}.tcd-syllabus-file-type{font-size:.875rem;color:var(--gray-500)}.tcd-syllabus-file-actions{display:flex;gap:.75rem}.tcd-syllabus-upload{display:flex;flex-direction:column;align-items:center}.tcd-syllabus-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.tcd-syllabus-dropzone{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 2rem;border:2px dashed var(--gray-300);border-radius:12px;background:var(--gray-50);cursor:pointer;transition:all .2s ease;text-align:center}.tcd-syllabus-dropzone:hover{border-color:var(--primary-400);background:var(--primary-50)}.tcd-syllabus-dropzone svg{width:48px;height:48px;color:var(--gray-400)}.tcd-syllabus-dropzone:hover svg{color:var(--primary-500)}.tcd-syllabus-dropzone h3{margin:0;font-size:1.125rem;color:var(--gray-700)}.tcd-syllabus-dropzone p{margin:0;font-size:.9375rem;color:var(--gray-500)}.tcd-syllabus-formats{font-size:.8125rem;color:var(--gray-400);padding:.375rem .75rem;background:var(--gray-100);border-radius:999px}.tcd-syllabus-replace{margin-top:1.5rem;display:flex;justify-content:center}.tcd-syllabus-replace label{cursor:pointer}.tcd-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;text-decoration:none;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.tcd-btn svg{width:18px;height:18px}.tcd-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.tcd-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.tcd-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000001a}.tcd-btn-primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.tcd-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857)}.tcd-btn-primary:disabled{background:linear-gradient(135deg,#10b981,#059669);opacity:.6}.tcd-btn-secondary{background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);box-shadow:0 1px 2px #0000000d}.tcd-btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.tcd-btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.tcd-btn-success:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d)}.tcd-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.tcd-btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c)}.tcd-btn-warning{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.tcd-btn-warning:hover:not(:disabled){background:linear-gradient(135deg,#ea580c,#c2410c)}.tcd-btn-info{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.tcd-btn-info:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.tcd-btn-outline-primary{background:transparent;color:var(--primary);border:2px solid var(--primary);box-shadow:none}.tcd-btn-outline-primary:hover:not(:disabled){background:var(--primary-50)}.tcd-btn-outline-danger{background:transparent;color:var(--red-600);border:2px solid var(--red-300);box-shadow:none}.tcd-btn-outline-danger:hover:not(:disabled){background:var(--red-50);border-color:var(--red-400)}.tcd-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.tcd-modal{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.tcd-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.tcd-modal-header h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.tcd-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;cursor:pointer;color:var(--gray-500)}.tcd-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.tcd-modal-close svg{width:20px;height:20px}.tcd-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.tcd-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--gray-200)}.tcd-form-group{margin-bottom:1.25rem}.tcd-form-group:last-child{margin-bottom:0}.tcd-form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.tcd-form-group input[type=text]{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:1px solid var(--gray-300);border-radius:8px}.tcd-form-group input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.tcd-file-input{position:relative}.tcd-file-input input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.tcd-file-name,.tcd-file-placeholder{display:block;padding:.875rem 1rem;background:var(--gray-50);border:2px dashed var(--gray-300);border-radius:8px;text-align:center;font-size:.9375rem;transition:all .2s ease}.tcd-file-name{color:var(--gray-900);border-color:var(--primary);background:var(--primary-50)}.tcd-file-placeholder{color:var(--gray-500)}.tcd-file-input:hover .tcd-file-placeholder{border-color:var(--gray-400);background:var(--gray-100)}@media(max-width:768px){.tcd-page,.tcd-header{padding:1rem}.tcd-header h1{font-size:1.25rem}.tcd-tabs{padding:.375rem}.tcd-tab{padding:.625rem .875rem;font-size:.875rem}.tcd-tab span{display:none}.tcd-content{padding:1rem}.tcd-stats-grid{grid-template-columns:1fr 1fr}.tcd-actions-grid{grid-template-columns:1fr}.tcd-resources-header,.tcd-students-header,.tcd-syllabus-header{flex-direction:column;align-items:stretch}.tcd-students-search{min-width:100%}.tcd-students-table-header{display:none}.tcd-student-row{grid-template-columns:1fr;gap:.5rem}.tcd-schedule-grid{grid-template-columns:1fr}.tcd-modal{margin:1rem}}@media(max-width:480px){.tcd-stats-grid{grid-template-columns:1fr}.tcd-stat-card{padding:.875rem}.tcd-stat-value{font-size:1.25rem}}.tcd-modal-large{max-width:640px}.tcd-resource-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.tcd-resource-type-btn{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:1rem .75rem;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:center}.tcd-resource-type-btn:hover{background:#fff;border-color:var(--gray-300)}.tcd-resource-type-active,.tcd-resource-type-active:hover{background:var(--primary-50);border-color:var(--primary)}.tcd-resource-type-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--gray-600)}.tcd-resource-type-active .tcd-resource-type-icon{color:var(--primary)}.tcd-resource-type-icon svg{width:24px;height:24px}.tcd-resource-type-label{font-size:.875rem;font-weight:600;color:var(--gray-900)}.tcd-resource-type-desc{font-size:.75rem;color:var(--gray-500);line-height:1.3}.tcd-form-group input[type=url]{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:1px solid var(--gray-300);border-radius:8px}.tcd-form-group input[type=url]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.tcd-form-hint{display:block;margin-top:.5rem;font-size:.8125rem;color:var(--gray-500)}@media(max-width:480px){.tcd-resource-type-grid{grid-template-columns:repeat(2,1fr)}.tcd-resource-type-btn{padding:.75rem .5rem}.tcd-resource-type-icon{width:28px;height:28px}.tcd-resource-type-icon svg{width:20px;height:20px}.tcd-resource-type-label{font-size:.8125rem}.tcd-resource-type-desc{font-size:.6875rem}}.teacher-mes-etudiants{max-width:1400px;margin:0 auto}.mes-etudiants-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.mes-etudiants-header-left{display:flex;align-items:center;gap:1rem}.mes-etudiants-header h1{display:flex;align-items:center;gap:.75rem;font-size:1.75rem;font-weight:700;color:var(--gray-900, #0f172a);margin:0}.mes-etudiants-header h1 svg{color:#059669}.student-count{display:inline-flex;align-items:center;padding:.375rem .875rem;font-size:.875rem;font-weight:600;color:#059669;background:#0596691a;border-radius:100px}.header-actions{display:flex;align-items:center;gap:1rem}.view-toggle{display:flex;align-items:center;background:var(--gray-100, #f1f5f9);border-radius:10px;padding:4px}.toggle-btn{display:flex;align-items:center;justify-content:center;width:40px;height:36px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--gray-500, #64748b);transition:all .2s}.toggle-btn:hover{color:var(--gray-700, #334155)}.toggle-btn.active{background:#fff;color:#059669;box-shadow:0 2px 8px #00000014}.broadcast-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#059669,#10b981);border:none;border-radius:10px;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #05966940}.broadcast-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #05966959}.broadcast-btn:disabled{opacity:.5;cursor:not-allowed}.error-banner{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:1.5rem}.error-banner p{margin:0;color:#dc2626;font-weight:500}.error-banner button{padding:.5rem 1rem;font-size:.875rem;font-weight:600;color:#dc2626;background:#fff;border:1px solid #fecaca;border-radius:6px;cursor:pointer}.mes-etudiants-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-box{flex:1;min-width:250px;display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:#fff;border:2px solid var(--gray-200, #e2e8f0);border-radius:10px;transition:border-color .2s}.search-box:focus-within{border-color:#059669}.search-box svg{width:20px;height:20px;color:var(--gray-400, #94a3b8);flex-shrink:0}.search-box input{flex:1;padding:.875rem 0;font-size:1rem;border:none;background:none;outline:none}.clear-search{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:var(--gray-200, #e2e8f0);border-radius:50%;cursor:pointer;color:var(--gray-500, #64748b)}.clear-search:hover{background:var(--gray-300, #cbd5e1)}.clear-search svg{width:14px;height:14px}.filter-select{min-width:180px;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200, #e2e8f0);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .2s}.filter-select:focus{outline:none;border-color:#059669}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:#fff;border-radius:16px;border:2px dashed var(--gray-200, #e2e8f0)}.empty-state svg{color:var(--gray-300, #cbd5e1);margin-bottom:1.5rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:var(--gray-700, #334155);margin:0 0 .5rem}.empty-state p{font-size:1rem;color:var(--gray-500, #64748b);margin:0}.students-table-container{background:#fff;border-radius:16px;border:1px solid var(--gray-200, #e2e8f0);overflow-x:auto}.students-table{width:100%;border-collapse:collapse}.students-table thead{background:var(--gray-50, #f8fafc)}.students-table th{padding:.875rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--gray-500, #64748b);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200, #e2e8f0);white-space:nowrap}.students-table th:last-child,.students-table td:last-child{text-align:center;white-space:nowrap;overflow:visible;min-width:100px}.students-table td{padding:.75rem 1rem;font-size:.875rem;color:var(--gray-700, #334155);border-bottom:1px solid var(--gray-100, #f1f5f9);vertical-align:middle}.students-table td:not(:last-child){overflow:hidden;text-overflow:ellipsis}.students-table tbody tr:hover{background:var(--gray-50, #f8fafc)}.students-table tbody tr:last-child td{border-bottom:none}.student-cell{display:flex;align-items:center;gap:.625rem}.student-avatar.small{width:32px;height:32px;font-size:.75rem;flex-shrink:0}.student-name{font-weight:500;color:var(--gray-900, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.email-cell{color:var(--gray-500, #64748b);font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-cell{font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ues-cell{display:flex;flex-wrap:nowrap;gap:.25rem}.table-actions{display:flex;gap:.5rem;justify-content:center;align-items:center;min-width:80px}.table-actions .action-btn{flex:none;width:34px;height:34px;padding:0;border-radius:8px;background:var(--gray-100, #f1f5f9);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:all .2s;color:var(--gray-500, #64748b)}.table-actions .action-btn svg{width:16px;height:16px}.table-actions .action-btn.view:hover{background:#3b82f626;color:#3b82f6}.table-actions .action-btn.message:hover{background:#05966926;color:#059669}.attendance-badge{display:flex;flex-direction:column;gap:.25rem;min-width:70px}.attendance-value{font-size:.8125rem;font-weight:600}.attendance-bar{width:100%;height:4px;background:var(--gray-200, #e2e8f0);border-radius:2px;overflow:hidden}.attendance-fill{height:100%;border-radius:2px;transition:width .3s ease}.attendance-excellent .attendance-value{color:#059669}.attendance-excellent .attendance-fill{background:#059669}.attendance-good .attendance-value{color:#3b82f6}.attendance-good .attendance-fill{background:#3b82f6}.attendance-warning .attendance-value{color:#f59e0b}.attendance-warning .attendance-fill{background:#f59e0b}.attendance-danger .attendance-value{color:#dc2626}.attendance-danger .attendance-fill{background:#dc2626}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.student-card{background:#fff;border-radius:16px;border:1px solid var(--gray-200, #e2e8f0);overflow:hidden;transition:all .2s}.student-card:hover{border-color:var(--gray-300, #cbd5e1);box-shadow:0 4px 20px #00000014}.student-card-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;border-bottom:1px solid var(--gray-100, #f1f5f9)}.student-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#059669,#10b981);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;flex-shrink:0;overflow:hidden}.student-avatar img{width:100%;height:100%;object-fit:cover}.student-info{flex:1;min-width:0}.student-info h3{font-size:1rem;font-weight:600;color:var(--gray-900, #0f172a);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-email{font-size:.8125rem;color:var(--gray-500, #64748b);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card-body{padding:1rem 1.25rem}.student-meta{display:flex;gap:.5rem;margin-bottom:.75rem}.modality-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:100px}.modality-badge.modality-presentiel{background:#3b82f61a;color:#3b82f6}.modality-badge.modality-distanciel{background:#a855f71a;color:#a855f7}.modality-badge.modality-enligne{background:#0596691a;color:#059669}.level-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;background:var(--gray-100, #f1f5f9);color:var(--gray-600, #475569);border-radius:100px}.student-program{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-600, #475569);margin-bottom:.75rem}.student-program svg{color:var(--gray-400, #94a3b8)}.student-ues{display:flex;flex-wrap:wrap;gap:.375rem}.ue-tag{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;background:#05966914;color:#059669;border-radius:4px}.ue-tag.more{background:var(--gray-100, #f1f5f9);color:var(--gray-500, #64748b)}.student-card-actions{display:flex;border-top:1px solid var(--gray-100, #f1f5f9)}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:.875rem;border:none;background:none;cursor:pointer;transition:all .2s;color:var(--gray-500, #64748b)}.action-btn:first-child{border-right:1px solid var(--gray-100, #f1f5f9)}.action-btn svg{width:20px;height:20px}.action-btn.view:hover{background:#3b82f60d;color:#3b82f6}.action-btn.message:hover{background:#0596690d;color:#059669}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--gray-500, #64748b)}.loading-container p{margin-top:1rem}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200, #e2e8f0);border-top-color:#059669;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small{width:18px;height:18px;border-width:2px}.modal{background:#fff;border-radius:20px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040}.modal-detail{max-width:560px}.modal-message{max-width:480px}.modal-broadcast{max-width:520px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200, #e2e8f0)}.modal-header h2{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:var(--gray-900, #0f172a);margin:0}.modal-header h2 svg{color:#059669}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--gray-400, #94a3b8);transition:all .2s}.modal-close:hover{background:var(--gray-100, #f1f5f9);color:var(--gray-600, #475569)}.modal-close svg{width:20px;height:20px}.modal-body{padding:1.5rem;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200, #e2e8f0)}.detail-header{display:flex;align-items:center;gap:1.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-100, #f1f5f9);margin-bottom:1.5rem}.detail-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#059669,#10b981);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;flex-shrink:0;overflow:hidden}.detail-avatar img{width:100%;height:100%;object-fit:cover}.detail-info h3{font-size:1.25rem;font-weight:600;color:var(--gray-900, #0f172a);margin:0 0 .5rem}.detail-info p{font-size:.9375rem;color:var(--gray-500, #64748b);margin:0 0 .25rem}.detail-sections{display:flex;flex-direction:column;gap:1.5rem}.detail-section h4{font-size:.8125rem;font-weight:600;color:var(--gray-500, #64748b);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-item label{font-size:.8125rem;color:var(--gray-500, #64748b)}.detail-item span{font-size:.9375rem;font-weight:500;color:var(--gray-900, #0f172a)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:100px;width:fit-content}.status-badge.active{background:#0596691a;color:#059669}.ues-list{display:flex;flex-direction:column;gap:.5rem}.ue-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50, #f8fafc);border-radius:8px}.ue-code{font-size:.8125rem;font-weight:600;color:#059669;background:#0596691a;padding:.25rem .5rem;border-radius:4px}.ue-title{font-size:.9375rem;color:var(--gray-700, #334155)}.recipient-info{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50, #f8fafc);border-radius:12px;margin-bottom:1.25rem}.recipient-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#059669,#10b981);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9375rem;font-weight:600;flex-shrink:0;overflow:hidden}.recipient-avatar img{width:100%;height:100%;object-fit:cover}.recipient-info strong{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900, #0f172a)}.recipient-info span{display:block;font-size:.8125rem;color:var(--gray-500, #64748b);margin-top:.125rem}.broadcast-info{font-size:.9375rem;color:var(--gray-600, #475569);background:#05966914;padding:1rem;border-radius:10px;margin-bottom:1.25rem;border-left:4px solid #059669}.form-group label{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-700, #334155);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200, #e2e8f0);border-radius:10px;transition:border-color .2s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#059669}.form-group textarea{resize:vertical;min-height:120px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:all .2s;min-height:44px}.btn-primary{background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 4px 14px #05966940}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #05966959}.btn-secondary{background:var(--gray-100, #f1f5f9);color:var(--gray-700, #334155)}.btn-secondary:hover{background:var(--gray-200, #e2e8f0)}@media(max-width:1200px){.students-table{table-layout:auto;min-width:850px}.students-table th,.students-table td{padding:.625rem .75rem}}@media(max-width:768px){.mes-etudiants-header{flex-direction:column;align-items:stretch}.mes-etudiants-header-left{flex-wrap:wrap}.header-actions{justify-content:space-between}.broadcast-btn{flex:1;justify-content:center}.mes-etudiants-filters{flex-direction:column}.search-box{min-width:100%}.filter-select{width:100%}.students-grid{grid-template-columns:1fr}.modal{margin:.5rem;max-height:95vh}.detail-grid{grid-template-columns:1fr}}:root.dark .teacher-mes-etudiants{color:var(--gray-100, #f1f5f9)}:root.dark .mes-etudiants-header h1{color:var(--gray-100, #f1f5f9)}:root.dark .search-box{background:#1e293b;border-color:#334155}:root.dark .search-box input{color:var(--gray-100, #f1f5f9)}:root.dark .filter-select{background:#1e293b;border-color:#334155;color:var(--gray-100, #f1f5f9)}:root.dark .student-card{background:#1e293b;border-color:#334155}:root.dark .student-card-header{border-color:#334155}:root.dark .student-info h3{color:var(--gray-100, #f1f5f9)}:root.dark .student-card-actions{border-color:#334155}:root.dark .action-btn:first-child{border-color:#334155}:root.dark .empty-state{background:#1e293b;border-color:#334155}:root.dark .modal{background:#1e293b}:root.dark .modal-header{border-color:#334155}:root.dark .modal-header h2{color:var(--gray-100, #f1f5f9)}:root.dark .modal-footer{border-color:#334155}:root.dark .detail-header{border-color:#334155}:root.dark .detail-info h3{color:var(--gray-100, #f1f5f9)}:root.dark .detail-item span{color:var(--gray-100, #f1f5f9)}:root.dark .ue-item{background:#0f172a}:root.dark .recipient-info{background:#0f172a}:root.dark .form-group input,:root.dark .form-group select,:root.dark .form-group textarea{background:#0f172a;border-color:#334155;color:var(--gray-100, #f1f5f9)}:root.dark .view-toggle{background:#334155}:root.dark .toggle-btn{color:var(--gray-400, #94a3b8)}:root.dark .toggle-btn:hover{color:var(--gray-200, #e2e8f0)}:root.dark .toggle-btn.active{background:#1e293b;color:#10b981}:root.dark .students-table-container{background:#1e293b;border-color:#334155}:root.dark .students-table thead{background:#0f172a}:root.dark .students-table th{border-color:#334155}:root.dark .students-table td{border-color:#334155;color:var(--gray-300, #cbd5e1)}:root.dark .students-table tbody tr:hover{background:#0f172a}:root.dark .student-name{color:var(--gray-100, #f1f5f9)}:root.dark .table-actions .action-btn{background:#334155}.teacher-calendar{max-width:1000px;margin:0 auto;padding:1.5rem}.teacher-calendar-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.teacher-calendar-header-content h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.teacher-calendar-header-content p{font-size:1rem;color:var(--gray-600);margin:0}.teacher-calendar-export-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.9375rem;font-weight:500;color:#fff;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;cursor:pointer;transition:all .2s}.teacher-calendar-export-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.teacher-calendar-export-btn svg{flex-shrink:0}.teacher-calendar-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.teacher-calendar-filter{display:flex;align-items:center;gap:.5rem}.teacher-calendar-filter label{font-size:.9375rem;font-weight:500;color:var(--gray-600)}.teacher-calendar-filter select{padding:.5rem 2rem .5rem .75rem;font-size:.9375rem;border:1px solid var(--gray-300);border-radius:8px;background:#fff;cursor:pointer;min-width:200px}.teacher-calendar-filter select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.teacher-calendar-type-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.teacher-calendar-type-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;color:var(--gray-600);background:#fff;border:1px solid var(--gray-200);border-radius:6px;cursor:pointer;transition:all .2s}.teacher-calendar-type-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}.teacher-calendar-type-btn.active{font-weight:500}.teacher-calendar-type-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.teacher-calendar-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.teacher-calendar-nav-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--gray-200);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.teacher-calendar-nav-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.teacher-calendar-nav-btn svg{width:20px;height:20px;color:var(--gray-600)}.teacher-calendar-title{display:flex;align-items:baseline;gap:.5rem;min-width:180px}.teacher-calendar-month{font-size:1.375rem;font-weight:700;color:var(--gray-900)}.teacher-calendar-year{font-size:1.125rem;color:var(--gray-500)}.teacher-calendar-today-btn{margin-left:auto;padding:.625rem 1rem;font-size:.9375rem;font-weight:500;color:var(--primary);background:var(--primary-50);border:1px solid var(--primary-200);border-radius:8px;cursor:pointer;transition:all .2s}.teacher-calendar-today-btn:hover{background:var(--primary-100)}.teacher-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%;table-layout:fixed}.teacher-calendar-day-header{padding:1rem;font-size:.875rem;font-weight:600;color:var(--gray-500);text-align:center;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.teacher-calendar-cell{min-height:100px;min-width:0;padding:.5rem;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);display:flex;flex-direction:column;overflow:hidden}.teacher-calendar-cell:nth-child(7n){border-right:none}.teacher-calendar-cell.empty{background:var(--gray-50)}.teacher-calendar-cell.today{background:var(--primary-50)}.teacher-calendar-cell.today .teacher-calendar-date{background:var(--primary);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.teacher-calendar-date{font-size:.9375rem;font-weight:500;color:var(--gray-700);margin-bottom:.375rem}.teacher-calendar-events{display:flex;flex-direction:column;gap:.25rem;flex:1;overflow:hidden;min-width:0}.teacher-calendar-event{padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.75rem;display:flex;align-items:center;gap:.375rem;cursor:pointer;transition:opacity .2s;overflow:hidden;min-width:0;max-width:100%}.teacher-calendar-event:hover{opacity:.9;transform:translateY(-1px)}.teacher-calendar-event.editable{cursor:pointer}.teacher-calendar-more{font-size:.75rem;color:var(--gray-500);padding:.125rem .25rem;cursor:pointer}.teacher-calendar-more:hover{color:var(--primary)}.teacher-calendar-event-time{font-weight:600;flex-shrink:0}.teacher-calendar-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-calendar-legend{margin-top:1.5rem;padding:1.25rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.teacher-calendar-legend h3{font-size:1rem;font-weight:600;color:var(--gray-700);margin:0 0 1rem}.teacher-calendar-legend-items{display:flex;flex-wrap:wrap;gap:1rem}.teacher-calendar-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--gray-700)}.teacher-calendar-legend-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}@media(max-width:768px){.teacher-calendar{padding:1rem}.teacher-calendar-grid{font-size:.875rem}.teacher-calendar-cell{min-height:80px;padding:.375rem}.teacher-calendar-day-header{padding:.75rem .5rem;font-size:.75rem}.teacher-calendar-date{font-size:.8125rem}.teacher-calendar-event{font-size:.6875rem;padding:.125rem .25rem}.teacher-calendar-event-time{display:none}.teacher-calendar-legend-items{flex-direction:column;gap:.75rem}}@media(max-width:480px){.teacher-calendar-cell{min-height:60px}.teacher-calendar-title{min-width:auto}.teacher-calendar-month{font-size:1.125rem}.teacher-calendar-year{font-size:.9375rem}.teacher-calendar-type-filters{width:100%;margin-left:0}.teacher-calendar-filter select{min-width:100%}}.teacher-calendar-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.teacher-calendar-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow:auto;box-shadow:0 20px 40px #0003}.teacher-calendar-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100)}.teacher-calendar-modal-type{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500;color:#fff}.teacher-calendar-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--gray-100);color:var(--gray-600);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.teacher-calendar-modal-close:hover{background:var(--gray-200);color:var(--gray-800)}.teacher-calendar-modal-content{padding:1.25rem}.teacher-calendar-modal-content h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.teacher-calendar-modal-desc{font-size:.9375rem;color:var(--gray-600);margin:0 0 1.25rem}.teacher-calendar-modal-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.teacher-calendar-modal-detail{display:flex;align-items:flex-start;gap:.75rem}.teacher-calendar-modal-label{font-size:.875rem;font-weight:500;color:var(--gray-500);min-width:70px}.teacher-calendar-modal-detail span:last-child{font-size:.9375rem;color:var(--gray-800)}.teacher-calendar-modal-link{display:inline-flex;align-items:center;gap:.375rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;color:#fff;background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);border-radius:8px;text-decoration:none;transition:all .2s}.teacher-calendar-modal-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.teacher-announcements{max-width:900px;margin:0 auto;padding:1.5rem}.teacher-alert{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1.5rem;font-size:.9375rem;font-weight:500}.teacher-alert svg{width:20px;height:20px;flex-shrink:0}.teacher-alert-success{background:var(--gpe-green-50);color:var(--gpe-green-dark);border:1px solid var(--gpe-green-100)}.teacher-alert-error{background:var(--gpe-rose-50);color:var(--gpe-rose);border:1px solid rgba(225,29,72,.2)}.teacher-announcements-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.teacher-announcements-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.teacher-announcements-header p{font-size:1rem;color:var(--gray-500);margin:0}.teacher-announcements-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--gray-100);padding:.375rem;border-radius:var(--radius-lg)}.teacher-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.625rem;padding:1rem 1.25rem;font-size:.9375rem;font-weight:600;color:var(--gray-600);background:transparent;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);min-height:52px}.teacher-tab svg{width:20px;height:20px}.teacher-tab:hover{color:var(--gray-900);background:#ffffff80}.teacher-tab:focus-visible{outline:3px solid var(--gpe-blue-light);outline-offset:2px}.teacher-tab.active{color:var(--gpe-blue);background:var(--white);border-color:var(--gpe-blue-100);box-shadow:var(--shadow)}.teacher-tab-badge{font-size:.75rem;font-weight:700;padding:.25rem .625rem;background:var(--gray-200);color:var(--gray-600);border-radius:var(--radius-full);min-width:24px}.teacher-tab.active .teacher-tab-badge{background:var(--gpe-blue-100);color:var(--gpe-blue)}.teacher-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;text-decoration:none;transition:all var(--transition);min-height:48px}.teacher-btn svg{width:20px;height:20px}.teacher-btn:focus-visible{outline:3px solid var(--gpe-blue-light);outline-offset:2px}.teacher-btn-primary{background:var(--gradient-blue, linear-gradient(135deg, #1a56db 0%, #3b82f6 100%));color:#fff;box-shadow:var(--shadow-blue, 0 10px 40px -10px rgba(26, 86, 219, .3))}.teacher-btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 45px -10px #1a56db66}.teacher-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.teacher-btn-secondary{background:var(--gray-100, #f1f5f9);color:var(--gray-700, #334155)}.teacher-btn-secondary:hover{background:var(--gray-200, #e2e8f0)}.teacher-btn-outline{background:#fff;color:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db)}.teacher-btn-outline:hover{background:var(--gpe-blue-50, #eff6ff)}.teacher-btn-outline:disabled{opacity:.6;cursor:not-allowed}.teacher-btn-danger{background:var(--gradient-rose, linear-gradient(135deg, #e11d48 0%, #f43f5e 100%));color:#fff}.teacher-btn-danger:hover{transform:translateY(-1px)}.teacher-btn-small{padding:.5rem 1rem;font-size:.875rem;min-height:36px}.teacher-btn-icon{padding:.625rem;min-height:auto;min-width:auto;background:var(--gray-50, #f8fafc);color:var(--gray-600, #475569);border-radius:var(--radius, 8px)}.teacher-btn-icon:hover{background:var(--gray-100, #f1f5f9);color:var(--gray-900, #0f172a)}.teacher-btn-icon.teacher-btn-danger{background:var(--gpe-rose-50, #fff1f2);color:var(--gpe-rose, #e11d48)}.teacher-btn-icon.teacher-btn-danger:hover{background:#e11d4826}.teacher-announcement-form{background:var(--white);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow);border:1px solid var(--gray-100);margin-bottom:1.5rem}.teacher-announcement-form h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 1.5rem}.teacher-form-group label{display:block;font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.teacher-form-group input,.teacher-form-group select,.teacher-form-group textarea{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:var(--radius);transition:border-color var(--transition),box-shadow var(--transition);font-family:inherit;background:var(--white)}.teacher-form-group input:focus,.teacher-form-group select:focus,.teacher-form-group textarea:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.teacher-form-group textarea{resize:vertical;min-height:120px}.teacher-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.25rem}.teacher-form-row .teacher-form-group{margin-bottom:0}.news-type-selector{display:flex;flex-wrap:wrap;gap:.5rem}.news-type-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);font-size:.9375rem;font-weight:500}.news-type-btn:hover{border-color:var(--gpe-blue);background:var(--gpe-blue-50)}.news-type-btn.active{border-color:var(--gpe-blue);background:var(--gpe-blue-50);color:var(--gpe-blue)}.news-type-icon{font-size:1.25rem}.news-type-label{font-size:.875rem;font-weight:500}.teacher-form-options{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem}.teacher-checkbox{display:flex;align-items:center;gap:.625rem;cursor:pointer;font-size:.9375rem;color:var(--gray-700);font-weight:500}.teacher-checkbox input{display:none}.checkbox-mark{width:22px;height:22px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.teacher-checkbox input:checked+.checkbox-mark{background:var(--gpe-blue);border-color:var(--gpe-blue)}.teacher-checkbox input:checked+.checkbox-mark:after{content:"";width:10px;height:6px;border-left:2px solid var(--white);border-bottom:2px solid var(--white);transform:rotate(-45deg);margin-top:-2px}.teacher-form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.teacher-announcements-list{display:flex;flex-direction:column;gap:1rem}.teacher-announcement-card{background:var(--white);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--gray-100);border-left:4px solid transparent;transition:all var(--transition)}.teacher-announcement-card:hover{box-shadow:var(--shadow-md)}.teacher-announcement-card.priority{border-left-color:var(--gpe-orange);background:linear-gradient(to right,var(--gpe-orange-50),var(--white) 10%)}.teacher-announcement-card.pinned{border-left-color:var(--gpe-blue);background:linear-gradient(to right,var(--gpe-blue-50),var(--white) 10%)}.teacher-announcement-card.read-only{cursor:default}.teacher-announcement-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.announcement-type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--gray-100);border-radius:var(--radius-full);font-size:.8125rem}.type-icon{font-size:1rem}.type-label{font-weight:600;color:var(--gray-700)}.announcement-badges{display:flex;gap:.5rem;flex-wrap:wrap}.badge{font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:var(--radius-sm)}.badge-pinned{background:var(--gpe-blue-100);color:var(--gpe-blue-dark)}.badge-priority{background:var(--gpe-orange-50);color:var(--gpe-orange)}.status-draft{background:var(--gray-100);color:var(--gray-600)}.status-published{background:var(--gpe-green-100);color:var(--gpe-green-dark)}.status-archived{background:var(--gray-200);color:var(--gray-500)}.announcement-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:.75rem 0;line-height:1.4}.teacher-announcement-meta{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap;font-size:.875rem}.teacher-announcement-author{display:inline-flex;align-items:center;gap:.375rem;font-weight:600;color:var(--gray-700)}.teacher-announcement-author svg{color:var(--gray-400)}.author-role{font-weight:400;color:var(--gray-500);font-size:.8125rem}.teacher-announcement-course{font-weight:600;color:var(--gpe-blue);background:var(--gpe-blue-50);padding:.25rem .75rem;border-radius:var(--radius-full)}.teacher-announcement-date{color:var(--gray-500)}.teacher-announcement-views{color:var(--gray-400)}.announcement-event-info{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;background:var(--gpe-blue-50);border-radius:var(--radius);margin-bottom:1rem;font-size:.9375rem;color:var(--gpe-blue);font-weight:500}.announcement-event-info svg{width:18px;height:18px;flex-shrink:0}.teacher-announcement-content{font-size:1rem;color:var(--gray-700);line-height:1.6;margin:0 0 1rem;white-space:pre-line}.teacher-announcement-actions{display:flex;gap:.5rem;align-items:center;padding-top:1rem;border-top:1px solid var(--gray-100)}.teacher-loading-inline{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--gray-500);font-weight:500}.spinner-small{width:22px;height:22px;border:2px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin .8s linear infinite}.teacher-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow);border:1px solid var(--gray-100)}.teacher-empty svg{width:64px;height:64px;color:var(--gray-300);margin-bottom:1rem}.teacher-empty p{font-size:1rem;color:var(--gray-500);margin:0 0 1.5rem}.teacher-modal-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.teacher-modal{background:var(--white);border-radius:var(--radius-xl);padding:2rem;max-width:400px;width:100%;text-align:center;box-shadow:var(--shadow-xl)}.teacher-modal-icon{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.teacher-modal-icon.warning{background:var(--gpe-orange-50)}.teacher-modal-icon.warning svg{width:32px;height:32px;color:var(--gpe-orange)}.teacher-modal h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.teacher-modal p{font-size:.9375rem;color:var(--gray-600);margin:0 0 1.5rem;line-height:1.5}.teacher-modal-actions{display:flex;gap:1rem;justify-content:center}.dark .teacher-announcement-form,.dark .teacher-announcement-card,.dark .teacher-empty,.dark .teacher-modal{background:var(--gray-800);border-color:var(--gray-700)}.dark .teacher-announcements-tabs{background:var(--gray-800)}.dark .teacher-tab{color:var(--gray-400)}.dark .teacher-tab:hover{color:var(--gray-200);background:#0003}.dark .teacher-tab.active{color:var(--gpe-blue-light);background:var(--gray-700);border-color:var(--gray-600)}.dark .teacher-tab-badge{background:var(--gray-700);color:var(--gray-300)}.dark .teacher-tab.active .teacher-tab-badge{background:#1a56db4d;color:var(--gpe-blue-light)}.dark .teacher-announcements-header h1,.dark .teacher-announcement-form h2,.dark .announcement-title,.dark .teacher-modal h3{color:var(--gray-100)}.dark .teacher-announcements-header p,.dark .teacher-modal p{color:var(--gray-400)}.dark .teacher-form-group label{color:var(--gray-300)}.dark .teacher-form-group input,.dark .teacher-form-group select,.dark .teacher-form-group textarea{background:var(--gray-700);border-color:var(--gray-600);color:var(--gray-100)}.dark .news-type-btn{background:var(--gray-700);border-color:var(--gray-600);color:var(--gray-300)}.dark .news-type-btn:hover,.dark .news-type-btn.active{background:#1a56db33;border-color:var(--gpe-blue)}.dark .teacher-checkbox{color:var(--gray-300)}.dark .checkbox-mark{border-color:var(--gray-500)}.dark .announcement-type-badge{background:var(--gray-700)}.dark .type-label,.dark .teacher-announcement-content{color:var(--gray-300)}.dark .teacher-announcement-actions{border-top-color:var(--gray-700)}.dark .teacher-btn-secondary{background:var(--gray-700);color:var(--gray-300)}.dark .teacher-btn-secondary:hover{background:var(--gray-600)}.dark .teacher-btn-icon{background:var(--gray-700);color:var(--gray-400)}.dark .teacher-btn-icon:hover{background:var(--gray-600);color:var(--gray-200)}.dark .teacher-announcement-card.pinned{background:linear-gradient(to right,rgba(26,86,219,.15),var(--gray-800) 10%)}.dark .teacher-announcement-card.priority{background:linear-gradient(to right,rgba(234,88,12,.15),var(--gray-800) 10%)}.dark .teacher-announcement-author{color:var(--gray-300)}.dark .author-role{color:var(--gray-500)}@media(max-width:640px){.teacher-announcements{padding:1rem}.teacher-announcements-header{flex-direction:column;align-items:stretch}.teacher-announcements-tabs{flex-direction:column}.teacher-tab{justify-content:flex-start}.teacher-form-actions{flex-direction:column}.teacher-form-actions button{width:100%}.news-type-selector{flex-direction:column}.news-type-btn{justify-content:flex-start}.teacher-form-row{grid-template-columns:1fr}.teacher-announcement-actions{flex-wrap:wrap}.teacher-modal-actions{flex-direction:column}.teacher-modal-actions button{width:100%}}.news-visibility-selector{display:flex;gap:.35rem;flex-wrap:wrap}.news-visibility-btn{display:flex;align-items:center;gap:.35rem;padding:.45rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:#fff;font-size:.82rem;cursor:pointer;transition:all .15s;color:var(--text-secondary, #64748b)}.news-visibility-btn:hover{border-color:var(--gpe-blue, #1a56db);background:#f0f5ff}.news-visibility-btn.active{background:var(--gpe-blue, #1a56db);color:#fff;border-color:var(--gpe-blue, #1a56db)}.news-program-select{margin-top:.5rem;width:100%;padding:.55rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.88rem}.news-attachments-zone{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px dashed var(--border-color, #cbd5e1);border-radius:10px;background:var(--bg-subtle, #f8fafc)}.news-attachment-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:#fff;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.82rem}.news-attachment-item--pending{border-style:dashed;opacity:.85}.news-attachment-icon{font-size:1rem;flex-shrink:0}.news-attachment-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-primary, #1a1a2e)}.news-attachment-size{font-size:.72rem;color:var(--text-secondary, #94a3b8);flex-shrink:0}.news-attachment-remove{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary, #94a3b8);font-size:1.1rem;cursor:pointer;border-radius:4px}.news-attachment-remove:hover{background:#fee2e2;color:#dc2626}.news-attachment-add{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border-color, #cbd5e1);background:#fff;border-radius:8px;font-size:.82rem;font-weight:500;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s;align-self:flex-start}.news-attachment-add:hover{border-color:var(--gpe-blue, #1a56db);color:var(--gpe-blue, #1a56db);background:#f0f5ff}.news-attachment-hint{margin:0;font-size:.72rem;color:var(--text-secondary, #94a3b8)}.visibility-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:4px;font-size:.7rem;font-weight:600}.visibility-badge--teachers{background:#dbeafe;color:#2563eb}.visibility-badge--students{background:#d1fae5;color:#059669}.visibility-badge--program{background:#fef3c7;color:#d97706}@media(prefers-contrast:high){.teacher-tab{border-width:2px}.teacher-tab.active{border-color:var(--gpe-blue);border-width:3px}.teacher-announcement-card{border-left-width:5px}}@media(prefers-reduced-motion:reduce){.teacher-btn,.teacher-tab,.teacher-announcement-card,.news-type-btn{transition:none}.spinner-small{animation:none}}.teacher-messages{display:flex;height:calc(100vh - 80px);max-height:700px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;margin:1.5rem}.teacher-messages-sidebar{width:320px;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;flex-shrink:0}.teacher-messages-sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-bottom:1px solid var(--gray-200)}.teacher-messages-sidebar-header h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0;display:flex;align-items:center;gap:.5rem}.teacher-messages-badge{background:var(--red-500);color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:100px}.teacher-messages-new-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.teacher-messages-new-btn:hover{background:var(--primary-dark)}.teacher-messages-new-btn svg{width:20px;height:20px}.teacher-conversations-list{flex:1;overflow-y:auto}.teacher-conversation-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border:none;background:none;cursor:pointer;text-align:left;transition:background .2s;border-bottom:1px solid var(--gray-100)}.teacher-conversation-item:hover{background:var(--gray-50)}.teacher-conversation-item.active{background:var(--primary-50)}.teacher-conversation-avatar{width:44px;height:44px;border-radius:50%;background:var(--primary-100);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0}.teacher-conversation-info{flex:1;min-width:0}.teacher-conversation-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem}.teacher-conversation-name{font-size:.9375rem;font-weight:600;color:var(--gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-conversation-time{font-size:.75rem;color:var(--gray-500);flex-shrink:0}.teacher-conversation-preview{font-size:.875rem;color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-conversation-unread{background:var(--primary);color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:100px;flex-shrink:0}.teacher-messages-content{flex:1;display:flex;flex-direction:column;min-width:0}.teacher-messages-thread-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;border-bottom:1px solid var(--gray-200)}.teacher-messages-back{display:none;padding:.5rem;border:none;background:none;cursor:pointer;color:var(--gray-600);border-radius:6px}.teacher-messages-back:hover{background:var(--gray-100)}.teacher-messages-back svg{width:20px;height:20px}.teacher-messages-thread-info h3{font-size:1.0625rem;font-weight:600;color:var(--gray-900);margin:0}.teacher-messages-thread-info span{font-size:.8125rem;color:var(--gray-500)}.teacher-messages-thread{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.teacher-message{display:flex;flex-direction:column;max-width:75%}.teacher-message.sent{align-self:flex-end;align-items:flex-end}.teacher-message.received{align-self:flex-start;align-items:flex-start}.teacher-message-bubble{padding:.875rem 1rem;border-radius:16px}.teacher-message.sent .teacher-message-bubble{background:linear-gradient(135deg,#059669,#10b981);color:#fff;border-bottom-right-radius:4px}.teacher-message.received .teacher-message-bubble{background:var(--gray-100, #f1f5f9);color:var(--gray-900, #0f172a);border-bottom-left-radius:4px}.teacher-message-bubble p{margin:0;font-size:.9375rem;line-height:1.5}.teacher-message-time{font-size:.75rem;color:var(--gray-500);margin-top:.25rem}.teacher-messages-reply{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.teacher-messages-reply input{flex:1;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:24px;transition:border-color .2s}.teacher-messages-reply input:focus{outline:none;border-color:#059669}.teacher-messages-reply button{width:48px;height:48px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.teacher-messages-reply button:hover:not(:disabled){background:var(--primary-dark)}.teacher-messages-reply button:disabled{opacity:.5;cursor:not-allowed}.teacher-messages-reply button svg{width:20px;height:20px}.teacher-messages-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--gray-400)}.teacher-messages-empty svg{width:64px;height:64px;margin-bottom:1rem}.teacher-messages-empty p{font-size:1rem;margin:0}.teacher-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.teacher-modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:400px;width:100%}.teacher-modal.teacher-modal-large{max-width:500px}.teacher-modal h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 1.5rem}.teacher-form-group{margin-bottom:1.25rem}.teacher-form-group label{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.teacher-form-group input,.teacher-form-group select,.teacher-form-group textarea{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:border-color .2s;font-family:inherit}.teacher-form-group input:focus,.teacher-form-group select:focus,.teacher-form-group textarea:focus{outline:none;border-color:#059669}.teacher-form-group textarea{resize:vertical;min-height:100px}.teacher-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.teacher-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;min-height:44px}.teacher-btn-primary{background:linear-gradient(135deg,#059669,#10b981);color:#fff}.teacher-btn-primary:hover{background:linear-gradient(135deg,#047857,#059669)}.teacher-btn-primary:disabled{opacity:.6;cursor:not-allowed}.teacher-btn-secondary{background:#f1f5f9;color:var(--gray-700)}.teacher-btn-secondary:hover{background:var(--gray-200)}.teacher-messages-fab{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;border:none;background:linear-gradient(135deg,#059669,#10b981);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #05966966;transition:all .3s ease;z-index:100}.teacher-messages-fab:hover{transform:scale(1.1);box-shadow:0 6px 28px #05966980}.teacher-messages-fab svg{width:28px;height:28px}.teacher-modal-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--gray-200, #e2e8f0);margin-bottom:0}.teacher-modal-header h3{display:flex;align-items:center;gap:.5rem;margin:0}.teacher-modal-back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:var(--gray-100, #f1f5f9);border-radius:8px;cursor:pointer;color:var(--gray-600, #475569);transition:all .2s}.teacher-modal-back:hover{background:var(--gray-200, #e2e8f0)}.teacher-modal-back svg{width:18px;height:18px}.teacher-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--gray-400, #94a3b8);transition:all .2s}.teacher-modal-close:hover{background:var(--gray-100, #f1f5f9);color:var(--gray-600, #475569)}.teacher-modal-close svg{width:20px;height:20px}.teacher-modal-contacts{max-width:520px;max-height:80vh;display:flex;flex-direction:column;padding:0}.teacher-modal-contacts .teacher-modal-header{padding:1.25rem 1.5rem;margin:0}.teacher-modal-contacts .teacher-modal-body{padding:1.25rem 1.5rem;overflow-y:auto}.teacher-modal-contacts .teacher-modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-200, #e2e8f0);display:flex;justify-content:flex-end;gap:.75rem}.contacts-search{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--gray-50, #f8fafc);border-bottom:1px solid var(--gray-200, #e2e8f0)}.contacts-search svg{width:20px;height:20px;color:var(--gray-400, #94a3b8);flex-shrink:0}.contacts-search input{flex:1;border:none;background:none;font-size:.9375rem;color:var(--gray-900, #0f172a);outline:none}.contacts-search input::placeholder{color:var(--gray-400, #94a3b8)}.contacts-search-clear{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:var(--gray-200, #e2e8f0);border-radius:50%;cursor:pointer;color:var(--gray-500, #64748b);flex-shrink:0}.contacts-search-clear:hover{background:var(--gray-300, #cbd5e1)}.contacts-search-clear svg{width:14px;height:14px}.contacts-tabs{display:flex;border-bottom:1px solid var(--gray-200, #e2e8f0);padding:0 .5rem;background:#fff}.contacts-tab{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;border:none;background:none;font-size:.875rem;font-weight:500;color:var(--gray-500, #64748b);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}.contacts-tab:hover{color:var(--gray-700, #334155)}.contacts-tab.active{color:#059669;border-bottom-color:#059669}.contacts-tab svg{flex-shrink:0}.contacts-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;font-weight:600;background:var(--gray-100, #f1f5f9);color:var(--gray-600, #475569);border-radius:10px}.contacts-tab.active .contacts-tab-count{background:#0596691a;color:#059669}.contacts-list{flex:1;overflow-y:auto;max-height:400px}.contacts-loading,.contacts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--gray-400, #94a3b8)}.contacts-loading p,.contacts-empty p{margin:.75rem 0 0;font-size:.9375rem}.contact-item{display:flex;align-items:center;gap:.875rem;width:100%;padding:.875rem 1.25rem;border:none;background:none;text-align:left;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--gray-100, #f1f5f9)}.contact-item:hover{background:var(--gray-50, #f8fafc)}.contact-item:last-child{border-bottom:none}.contact-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#059669,#10b981);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9375rem;font-weight:600;flex-shrink:0}.contact-name{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900, #0f172a)}.contact-title{display:block;font-size:.8125rem;color:var(--gray-500, #64748b);margin-top:2px}.contact-arrow{width:18px;height:18px;color:var(--gray-300, #cbd5e1);flex-shrink:0}.contact-item:hover .contact-arrow{color:var(--gray-400, #94a3b8)}.selected-contact-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50, #f8fafc);border-radius:12px;margin-bottom:1.25rem}.selected-contact-info{flex:1}.selected-contact-name{display:block;font-size:1rem;font-weight:600;color:var(--gray-900, #0f172a)}.selected-contact-title{display:block;font-size:.8125rem;color:var(--gray-500, #64748b);margin-top:2px}.contact-role-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:100px;flex-shrink:0}.contact-role-badge.teacher{background:#3b82f61a;color:#3b82f6}.contact-role-badge.admin{background:#a855f71a;color:#a855f7}.contact-role-badge.student{background:#0596691a;color:#059669}.teacher-conversation-avatar.small{width:36px;height:36px;font-size:.8125rem}.teacher-messages-thread-role{font-size:.8125rem;color:var(--gray-500, #64748b)}.teacher-conversations-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--gray-400, #94a3b8)}.teacher-conversations-empty svg{margin-bottom:1rem;opacity:.5}.teacher-conversations-empty p{font-size:.9375rem;font-weight:500;margin:0;color:var(--gray-500, #64748b)}.teacher-conversations-empty span{font-size:.8125rem;margin-top:.25rem}@media(max-width:768px){.teacher-messages{flex-direction:column;height:calc(100vh - 60px);max-height:none;margin:0;border-radius:0}.teacher-messages-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--gray-200)}.teacher-messages-sidebar.hidden,.teacher-messages-content.hidden{display:none}.teacher-messages-back{display:block}.teacher-conversation-item{padding:.875rem 1rem}.teacher-message{max-width:85%}.teacher-messages-fab{bottom:1.5rem;right:1.5rem;width:56px;height:56px}.teacher-modal-contacts{max-height:90vh;margin:.5rem}.contacts-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.contacts-tab{padding:.75rem .875rem;font-size:.8125rem}}:root.dark .teacher-messages-fab{box-shadow:0 4px 20px #0006}:root.dark .teacher-modal-contacts{background:#1e293b}:root.dark .contacts-search{background:#0f172a;border-color:#334155}:root.dark .contacts-search input{color:#f1f5f9}:root.dark .contacts-tabs{background:#1e293b;border-color:#334155}:root.dark .contacts-tab{color:#94a3b8}:root.dark .contacts-tab:hover{color:#e2e8f0}:root.dark .contacts-tab-count{background:#334155;color:#94a3b8}:root.dark .contact-item{border-color:#334155}:root.dark .contact-item:hover{background:#334155}:root.dark .contact-name{color:#f1f5f9}:root.dark .selected-contact-header{background:#0f172a}:root.dark .teacher-modal-header{border-color:#334155}:root.dark .teacher-modal-footer{border-color:#334155}.assessment-wizard{max-width:800px;margin:0 auto;background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000001a;overflow:hidden}.wizard-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#1a56db,#1e40af);color:#fff}.wizard-header h2{font-size:1.25rem;font-weight:600;margin:0}.btn-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff26;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:background .2s}.btn-close:hover{background:#ffffff40}.btn-close svg{width:20px;height:20px}.wizard-progress{display:flex;justify-content:center;align-items:center;padding:1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200);gap:0}.progress-step{display:flex;align-items:center;gap:.5rem;position:relative}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;background:var(--gray-200);color:var(--gray-500);transition:all .3s ease}.progress-step.active .step-number{background:#1a56db;color:#fff;box-shadow:0 0 0 4px #1a56db33}.progress-step.completed .step-number{background:var(--green-500);color:#fff}.step-label{font-size:.8125rem;font-weight:500;color:var(--gray-500);display:none}@media(min-width:640px){.step-label{display:block}}.progress-step.active .step-label{color:#1a56db;font-weight:600}.progress-step.completed .step-label{color:var(--green-600)}.step-connector{width:32px;height:2px;background:var(--gray-200);margin:0 .5rem}.progress-step.completed .step-connector{background:var(--green-500)}.wizard-error{padding:.875rem 1.25rem;background:var(--red-50);border-left:4px solid var(--red-500);color:var(--red-700);font-size:.9375rem;cursor:pointer;margin:1rem 1.5rem 0;border-radius:0 8px 8px 0}.wizard-error:hover{background:var(--red-100)}.wizard-content{padding:1.5rem;min-height:350px}.step-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-header{margin-bottom:1.5rem}.step-header h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.step-header p{font-size:.9375rem;color:var(--gray-600);margin:0}.step-empty{text-align:center;padding:3rem 1.5rem}.empty-icon{width:64px;height:64px;color:var(--gray-300);margin-bottom:1rem}.step-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.step-empty p{font-size:.9375rem;color:var(--gray-500);margin:0}.ue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.ue-card{padding:1.25rem;border:2px solid var(--gray-200);border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;text-align:left}.ue-card:hover{border-color:#1a56db;background:var(--gray-50)}.ue-card.selected{border-color:#1a56db;background:#eff6ff;box-shadow:0 0 0 3px #1a56db26}.ue-card .ue-code{display:inline-block;font-size:.75rem;font-weight:700;color:#1a56db;background:#dbeafe;padding:.25rem .5rem;border-radius:4px;margin-bottom:.5rem;text-transform:uppercase}.ue-card .ue-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);line-height:1.4}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.type-card{padding:1.5rem 1rem;border:2px solid var(--gray-200);border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.type-card:hover{border-color:#1a56db;background:var(--gray-50)}.type-card.selected{border-color:#1a56db;background:#eff6ff;box-shadow:0 0 0 3px #1a56db26}.type-icon{width:40px;height:40px;color:#1a56db}.type-card.selected .type-icon{color:#1e40af}.type-label{font-size:1rem;font-weight:600;color:var(--gray-900)}.type-description{font-size:.8125rem;color:var(--gray-500);line-height:1.4}.form-group label{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;color:var(--gray-900);transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#1a56db;box-shadow:0 0 0 3px #1a56db1a}.form-group input:disabled,.form-group select:disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--gray-400)}.form-group textarea{resize:vertical;min-height:80px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.5rem}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.form-group-full{grid-column:1 / -1}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:400!important}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:#1a56db;cursor:pointer}.checkbox-label span{font-size:.9375rem;color:var(--gray-700)}.confirm-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.confirm-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200)}.confirm-type{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;color:#fff;background:#1a56db;padding:.25rem .625rem;border-radius:4px;margin-bottom:.5rem}.confirm-header h4{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.confirm-ue{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200)}.confirm-ue .ue-code{font-size:.75rem;font-weight:700;color:#1a56db;background:#dbeafe;padding:.25rem .5rem;border-radius:4px}.confirm-ue .ue-title{font-size:.9375rem;color:var(--gray-700)}.confirm-details{display:flex;flex-direction:column;gap:.75rem}.detail-row{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;color:var(--gray-700)}.detail-row .icon{width:18px;height:18px;color:var(--gray-400);flex-shrink:0}.duration-badge,.deadline-badge{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;margin-left:auto}.duration-badge{background:var(--gray-200);color:var(--gray-600)}.deadline-badge{background:#fef3c7;color:#92400e}.confirm-description{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}.confirm-description strong{display:block;font-size:.875rem;color:var(--gray-600);margin-bottom:.5rem}.confirm-description p{font-size:.9375rem;color:var(--gray-700);margin:0;line-height:1.5}.confirm-actions-info{background:#eff6ff;border-radius:8px;padding:1rem}.confirm-actions-info p{font-size:.875rem;color:var(--gray-700);margin:0 0 .5rem;line-height:1.4}.confirm-actions-info p:last-child{margin-bottom:0}.confirm-actions-info strong{color:#1a56db}.wizard-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--gray-50);border-top:1px solid var(--gray-200)}.footer-left,.footer-right{display:flex;align-items:center;gap:.75rem}.btn-back,.btn-cancel,.btn-next,.btn-draft,.btn-publish{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease}.btn-back{background:transparent;color:var(--gray-600)}.btn-back:hover{background:var(--gray-100);color:var(--gray-900)}.btn-cancel{background:var(--gray-100);color:var(--gray-700)}.btn-cancel:hover{background:var(--gray-200)}.btn-next{background:#1a56db;color:#fff}.btn-next:hover:not(:disabled){background:#1e40af}.btn-next:disabled{opacity:.5;cursor:not-allowed}.btn-draft{background:var(--gray-200);color:var(--gray-700)}.btn-draft:hover:not(:disabled){background:var(--gray-300)}.btn-draft:disabled{opacity:.5;cursor:not-allowed}.btn-publish{background:#059669;color:#fff}.btn-publish:hover:not(:disabled){background:#047857}.btn-publish:disabled{opacity:.5;cursor:not-allowed}.btn-back svg,.btn-next svg,.btn-draft svg,.btn-publish svg{width:18px;height:18px}.assessment-success{text-align:center;padding:3rem 2rem}.success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:success-pop .5s ease}@keyframes success-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.success-icon svg{width:40px;height:40px;color:#059669}.assessment-success h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.assessment-success p{font-size:1rem;color:var(--gray-600);margin:0 0 2rem;line-height:1.5}.success-actions{display:flex;justify-content:center;gap:1rem}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background:#1a56db;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#1e40af}@media(max-width:640px){.assessment-wizard{border-radius:0;margin:0}.wizard-header{padding:1rem}.wizard-header h2{font-size:1.125rem}.wizard-progress{padding:1rem;overflow-x:auto}.wizard-content{padding:1rem}.wizard-footer{padding:1rem;flex-wrap:wrap;gap:.75rem}.footer-right{flex-wrap:wrap;width:100%;justify-content:flex-end}.btn-next,.btn-draft,.btn-publish{flex:1;min-width:120px}.ue-grid,.type-grid{grid-template-columns:1fr}}.teacher-assessments{max-width:1200px;margin:0 auto;padding:1.5rem}.teacher-assessments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.teacher-assessments-title{display:flex;align-items:center;gap:.75rem}.teacher-assessments-title h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1a1a1a)}.teacher-assessments-title .icon{width:1.5rem;height:1.5rem;color:var(--color-primary, #2563eb)}.teacher-assessments-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group .icon{width:1rem;height:1rem;color:var(--color-text-secondary, #666)}.filter-group select{padding:.5rem 1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;background-color:#fff;font-size:.875rem;cursor:pointer}.teacher-assessments-loading,.teacher-assessments-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;background-color:#fff;border-radius:.75rem;border:1px solid var(--color-border, #e5e7eb)}.teacher-assessments-empty .icon-large{width:3rem;height:3rem;color:var(--color-text-secondary, #666);margin-bottom:1rem}.teacher-assessments-empty h3{margin:0 0 .5rem;font-size:1.125rem;color:var(--color-text, #1a1a1a)}.teacher-assessments-empty p{margin:0 0 1.5rem;color:var(--color-text-secondary, #666)}.teacher-assessments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.assessment-card{position:relative;background-color:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:.75rem;padding:1rem;transition:box-shadow .2s}.assessment-card:hover{box-shadow:0 4px 12px #0000001a}.assessment-card-header{display:flex;gap:.5rem;margin-bottom:.75rem}.assessment-card-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--color-text, #1a1a1a);line-height:1.4}.assessment-card-ue{margin:0 0 .75rem;font-size:.8rem;color:var(--color-text-secondary, #666)}.assessment-card-details{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.detail-item{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--color-text-secondary, #666)}.detail-item .icon{width:.875rem;height:.875rem}.detail-item .duration{background-color:var(--color-bg-secondary, #f3f4f6);padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem}.assessment-card-room{margin:0 0 .5rem;font-size:.8rem;color:var(--color-text-secondary, #666)}.assessment-card-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-secondary, #666);padding-top:.75rem;border-top:1px solid var(--color-border, #e5e7eb);margin-bottom:.75rem}.assessment-card-actions{display:flex;gap:.5rem;justify-content:flex-end}.badge{display:inline-flex;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.bg-blue-100{background-color:#dbeafe}.bg-green-100{background-color:#dcfce7}.bg-purple-100{background-color:#f3e8ff}.bg-gray-100{background-color:#f3f4f6}.bg-red-100{background-color:#fee2e2}.text-red-800{color:#991b1b}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--color-primary-dark, #1d4ed8)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:.375rem;background-color:transparent;cursor:pointer;transition:background-color .2s}.btn-icon .icon{width:1rem;height:1rem}.btn-icon.btn-edit{color:var(--color-primary, #2563eb)}.btn-icon.btn-edit:hover{background-color:#dbeafe}.btn-icon.btn-publish{color:#059669}.btn-icon.btn-publish:hover{background-color:#d1fae5}.btn-icon.btn-delete{color:#dc2626}.btn-icon.btn-delete:hover{background-color:#fee2e2}.btn-icon.btn-view{color:var(--color-text-secondary, #666)}.btn-icon.btn-view:hover{background-color:#f3f4f6}.btn-icon.btn-submissions{color:#8b5cf6}.btn-icon.btn-submissions:hover{background-color:#f3e8ff}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.delete-confirm{position:absolute;inset:0;background-color:#fffffff2;border-radius:.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10}.delete-confirm p{margin:0;font-weight:500;color:var(--color-text, #1a1a1a)}.delete-confirm-actions{display:flex;gap:.5rem}.btn-cancel{padding:.5rem 1rem;background-color:#f3f4f6;border:none;border-radius:.375rem;font-size:.875rem;cursor:pointer}.btn-cancel:hover{background-color:#e5e7eb}.btn-confirm{padding:.5rem 1rem;background-color:#dc2626;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;cursor:pointer}.btn-confirm:hover{background-color:#b91c1c}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.alert{padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem}.alert-error{background-color:#fee2e2;color:#991b1b;cursor:pointer}.alert-success{background-color:#d1fae5;color:#065f46}@media(max-width:640px){.teacher-assessments{padding:1rem}.teacher-assessments-header{flex-direction:column;gap:1rem;align-items:stretch}.teacher-assessments-filters{flex-direction:column}.filter-group{width:100%}.filter-group select{flex:1}.teacher-assessments-grid{grid-template-columns:1fr}}.submissions-page{padding:1.5rem;max-width:1400px;margin:0 auto}.header-left{display:flex;align-items:flex-start;gap:1rem}.back-btn{padding:.5rem 1rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.875rem;color:#374151;transition:background .2s}.back-btn:hover{background:#e5e7eb}.header-info h1{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .25rem}.header-info .subtitle{font-size:.875rem;color:#6b7280;margin:0}.header-actions{display:flex;gap:.75rem}.publish-btn{padding:.5rem 1rem;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.publish-btn:hover{background:#059669}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;text-align:center}.stat-card .stat-value{display:block;font-size:1.75rem;font-weight:700;color:#111827}.stat-card .stat-label{display:block;font-size:.75rem;color:#6b7280;text-transform:uppercase;margin-top:.25rem}.stat-card.pending{border-color:#f59e0b;background:#fffbeb}.stat-card.pending .stat-value{color:#d97706}.stat-card.success{border-color:#10b981;background:#ecfdf5}.stat-card.success .stat-value{color:#059669}.stat-card.info{border-color:#3b82f6;background:#eff6ff}.stat-card.info .stat-value{color:#2563eb}.filters-bar{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-size:.875rem;color:#6b7280}.filter-group select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff}.submissions-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.submissions-table{width:100%;border-collapse:collapse}.submissions-table th,.submissions-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.submissions-table th{background:#f9fafb;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase}.submissions-table tbody tr:hover{background:#f9fafb}.submissions-table tbody tr:last-child td{border-bottom:none}.student-cell .student-info{display:flex;align-items:center;gap:.75rem}.student-photo{width:32px;height:32px;border-radius:50%;object-fit:cover}.student-photo-placeholder{width:32px;height:32px;border-radius:50%;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#6b7280}.file-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.875rem;text-decoration:underline;padding:0}.file-link:hover{color:#2563eb}.no-file{color:#9ca3af}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.status-badge.status-submitted{background:#fef3c7;color:#d97706}.status-badge.status-graded{background:#d1fae5;color:#059669}.score{font-weight:600;color:#111827}.action-btn{padding:.375rem .75rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;border:1px solid;transition:all .2s}.action-btn.download{background:#f3f4f6;border-color:#d1d5db;color:#374151}.action-btn.download:hover{background:#e5e7eb}.action-btn.grade{background:#3b82f6;border-color:#3b82f6;color:#fff}.action-btn.grade:hover{background:#2563eb}.empty-state,.loading-state,.error-state{text-align:center;padding:3rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.loading-state .spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.error-state{color:#dc2626}.error-state button{margin-top:1rem;padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:1.125rem;font-weight:600;margin:0}.close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;line-height:1}.close-btn:hover{color:#111827}.student-summary{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f9fafb;border-radius:6px;margin-bottom:1rem}.student-summary strong{color:#111827}.student-summary span{color:#6b7280;font-size:.875rem}.file-info{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem;background:#eff6ff;border-radius:4px;font-size:.875rem}.form-group input,.form-group textarea{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical}.error-message{color:#dc2626;font-size:.875rem;margin-top:.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.btn-secondary,.btn-primary,.btn-success{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-secondary:disabled,.btn-primary:disabled,.btn-success:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.submissions-page{padding:1rem}.page-header{flex-direction:column}.header-left{flex-direction:column;width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.submissions-table-container{overflow-x:auto}.submissions-table{min-width:800px}.modal-footer{flex-wrap:wrap}.modal-footer button{flex:1;min-width:120px}}.teacher-exam-sessions-page{padding:1.5rem;max-width:1200px;margin:0 auto}.stat-card.stat-pending .stat-value{color:#d97706}.stat-card.stat-submitted .stat-value{color:#16a34a}.info-banner{display:flex;gap:1rem;padding:1rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.75rem;margin-bottom:1.5rem}.info-banner .icon{flex-shrink:0;width:1.5rem;height:1.5rem;color:#2563eb}.info-content strong{display:block;color:#1e40af;font-size:.9375rem;margin-bottom:.25rem}.info-content p{margin:0;font-size:.875rem;color:#3b82f6}.filters-section{margin-bottom:1.5rem}.filter-btn{padding:.5rem 1rem;background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .15s}.sessions-list{display:flex;flex-direction:column;gap:1.5rem}.session-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.session-badges{display:flex;gap:.5rem}.deadline-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.deadline-badge .icon{width:.875rem;height:.875rem}.deadline-badge.deadline-passed{background:#fef2f2;color:#dc2626}.deadline-badge.deadline-today{background:#fff7ed;color:#ea580c}.deadline-badge.deadline-soon{background:#fefce8;color:#ca8a04}.deadline-badge.deadline-ok{background:#f0fdf4;color:#16a34a}.session-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.session-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.my-ues h4{font-size:.875rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.ue-card{padding:1rem;background:var(--color-bg-secondary, #f9fafb);border-radius:.5rem;border:1px solid var(--color-border, #e5e7eb)}.ue-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.ue-info{display:flex;flex-direction:column;gap:.25rem}.ue-code{display:inline-block;padding:.125rem .375rem;background:var(--color-primary-light, #dbeafe);color:var(--color-primary, #2563eb);border-radius:.25rem;font-size:.75rem;font-weight:600;width:fit-content}.ue-title{font-size:.9375rem;font-weight:500;color:var(--color-text-primary, #1f2937)}.ue-schedule{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.ue-progress{margin-bottom:.75rem}.progress-bar{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);transition:width .3s ease}.progress-stats{display:flex;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.progress-stats .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:.25rem}.stat-draft .dot{background:#9ca3af}.stat-submitted .dot{background:#3b82f6}.stat-approved .dot{background:#22c55e}.ue-actions{display:flex;justify-content:flex-end}.btn-primary{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .15s}.status-label{font-size:.8125rem;color:var(--color-text-tertiary, #9ca3af);font-style:italic}.empty-state p{color:var(--color-text-secondary, #6b7280);margin:0;font-size:.875rem}@media(max-width:640px){.teacher-exam-sessions-page{padding:1rem}.header-content h1{font-size:1.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.info-banner{flex-direction:column;text-align:center}.info-banner .icon{align-self:center}.status-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem}.ue-header{flex-direction:column;gap:.5rem}.ue-actions{justify-content:stretch}.ue-actions .btn-primary{width:100%;justify-content:center}}.anonymous-grading-page{padding:1.5rem;max-width:1000px;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.875rem;flex-wrap:wrap}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.ue-badge{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.ue-code{display:inline-block;padding:.25rem .5rem;background:var(--color-primary-light, #dbeafe);color:var(--color-primary, #2563eb);border-radius:.25rem;font-size:.8125rem;font-weight:600}.ue-title{font-size:.9375rem;color:var(--color-text-secondary, #6b7280)}.page-header h1{font-size:1.5rem;font-weight:700;color:var(--color-text-primary, #1f2937);margin:0 0 .5rem}.session-info{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.session-info .icon{width:1rem;height:1rem}.deadline-indicator{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500}.deadline-indicator .icon{width:1.25rem;height:1.25rem}.deadline-indicator.deadline-passed{background:#fef2f2;color:#dc2626}.deadline-indicator.deadline-today{background:#fff7ed;color:#ea580c}.deadline-indicator.deadline-soon{background:#fefce8;color:#ca8a04}.deadline-indicator.deadline-ok{background:#f0fdf4;color:#16a34a}.anonymity-banner{display:flex;gap:1rem;padding:1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:.75rem;margin-bottom:1.5rem}.anonymity-banner .icon{flex-shrink:0;width:1.5rem;height:1.5rem;color:#0284c7}.anonymity-banner strong{display:block;color:#0369a1;font-size:.9375rem;margin-bottom:.25rem}.anonymity-banner p{margin:0;font-size:.8125rem;color:#0284c7}.code-validator{background:#fff;border-radius:.75rem;padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.code-validator h3{font-size:.875rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 .75rem}.validator-input{display:flex;gap:.5rem}.validator-input input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;font-family:monospace;text-transform:uppercase}.validator-input input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.validator-input button{padding:.5rem 1rem;background:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.validator-input button:hover:not(:disabled){background:var(--color-primary-dark, #1d4ed8)}.validator-input button:disabled{opacity:.5;cursor:not-allowed}.validation-result{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem}.validation-result .icon{width:1rem;height:1rem}.validation-result.valid{background:#f0fdf4;color:#16a34a}.validation-result.invalid{background:#fef2f2;color:#dc2626}.controls-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.stats-summary{display:flex;gap:1.5rem;font-size:.875rem}.stats-summary .stat{color:var(--color-text-secondary, #6b7280)}.stats-summary .stat strong{color:var(--color-text-primary, #1f2937)}.stats-summary .stat.modified{color:#d97706;font-weight:500}.filter-buttons{display:flex;gap:.375rem}.filter-btn:hover{background:var(--color-bg-hover, #f9fafb)}.grades-table-container{background:#fff;border-radius:.75rem;overflow:hidden;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb);margin-bottom:1.5rem}.grades-table{width:100%;border-collapse:collapse}.grades-table th,.grades-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.grades-table th{font-size:.75rem;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-secondary, #f9fafb)}.grades-table tr.modified{background:#fffbeb}.grades-table tr:last-child td{border-bottom:none}.code-cell code{font-family:monospace;font-size:.875rem;font-weight:600;color:var(--color-primary, #2563eb);background:var(--color-primary-light, #dbeafe);padding:.25rem .5rem;border-radius:.25rem}.score-cell{width:120px}.score-input-wrapper{position:relative}.score-cell input{width:80px;padding:.5rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;font-size:.9375rem;text-align:center}.score-cell input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.score-cell input.error{border-color:#dc2626}.score-cell input:disabled{background:var(--color-bg-secondary, #f9fafb);cursor:not-allowed}.error-tooltip{position:absolute;top:100%;left:0;margin-top:.25rem;padding:.25rem .5rem;background:#dc2626;color:#fff;font-size:.75rem;border-radius:.25rem;white-space:nowrap}.comment-cell input{width:100%;padding:.5rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;font-size:.875rem}.comment-cell input:focus{outline:none;border-color:var(--color-primary, #2563eb)}.comment-cell input:disabled{background:var(--color-bg-secondary, #f9fafb);cursor:not-allowed}.status-cell{width:100px}.status-badge.status-draft{background:#f3f4f6;color:#6b7280}.status-badge.status-submitted{background:#dbeafe;color:#1e40af}.status-badge.status-reviewed{background:#fef3c7;color:#92400e}.status-badge.status-approved{background:#dcfce7;color:#166534}.status-badge.status-published{background:#d1fae5;color:#065f46}.status-badge.status-rejected{background:#fee2e2;color:#991b1b}.empty-row{text-align:center;color:var(--color-text-secondary, #6b7280);font-style:italic;padding:2rem 1rem!important}.actions-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.action-buttons{display:flex;gap:.75rem}.btn-secondary{padding:.625rem 1.25rem;background:#fff;color:var(--color-primary, #2563eb);border:1px solid var(--color-primary, #2563eb);border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-secondary:hover:not(:disabled){background:var(--color-primary-light, #eff6ff)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:.625rem 1.25rem;background:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.modal{background:#fff;border-radius:.75rem;padding:1.5rem;max-width:450px;width:90%;box-shadow:0 20px 25px -5px #0000001a}.modal p{margin:0 0 1rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.modal p.warning{padding:.75rem;background:#fefce8;border:1px solid #fef08a;border-radius:.375rem;color:#854d0e}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.loading-state p,.error-state p{margin-top:1rem;color:var(--color-text-secondary, #6b7280)}.error-state h3{margin:0 0 .5rem;color:var(--color-text-primary, #1f2937)}@media(max-width:768px){.anonymous-grading-page{padding:1rem}.page-header{flex-direction:column}.deadline-indicator{width:100%;justify-content:center}.controls-bar{flex-direction:column;align-items:stretch}.stats-summary,.filter-buttons{justify-content:center}.grades-table-container{overflow-x:auto}.grades-table{min-width:600px}.actions-bar{flex-direction:column}.action-buttons{width:100%}.action-buttons button{flex:1}.btn-cancel{width:100%;text-align:center}}.gpe-et-moi{padding:2rem;max-width:1100px;margin:0 auto}.gpe-et-moi__header{margin-bottom:2rem}.gpe-et-moi__title{font-size:1.75rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .25rem}.gpe-et-moi__subtitle{font-size:.95rem;color:var(--text-secondary, #64748b);margin:0}.gpe-et-moi__profile{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;padding:2rem;color:#fff;display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;box-shadow:0 4px 24px #1a1a2e26}.gpe-et-moi__avatar{width:80px;height:80px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0;border:3px solid rgba(255,255,255,.3)}.gpe-et-moi__profile-info h2{font-size:1.35rem;font-weight:700;margin:0 0 .25rem;color:#fff}.gpe-et-moi__profile-role{font-size:.9rem;opacity:.8;margin:0 0 .5rem}.gpe-et-moi__profile-meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.85rem;opacity:.7}.gpe-et-moi__profile-meta span{display:flex;align-items:center;gap:.35rem}.gpe-et-moi__sections{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:768px){.gpe-et-moi{padding:1rem}.gpe-et-moi__profile{flex-direction:column;text-align:center}.gpe-et-moi__profile-meta{justify-content:center}.gpe-et-moi__sections{grid-template-columns:1fr}}.gpe-et-moi__section{background:#fff;border-radius:14px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden;transition:box-shadow .2s}.gpe-et-moi__section:hover{box-shadow:0 4px 16px #0000000f}.gpe-et-moi__section-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.gpe-et-moi__section-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gpe-et-moi__section-icon--contract{background:#dbeafe;color:#2563eb}.gpe-et-moi__section-icon--admin{background:#fef3c7;color:#d97706}.gpe-et-moi__section-icon--payment{background:#d1fae5;color:#059669}.gpe-et-moi__section-icon--resources{background:#ede9fe;color:#7c3aed}.gpe-et-moi__section-title{font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0}.gpe-et-moi__section-count{margin-left:auto;font-size:.8rem;color:var(--text-secondary, #64748b);background:var(--bg-subtle, #f1f5f9);padding:.15rem .6rem;border-radius:12px}.gpe-et-moi__doc-list{list-style:none;padding:0;margin:0}.gpe-et-moi__doc-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.5rem;border-bottom:1px solid var(--border-color, #f1f5f9);transition:background .15s;cursor:pointer}.gpe-et-moi__doc-item:last-child{border-bottom:none}.gpe-et-moi__doc-item:hover{background:var(--bg-hover, #f8fafc)}.gpe-et-moi__doc-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;font-weight:700;text-transform:uppercase}.gpe-et-moi__doc-icon--pdf{background:#fee2e2;color:#dc2626}.gpe-et-moi__doc-icon--doc{background:#dbeafe;color:#2563eb}.gpe-et-moi__doc-icon--xls{background:#d1fae5;color:#059669}.gpe-et-moi__doc-info{flex:1;min-width:0}.gpe-et-moi__doc-name{font-size:.9rem;font-weight:500;color:var(--text-primary, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gpe-et-moi__doc-meta{font-size:.78rem;color:var(--text-secondary, #94a3b8);margin-top:.1rem}.gpe-et-moi__doc-action{color:var(--text-secondary, #94a3b8);flex-shrink:0;transition:color .15s}.gpe-et-moi__doc-item:hover .gpe-et-moi__doc-action{color:var(--primary, #2563eb)}.gpe-et-moi__empty{padding:2rem 1.5rem;text-align:center;color:var(--text-secondary, #94a3b8);font-size:.9rem}.gpe-et-moi__empty svg{margin-bottom:.5rem;opacity:.4}.gpe-et-moi__status{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:12px}.gpe-et-moi__status--active{background:#d1fae5;color:#059669}.gpe-et-moi__status--pending{background:#fef3c7;color:#d97706}.gpe-et-moi__status--expired{background:#fee2e2;color:#dc2626}.teacher-profile{max-width:800px;margin:0 auto;padding:0 1rem}.teacher-profile__header{margin-bottom:2rem}.teacher-profile__title{font-size:1.75rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}.teacher-profile__subtitle{color:#64748b;margin:0;font-size:.95rem}.teacher-profile__alert{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:10px;margin-bottom:1.5rem;font-size:.9rem}.teacher-profile__alert--error{background:#fee2e2;color:#dc2626}.teacher-profile__alert--success{background:#dcfce7;color:#16a34a}.teacher-profile__card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014;padding:2rem}.teacher-profile__avatar-section{display:flex;align-items:center;gap:1.5rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0;margin-bottom:2rem}.teacher-profile__avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#1a56db,#059669);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;flex-shrink:0;overflow:hidden}.teacher-profile__avatar img{width:100%;height:100%;object-fit:cover}.teacher-profile__avatar-info h2{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .25rem}.teacher-profile__role{color:#64748b;font-size:.9rem;margin:0}.teacher-profile__form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.teacher-profile__field{display:flex;flex-direction:column;gap:.5rem}.teacher-profile__field label{font-size:.85rem;font-weight:500;color:#64748b}.teacher-profile__field input{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;color:#1e293b;transition:border-color .2s,box-shadow .2s}.teacher-profile__field input:focus{outline:none;border-color:#1a56db;box-shadow:0 0 0 3px #1a56db1a}.teacher-profile__value{padding:.75rem 0;font-size:.95rem;color:#1e293b;min-height:2.5rem;display:flex;align-items:center;gap:.75rem}.teacher-profile__value--readonly{color:#64748b}.teacher-profile__readonly-hint{font-size:.75rem;color:#94a3b8;font-style:italic}.teacher-profile__actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:2rem;border-top:1px solid #e2e8f0}.teacher-profile__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.teacher-profile__btn:disabled{opacity:.6;cursor:not-allowed}.teacher-profile__btn--primary{background:linear-gradient(135deg,#1a56db,#1e40af);color:#fff}.teacher-profile__btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1a56db4d}.teacher-profile__btn--secondary{background:#f1f5f9;color:#475569}.teacher-profile__btn--secondary:hover:not(:disabled){background:#e2e8f0}@media(max-width:640px){.teacher-profile__avatar-section{flex-direction:column;text-align:center}.teacher-profile__actions{flex-direction:column}.teacher-profile__btn{width:100%;justify-content:center}}.teacher-password{max-width:560px;margin:0 auto;padding:0 1rem}.teacher-password__header{margin-bottom:2rem}.teacher-password__title{font-size:1.75rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}.teacher-password__subtitle{color:#64748b;margin:0;font-size:.95rem}.teacher-password__card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014;padding:2rem}.teacher-password__alert{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:10px;margin-bottom:1.5rem;font-size:.9rem}.teacher-password__alert--error{background:#fee2e2;color:#dc2626}.teacher-password__alert--success{background:#dcfce7;color:#16a34a}.teacher-password__form{display:flex;flex-direction:column;gap:1.5rem}.teacher-password__field{display:flex;flex-direction:column;gap:.5rem}.teacher-password__field label{font-size:.9rem;font-weight:500;color:#374151}.teacher-password__input-wrapper{position:relative;display:flex;align-items:center}.teacher-password__field input{width:100%;padding:.875rem 3rem .875rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:.95rem;color:#1e293b;transition:border-color .2s,box-shadow .2s}.teacher-password__field input:focus{outline:none;border-color:#1a56db;box-shadow:0 0 0 3px #1a56db1a}.teacher-password__field input::placeholder{color:#94a3b8}.teacher-password__toggle{position:absolute;right:.75rem;background:none;border:none;padding:.5rem;cursor:pointer;color:#94a3b8;display:flex;align-items:center;justify-content:center;transition:color .2s}.teacher-password__toggle:hover{color:#64748b}.teacher-password__hint{font-size:.8rem;color:#94a3b8}.teacher-password__actions{margin-top:.5rem}.teacher-password__btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,#1a56db,#1e40af);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.teacher-password__btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1a56db4d}.teacher-password__btn:disabled{opacity:.7;cursor:not-allowed}.teacher-password__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.teacher-password__tips{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.teacher-password__tips h3{font-size:.9rem;font-weight:600;color:#475569;margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.teacher-password__tips h3:before{content:"";display:inline-block;width:20px;height:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");background-size:contain}.teacher-password__tips ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.teacher-password__tips li{font-size:.85rem;color:#64748b;display:flex;align-items:center;gap:.5rem}.teacher-password__tips li:before{content:"";display:inline-block;width:6px;height:6px;background:#10b981;border-radius:50%;flex-shrink:0}@media(max-width:480px){.teacher-password__card{padding:1.5rem}}.justifications-validation-page{max-width:900px;margin:0 auto}.justifications-validation-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.justifications-validation-page .page-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.justifications-validation-page .page-header p{color:var(--gray-500);margin:0}.pending-badge{padding:.5rem 1rem;background:var(--gpe-rose);color:#fff;font-size:.875rem;font-weight:600;border-radius:9999px}.filters{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .15s}.filter-btn:hover{border-color:var(--gray-400);background:var(--gray-50)}.filter-btn.active{background:var(--gpe-green);border-color:var(--gpe-green);color:#fff}.empty-state p{margin:0}.card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.student-info{display:flex;flex-direction:column}.student-name{font-weight:600;color:var(--gray-900)}.card-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.session-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.ue-code{font-weight:600;color:var(--gpe-green)}.session-date,.session-type{font-size:.875rem;color:var(--gray-600)}.reason{font-size:.9375rem;color:var(--gray-700)}.document{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-500)}.view-document{color:var(--gpe-green);text-decoration:none;font-weight:500}.view-document:hover{text-decoration:underline}.document.no-document{color:var(--gray-400);font-style:italic}.no-doc-text{color:var(--gray-400)}.review-note{padding:.75rem;background:var(--gray-100);border-radius:8px;font-size:.875rem;color:var(--gray-700)}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;border-top:1px solid var(--gray-100)}.submitted-at,.reviewed-at{font-size:.8125rem;color:var(--gray-500)}.actions{display:flex;gap:.5rem}.btn-reject,.btn-approve{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-reject{background:var(--gray-100);color:var(--gray-700)}.btn-reject:hover{background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c)}.btn-approve{background:var(--gpe-green);color:#fff}.btn-approve:hover{background:#047857}.summary{text-align:center;padding:1rem;color:var(--gray-500);font-size:.875rem}.modal{background:#fff;border-radius:16px;width:100%;max-width:450px;box-shadow:0 25px 50px -12px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.modal-close{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--gray-400);border-radius:8px}.modal-body p{margin:0 0 1rem;color:var(--gray-700)}.btn-cancel{padding:.625rem 1.25rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:500;color:var(--gray-700);cursor:pointer}.btn-reject-confirm{padding:.625rem 1.25rem;background:var(--gpe-rose);border:none;border-radius:8px;font-size:.9375rem;font-weight:500;color:#fff;cursor:pointer}.btn-reject-confirm:hover:not(:disabled){background:#e11d48}.btn-reject-confirm:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed}:root.dark .card-header,.dark .card-header{background:#0f172a;border-bottom-color:#334155}:root.dark .filter-btn,.dark .filter-btn{background:#1e293b;border-color:#334155;color:#94a3b8}:root.dark .filter-btn:hover,.dark .filter-btn:hover{background:#334155}.student-nav{display:flex;flex-direction:column;height:100%;background:var(--white)}.student-nav-content{flex:1;padding:.75rem .5rem;overflow-y:auto}.student-nav-main{padding:0 .25rem;margin-bottom:.25rem}.student-nav-section{margin-bottom:.25rem}.student-nav-section-title{display:flex;align-items:center;gap:.375rem;font-size:.625rem;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:.06em;padding:.5rem .75rem;margin-bottom:.125rem}.student-nav-section-icon{display:flex;align-items:center;justify-content:center;color:var(--student-primary);opacity:.7}.student-nav-list{list-style:none;padding:0;margin:0}.student-nav-link{display:flex;align-items:center;gap:.625rem;min-height:40px;padding:.5rem .75rem;color:var(--gray-600);text-decoration:none;border-radius:8px;border:2px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.8125rem;font-weight:500;position:relative;margin-bottom:1px}.student-nav-link:hover{background:linear-gradient(135deg,var(--gpe-indigo-50, #eef2ff) 0%,var(--gpe-indigo-100, #e0e7ff) 100%);color:var(--student-primary);transform:translate(4px)}.student-nav-link:focus-visible{outline:3px solid var(--student-primary);outline-offset:2px}.student-nav-link.active{background:linear-gradient(135deg,var(--gpe-indigo-50) 0%,var(--gpe-indigo-100) 100%);color:var(--student-primary);border-color:var(--gpe-indigo-200);font-weight:600}.student-nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:linear-gradient(180deg,var(--student-primary) 0%,var(--student-primary-light) 100%);border-radius:0 4px 4px 0}.student-nav-link.active .student-nav-icon{color:var(--student-primary)}.student-nav-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--gray-400);flex-shrink:0;transition:color .2s ease,transform .2s ease}.student-nav-link:hover .student-nav-icon{color:var(--student-primary);transform:scale(1.1)}.student-nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:linear-gradient(135deg,var(--gpe-rose-500) 0%,var(--gpe-rose-600) 100%);color:var(--white);font-size:.6875rem;font-weight:700;border-radius:999px;flex-shrink:0;box-shadow:0 2px 4px #ef44444d;animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{box-shadow:0 2px 4px #ef44444d}50%{box-shadow:0 2px 8px #ef444480}}.student-nav-separator{height:1px;background:linear-gradient(90deg,transparent 0%,var(--gray-200) 50%,transparent 100%);margin:.375rem .75rem}.student-nav-footer{padding:.625rem .5rem;border-top:1px solid var(--gray-100);background:linear-gradient(180deg,var(--white) 0%,var(--gray-50) 100%)}.student-nav-back{color:var(--gray-500)}.student-nav-back:hover{background:var(--gray-100);color:var(--gray-700);transform:translate(-4px)}.student-nav-back:hover .student-nav-icon{transform:translate(-2px)}.student-nav-link:hover .student-nav-badge{background:linear-gradient(135deg,var(--gpe-rose-600) 0%,var(--gpe-rose-700) 100%);transform:scale(1.1)}.student-nav-link.active .student-nav-badge{background:linear-gradient(135deg,var(--student-primary) 0%,var(--student-primary-light) 100%);box-shadow:0 2px 4px #4f46e54d;animation:none}.student-nav-external{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;color:var(--gray-400);opacity:.6;transition:opacity .2s ease,color .2s ease}.student-nav-link:hover .student-nav-external{opacity:1;color:var(--student-primary)}@media(max-width:1024px){.student-nav-content{padding:1rem .75rem}.student-nav-link{min-height:44px;padding:.625rem .875rem;font-size:.875rem}.student-nav-icon{width:24px;height:24px}}@media(prefers-contrast:high){.student-nav-link{border:2px solid transparent}.student-nav-link:hover{border-color:var(--gray-500)}.student-nav-link.active{border-color:var(--student-primary);border-width:3px}.student-nav-badge{border:2px solid var(--white)}}@media(prefers-reduced-motion:reduce){.student-nav-link{transition:none}.student-nav-link:hover,.student-nav-link:hover .student-nav-icon{transform:none}.student-nav-badge{animation:none}}:root.dark .student-nav,.dark .student-nav{background:var(--gray-800)}:root.dark .student-nav-section-title,.dark .student-nav-section-title{color:var(--gray-500)}:root.dark .student-nav-link,.dark .student-nav-link{color:var(--gray-300)}:root.dark .student-nav-link:hover,.dark .student-nav-link:hover{background:#4f46e526;color:var(--gpe-indigo-300)}:root.dark .student-nav-link.active,.dark .student-nav-link.active{background:#4f46e533;border-color:#4f46e566;color:var(--gpe-indigo-300)}:root.dark .student-nav-icon,.dark .student-nav-icon{color:var(--gray-500)}:root.dark .student-nav-link:hover .student-nav-icon,:root.dark .student-nav-link.active .student-nav-icon,.dark .student-nav-link:hover .student-nav-icon,.dark .student-nav-link.active .student-nav-icon{color:var(--gpe-indigo-300)}:root.dark .student-nav-separator,.dark .student-nav-separator{background:linear-gradient(90deg,transparent 0%,var(--gray-700) 50%,transparent 100%)}:root.dark .student-nav-footer,.dark .student-nav-footer{background:var(--gray-800);border-top-color:var(--gray-700)}:root.dark .student-nav-back,.dark .student-nav-back{color:var(--gray-400)}:root.dark .student-nav-back:hover,.dark .student-nav-back:hover{background:var(--gray-700);color:var(--gray-200)}.student-nav-link.disabled{opacity:.5;cursor:not-allowed;pointer-events:auto;position:relative}.student-nav-link.disabled:hover{background:transparent;transform:none}.student-nav-link.disabled .student-nav-icon{color:var(--gray-400)}.student-nav-link.disabled .student-nav-label{color:var(--gray-500)}.student-nav-lock{font-size:12px;margin-left:auto;opacity:.7}:root.dark .student-nav-link.disabled,.dark .student-nav-link.disabled{opacity:.4}:root.dark .student-nav-link.disabled .student-nav-icon,.dark .student-nav-link.disabled .student-nav-icon{color:var(--gray-600)}:root.dark .student-nav-link.disabled .student-nav-label,.dark .student-nav-link.disabled .student-nav-label{color:var(--gray-600)}.barbillard{display:flex;flex-direction:column;height:100%;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--gray-200)}.barbillard-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid var(--gray-100)}.barbillard-header-left{display:flex;align-items:center;gap:.5rem}.barbillard-title{font-size:.9375rem;font-weight:700;color:var(--gray-900);margin:0}.barbillard-count{display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--gray-100);color:var(--gray-600);font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.barbillard-header-actions{display:flex;align-items:center;gap:.25rem}.barbillard-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--gray-400);cursor:pointer;transition:all var(--transition)}.barbillard-btn.desktop-only{display:flex}.barbillard-btn.mobile-only{display:none}@media(max-width:768px){.barbillard-btn.desktop-only{display:none}.barbillard-btn.mobile-only{display:flex}}.barbillard-btn:hover{background:var(--gray-100);color:var(--gray-600)}.barbillard-filters{display:flex;gap:.375rem;padding:.75rem 1rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.barbillard-filters::-webkit-scrollbar{display:none}.barbillard-filter{padding:.375rem .75rem;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition);white-space:nowrap}.barbillard-filter:hover{border-color:var(--gray-300);background:var(--gray-50)}.barbillard-filter.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.barbillard-content{flex:1;overflow-y:auto;padding:.5rem}.barbillard-content::-webkit-scrollbar{width:4px}.barbillard-content::-webkit-scrollbar-track{background:transparent}.barbillard-content::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:4px}.barbillard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--gray-400);text-align:center}.barbillard-empty svg{margin-bottom:.75rem;opacity:.5}.barbillard-empty p{font-size:.875rem;margin:0}.barbillard-items{display:flex;flex-direction:column;gap:.5rem}.barbillard-item{padding:.875rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);transition:all var(--transition);position:relative;overflow:hidden}.barbillard-item:hover{border-color:var(--gray-200);box-shadow:var(--shadow-sm)}.barbillard-item.clickable{cursor:pointer}.barbillard-item.clickable:hover{border-color:var(--gpe-blue);transform:translateY(-1px);box-shadow:var(--shadow-md)}.barbillard-item.clickable:focus{outline:2px solid var(--gpe-blue);outline-offset:2px}.barbillard-item.clickable:active{transform:translateY(0)}.barbillard-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px}.barbillard-item.type-annonce:before{background:var(--gpe-blue)}.barbillard-item.type-rappel:before{background:var(--gpe-purple)}.barbillard-item.type-event:before{background:var(--gpe-green)}.barbillard-item.type-deadline:before{background:var(--gpe-rose)}.barbillard-item.urgent{border-color:#ef44444d;background:#ef444405}.barbillard-item.urgent:before{background:#ef4444}.barbillard-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.barbillard-item-type{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm)}.barbillard-item-type.type-annonce{background:var(--gpe-blue-50);color:var(--gpe-blue)}.barbillard-item-type.type-rappel{background:#9333ea1a;color:var(--gpe-purple)}.barbillard-item-type.type-event{background:var(--gpe-green-50);color:var(--gpe-green)}.barbillard-item-type.type-deadline{background:var(--gpe-rose-50);color:var(--gpe-rose)}.barbillard-item-new{padding:.125rem .5rem;background:var(--gpe-blue);color:var(--white);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-full)}.barbillard-item-title{font-size:.8125rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem;line-height:1.3}.barbillard-item-desc{font-size:.75rem;color:var(--gray-500);margin:0 0 .5rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.barbillard-item-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.6875rem}.barbillard-item-date{display:flex;align-items:center;gap:.25rem;color:var(--gray-500)}.barbillard-item-course{padding:.125rem .375rem;background:var(--gray-100);color:var(--gray-600);border-radius:var(--radius-sm);font-weight:500}.barbillard-item-countdown{display:inline-flex;align-items:center;margin-top:.5rem;padding:.25rem .5rem;background:var(--gpe-rose-50);color:var(--gpe-rose);font-size:.6875rem;font-weight:600;border-radius:var(--radius-sm)}.barbillard-item-countdown.urgent{background:#fef2f2;color:#dc2626;animation:pulse-urgent 2s ease-in-out infinite}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.7}}.barbillard-footer{padding:.75rem 1rem;border-top:1px solid var(--gray-100)}.barbillard-footer-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem;border:1px dashed var(--gray-300);background:transparent;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all var(--transition)}.barbillard-footer-btn:hover{border-color:var(--gpe-blue);color:var(--gpe-blue);background:var(--gpe-blue-50)}@media(max-width:1280px){.barbillard-header{padding:1rem}.barbillard-item{padding:.75rem}}@media(max-width:1024px){.barbillard{background:var(--white)}}@media(max-width:768px){.barbillard-filters{padding:.75rem}.barbillard-filter{padding:.5rem 1rem;font-size:.8125rem}.barbillard-item-title{font-size:.875rem}.barbillard-item-desc{font-size:.8125rem}}:root.dark .barbillard,.dark .barbillard{background:#1e293b;border-left-color:#334155}:root.dark .barbillard-header,.dark .barbillard-header{border-bottom-color:#334155}:root.dark .barbillard-title,.dark .barbillard-title{color:var(--gray-100)}:root.dark .barbillard-count,.dark .barbillard-count{background:#334155;color:var(--gray-300)}:root.dark .barbillard-btn,.dark .barbillard-btn{color:var(--gray-500)}:root.dark .barbillard-btn:hover,.dark .barbillard-btn:hover{background:#334155;color:var(--gray-300)}:root.dark .barbillard-filter,.dark .barbillard-filter{background:#334155;border-color:#475569;color:var(--gray-300)}:root.dark .barbillard-filter:hover,.dark .barbillard-filter:hover{background:#475569;border-color:#64748b}:root.dark .barbillard-filter.active,.dark .barbillard-filter.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}:root.dark .barbillard-content::-webkit-scrollbar-thumb,.dark .barbillard-content::-webkit-scrollbar-thumb{background:#475569}:root.dark .barbillard-empty,.dark .barbillard-empty{color:var(--gray-500)}:root.dark .barbillard-item,.dark .barbillard-item{background:#0f172a;border-color:#334155}:root.dark .barbillard-item:hover,.dark .barbillard-item:hover{border-color:#475569}:root.dark .barbillard-item.clickable:hover,.dark .barbillard-item.clickable:hover{border-color:var(--gpe-blue)}:root.dark .barbillard-item.urgent,.dark .barbillard-item.urgent{border-color:#ef444466;background:#ef44441a}:root.dark .barbillard-item-title,.dark .barbillard-item-title{color:var(--gray-100)}:root.dark .barbillard-item-desc,.dark .barbillard-item-desc{color:var(--gray-400)}:root.dark .barbillard-item-date,.dark .barbillard-item-date{color:var(--gray-400)}:root.dark .barbillard-item-course,.dark .barbillard-item-course{background:#334155;color:var(--gray-300)}:root.dark .barbillard-footer,.dark .barbillard-footer{border-top-color:#334155}:root.dark .barbillard-footer-btn,.dark .barbillard-footer-btn{border-color:#475569;color:var(--gray-400)}:root.dark .barbillard-footer-btn:hover,.dark .barbillard-footer-btn:hover{border-color:var(--gpe-blue);color:var(--gpe-blue);background:#3b82f61a}.student-layout{--student-primary: var(--gpe-indigo, #4f46e5);--student-primary-light: var(--gpe-indigo-light, #6366f1);--student-primary-dark: var(--gpe-indigo-dark, #4338ca);--student-primary-50: var(--gpe-indigo-50, #eef2ff);--student-primary-100: var(--gpe-indigo-100, #e0e7ff);--student-primary-200: var(--gpe-indigo-200, #c7d2fe);--student-primary-300: var(--gpe-indigo-300, #a5b4fc);--student-primary-400: var(--gpe-indigo-400, #818cf8);--student-primary-500: var(--gpe-indigo-500, #6366f1);--student-primary-600: var(--gpe-indigo-600, #4f46e5);--student-primary-700: var(--gpe-indigo-700, #4338ca);--student-primary-800: var(--gpe-indigo-800, #3730a3);--student-primary-900: var(--gpe-indigo-900, #312e81);--student-success: var(--gpe-green-500, #10b981);--student-success-light: var(--gpe-green-400, #34d399);--student-success-50: var(--gpe-green-50, #ecfdf5);--student-warning: var(--gpe-amber-500, #f59e0b);--student-warning-light: var(--gpe-amber-400, #fbbf24);--student-warning-50: var(--gpe-amber-50, #fffbeb);--student-danger: var(--gpe-rose-500, #f43f5e);--student-danger-light: var(--gpe-rose-400, #fb7185);--student-danger-50: var(--gpe-rose-50, #fff1f2);--student-info: var(--gpe-blue-500, #3b82f6);--student-info-light: var(--gpe-blue-400, #60a5fa);--student-info-50: var(--gpe-blue-50, #eff6ff);--student-touch-target: 48px;--student-font-base: 16px;--student-font-sm: 14px;--student-font-lg: 18px;--student-font-xl: 20px;--student-spacing: 1.25rem;--student-radius: var(--radius-md, 12px);--student-radius-sm: var(--radius, 8px);--student-focus-ring: 3px solid var(--student-primary-light);--student-focus-offset: 2px;min-height:100vh;background:linear-gradient(180deg,var(--gray-50, #f8fafc) 0%,var(--gray-100, #f1f5f9) 100%);font-size:var(--student-font-base)}.student-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:72px;padding:0 1.5rem;background:var(--glass-bg, rgba(255, 255, 255, .9));backdrop-filter:var(--glass-blur, blur(12px));-webkit-backdrop-filter:var(--glass-blur, blur(12px));border-bottom:2px solid var(--gray-200);box-shadow:var(--shadow-sm)}.student-header-left{display:flex;align-items:center;gap:1rem}.student-menu-toggle{display:none;align-items:center;justify-content:center;min-width:var(--student-touch-target);min-height:var(--student-touch-target);padding:.5rem;background:none;border:2px solid transparent;color:var(--gray-600);cursor:pointer;border-radius:var(--student-radius-sm);transition:all .2s ease}.student-menu-toggle:hover{background:var(--gray-100);color:var(--gray-900)}.student-menu-toggle:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-logo{display:flex;align-items:center;gap:.75rem}.student-logo-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,var(--student-primary) 0%,var(--student-primary-dark) 100%);color:var(--white);border-radius:var(--student-radius-sm);box-shadow:0 2px 8px #4f46e540}.student-logo-text{font-size:var(--student-font-lg);color:var(--gray-600);font-weight:500}.student-logo-text strong{color:var(--student-primary);font-weight:700}.student-header-center{flex:1;display:flex;justify-content:center;max-width:480px}.student-search{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:999px;transition:all .2s ease}.student-search:focus-within{background:var(--white);border-color:var(--student-primary-200);box-shadow:0 0 0 3px var(--student-primary-50)}.student-search svg{color:var(--gray-400);flex-shrink:0}.student-search-input{flex:1;border:none;background:none;font-size:var(--student-font-sm);color:var(--gray-700);outline:none}.student-search-input::placeholder{color:var(--gray-400)}.student-search-shortcut{display:none;padding:.25rem .5rem;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px;font-size:11px;font-family:monospace;color:var(--gray-500)}.student-header-right{display:flex;align-items:center;gap:.75rem}.student-header-btn{display:flex;align-items:center;justify-content:center;min-width:var(--student-touch-target);min-height:var(--student-touch-target);background:none;border:2px solid transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--student-radius-sm);transition:all .2s ease;position:relative}.student-header-btn:hover{background:var(--student-primary-50);color:var(--student-primary)}.student-header-btn:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-notifications-btn{position:relative}.student-notification-dot{position:absolute;top:8px;right:8px;width:10px;height:10px;background:var(--student-danger);border:2px solid var(--white);border-radius:50%;animation:notification-pulse 2s ease-in-out infinite}@keyframes notification-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.student-user-menu{display:flex;align-items:center;gap:.75rem}.student-user-info{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.student-user-name{font-size:var(--student-font-base);font-weight:600;color:var(--gray-800);line-height:1.2}.student-user-promotion{font-size:var(--student-font-sm);color:var(--gray-500)}.student-user-avatar{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:linear-gradient(135deg,var(--student-primary) 0%,var(--student-primary-light) 100%);color:var(--white);font-size:var(--student-font-base);font-weight:600;border-radius:50%;overflow:hidden;box-shadow:0 2px 8px #4f46e533}.student-user-avatar img{width:100%;height:100%;object-fit:cover}.student-logout-btn{display:flex;align-items:center;justify-content:center;min-width:var(--student-touch-target);min-height:var(--student-touch-target);background:none;border:2px solid transparent;color:var(--gray-400);cursor:pointer;border-radius:var(--student-radius-sm);transition:all .2s ease}.student-logout-btn:hover{background:var(--student-danger-50);color:var(--student-danger);border-color:var(--gpe-rose-200)}.student-logout-btn:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-container{display:flex;min-height:calc(100vh - 72px);transition:padding-right .3s ease}.student-sidebar{width:280px;background:var(--white);border-right:1px solid var(--gray-200);flex-shrink:0}.student-main{flex:1;padding:2rem;overflow-x:hidden;min-width:0}.student-babillard{width:0;overflow:hidden;flex-shrink:0;transition:width .3s ease;border-left:1px solid transparent}.student-babillard.visible{width:320px;border-left-color:var(--gray-200)}.student-babillard-mobile{display:none;position:fixed;top:72px;right:0;bottom:0;width:320px;max-width:90vw;background:var(--white);z-index:95;transform:translate(100%);box-shadow:-4px 0 24px #00000026;transition:transform .3s cubic-bezier(.4,0,.2,1)}.student-babillard-mobile.open{transform:translate(0)}.student-babillard-toggle{position:relative}.student-babillard-toggle.active{background:var(--student-primary-50);color:var(--student-primary)}.student-babillard-indicator{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--student-primary);border-radius:50%;border:2px solid var(--white);animation:babillard-pulse 2s ease-in-out infinite}@keyframes babillard-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.student-overlay{display:none;position:fixed;inset:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90}.student-overlay.babillard-overlay{z-index:94}@media(min-width:1400px){.student-sidebar{width:300px}.student-babillard.visible{width:360px}.student-main{padding:2rem}}@media(max-width:1024px){.student-sidebar{position:fixed;top:72px;left:0;bottom:0;z-index:95;width:280px;transform:translate(-100%);box-shadow:var(--shadow-xl);transition:transform .3s cubic-bezier(.4,0,.2,1)}.student-sidebar.mobile-open{transform:translate(0)}.student-menu-toggle{display:flex}.student-overlay{display:block}.student-header-center,.student-babillard{display:none}.student-babillard-mobile{display:block}}@media(max-width:640px){.student-header{padding:0 1rem;height:72px}.student-container{min-height:calc(100vh - 72px)}.student-sidebar{top:72px;width:280px}.student-logo-text,.student-user-info{display:none}.student-main{padding:1rem}}@media(min-width:1280px){.student-search-shortcut{display:block}}.student-page{max-width:1200px;margin:0 auto}.student-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.student-page-header-content h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.student-page-header-content p{font-size:var(--student-font-base);color:var(--gray-500);margin:0}.student-page-actions{display:flex;align-items:center;gap:.75rem}.student-card{background:var(--white);border-radius:var(--card-radius-premium, 20px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));overflow:hidden;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1));position:relative}.student-card:hover{transform:translateY(var(--card-hover-translate, -6px));box-shadow:var(--card-shadow-hover, 0 20px 40px rgba(0,0,0,.1), 0 8px 16px rgba(0,0,0,.06))}.student-card--accent:before{content:"";position:absolute;top:0;left:0;right:0;height:var(--accent-line-height, 4px);background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%));border-radius:var(--accent-line-radius, 20px 20px 0 0)}.student-card-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.student-card-title{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-900);margin:0}.student-card-body{padding:1.5rem}.student-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.student-stat-card{display:flex;flex-direction:column;background:var(--white);border-radius:var(--card-radius-lg, 16px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));padding:1.5rem;text-decoration:none;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1));cursor:pointer;position:relative;overflow:hidden}.student-stat-card:hover{border-color:var(--student-primary-200);box-shadow:var(--card-shadow-colored, 0 20px 40px rgba(79, 70, 229, .12));transform:translateY(-4px)}.student-stat-card:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-stat-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-md, 12px);margin-bottom:1rem;transition:transform .3s ease,box-shadow .3s ease}.student-stat-card:hover .student-stat-icon{transform:scale(1.05)}.student-stat-icon.indigo{background:linear-gradient(135deg,var(--student-primary-100) 0%,var(--student-primary-50) 100%);color:var(--student-primary);box-shadow:0 4px 12px #4f46e526}.student-stat-icon.green{background:linear-gradient(135deg,var(--gpe-green-100, #d1fae5) 0%,var(--gpe-green-50, #ecfdf5) 100%);color:var(--student-success);box-shadow:0 4px 12px #10b98126}.student-stat-icon.amber{background:linear-gradient(135deg,var(--gpe-amber-100, #fef3c7) 0%,var(--gpe-amber-50, #fffbeb) 100%);color:var(--student-warning);box-shadow:0 4px 12px #f59e0b26}.student-stat-icon.red{background:linear-gradient(135deg,var(--gpe-rose-100, #ffe4e6) 0%,var(--gpe-rose-50, #fff1f2) 100%);color:var(--student-danger);box-shadow:0 4px 12px #f43f5e26}.student-stat-icon.blue{background:linear-gradient(135deg,var(--gpe-blue-100, #dbeafe) 0%,var(--gpe-blue-50, #eff6ff) 100%);color:var(--student-info);box-shadow:0 4px 12px #3b82f626}.student-stat-value{font-size:2rem;font-weight:700;color:var(--gray-900);line-height:1}.student-stat-label{font-size:var(--student-font-base);color:var(--gray-500);margin-top:.25rem}.student-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--student-touch-target);padding:.75rem 1.5rem;font-size:var(--student-font-base);font-weight:600;border-radius:var(--radius-md, 12px);border:2px solid transparent;cursor:pointer;transition:var(--transition-premium, .4s cubic-bezier(.4, 0, .2, 1))}.student-btn:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-btn:disabled{opacity:.5;cursor:not-allowed}.student-btn-primary{background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%));color:var(--white);border-color:transparent;box-shadow:var(--shadow-student, 0 10px 40px -10px rgba(79, 70, 229, .3))}.student-btn-primary:hover:not(:disabled){background:var(--gradient-student-hover, linear-gradient(135deg, #4338ca 0%, #4f46e5 100%));box-shadow:var(--shadow-student-hover, 0 14px 44px -10px rgba(79, 70, 229, .4));transform:translateY(-2px)}.student-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 12px #4f46e54d}.student-btn-secondary{background:var(--white);color:var(--gray-700);border-color:var(--gray-300)}.student-btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--student-primary);color:var(--student-primary)}.student-btn-ghost{background:transparent;color:var(--gray-600);border-color:transparent}.student-btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.student-progress{width:100%;height:8px;background:var(--gray-200);border-radius:999px;overflow:hidden}.student-progress-bar{height:100%;background:linear-gradient(90deg,var(--student-primary) 0%,var(--student-primary-light) 100%);border-radius:999px;transition:width .5s cubic-bezier(.4,0,.2,1)}.student-progress-bar.success{background:linear-gradient(90deg,var(--student-success) 0%,var(--student-success-light) 100%)}.student-progress-bar.warning{background:linear-gradient(90deg,var(--student-warning) 0%,var(--student-warning-light) 100%)}.student-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.student-course-card{display:flex;flex-direction:column;background:var(--white);border-radius:var(--card-radius-premium, 20px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));overflow:hidden;text-decoration:none;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1))}.student-course-card:hover{border-color:var(--student-primary-200);box-shadow:var(--card-shadow-colored, 0 20px 40px rgba(79, 70, 229, .12));transform:translateY(var(--card-hover-translate, -6px))}.student-course-card:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.student-course-thumbnail{position:relative;width:100%;padding-top:56.25%;background:linear-gradient(135deg,var(--student-primary-100) 0%,var(--student-primary-50) 100%);overflow:hidden}.student-course-thumbnail img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:var(--transition-image, .6s cubic-bezier(.4, 0, .2, 1))}.student-course-card:hover .student-course-thumbnail img{transform:scale(var(--card-image-scale, 1.08))}.student-course-badge{position:absolute;top:.75rem;left:.75rem;padding:.25rem .75rem;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;font-size:12px;font-weight:600;color:var(--student-primary);box-shadow:0 2px 8px #0000001f;border:1px solid rgba(255,255,255,.4)}.student-course-content{padding:1rem;flex:1;display:flex;flex-direction:column}.student-course-title{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-900);margin:0 0 .5rem;line-height:1.3}.student-course-instructor{font-size:var(--student-font-sm);color:var(--gray-500);margin-bottom:.75rem}.student-course-meta{display:flex;align-items:center;gap:1rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--gray-100)}.student-course-meta-item{display:flex;align-items:center;gap:.375rem;font-size:var(--student-font-sm);color:var(--gray-500)}.student-course-meta-item svg{width:16px;height:16px}.student-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.student-empty-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--student-primary-50);color:var(--student-primary);border-radius:50%;margin-bottom:1.25rem}.student-empty-title{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.student-empty-text{font-size:var(--student-font-base);color:var(--gray-500);margin:0 0 1.5rem;max-width:360px}.student-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.student-loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--student-primary);border-radius:50%;animation:student-spin .8s linear infinite}@keyframes student-spin{to{transform:rotate(360deg)}}.student-loading-text{font-size:var(--student-font-base);color:var(--gray-500)}.student-alert{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;border-radius:var(--student-radius-sm);margin-bottom:1rem}.student-alert.info{background:var(--student-primary-50);border:1px solid var(--student-primary-200);color:var(--student-primary-dark)}.student-alert.success{background:var(--student-success-50);border:1px solid var(--gpe-green-200);color:var(--gpe-green-800)}.student-alert.warning{background:var(--student-warning-50);border:1px solid var(--gpe-amber-300);color:var(--gpe-amber-800)}.student-alert.error{background:var(--student-danger-50);border:1px solid var(--gpe-rose-200);color:var(--gpe-rose-800)}.student-alert svg{width:22px;height:22px;flex-shrink:0}.student-alert-content{flex:1}.student-alert-title{font-weight:600;margin:0 0 .25rem}.student-alert-text{font-size:var(--student-font-sm);margin:0;opacity:.9}.student-tag{display:inline-flex;align-items:center;padding:.25rem .625rem;background:var(--gray-100);color:var(--gray-600);font-size:12px;font-weight:600;border-radius:999px}.student-tag.indigo{background:var(--student-primary-50);color:var(--student-primary)}.student-tag.green{background:var(--student-success-50);color:var(--student-success)}.student-tag.amber{background:var(--student-warning-50);color:var(--student-warning)}.student-tag.red{background:var(--student-danger-50);color:var(--student-danger)}:root.dark .student-layout,.dark .student-layout{background:linear-gradient(180deg,var(--gray-900) 0%,var(--gray-800) 100%)}:root.dark .student-header,.dark .student-header{background:var(--gray-800);border-bottom-color:var(--gray-700)}:root.dark .student-logo-text,.dark .student-logo-text{color:var(--gray-300)}:root.dark .student-search,.dark .student-search{background:var(--gray-700);border-color:var(--gray-600)}:root.dark .student-search:focus-within,.dark .student-search:focus-within{background:var(--gray-800);border-color:var(--student-primary-light)}:root.dark .student-search-input,.dark .student-search-input{color:var(--gray-200)}:root.dark .student-search-input::placeholder,.dark .student-search-input::placeholder{color:var(--gray-500)}:root.dark .student-user-name,.dark .student-user-name{color:var(--gray-200)}:root.dark .student-user-promotion,.dark .student-user-promotion{color:var(--gray-400)}:root.dark .student-sidebar,.dark .student-sidebar{background:var(--gray-800);border-right-color:var(--gray-700)}:root.dark .student-main,.dark .student-main{background:transparent}:root.dark .student-card,:root.dark .student-stat-card,:root.dark .student-course-card,.dark .student-card,.dark .student-stat-card,.dark .student-course-card{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .student-card-title,:root.dark .student-stat-value,:root.dark .student-course-title,.dark .student-card-title,.dark .student-stat-value,.dark .student-course-title{color:var(--gray-100)}:root.dark .student-stat-label,:root.dark .student-course-instructor,.dark .student-stat-label,.dark .student-course-instructor{color:var(--gray-400)}:root.dark .student-page-header-content h1,.dark .student-page-header-content h1{color:var(--gray-100)}:root.dark .student-page-header-content p,.dark .student-page-header-content p{color:var(--gray-400)}:root.dark .student-card-header,.dark .student-card-header{border-bottom-color:var(--gray-700)}:root.dark .student-header-btn,.dark .student-header-btn{color:var(--gray-400)}:root.dark .student-header-btn:hover,.dark .student-header-btn:hover{background:var(--gray-700);color:var(--student-primary-light)}:root.dark .student-menu-toggle,.dark .student-menu-toggle{color:var(--gray-400)}:root.dark .student-menu-toggle:hover,.dark .student-menu-toggle:hover{background:var(--gray-700);color:var(--gray-200)}:root.dark .student-logout-btn,.dark .student-logout-btn{color:var(--gray-500)}:root.dark .student-logout-btn:hover,.dark .student-logout-btn:hover{background:#ef444426;color:var(--gpe-rose-400);border-color:#ef44444d}:root.dark .student-btn-secondary,.dark .student-btn-secondary{background:var(--gray-700);color:var(--gray-200);border-color:var(--gray-600)}:root.dark .student-btn-secondary:hover:not(:disabled),.dark .student-btn-secondary:hover:not(:disabled){background:var(--gray-600);border-color:var(--student-primary-light);color:var(--student-primary-light)}:root.dark .student-progress,.dark .student-progress{background:var(--gray-700)}:root.dark .student-course-meta,.dark .student-course-meta{border-top-color:var(--gray-700)}:root.dark .student-empty-title,.dark .student-empty-title{color:var(--gray-200)}:root.dark .student-empty-text,.dark .student-empty-text{color:var(--gray-400)}:root.dark .student-alert.info,.dark .student-alert.info{background:#6366f126;border-color:#6366f14d;color:var(--gpe-indigo-300)}:root.dark .student-tag,.dark .student-tag{background:var(--gray-700);color:var(--gray-300)}:root.dark .student-search-shortcut,.dark .student-search-shortcut{background:var(--gray-600);border-color:var(--gray-500);color:var(--gray-300)}:root.dark .student-babillard,.dark .student-babillard{border-left-color:var(--gray-700)}:root.dark .student-babillard-mobile,.dark .student-babillard-mobile{background:var(--gray-800);box-shadow:-4px 0 24px #0006}:root.dark .student-babillard-toggle:hover,.dark .student-babillard-toggle:hover{background:#334155;color:var(--student-primary-light)}:root.dark .student-babillard-toggle.active,.dark .student-babillard-toggle.active{background:#6366f133;color:var(--student-primary-light)}:root.dark .student-babillard-indicator,.dark .student-babillard-indicator{border-color:#1e293b}.student-theme-toggle{display:flex;align-items:center;justify-content:center;min-width:var(--student-touch-target);min-height:var(--student-touch-target);background:none;border:2px solid transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--student-radius-sm);transition:all .2s ease}.student-theme-toggle:hover{background:var(--student-primary-50);color:var(--student-primary)}.student-theme-toggle:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}:root.dark .student-theme-toggle,.dark .student-theme-toggle{color:var(--gray-400)}:root.dark .student-theme-toggle:hover,.dark .student-theme-toggle:hover{background:#334155;color:var(--student-warning)}@media(prefers-contrast:high){.student-btn{border-width:3px}.student-card,.student-stat-card,.student-course-card{border-width:2px}.student-nav-link.active{border-width:3px}}@media(prefers-reduced-motion:reduce){.student-stat-card:hover,.student-course-card:hover,.student-btn-primary:hover{transform:none}.student-notification-dot,.student-loading-spinner{animation:none}.student-sidebar,.student-progress-bar{transition:none}}.student-evaluation-alert{position:fixed;top:var(--student-header-height, 64px);left:0;right:0;z-index:90;background:linear-gradient(135deg,var(--student-warning) 0%,#ea580c 100%);color:#fff;padding:.75rem 1rem;box-shadow:0 4px 12px #f59e0b4d}.student-evaluation-alert-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:.75rem;font-size:var(--student-font-sm)}.student-evaluation-alert svg{flex-shrink:0}.student-evaluation-alert span{flex:1}.student-evaluation-alert strong{font-weight:600}.student-evaluation-alert-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;color:var(--student-warning);font-weight:600;font-size:var(--student-font-sm);border-radius:var(--student-radius-sm);text-decoration:none;white-space:nowrap;transition:all .2s ease}.student-evaluation-alert-btn:hover{background:#fffbeb;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.student-container.has-alert{padding-top:calc(var(--student-header-height, 64px) + 52px)}@media(max-width:768px){.student-evaluation-alert-content{flex-wrap:wrap;font-size:13px}.student-evaluation-alert-btn{width:100%;justify-content:center;margin-top:.5rem}}[data-theme=dark] .student-evaluation-alert{background:linear-gradient(135deg,#92400e,#78350f)}[data-theme=dark] .student-evaluation-alert-btn{background:#1f2937;color:var(--student-warning-light)}[data-theme=dark] .student-evaluation-alert-btn:hover{background:#374151}.student-dashboard{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1400px;margin:0 auto;min-height:100vh}.dashboard-hero{position:relative;padding:2rem 2.5rem;background:linear-gradient(135deg,#1a56db,#7c3aed,#059669);border-radius:24px;overflow:hidden;color:#fff;min-height:180px;display:flex;align-items:center;justify-content:space-between}.dashboard-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.dashboard-hero:after{content:"";position:absolute;top:-50%;right:-20%;width:60%;height:200%;background:radial-gradient(ellipse,rgba(255,255,255,.08) 0%,transparent 70%);pointer-events:none}.hero-content{position:relative;z-index:1;flex:1}.hero-greeting{font-size:.875rem;font-weight:500;opacity:.9;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.hero-title{font-size:2rem;font-weight:800;margin:0 0 .5rem;line-height:1.2}.hero-subtitle{font-size:1rem;opacity:.85;margin:0;display:flex;align-items:center;gap:.5rem}.hero-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;font-size:.75rem;font-weight:600}.hero-badge svg{width:14px;height:14px}.hero-illustration{position:relative;z-index:1;display:flex;align-items:center;gap:1rem}.hero-quick-stats{display:flex;gap:.75rem}.hero-stat{display:flex;flex-direction:column;align-items:center;padding:1rem 1.25rem;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:16px;min-width:100px;transition:all .3s ease}.hero-stat:hover{background:#fff3;transform:translateY(-2px)}.hero-stat-value{font-size:1.5rem;font-weight:800;line-height:1}.hero-stat-value span{font-size:.875rem;font-weight:600;opacity:.8}.hero-stat-label{font-size:.6875rem;font-weight:500;opacity:.85;margin-top:.25rem;text-transform:uppercase;letter-spacing:.03em}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(120px,auto);gap:1rem}.bento-card{background:var(--white);border:1px solid rgba(0,0,0,.06);border-radius:20px;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.bento-card:hover{box-shadow:0 20px 40px #00000014;transform:translateY(-2px)}.bento-card.span-3{grid-column:span 3}.bento-card.span-4{grid-column:span 4}.bento-card.span-5{grid-column:span 5}.bento-card.span-6{grid-column:span 6}.bento-card.span-7{grid-column:span 7}.bento-card.span-8{grid-column:span 8}.bento-card.span-12{grid-column:span 12}.bento-card.row-2{grid-row:span 2}.bento-card.row-3{grid-row:span 3}.bento-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.bento-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--gray-900);margin:0}.bento-title-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--gpe-blue-50);color:var(--gpe-blue)}.bento-title-icon svg{width:18px;height:18px}.bento-link{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;color:var(--gpe-blue);text-decoration:none;padding:.375rem .75rem;border-radius:8px;transition:all .2s ease}.bento-link:hover{background:var(--gpe-blue-50)}.bento-link svg{width:16px;height:16px}.stat-card-modern{display:flex;flex-direction:column;justify-content:space-between;height:100%;cursor:pointer}.stat-card-modern .stat-header{display:flex;align-items:flex-start;justify-content:space-between}.stat-icon-modern{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;transition:transform .3s ease}.bento-card:hover .stat-icon-modern{transform:scale(1.05)}.stat-icon-modern svg{width:24px;height:24px}.stat-icon-modern.progress{background:linear-gradient(135deg,var(--gpe-green-100),var(--gpe-green-50));color:var(--gpe-green);box-shadow:0 4px 12px #05966933}.stat-icon-modern.average{background:linear-gradient(135deg,var(--gpe-orange-100),var(--gpe-orange-50));color:var(--gpe-orange);box-shadow:0 4px 12px #ea580c33}.stat-icon-modern.credits{background:linear-gradient(135deg,var(--gpe-indigo-100),var(--gpe-indigo-50));color:var(--gpe-indigo);box-shadow:0 4px 12px #4f46e533}.stat-icon-modern.courses{background:linear-gradient(135deg,var(--gpe-blue-100),var(--gpe-blue-50));color:var(--gpe-blue);box-shadow:0 4px 12px #3b82f633}.stat-trend{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:6px;font-size:.6875rem;font-weight:600}.stat-trend.up{background:var(--gpe-green-50);color:var(--gpe-green)}.stat-trend.down{background:var(--gpe-rose-50);color:var(--gpe-rose)}.stat-trend.neutral{background:var(--gray-100);color:var(--gray-500)}.stat-trend svg{width:12px;height:12px}.stat-body{margin-top:auto}.stat-value-modern{font-size:2.25rem;font-weight:800;color:var(--gray-900);line-height:1;margin-bottom:.25rem}.stat-value-modern .suffix{font-size:1rem;font-weight:600;color:var(--gray-400);margin-left:.125rem}.stat-label-modern{font-size:.875rem;font-weight:500;color:var(--gray-500)}.progress-bar-modern{height:8px;background:var(--gray-100);border-radius:999px;overflow:hidden;margin-top:1rem}.progress-fill-modern{height:100%;background:linear-gradient(90deg,var(--gpe-green-400),var(--gpe-green-500));border-radius:999px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill-modern:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.courses-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.course-card-modern{display:flex;flex-direction:column;padding:1.25rem;background:var(--white);border:1px solid var(--gray-100);border-radius:16px;transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden}.course-card-modern:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;transition:height .3s ease}.course-card-modern.color-blue:before{background:linear-gradient(90deg,var(--gpe-blue),var(--gpe-indigo))}.course-card-modern.color-green:before{background:linear-gradient(90deg,var(--gpe-green),var(--gpe-green-light))}.course-card-modern.color-purple:before{background:linear-gradient(90deg,var(--gpe-purple),var(--gpe-purple-light))}.course-card-modern.color-orange:before{background:linear-gradient(90deg,var(--gpe-orange),var(--gpe-amber))}.course-card-modern.color-rose:before{background:linear-gradient(90deg,var(--gpe-rose),var(--gpe-rose-light))}.course-card-modern:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0000001a;border-color:transparent}.course-card-modern:hover:before{height:6px}.course-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.75rem}.course-icon-badge{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px}.course-icon-badge svg{width:22px;height:22px}.color-blue .course-icon-badge{background:var(--gpe-blue-50);color:var(--gpe-blue)}.color-green .course-icon-badge{background:var(--gpe-green-50);color:var(--gpe-green)}.color-purple .course-icon-badge{background:var(--gpe-purple-50);color:var(--gpe-purple)}.color-orange .course-icon-badge{background:var(--gpe-orange-50);color:var(--gpe-orange)}.color-rose .course-icon-badge{background:var(--gpe-rose-50);color:var(--gpe-rose)}.course-modality-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:8px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.course-modality-badge svg{width:12px;height:12px}.course-modality-badge.presentiel{background:var(--gpe-blue-50);color:var(--gpe-blue)}.course-modality-badge.distanciel{background:var(--gpe-purple-50);color:var(--gpe-purple)}.course-modality-badge.enligne{background:var(--gpe-green-50);color:var(--gpe-green)}.course-card-body{flex:1;display:flex;flex-direction:column;gap:.375rem}.course-code-modern{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.course-title-modern{font-size:1rem;font-weight:600;color:var(--gray-900);line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-teacher-modern{font-size:.8125rem;color:var(--gray-500);margin:0}.course-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-100)}.course-progress-info{display:flex;flex-direction:column;gap:.375rem;flex:1;margin-right:1rem}.course-progress-text{display:flex;align-items:center;justify-content:space-between;font-size:.75rem}.course-progress-label{color:var(--gray-500)}.course-progress-value{font-weight:700;color:var(--gpe-green)}.course-progress-bar{height:6px;background:var(--gray-100);border-radius:999px;overflow:hidden}.course-progress-fill{height:100%;border-radius:999px;transition:width .6s ease}.color-blue .course-progress-fill{background:linear-gradient(90deg,var(--gpe-blue),var(--gpe-indigo))}.color-green .course-progress-fill{background:linear-gradient(90deg,var(--gpe-green),var(--gpe-green-light))}.color-purple .course-progress-fill{background:linear-gradient(90deg,var(--gpe-purple),var(--gpe-purple-light))}.color-orange .course-progress-fill{background:linear-gradient(90deg,var(--gpe-orange),var(--gpe-amber))}.color-rose .course-progress-fill{background:linear-gradient(90deg,var(--gpe-rose),var(--gpe-rose-light))}.course-continue-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--gray-100);color:var(--gray-600);text-decoration:none;transition:all .2s ease;flex-shrink:0}.course-continue-btn:hover{background:var(--gpe-blue);color:#fff}.course-continue-btn svg{width:18px;height:18px}.deadlines-timeline{display:flex;flex-direction:column;gap:.75rem}.deadline-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:14px;transition:all .2s ease;cursor:pointer}.deadline-card:hover{background:var(--white);box-shadow:0 4px 16px #00000014}.deadline-card.urgency-critical{background:linear-gradient(135deg,#e11d480f,#e11d4805);border:1px solid rgba(225,29,72,.1)}.deadline-card.urgency-high{background:linear-gradient(135deg,#ea580c0f,#ea580c05);border:1px solid rgba(234,88,12,.1)}.deadline-date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:52px;border-radius:12px;background:var(--white);border:1px solid var(--gray-200);flex-shrink:0}.deadline-day{font-size:1.25rem;font-weight:800;color:var(--gray-900);line-height:1}.deadline-month{font-size:.625rem;font-weight:600;text-transform:uppercase;color:var(--gray-500);margin-top:.125rem}.urgency-critical .deadline-date-badge{background:var(--gpe-rose-50);border-color:var(--gpe-rose-200)}.urgency-critical .deadline-day{color:var(--gpe-rose)}.urgency-high .deadline-date-badge{background:var(--gpe-orange-50);border-color:var(--gpe-orange-200)}.urgency-high .deadline-day{color:var(--gpe-orange)}.deadline-content{flex:1;min-width:0}.deadline-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deadline-course{font-size:.8125rem;color:var(--gray-500);margin:0}.deadline-meta{display:flex;align-items:center;gap:.5rem;margin-top:.375rem}.deadline-type-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:6px;font-size:.625rem;font-weight:600;text-transform:uppercase}.deadline-type-badge.devoir{background:var(--gpe-blue-50);color:var(--gpe-blue)}.deadline-type-badge.quiz{background:var(--gpe-purple-50);color:var(--gpe-purple)}.deadline-type-badge.examen{background:var(--gpe-orange-50);color:var(--gpe-orange)}.deadline-type-badge svg{width:10px;height:10px}.deadline-countdown{display:flex;align-items:center;justify-content:center;padding:.5rem .75rem;border-radius:10px;font-size:.75rem;font-weight:600;background:var(--gray-100);color:var(--gray-600);flex-shrink:0}.urgency-critical .deadline-countdown{background:var(--gpe-rose);color:#fff}.urgency-high .deadline-countdown{background:var(--gpe-orange);color:#fff}.calendar-widget{display:flex;flex-direction:column;height:100%}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:linear-gradient(135deg,var(--gpe-blue),var(--gpe-indigo));border-radius:16px;color:#fff;margin-bottom:1rem}.calendar-today-info{display:flex;flex-direction:column}.calendar-weekday{font-size:.75rem;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.03em}.calendar-date{font-size:1.5rem;font-weight:800;line-height:1.2}.calendar-month-year{font-size:.875rem;opacity:.85}.calendar-icon-wrapper{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff26;border-radius:12px}.calendar-icon-wrapper svg{width:24px;height:24px}.today-events-list{display:flex;flex-direction:column;gap:.5rem;flex:1;overflow-y:auto}.event-card{display:flex;gap:.75rem;padding:.875rem;background:var(--gray-50);border-radius:12px;border-left:3px solid var(--gpe-blue);transition:all .2s ease}.event-card:hover{background:var(--white);box-shadow:0 2px 8px #0000000f}.event-time-block{display:flex;flex-direction:column;align-items:center;min-width:48px}.event-start-time{font-size:.9375rem;font-weight:700;color:var(--gray-900)}.event-end-time{font-size:.75rem;color:var(--gray-400)}.event-details{flex:1;min-width:0}.event-title{font-size:.875rem;font-weight:500;color:var(--gray-900);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-location{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--gray-500)}.event-location svg{width:12px;height:12px}.notifications-list-modern{display:flex;flex-direction:column;gap:.5rem}.notification-card{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;background:var(--gray-50);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative}.notification-card:hover{background:var(--white);box-shadow:0 2px 8px #0000000f}.notification-card.unread{background:linear-gradient(135deg,#1a56db0f,#1a56db05);border:1px solid rgba(26,86,219,.1)}.notification-card.unread:after{content:"";position:absolute;top:.875rem;right:.875rem;width:8px;height:8px;background:var(--gpe-blue);border-radius:50%}.notification-icon-modern{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex-shrink:0}.notification-icon-modern svg{width:18px;height:18px}.notification-icon-modern.type-note{background:var(--gpe-green-50);color:var(--gpe-green)}.notification-icon-modern.type-cours{background:var(--gpe-blue-50);color:var(--gpe-blue)}.notification-icon-modern.type-rappel,.notification-icon-modern.type-deadline{background:var(--gpe-orange-50);color:var(--gpe-orange)}.notification-icon-modern.type-message{background:var(--gpe-purple-50);color:var(--gpe-purple)}.notification-content-modern{flex:1;min-width:0}.notification-message-modern{font-size:.875rem;color:var(--gray-700);margin:0 0 .25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-time-modern{font-size:.75rem;color:var(--gray-400)}.notification-badge-count{display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .5rem;background:var(--gpe-rose);color:#fff;border-radius:999px;font-size:.75rem;font-weight:700}.quick-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.quick-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem 1rem;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:14px;text-decoration:none;transition:all .2s ease;cursor:pointer}.quick-action-card:hover{background:var(--white);border-color:var(--gpe-blue-200);box-shadow:0 4px 12px #1a56db1a;transform:translateY(-2px)}.quick-action-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;margin-bottom:.625rem;transition:transform .2s ease}.quick-action-card:hover .quick-action-icon{transform:scale(1.05)}.quick-action-icon svg{width:22px;height:22px}.quick-action-icon.notes{background:linear-gradient(135deg,var(--gpe-green-100),var(--gpe-green-50));color:var(--gpe-green)}.quick-action-icon.forum{background:linear-gradient(135deg,var(--gpe-purple-100),var(--gpe-purple-50));color:var(--gpe-purple)}.quick-action-icon.messages{background:linear-gradient(135deg,var(--gpe-blue-100),var(--gpe-blue-50));color:var(--gpe-blue)}.quick-action-label{font-size:.8125rem;font-weight:500;color:var(--gray-700);text-align:center}.quick-action-card:hover .quick-action-label{color:var(--gpe-blue)}.empty-state-modern{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center}.empty-state-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--gray-100);border-radius:16px;margin-bottom:1rem}.empty-state-icon svg{width:32px;height:32px;color:var(--gray-400)}.empty-state-text{font-size:.9375rem;font-weight:500;color:var(--gray-500);margin:0}.empty-state-subtext{font-size:.8125rem;color:var(--gray-400);margin:.25rem 0 0}.empty-state-modern.small{padding:1.5rem 1rem}.empty-state-modern.small .empty-state-icon{width:48px;height:48px;border-radius:12px;margin-bottom:.75rem}.empty-state-modern.small .empty-state-icon svg{width:24px;height:24px}.empty-state-modern.small .empty-state-text{font-size:.875rem}.skeleton-hero{height:180px;border-radius:24px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.skeleton-bento{border-radius:20px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@media(max-width:1280px){.bento-card.span-3{grid-column:span 4}.bento-card.span-5{grid-column:span 6}.bento-card.span-7,.bento-card.span-8{grid-column:span 12}.courses-grid{grid-template-columns:1fr}.hero-quick-stats{flex-wrap:wrap}}@media(max-width:1024px){.bento-grid{grid-template-columns:repeat(6,1fr)}.bento-card.span-3,.bento-card.span-4{grid-column:span 3}.bento-card.span-5,.bento-card.span-6,.bento-card.span-7,.bento-card.span-8,.bento-card.span-12{grid-column:span 6}.dashboard-hero{flex-direction:column;text-align:center;gap:1.5rem;padding:2rem 1.5rem}.hero-illustration{flex-direction:column}.quick-actions-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.student-dashboard{padding:1rem;gap:1rem}.bento-grid{grid-template-columns:1fr}.bento-card.span-3,.bento-card.span-4,.bento-card.span-5,.bento-card.span-6,.bento-card.span-7,.bento-card.span-8,.bento-card.span-12{grid-column:span 1}.bento-card.row-2,.bento-card.row-3{grid-row:span 1}.dashboard-hero{min-height:auto;padding:1.5rem}.hero-title{font-size:1.5rem}.hero-quick-stats{flex-direction:column;width:100%}.hero-stat{flex-direction:row;justify-content:space-between;padding:.75rem 1rem;min-width:auto;width:100%}.hero-stat-value{font-size:1.25rem}.courses-grid,.quick-actions-grid{grid-template-columns:1fr}.quick-action-card{flex-direction:row;justify-content:flex-start;gap:1rem;padding:1rem}.quick-action-icon{margin-bottom:0}}@media(max-width:480px){.bento-card{padding:1rem;border-radius:16px}.dashboard-hero{border-radius:16px;padding:1.25rem}.stat-value-modern{font-size:1.75rem}.course-card-modern{padding:1rem}.deadline-card{padding:.75rem}}@media(prefers-reduced-motion:reduce){.bento-card,.course-card-modern,.deadline-card,.notification-card,.quick-action-card,.hero-stat{transition:none}.progress-fill-modern:after{animation:none}.skeleton-hero,.skeleton-bento{animation:none}}.bento-link:focus-visible,.course-continue-btn:focus-visible,.quick-action-card:focus-visible,.notification-card:focus-visible{outline:2px solid var(--gpe-blue);outline-offset:2px}.my-grades-page{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1200px;margin:0 auto}.grades-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.grades-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin 1s linear infinite}.grades-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.semester-select{padding:.625rem 2.5rem .625rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-700);background:var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .75rem center no-repeat;background-size:1.25em 1.25em;appearance:none;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.semester-select:hover{border-color:var(--gray-300)}.semester-select:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.grades-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;position:relative;overflow:hidden;transition:all var(--transition)}.summary-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.summary-average:before{background:var(--gradient-green)}.summary-credits:before{background:var(--gradient-purple)}.summary-ues:before{background:var(--gradient-blue)}.summary-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md)}.summary-icon svg{width:22px;height:22px}.summary-average .summary-icon{background:var(--gpe-green-50);color:var(--gpe-green)}.summary-credits .summary-icon{background:var(--gpe-purple-50);color:var(--gpe-purple)}.summary-ues .summary-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.summary-content{display:flex;flex-direction:column;gap:.125rem}.summary-value{font-size:1.75rem;font-weight:800;color:var(--gray-900);line-height:1}.summary-suffix{font-size:.875rem;font-weight:600;color:var(--gray-400);margin-left:.125rem}.summary-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.summary-progress{width:100%;height:4px;background:var(--gray-100);border-radius:2px;margin-top:auto}.summary-progress-fill{height:100%;background:var(--gradient-purple);border-radius:2px;transition:width .5s ease-out}.note-excellent{color:var(--gpe-green)}.note-good{color:var(--gpe-blue)}.note-pass{color:var(--gpe-amber)}.note-fail{color:var(--gpe-rose)}.ues-section{display:flex;flex-direction:column;gap:1rem}.section-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0}.ues-list{display:flex;flex-direction:column;gap:.75rem}.ue-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition)}.ue-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-sm)}.ue-card.status-validated{border-left:4px solid var(--gpe-green)}.ue-card.status-failed{border-left:4px solid var(--gpe-rose)}.ue-card.status-progress{border-left:4px solid var(--gpe-amber)}.ue-card.status-compensated{border-left:4px solid var(--gpe-purple)}.ue-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background var(--transition)}.ue-header:hover{background:var(--gray-50)}.ue-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.ue-code{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.ue-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0}.ue-meta{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.ue-credits{font-size:.75rem;color:var(--gray-500)}.ue-status{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.ue-status.status-validated{background:var(--gpe-green-50);color:var(--gpe-green)}.ue-status.status-failed{background:var(--gpe-rose-50);color:var(--gpe-rose)}.ue-status.status-progress{background:var(--gpe-amber-50);color:var(--gpe-amber)}.ue-status.status-compensated{background:var(--gpe-purple-50);color:var(--gpe-purple)}.ue-stats{display:flex;align-items:center;gap:1rem;flex-shrink:0}.ue-average{display:flex;flex-direction:column;align-items:center;gap:.125rem}.ue-grade{font-size:1.25rem;font-weight:700}.ue-grade-label{font-size:.6875rem;color:var(--gray-400)}.chevron-icon{width:20px;height:20px;color:var(--gray-400);transition:transform var(--transition)}.ue-card.expanded .chevron-icon{transform:rotate(180deg)}.ue-progress{height:3px;background:var(--gray-100);margin:0 1.25rem}.ue-progress-fill{height:100%;transition:width .5s ease-out}.ue-progress-fill.status-validated{background:var(--gpe-green)}.ue-progress-fill.status-failed{background:var(--gpe-rose)}.ue-progress-fill.status-progress{background:var(--gpe-amber)}.ue-progress-fill.status-compensated{background:var(--gpe-purple)}.ue-content{border-top:1px solid var(--gray-100);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem;background:var(--gray-50)}.course-item{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.course-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;gap:1rem;flex-wrap:wrap}.course-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:200px}.course-code{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.course-title{font-size:.875rem;font-weight:600;color:var(--gray-900)}.course-teacher{font-size:.75rem;color:var(--gray-500)}.course-grades{flex-shrink:0}.grade-breakdown{display:flex;gap:1rem}.grade-item{display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .75rem;background:var(--gray-50);border-radius:var(--radius);min-width:50px}.grade-item.grade-final{background:var(--gpe-blue-50)}.grade-type{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.grade-final .grade-type{color:var(--gpe-blue)}.grade-value{font-size:.9375rem;font-weight:700}.assessments-list{border-top:1px solid var(--gray-100);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;background:var(--gray-50)}.assessment-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--white);border-radius:var(--radius);border:1px solid var(--gray-100)}.assessment-item.pending{opacity:.7}.assessment-info{display:flex;align-items:center;gap:.75rem}.assessment-type{display:inline-flex;padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.assessment-type.type-quiz{background:#dbeafe;color:#1e40af}.assessment-type.type-devoir{background:var(--gpe-green-50);color:var(--gpe-green)}.assessment-type.type-examen{background:var(--gpe-amber-50);color:var(--gpe-amber)}.assessment-type.type-cc{background:var(--gpe-purple-50);color:var(--gpe-purple)}.assessment-type.type-tp{background:var(--gpe-rose-50);color:var(--gpe-rose)}.assessment-type.type-oral{background:#e0f2fe;color:#0284c7}.assessment-title{font-size:.8125rem;color:var(--gray-700)}.assessment-grade{font-size:.875rem;font-weight:600}.grade-pending{font-style:italic;color:var(--gray-400);font-weight:400}.grades-actions{display:flex;gap:1rem;flex-wrap:wrap}.action-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-700);text-decoration:none;transition:all var(--transition)}.action-link:hover{background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.action-link svg{width:18px;height:18px}@media(max-width:1024px){.grades-summary{grid-template-columns:1fr}.summary-card{flex-direction:row;align-items:center;gap:1rem}.summary-content{flex:1}.summary-progress{position:absolute;bottom:0;left:0;right:0;border-radius:0;margin-top:0}}@media(max-width:768px){.my-grades-page{padding:1rem;gap:1rem}.grades-header{flex-direction:column;align-items:stretch}.semester-select{width:100%}.page-title{font-size:1.5rem}.ue-header{flex-direction:column;align-items:flex-start;gap:.75rem}.ue-stats{width:100%;justify-content:space-between}.course-header{flex-direction:column}.grade-breakdown{width:100%;justify-content:flex-start}.grade-item{flex:1;max-width:80px}.assessment-item{flex-direction:column;align-items:flex-start;gap:.5rem}.assessment-grade{align-self:flex-end}.grades-actions{flex-direction:column}.action-link{justify-content:center}}@media(max-width:480px){.ue-meta{flex-wrap:wrap}.grade-breakdown{gap:.5rem}.grade-item{padding:.375rem .5rem;min-width:40px}.grade-value{font-size:.8125rem}}.evaluations-page{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1200px;margin:0 auto}.evaluations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.evaluations-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin 1s linear infinite}.evaluations-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.header-content{flex:1;min-width:200px}.page-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem}.page-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0}.header-actions{flex-shrink:0}.filter-select{padding:.625rem 2.5rem .625rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-700);background:var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .75rem center no-repeat;background-size:1.25em 1.25em;appearance:none;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.filter-select:hover{border-color:var(--gray-300)}.filter-select:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.evaluations-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;transition:all var(--transition)}.stat-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.stat-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);flex-shrink:0}.stat-icon svg{width:22px;height:22px}.stat-ongoing .stat-icon{background:var(--gpe-amber-50);color:var(--gpe-amber)}.stat-upcoming .stat-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.stat-value{font-size:1.5rem;font-weight:800;color:var(--gray-900);line-height:1}.stat-ongoing .stat-value{color:var(--gpe-amber)}.stat-upcoming .stat-value{color:var(--gpe-blue)}.stat-completed .stat-value{color:var(--gpe-green)}.evaluations-filters{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1rem}.search-box{flex:1;min-width:200px;position:relative}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--gray-400)}.search-input{width:100%;padding:.625rem .875rem .625rem 2.5rem;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.875rem;transition:border-color var(--transition),box-shadow var(--transition)}.search-input:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius-full);background:var(--white);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.filter-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}.filter-btn.active{background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.filter-btn.type-qcm.active{background:#dbeafe;border-color:#1e40af;color:#1e40af}.filter-btn.type-devoir.active{background:var(--gpe-green-50);border-color:var(--gpe-green);color:var(--gpe-green)}.filter-btn.type-examen.active{background:var(--gpe-amber-50);border-color:var(--gpe-amber);color:var(--gpe-amber)}.evaluations-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg)}.evaluations-empty svg{width:64px;height:64px;color:var(--gray-300);margin-bottom:1rem}.evaluations-empty h2{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.evaluations-empty p{font-size:.875rem;color:var(--gray-500);margin:0}.evaluations-content{display:flex;flex-direction:column;gap:2rem}.evaluation-section{display:flex;flex-direction:column;gap:1rem}.section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--gray-900);margin:0}.section-indicator{width:10px;height:10px;border-radius:50%}.section-indicator.upcoming{background:var(--gpe-blue)}.section-indicator.ongoing{background:var(--gpe-amber);animation:pulse 2s ease-in-out infinite}.section-indicator.completed{background:var(--gpe-green)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.section-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;background:var(--gray-100);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;color:var(--gray-600)}.evaluation-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.evaluation-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:all var(--transition)}.evaluation-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.evaluation-card.status-ongoing{border-left:4px solid var(--gpe-amber)}.evaluation-card.status-upcoming{border-left:4px solid var(--gpe-blue)}.evaluation-card.status-completed,.evaluation-card.status-submitted,.evaluation-card.status-graded{border-left:4px solid var(--gpe-green)}.evaluation-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.evaluation-badges{display:flex;gap:.5rem;flex-wrap:wrap}.type-badge,.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.type-badge.type-qcm{background:#dbeafe;color:#1e40af}.type-badge.type-devoir{background:var(--gpe-green-50);color:var(--gpe-green)}.type-badge.type-examen{background:var(--gpe-amber-50);color:var(--gpe-amber)}.type-badge.type-quiz{background:var(--gpe-purple-50);color:var(--gpe-purple)}.status-badge.status-upcoming{background:var(--gpe-blue-50);color:var(--gpe-blue)}.status-badge.status-ongoing{background:var(--gpe-amber-50);color:var(--gpe-amber)}.status-badge.status-completed,.status-badge.status-submitted{background:var(--gray-100);color:var(--gray-600)}.status-badge.status-graded{background:var(--gpe-green-50);color:var(--gpe-green)}.countdown-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.countdown-badge svg{width:14px;height:14px}.countdown-badge.urgent{background:var(--gpe-amber-50);color:var(--gpe-amber)}.countdown-badge.upcoming{background:var(--gpe-blue-50);color:var(--gpe-blue)}.evaluation-body{flex:1}.evaluation-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem;line-height:1.4}.evaluation-course{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-500);margin:0 0 .5rem}.evaluation-course svg{width:14px;height:14px;color:var(--gray-400);flex-shrink:0}.evaluation-description{font-size:.8125rem;color:var(--gray-600);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.evaluation-meta{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.75rem;border-top:1px solid var(--gray-100)}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-500)}.meta-item svg{width:16px;height:16px;color:var(--gray-400);flex-shrink:0}.meta-item.score{color:var(--gpe-green)}.meta-item.score svg{color:var(--gpe-green)}.score-value{font-weight:700}.evaluation-footer{padding-top:.75rem;border-top:1px solid var(--gray-100)}.btn-action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius);font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition)}.btn-start{background:var(--gradient-blue);color:var(--white);border:none}.btn-start:hover{box-shadow:var(--shadow-blue);transform:translateY(-1px)}.btn-results{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.btn-results:hover{background:var(--gray-200);border-color:var(--gray-300)}.evaluation-pending,.evaluation-waiting{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--gray-500)}.evaluation-pending svg,.evaluation-waiting svg{width:16px;height:16px;color:var(--gray-400)}@media(max-width:1024px){.evaluations-stats{grid-template-columns:repeat(3,1fr)}.evaluation-cards{grid-template-columns:1fr}}@media(max-width:768px){.evaluations-page{padding:1rem;gap:1rem}.evaluations-header{flex-direction:column;align-items:stretch}.filter-select{width:100%}.page-title{font-size:1.5rem}.evaluations-stats{grid-template-columns:1fr;gap:.75rem}.stat-card{padding:.875rem 1rem}.evaluations-filters{flex-direction:column;align-items:stretch}.search-box{min-width:100%}.filter-buttons{justify-content:center}.evaluation-header{flex-direction:column}.countdown-badge{align-self:flex-start}.evaluation-meta{flex-direction:column;gap:.5rem}.btn-action{width:100%;justify-content:center}}@media(max-width:480px){.evaluation-card{padding:1rem}.evaluation-badges{flex-wrap:wrap}.filter-buttons{flex-wrap:wrap;justify-content:flex-start}.filter-btn{flex:1;min-width:calc(50% - .25rem);text-align:center}}.student-agenda{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1400px;margin:0 auto}.agenda-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem;background:linear-gradient(135deg,#1a56db14,#0596690d);border:1px solid rgba(26,86,219,.1);border-radius:var(--radius-xl);position:relative;overflow:hidden}.agenda-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-blue),var(--gpe-green),var(--gpe-purple))}.agenda-header-content{display:flex;align-items:center;gap:1rem}.agenda-header-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--gradient-blue);border-radius:var(--radius-lg);color:var(--white);flex-shrink:0;box-shadow:var(--shadow-blue)}.agenda-header-icon svg{width:26px;height:26px}.agenda-header-text{flex:1}.agenda-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem}.agenda-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.4}.agenda-header-actions{flex-shrink:0}.export-dropdown{position:relative}.btn-export{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--gradient-blue);border:none;border-radius:var(--radius-md);color:var(--white);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-blue)}.btn-export:hover{transform:translateY(-2px);box-shadow:0 14px 44px -10px #1a56db66}.export-menu{position:absolute;top:calc(100% + .5rem);right:0;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:100;min-width:200px}.export-menu button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:background var(--transition)}.export-menu button:hover{background:var(--gray-50)}.export-menu button:first-child{border-bottom:1px solid var(--gray-100)}.export-menu button svg{color:var(--gray-500)}.agenda-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.filter-chip:hover{border-color:var(--gray-300)}.filter-chip.active{color:var(--white)}.filter-chip.active.type-blue{background:var(--gpe-blue);border-color:var(--gpe-blue)}.filter-chip.active.type-red{background:var(--gpe-rose);border-color:var(--gpe-rose)}.filter-chip.active.type-orange{background:var(--gpe-orange);border-color:var(--gpe-orange)}.filter-chip.active.type-purple{background:var(--gpe-purple);border-color:var(--gpe-purple)}.filter-dot{width:8px;height:8px;border-radius:50%}.filter-dot.color-blue{background:var(--gpe-blue)}.filter-dot.color-red{background:var(--gpe-rose)}.filter-dot.color-orange{background:var(--gpe-orange)}.filter-dot.color-purple{background:var(--gpe-purple)}.filter-chip.active .filter-dot{background:#fffc}.agenda-content{display:grid;grid-template-columns:1fr 380px;gap:1.5rem}.agenda-calendar{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-xl);padding:1.5rem}.calendar-navigation{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.nav-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.calendar-month-title{flex:1;font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0;text-transform:capitalize}.today-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.today-btn:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.calendar-grid{border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.weekday{padding:.75rem;text-align:center;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:80px;padding:.5rem;background:var(--white);border:none;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background var(--transition)}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover,.calendar-day.other-month{background:var(--gray-50)}.calendar-day.other-month .day-number{color:var(--gray-300)}.calendar-day.today .day-number{background:var(--gpe-blue);color:var(--white);font-weight:700}.calendar-day.selected{background:#1a56db0d}.calendar-day.selected .day-number{background:var(--gpe-blue);color:var(--white);font-weight:700}.day-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:.875rem;font-weight:500;color:var(--gray-700);border-radius:50%;margin-bottom:.25rem}.day-events-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%}.event-dot{width:6px;height:6px;border-radius:50%}.event-dot.color-blue{background:var(--gpe-blue)}.event-dot.color-red{background:var(--gpe-rose)}.event-dot.color-orange{background:var(--gpe-orange)}.event-dot.color-purple{background:var(--gpe-purple)}.events-more{font-size:.625rem;font-weight:600;color:var(--gray-400)}.agenda-side-panel{display:flex;flex-direction:column;gap:1.5rem}.panel-section{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:1.25rem}.panel-section-title{display:flex;align-items:center;justify-content:space-between;font-size:.9375rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem;text-transform:capitalize}.events-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;background:var(--gpe-blue-50);color:var(--gpe-blue);font-size:.75rem;font-weight:700;border-radius:var(--radius-full)}.selected-day-events{display:flex;flex-direction:column;gap:.75rem}.empty-events{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center}.empty-events svg{width:40px;height:40px;color:var(--gray-300);margin-bottom:.75rem}.empty-events p{font-size:.875rem;color:var(--gray-500);margin:0}.event-card{padding:1rem;background:var(--gray-50);border-radius:var(--radius-md);border-left:3px solid var(--gray-300)}.event-card.type-cours{border-left-color:var(--gpe-blue)}.event-card.type-examen{border-left-color:var(--gpe-rose)}.event-card.type-devoir{border-left-color:var(--gpe-orange)}.event-card.type-evenement{border-left-color:var(--gpe-purple)}.event-type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.event-type-badge.color-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.event-type-badge.color-red{background:var(--gpe-rose-50);color:var(--gpe-rose)}.event-type-badge.color-orange{background:var(--gpe-orange-50);color:var(--gpe-orange)}.event-type-badge.color-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.event-type-badge svg{width:12px;height:12px}.event-title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.event-meta{display:flex;flex-direction:column;gap:.25rem}.event-time,.event-location{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-500)}.event-time svg,.event-location svg{color:var(--gray-400)}.event-course{display:inline-block;margin-top:.5rem;padding:.25rem .5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--gray-600)}.upcoming-events{display:flex;flex-direction:column;gap:.5rem}.upcoming-event-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition)}.upcoming-event-item:hover{background:var(--gray-100)}.upcoming-event-indicator{width:4px;height:100%;min-height:40px;border-radius:2px;flex-shrink:0}.upcoming-event-indicator.color-blue{background:var(--gpe-blue)}.upcoming-event-indicator.color-red{background:var(--gpe-rose)}.upcoming-event-indicator.color-orange{background:var(--gpe-orange)}.upcoming-event-indicator.color-purple{background:var(--gpe-purple)}.upcoming-event-content{flex:1;min-width:0}.upcoming-event-date{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--gray-500)}.upcoming-event-title{font-size:.875rem;font-weight:600;color:var(--gray-900);margin:.125rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-event-time{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--gray-400)}.upcoming-event-time svg{width:12px;height:12px}@media(max-width:1200px){.agenda-content{grid-template-columns:1fr 340px}}@media(max-width:1024px){.agenda-content{grid-template-columns:1fr}.agenda-side-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}}@media(max-width:768px){.student-agenda{padding:1rem;gap:1rem}.agenda-header{flex-direction:column;align-items:flex-start;padding:1.25rem;gap:1rem}.agenda-header-actions{width:100%}.btn-export{width:100%;justify-content:center}.agenda-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem;margin:-.25rem;padding:.25rem}.filter-chip{white-space:nowrap;flex-shrink:0}.agenda-side-panel{grid-template-columns:1fr}.calendar-day{min-height:60px;padding:.25rem}.day-number{width:28px;height:28px;font-size:.8125rem}.weekday{padding:.5rem .25rem;font-size:.6875rem}}@media(max-width:480px){.calendar-navigation{flex-wrap:wrap}.today-btn{width:100%;margin-top:.5rem;order:4}.calendar-month-title{font-size:1.125rem}.agenda-calendar,.panel-section{padding:1rem}}.student-messages{display:flex;flex-direction:column;height:100%;min-height:calc(100vh - 160px);padding:1.5rem;max-width:1400px;margin:0 auto}.messages-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem;background:linear-gradient(135deg,#7c3aed14,#1a56db0d);border:1px solid rgba(124,58,237,.1);border-radius:var(--radius-xl);position:relative;overflow:hidden;flex-shrink:0;margin-bottom:1rem}.messages-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-purple),var(--gpe-blue),var(--gpe-green))}.messages-header-content{display:flex;align-items:center;gap:1rem}.messages-header-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--gradient-purple);border-radius:var(--radius-lg);color:var(--white);flex-shrink:0;box-shadow:var(--shadow-purple)}.messages-header-text{flex:1}.messages-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem}.messages-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.4}.messages-container{display:flex;flex:1;min-height:0;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.messages-sidebar{width:380px;flex-shrink:0;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;background:var(--white)}.sidebar-header{padding:1.25rem;border-bottom:1px solid var(--gray-200);flex-shrink:0}.sidebar-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sidebar-title{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .5rem;background:var(--gpe-purple);color:var(--white);font-size:.75rem;font-weight:700;border-radius:var(--radius-full)}.new-message-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--gradient-purple);border:none;border-radius:var(--radius-md);color:var(--white);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm)}.new-message-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-purple)}.sidebar-search{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);margin-bottom:.75rem}.sidebar-search svg{color:var(--gray-400);flex-shrink:0}.sidebar-search input{flex:1;border:none;background:transparent;font-size:.875rem;color:var(--gray-900);outline:none}.sidebar-search input::placeholder{color:var(--gray-400)}.sidebar-tabs{display:flex;gap:.5rem}.tab-btn{display:flex;align-items:center;gap:.375rem;flex:1;padding:.5rem .75rem;background:var(--gray-100);border:1px solid transparent;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition);justify-content:center}.tab-btn:hover{background:var(--gray-200)}.tab-btn.active{background:var(--gpe-purple);color:var(--white)}.tab-btn svg{width:14px;height:14px}.conversation-list{flex:1;overflow-y:auto}.empty-conversations{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.empty-conversations svg{width:48px;height:48px;color:var(--gray-300);margin-bottom:1rem}.empty-conversations p{font-size:.9375rem;color:var(--gray-500);margin:0}.conversation-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.25rem;background:transparent;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;text-align:left;transition:background var(--transition)}.conversation-item:hover{background:var(--gray-50)}.conversation-item.selected{background:#7c3aed0d;border-left:3px solid var(--gpe-purple)}.conversation-item.unread{background:#7c3aed08}.conversation-avatar{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;flex-shrink:0;background:var(--gray-200);color:var(--gray-600)}.conversation-avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg)}.conversation-avatar.role-teacher{background:linear-gradient(135deg,#7c3aed26,#7c3aed1a);color:var(--gpe-purple)}.conversation-avatar.role-admin{background:linear-gradient(135deg,#05966926,#0596691a);color:var(--gpe-green)}.online-indicator{position:absolute;bottom:2px;right:2px;width:12px;height:12px;background:#10b981;border:2px solid var(--white);border-radius:50%}.conversation-content{flex:1;min-width:0}.conversation-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.conversation-name{font-size:.9375rem;font-weight:600;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-item.unread .conversation-name{font-weight:700}.conversation-time{font-size:.75rem;color:var(--gray-400);flex-shrink:0}.conversation-preview{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.preview-text{font-size:.8125rem;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.conversation-item.unread .preview-text{color:var(--gray-700);font-weight:500}.unread-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .375rem;background:var(--gpe-purple);color:var(--white);font-size:.6875rem;font-weight:700;border-radius:var(--radius-full);flex-shrink:0}.messages-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--white)}.thread-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--white);border-bottom:1px solid var(--gray-200);flex-shrink:0}.back-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.back-btn:hover{background:var(--gray-100)}.thread-avatar{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;flex-shrink:0;background:var(--gray-200);color:var(--gray-600)}.thread-avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg)}.thread-avatar.role-teacher{background:linear-gradient(135deg,#7c3aed26,#7c3aed1a);color:var(--gpe-purple)}.thread-avatar.role-admin{background:linear-gradient(135deg,#05966926,#0596691a);color:var(--gpe-green)}.thread-info{flex:1;min-width:0}.thread-name{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-status{font-size:.8125rem;margin-top:.125rem}.status-online{color:#10b981;font-weight:500}.status-offline{color:var(--gray-500)}.thread-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;background:var(--gray-50)}.message-date-separator{display:flex;align-items:center;justify-content:center;margin:1rem 0}.message-date-separator span{padding:.375rem .875rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-full);font-size:.75rem;color:var(--gray-500);font-weight:500;text-transform:capitalize}.message-bubble{max-width:70%;display:flex;flex-direction:column}.message-bubble.own{align-self:flex-end}.message-bubble.other{align-self:flex-start}.message-content{padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.9375rem;line-height:1.5}.message-bubble.own .message-content{background:var(--gradient-purple);color:var(--white);border-bottom-right-radius:var(--radius-sm)}.message-bubble.other .message-content{background:var(--white);color:var(--gray-900);border:1px solid var(--gray-200);border-bottom-left-radius:var(--radius-sm)}.message-time{font-size:.6875rem;color:var(--gray-400);margin-top:.25rem}.message-bubble.own .message-time{text-align:right}.thread-input{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--white);border-top:1px solid var(--gray-200);flex-shrink:0}.thread-input input{flex:1;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);font-size:.9375rem;color:var(--gray-900);outline:none;transition:all var(--transition)}.thread-input input:focus{border-color:var(--gpe-purple);box-shadow:0 0 0 3px #7c3aed1a}.thread-input input::placeholder{color:var(--gray-400)}.send-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--gradient-purple);border:none;border-radius:var(--radius-lg);color:var(--white);cursor:pointer;transition:all var(--transition);flex-shrink:0}.send-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-purple)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.no-conversation-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center;background:linear-gradient(135deg,#7c3aed08,#1a56db05)}.empty-illustration svg{width:64px;height:64px;color:var(--gray-300)}.no-conversation-selected h3{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:1rem 0 .5rem}.no-conversation-selected p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:280px}.modal-content{background:var(--white);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;border-bottom:1px solid var(--gray-200)}.modal-header h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;transition:all var(--transition)}.modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.modal-body{flex:1;overflow-y:auto;padding:1.25rem}.contact-search{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:1.25rem}.contact-search svg{color:var(--gray-400);flex-shrink:0}.contact-search input{flex:1;border:none;background:transparent;font-size:.9375rem;color:var(--gray-900);outline:none}.contact-search input::placeholder{color:var(--gray-400)}.contact-list h4{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin:0 0 .75rem;padding:0 .25rem}.contact-list h4:not(:first-child){margin-top:1.5rem}.contact-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background var(--transition)}.contact-item:hover{background:var(--gray-50)}.contact-avatar{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;flex-shrink:0;background:var(--gray-200);color:var(--gray-600)}.contact-avatar.role-teacher{background:linear-gradient(135deg,#7c3aed26,#7c3aed1a);color:var(--gpe-purple)}.contact-avatar.role-admin{background:linear-gradient(135deg,#05966926,#0596691a);color:var(--gpe-green)}.contact-info{flex:1;min-width:0}.contact-name{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900)}.contact-role{display:block;font-size:.8125rem;color:var(--gray-500);margin-top:.125rem}@media(max-width:1024px){.messages-sidebar{width:340px}}@media(max-width:768px){.student-messages{padding:1rem;min-height:calc(100vh - 120px)}.messages-header{padding:1.25rem;flex-direction:column;align-items:flex-start}.messages-header-content{flex-direction:column;align-items:center;width:100%;text-align:center}.messages-header-icon{width:48px;height:48px}.messages-title{font-size:1.25rem}.messages-subtitle{font-size:.875rem}.messages-container{position:relative;overflow:hidden}.messages-sidebar{width:100%;position:absolute;inset:0;z-index:1;border-right:none;transition:transform .3s ease-out}.messages-main{position:absolute;inset:0;z-index:2;transform:translate(100%);transition:transform .3s ease-out}.messages-container.show-thread .messages-main{transform:translate(0)}.messages-container.show-thread .messages-sidebar{transform:translate(-100%)}.back-btn{display:flex}.sidebar-tabs{flex-direction:column}.tab-btn{justify-content:flex-start}.conversation-avatar{width:44px;height:44px}.conversation-item{padding:.875rem 1rem}}@media(max-width:480px){.sidebar-header{padding:1rem}.sidebar-title{font-size:1.125rem}.thread-messages{padding:1rem}.thread-input{padding:.875rem 1rem}.message-bubble{max-width:85%}}.student-profile{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1000px;margin:0 auto}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;min-height:400px}.profile-loading .loading-spinner{width:48px;height:48px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.profile-loading p{font-size:.9375rem;color:var(--gray-500);margin:0}.profile-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;min-height:400px;background:var(--white);border-radius:var(--radius-xl);border:1px solid var(--gray-200)}.profile-error-state .error-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--gpe-rose-50);color:var(--gpe-rose);border-radius:50%;margin-bottom:1.5rem}.profile-error-state .error-icon svg{width:36px;height:36px}.profile-error-state h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.profile-error-state p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem;max-width:400px}.profile-error-state .btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;color:#fff;background:var(--gradient-blue);border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.profile-error-state .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-blue)}.profile-header{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-xl);overflow:hidden}.profile-banner{height:120px;background:var(--gradient-blue)}.profile-main-info{display:flex;align-items:flex-end;gap:1.5rem;padding:0 1.5rem 1.5rem;margin-top:-50px}.profile-avatar{position:relative;width:100px;height:100px;border-radius:50%;border:4px solid var(--white);background:linear-gradient(135deg,var(--gpe-blue-50),var(--gpe-blue-100));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-md)}.profile-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-initials{font-size:2rem;font-weight:700;color:var(--gpe-blue)}.profile-identity{flex:1;padding-bottom:.5rem}.profile-name{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.profile-matricule{font-size:.875rem;color:var(--gray-500);margin:0 0 .75rem}.profile-badges{display:flex;gap:.5rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-role{background:var(--gpe-blue-50);color:var(--gpe-blue)}.badge-status{background:var(--gpe-green-50);color:var(--gpe-green)}.badge-status.status-suspended{background:var(--gpe-rose-50);color:var(--gpe-rose)}.badge-status.status-graduated{background:var(--gpe-purple-50);color:var(--gpe-purple)}.badge-modality{background:var(--gray-100);color:var(--gray-600)}.profile-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--gray-200);padding-bottom:0;background:var(--white);border-radius:var(--radius-lg);padding:.5rem}.profile-tabs .tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--gray-500);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.profile-tabs .tab-btn:hover{color:var(--gray-700);background:var(--gray-50)}.profile-tabs .tab-btn.active{color:var(--gpe-blue);background:var(--gpe-blue-50)}.profile-tabs .tab-btn svg{width:18px;height:18px}.profile-content{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-xl)}.tab-panel{padding:1.5rem}.section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.section-title svg{width:20px;height:20px;color:var(--gpe-blue)}.section-title.danger svg{color:var(--gpe-rose)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.info-field{display:flex;flex-direction:column;gap:.375rem}.info-field.full-width{grid-column:span 3}.info-field label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.info-field span{font-size:.9375rem;color:var(--gray-900)}.info-field .code{display:inline-block;font-family:monospace;font-size:.9375rem;color:var(--gpe-blue);background:var(--gpe-blue-50);padding:.25rem .625rem;border-radius:var(--radius-sm);width:fit-content}.email-verified{display:inline-flex;align-items:center;gap:.375rem}.email-verified svg{color:var(--gpe-green)}.notification-list{display:flex;flex-direction:column;gap:.75rem}.notification-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--gray-50);border-radius:var(--radius-md)}.notification-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.notification-label{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.notification-desc{font-size:.8125rem;color:var(--gray-500)}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--gray-300);border-radius:var(--radius-full);transition:all var(--transition)}.toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:var(--white);border-radius:50%;transition:all var(--transition);box-shadow:var(--shadow-sm)}.toggle-switch input:checked+.toggle-slider{background:var(--gpe-green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.security-card{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.25rem;background:var(--gray-50);border-radius:var(--radius-lg);margin-bottom:1rem}.security-card:last-child{margin-bottom:0}.security-info{flex:1}.security-info p{font-size:.9375rem;color:var(--gray-700);margin:0 0 .375rem}.security-tip{font-size:.8125rem;color:var(--gray-500)}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--gradient-blue);color:var(--white);border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-blue);white-space:nowrap}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 44px -10px #1a56db66}.btn-danger{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--white);color:var(--gpe-rose);border:1px solid var(--gpe-rose);border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn-danger:hover{background:var(--gpe-rose);color:var(--white)}.password-form{margin-top:1rem;padding:1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg)}.form-field{margin-bottom:1rem}.form-field label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.375rem}.form-field input{width:100%;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.9375rem;color:var(--gray-900);transition:all var(--transition)}.form-field input:focus{outline:none;border-color:var(--gpe-blue);box-shadow:0 0 0 3px #1a56db1a}.form-error{padding:.75rem 1rem;background:var(--gpe-rose-50);border:1px solid var(--gpe-rose);border-radius:var(--radius-md);color:var(--gpe-rose);font-size:.875rem;margin-bottom:1rem}.form-success{padding:.75rem 1rem;background:var(--gpe-green-50);border:1px solid var(--gpe-green);border-radius:var(--radius-md);color:var(--gpe-green);font-size:.875rem;margin-bottom:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}@media(max-width:1024px){.info-grid{grid-template-columns:repeat(2,1fr)}.info-field.full-width{grid-column:span 2}}@media(max-width:768px){.student-profile{padding:1rem;gap:1rem}.profile-main-info{flex-direction:column;align-items:center;text-align:center;gap:1rem;margin-top:-40px}.profile-avatar{width:80px;height:80px}.avatar-initials{font-size:1.5rem}.profile-name{font-size:1.25rem}.profile-badges{justify-content:center}.profile-tabs{overflow-x:auto;padding:.25rem;gap:.25rem}.profile-tabs .tab-btn{padding:.625rem .875rem;font-size:.875rem;white-space:nowrap}.profile-tabs .tab-btn svg{display:none}.tab-panel{padding:1.25rem}.info-grid{grid-template-columns:1fr}.info-field.full-width{grid-column:span 1}.security-card{flex-direction:column;align-items:stretch;text-align:center;gap:1rem}.security-card .btn-secondary,.security-card .btn-danger{justify-content:center;width:100%}.notification-item{flex-direction:column;align-items:flex-start;gap:.75rem}.form-actions{flex-direction:column}.form-actions button{width:100%;justify-content:center}}@media(max-width:480px){.profile-header{border-radius:var(--radius-lg)}.profile-banner{height:100px}.profile-avatar{width:70px;height:70px}.avatar-initials{font-size:1.25rem}.profile-name{font-size:1.125rem}.badge{font-size:.6875rem;padding:.1875rem .5rem}.profile-content{border-radius:var(--radius-lg)}.tab-panel{padding:1rem}.section-title{font-size:.9375rem}.notification-item{padding:.875rem 1rem}}.student-gpe{padding:2rem;max-width:1100px;margin:0 auto}.student-gpe__header{margin-bottom:2rem}.student-gpe__title{font-size:1.75rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .25rem}.student-gpe__subtitle{font-size:.95rem;color:var(--text-secondary, #64748b);margin:0}.student-gpe__profile{background:linear-gradient(135deg,#0f766e,#115e59);border-radius:16px;padding:2rem;color:#fff;display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 24px #0f766e33;position:relative;overflow:hidden}.student-gpe__profile:before{content:"";position:absolute;top:-50%;right:-20%;width:300px;height:300px;background:#ffffff0d;border-radius:50%;pointer-events:none}.student-gpe__avatar{width:80px;height:80px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0;border:3px solid rgba(255,255,255,.3);overflow:hidden}.student-gpe__avatar-img{width:100%;height:100%;object-fit:cover}.student-gpe__profile-info{flex:1;min-width:0}.student-gpe__profile-info h2{font-size:1.35rem;font-weight:700;margin:0 0 .25rem}.student-gpe__profile-role{font-size:.9rem;opacity:.85;margin:0 0 .75rem;display:inline-flex;align-items:center;gap:.35rem;background:#ffffff26;padding:.2rem .75rem;border-radius:12px}.student-gpe__profile-meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.85rem;opacity:.8}.student-gpe__profile-meta span{display:flex;align-items:center;gap:.4rem}.student-gpe__profile-badge{background:#ffffff1a;padding:.15rem .6rem;border-radius:8px}.student-gpe__profile-actions{flex-shrink:0}.student-gpe__action-btn{display:flex;align-items:center;gap:.5rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;padding:.6rem 1rem;border-radius:10px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.student-gpe__action-btn:hover{background:#ffffff40;transform:translateY(-1px)}.student-gpe__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.student-gpe__stat{background:#fff;border-radius:12px;border:1px solid var(--border-color, #e2e8f0);padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:box-shadow .2s}.student-gpe__stat:hover{box-shadow:0 4px 12px #0000000d}.student-gpe__stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-gpe__stat-icon--docs{background:#dbeafe;color:#2563eb}.student-gpe__stat-icon--payments{background:#d1fae5;color:#059669}.student-gpe__stat-icon--resources{background:#ede9fe;color:#7c3aed}.student-gpe__stat-content{display:flex;flex-direction:column}.student-gpe__stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);line-height:1.2}.student-gpe__stat-label{font-size:.82rem;color:var(--text-secondary, #64748b)}.student-gpe__error{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;background:#fee2e2;color:#dc2626;border-radius:10px;margin-bottom:1.5rem;font-size:.9rem}.student-gpe__loading{text-align:center;padding:4rem 2rem;color:var(--text-secondary, #94a3b8)}.student-gpe__spinner{width:40px;height:40px;border:3px solid var(--border-color, #e2e8f0);border-top-color:#0f766e;border-radius:50%;margin:0 auto 1rem;animation:student-gpe-spin .8s linear infinite}@keyframes student-gpe-spin{to{transform:rotate(360deg)}}.student-gpe__sections{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.student-gpe__section{background:#fff;border-radius:14px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden;transition:box-shadow .2s}.student-gpe__section:hover{box-shadow:0 4px 16px #0000000f}.student-gpe__section-header{display:flex;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc)}.student-gpe__section-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-gpe__section-icon--inscription{background:#dbeafe;color:#2563eb}.student-gpe__section-icon--admin{background:#fef3c7;color:#d97706}.student-gpe__section-icon--payment{background:#d1fae5;color:#059669}.student-gpe__section-icon--resources{background:#ede9fe;color:#7c3aed}.student-gpe__section-info{flex:1;min-width:0}.student-gpe__section-title{font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0 0 .15rem}.student-gpe__section-desc{font-size:.78rem;color:var(--text-secondary, #94a3b8);margin:0}.student-gpe__section-count{font-size:.8rem;color:var(--text-secondary, #64748b);background:var(--bg-subtle, #f1f5f9);padding:.2rem .65rem;border-radius:12px;font-weight:500}.student-gpe__doc-list{list-style:none;padding:0;margin:0}.student-gpe__doc-item{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--border-color, #f1f5f9);transition:background .15s;cursor:pointer}.student-gpe__doc-item:last-child{border-bottom:none}.student-gpe__doc-item:hover{background:var(--bg-hover, #f8fafc)}.student-gpe__doc-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.68rem;font-weight:700;text-transform:uppercase}.student-gpe__doc-icon--pdf{background:#fee2e2;color:#dc2626}.student-gpe__doc-icon--doc{background:#dbeafe;color:#2563eb}.student-gpe__doc-icon--xls{background:#d1fae5;color:#059669}.student-gpe__doc-icon--img{background:#fef3c7;color:#d97706}.student-gpe__doc-info{flex:1;min-width:0}.student-gpe__doc-name{font-size:.9rem;font-weight:500;color:var(--text-primary, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-gpe__doc-meta{font-size:.78rem;color:var(--text-secondary, #94a3b8);margin-top:.15rem;display:flex;align-items:center;gap:.5rem}.student-gpe__doc-action{color:var(--text-secondary, #94a3b8);flex-shrink:0;transition:color .15s}.student-gpe__doc-item:hover .student-gpe__doc-action{color:#0f766e}.student-gpe__status{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:10px;margin-left:.25rem}.student-gpe__status--available{background:#d1fae5;color:#059669}.student-gpe__status--pending{background:#fef3c7;color:#d97706}.student-gpe__status--expired{background:#fee2e2;color:#dc2626}.student-gpe__empty{padding:2.5rem 1.5rem;text-align:center;color:var(--text-secondary, #94a3b8)}.student-gpe__empty svg{margin-bottom:.75rem;opacity:.35}.student-gpe__empty p{font-size:.9rem;font-weight:500;color:var(--text-primary, #64748b);margin:0 0 .25rem}.student-gpe__empty span{font-size:.8rem}.student-gpe__help{margin-top:2rem;background:linear-gradient(135deg,#f0fdfa,#e0f2fe);border:1px solid #99f6e4;border-radius:14px;padding:1.5rem;display:flex;align-items:center;gap:1.25rem}.student-gpe__help-icon{width:50px;height:50px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#0f766e;box-shadow:0 2px 8px #0f766e26}.student-gpe__help-content{flex:1}.student-gpe__help-content h4{font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0 0 .25rem}.student-gpe__help-content p{font-size:.85rem;color:var(--text-secondary, #64748b);margin:0}.student-gpe__help-btn{background:#0f766e;color:#fff;border:none;padding:.7rem 1.25rem;border-radius:10px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.student-gpe__help-btn:hover{background:#115e59;transform:translateY(-1px)}@media(max-width:900px){.student-gpe__sections,.student-gpe__stats{grid-template-columns:1fr}}@media(max-width:768px){.student-gpe{padding:1rem}.student-gpe__profile{flex-direction:column;text-align:center;padding:1.5rem}.student-gpe__profile-meta{justify-content:center}.student-gpe__profile-actions{margin-top:.5rem}.student-gpe__help{flex-direction:column;text-align:center}}[data-theme=dark] .student-gpe__section,[data-theme=dark] .student-gpe__stat{background:var(--card-bg, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .student-gpe__section-header{background:var(--bg-subtle, #0f172a)}[data-theme=dark] .student-gpe__title,[data-theme=dark] .student-gpe__section-title,[data-theme=dark] .student-gpe__doc-name,[data-theme=dark] .student-gpe__stat-value,[data-theme=dark] .student-gpe__help-content h4{color:var(--text-primary, #f1f5f9)}[data-theme=dark] .student-gpe__help{background:linear-gradient(135deg,#134e4a,#164e63);border-color:#2dd4bf}[data-theme=dark] .student-gpe__help-icon{background:#0f172a}[data-theme=dark] .student-gpe__empty p{color:var(--text-secondary, #94a3b8)}.formation-card{display:flex;flex-direction:column;background:var(--white);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));border-radius:var(--card-radius-premium, 20px);box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));overflow:hidden;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1))}.formation-card:hover{box-shadow:var(--card-shadow-colored, 0 20px 40px rgba(79, 70, 229, .12));transform:translateY(var(--card-hover-translate, -6px))}.formation-card.status-pending{border-left:4px solid var(--gray-400)}.formation-card.status-enrolled{border-left:4px solid var(--gpe-indigo, #4f46e5)}.formation-card.status-in-progress{border-left:4px solid var(--gpe-orange)}.formation-card.status-completed{border-left:4px solid var(--gpe-green)}.formation-card.status-certified{border-left:4px solid var(--gpe-indigo, #4f46e5)}.formation-card.status-failed{border-left:4px solid var(--gpe-rose)}.formation-card.status-cancelled{border-left:4px solid var(--gray-300);opacity:.7}.formation-card-cover{position:relative;width:100%;height:180px;background:linear-gradient(135deg,var(--gpe-indigo-50, #eef2ff) 0%,var(--gpe-indigo-100, #e0e7ff) 100%);overflow:hidden}.formation-cover-image{width:100%;height:100%;object-fit:cover;transition:var(--transition-image, .6s cubic-bezier(.4, 0, .2, 1))}.formation-card:hover .formation-cover-image{transform:scale(var(--card-image-scale, 1.08))}.formation-cover-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,#1a56db14,#05966914)}.formation-cover-placeholder svg{width:48px;height:48px;color:var(--gray-300)}.formation-status-badge{position:absolute;top:.75rem;right:.75rem;padding:.375rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:var(--radius-full);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026;border:1px solid rgba(255,255,255,.3)}.formation-status-badge.status-pending{background:#9ca3afe6;color:var(--white)}.formation-status-badge.status-enrolled{background:#1a56dbe6;color:var(--white)}.formation-status-badge.status-in-progress{background:#ea580ce6;color:var(--white)}.formation-status-badge.status-completed{background:#059669e6;color:var(--white)}.formation-status-badge.status-certified{background:#4f46e5e6;color:var(--white)}.formation-status-badge.status-failed{background:#e11d48e6;color:var(--white)}.formation-status-badge.status-cancelled{background:#6b7280e6;color:var(--white)}.formation-card-content{display:flex;flex-direction:column;gap:.625rem;padding:1rem;flex:1}.formation-card-header{display:flex;align-items:center;justify-content:space-between}.formation-level{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;background:var(--gray-100);color:var(--gray-600);border-radius:var(--radius-full)}.formation-level svg{width:12px;height:12px}.formation-progress-text{font-size:.8125rem;font-weight:700;color:var(--gpe-green)}.formation-card.status-pending .formation-progress-text,.formation-card.status-enrolled .formation-progress-text{color:var(--gray-400)}.formation-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.formation-session{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-600)}.formation-session svg{width:14px;height:14px;color:var(--gray-400);flex-shrink:0}.formation-dates{display:flex;align-items:center}.formation-date{font-size:.75rem;color:var(--gray-500)}.formation-progress-bar{width:100%;height:6px;background:var(--gray-100);border-radius:999px;overflow:hidden;margin-top:.5rem}.formation-progress-fill{height:100%;background:var(--gradient-green);border-radius:999px;transition:width .6s cubic-bezier(.4,0,.2,1)}.formation-card.status-in-progress .formation-progress-fill{background:var(--gradient-orange)}.formation-card.status-certified .formation-progress-fill{background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%))}.formation-current-lesson{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-md);margin-top:.25rem}.formation-current-lesson>svg{width:16px;height:16px;color:var(--gpe-blue);flex-shrink:0;margin-top:.125rem}.current-lesson-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.current-lesson-chapter{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--gray-400)}.current-lesson-title{font-size:.8125rem;font-weight:500;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.formation-card-actions{display:flex;gap:.5rem;padding:1rem;padding-top:0}.formation-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;flex:1;padding:.625rem 1rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition);cursor:pointer;border:none}.formation-action-btn svg{width:16px;height:16px}.formation-action-btn.primary{background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%));color:var(--white);box-shadow:0 4px 12px #4f46e533}.formation-action-btn.primary:hover{background:var(--gradient-student-hover, linear-gradient(135deg, #4338ca 0%, #4f46e5 100%));box-shadow:0 8px 20px #4f46e54d;transform:translateY(-1px)}.formation-action-btn.secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-200)}.formation-action-btn.secondary:hover{background:var(--gray-50);border-color:var(--gray-300)}.formation-pending-message{display:flex;align-items:center;justify-content:center;flex:1;padding:.625rem 1rem;font-size:.8125rem;font-style:italic;color:var(--gray-500);background:var(--gray-50);border-radius:var(--radius-md)}[data-theme=dark] .formation-card{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .formation-card:hover{border-color:var(--gray-600)}[data-theme=dark] .formation-cover-placeholder{background:linear-gradient(135deg,#1a56db26,#05966926)}[data-theme=dark] .formation-cover-placeholder svg{color:var(--gray-500)}[data-theme=dark] .formation-level{background:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .formation-title{color:var(--gray-100)}[data-theme=dark] .formation-session{color:var(--gray-400)}[data-theme=dark] .formation-session svg{color:var(--gray-500)}[data-theme=dark] .formation-date{color:var(--gray-400)}[data-theme=dark] .formation-progress-bar,[data-theme=dark] .formation-current-lesson{background:var(--gray-700)}[data-theme=dark] .current-lesson-chapter{color:var(--gray-500)}[data-theme=dark] .current-lesson-title{color:var(--gray-300)}[data-theme=dark] .formation-action-btn.secondary{background:var(--gray-700);color:var(--gray-200);border-color:var(--gray-600)}[data-theme=dark] .formation-action-btn.secondary:hover{background:var(--gray-600);border-color:var(--gray-500)}[data-theme=dark] .formation-pending-message{background:var(--gray-700);color:var(--gray-400)}@media(max-width:768px){.formation-card-cover{height:120px}.formation-card-content{padding:.875rem}.formation-title{font-size:.9375rem}.formation-card-actions{padding:.875rem;padding-top:0;flex-direction:column}.formation-action-btn{width:100%}}@media(max-width:480px){.formation-card-cover{height:100px}.formation-cover-placeholder svg{width:36px;height:36px}.formation-card-content{padding:.75rem}.formation-card-header{flex-wrap:wrap;gap:.375rem}.formation-current-lesson{padding:.625rem}}.formations-hub{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1400px;margin:0 auto}.formations-header{padding:2rem 2.5rem;background:var(--gradient-student-subtle, linear-gradient(135deg, rgba(79, 70, 229, .08) 0%, rgba(99, 102, 241, .04) 100%));border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));border-radius:var(--card-radius-premium, 20px);box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));position:relative;overflow:hidden;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1))}.formations-header:hover{box-shadow:0 8px 24px #4f46e51a}.formations-header:before{content:"";position:absolute;top:0;left:0;right:0;height:var(--accent-line-height, 4px);background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%))}.header-content{display:flex;flex-direction:column;gap:.5rem}.formations-title{display:flex;align-items:center;gap:.75rem;font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0}.formations-title svg{width:32px;height:32px;color:var(--gpe-indigo, #4f46e5)}.formations-subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;padding-left:2.75rem}.formations-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);transition:all var(--transition)}.stat-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);flex-shrink:0}.stat-total .stat-icon{background:var(--gpe-blue-50);color:var(--gpe-blue)}.stat-progress .stat-icon{background:var(--gpe-orange-50);color:var(--gpe-orange)}.stat-completed .stat-icon{background:var(--gpe-green-50);color:var(--gpe-green)}.stat-certified .stat-icon{background:linear-gradient(135deg,var(--gpe-indigo-100, #e0e7ff) 0%,var(--gpe-indigo-50, #eef2ff) 100%);color:var(--gpe-indigo, #4f46e5);box-shadow:0 4px 12px #4f46e533}.stat-content{display:flex;flex-direction:column;gap:.125rem}.stat-value{font-size:1.75rem;font-weight:800;color:var(--gray-900);line-height:1}.stat-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.formations-tabs{display:flex;gap:.5rem;padding:.375rem;background:var(--gray-100);border-radius:var(--radius-lg);overflow-x:auto}.tab-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--gray-600);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);white-space:nowrap}.tab-btn:hover{color:var(--gray-900);background:var(--gray-50)}.tab-btn.active{color:var(--gpe-indigo, #4f46e5);background:var(--white);box-shadow:var(--shadow-sm)}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .375rem;font-size:.6875rem;font-weight:700;background:var(--gray-200);color:var(--gray-600);border-radius:var(--radius-full)}.tab-btn.active .tab-count{background:var(--gpe-indigo-50, #eef2ff);color:var(--gpe-indigo, #4f46e5)}.formations-content{min-height:300px}.formations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.formations-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg)}.empty-illustration{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--gray-50);border-radius:var(--radius-full);margin-bottom:1.5rem}.empty-illustration svg{width:40px;height:40px;color:var(--gray-300)}.formations-empty h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.formations-empty p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem;max-width:400px}.explore-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;color:var(--white);background:var(--gradient-student, linear-gradient(135deg, #4f46e5 0%, #6366f1 100%));border-radius:var(--radius-md, 12px);text-decoration:none;transition:var(--card-transition-premium, all .4s cubic-bezier(.4, 0, .2, 1));box-shadow:var(--shadow-student, 0 10px 40px -10px rgba(79, 70, 229, .3))}.explore-btn:hover{background:var(--gradient-student-hover, linear-gradient(135deg, #4338ca 0%, #4f46e5 100%));box-shadow:var(--shadow-student-hover, 0 14px 44px -10px rgba(79, 70, 229, .4));transform:translateY(-2px)}.explore-btn svg{width:18px;height:18px}.formations-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);margin-top:2rem}.formations-error svg{width:48px;height:48px;color:var(--gpe-rose);margin-bottom:1rem}.formations-error h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.formations-error p{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.retry-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;color:var(--white);background:var(--gpe-blue);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition)}.retry-btn:hover{background:var(--gpe-blue-dark)}.retry-btn svg{width:18px;height:18px}.skeleton-header{padding:2rem}.skeleton-text{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-title{width:250px;height:32px;margin-bottom:.5rem}.skeleton-subtitle{width:350px;height:18px}.skeleton-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.skeleton-stat{height:90px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.formation-card-skeleton{height:360px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-lg)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}[data-theme=dark] .formations-header{background:linear-gradient(135deg,#7c3aed1f,#1a56db14);border-color:#7c3aed33}[data-theme=dark] .formations-title{color:var(--gray-100)}[data-theme=dark] .formations-subtitle{color:var(--gray-400)}[data-theme=dark] .stat-card{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .stat-card:hover{border-color:var(--gray-600)}[data-theme=dark] .stat-value{color:var(--gray-100)}[data-theme=dark] .stat-label{color:var(--gray-400)}[data-theme=dark] .formations-tabs{background:var(--gray-800)}[data-theme=dark] .tab-btn{color:var(--gray-400)}[data-theme=dark] .tab-btn:hover{color:var(--gray-200);background:var(--gray-700)}[data-theme=dark] .tab-btn.active{color:var(--gpe-purple-light);background:var(--gray-700)}[data-theme=dark] .tab-count{background:var(--gray-700);color:var(--gray-400)}[data-theme=dark] .tab-btn.active .tab-count{background:#7c3aed33;color:var(--gpe-purple-light)}[data-theme=dark] .formations-empty{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .empty-illustration{background:var(--gray-700)}[data-theme=dark] .empty-illustration svg{color:var(--gray-500)}[data-theme=dark] .formations-empty h3{color:var(--gray-100)}[data-theme=dark] .formations-empty p{color:var(--gray-400)}[data-theme=dark] .formations-error{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .formations-error h2{color:var(--gray-100)}[data-theme=dark] .formations-error p{color:var(--gray-400)}[data-theme=dark] .skeleton-text,[data-theme=dark] .skeleton-stat,[data-theme=dark] .formation-card-skeleton{background:linear-gradient(90deg,var(--gray-700) 25%,var(--gray-600) 50%,var(--gray-700) 75%);background-size:200% 100%}@media(max-width:1280px){.formations-stats{grid-template-columns:repeat(2,1fr)}.formations-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:1024px){.skeleton-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.formations-hub{padding:1rem;gap:1rem}.formations-header{padding:1.25rem}.formations-title{font-size:1.5rem}.formations-title svg{width:28px;height:28px}.formations-subtitle{padding-left:0;font-size:.875rem}.formations-stats{grid-template-columns:1fr;gap:.75rem}.stat-card{padding:1rem}.stat-icon{width:40px;height:40px}.stat-icon svg{width:20px;height:20px}.stat-value{font-size:1.5rem}.formations-tabs{padding:.25rem}.tab-btn{padding:.5rem .75rem;font-size:.8125rem}.formations-grid,.skeleton-stats{grid-template-columns:1fr}}@media(max-width:480px){.formations-header{padding:1rem}.formations-title{font-size:1.25rem;gap:.5rem}.formations-title svg{width:24px;height:24px}.formations-empty{padding:3rem 1.5rem}.empty-illustration{width:64px;height:64px}.empty-illustration svg{width:32px;height:32px}}.lms-sidebar{display:flex;flex-direction:column;width:340px;min-width:340px;max-height:100%;background:var(--white);border-right:1px solid var(--gray-200);overflow:visible;position:relative;z-index:10;transition:width .3s ease,min-width .3s ease}.lms-sidebar.collapsed{width:72px;min-width:72px}.lms-sidebar-close{display:none}.lms-sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;position:absolute;top:1rem;right:-14px;width:28px;height:28px;background:var(--white);border:1px solid var(--gray-200);border-radius:50%;cursor:pointer;z-index:100;transition:all .2s;box-shadow:0 2px 8px #00000026}.lms-sidebar-collapse-btn:hover{background:var(--gray-50);transform:scale(1.1)}.lms-sidebar-collapse-btn svg{width:16px;height:16px;stroke:var(--gray-500)}.lms-sidebar.collapsed .lms-sidebar-collapse-btn{right:-14px}.lms-sidebar-header{padding:1.25rem;border-bottom:1px solid var(--gray-100);flex-shrink:0}.lms-sidebar.collapsed .lms-sidebar-header{padding:1rem .75rem;display:flex;justify-content:center}.lms-sidebar-cover{width:100%;height:140px;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1rem;box-shadow:0 4px 12px #0000001a}.lms-sidebar-cover img{width:100%;height:100%;object-fit:cover}.lms-sidebar-title{font-size:1.0625rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem;line-height:1.4}.lms-sidebar-stats{display:flex;gap:1rem;margin-bottom:1rem}.lms-stat{flex:1;text-align:center;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-md)}.lms-stat-value{display:block;font-size:1.125rem;font-weight:700;color:var(--gray-900)}.lms-stat-label{display:block;font-size:.6875rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-top:.125rem}.lms-sidebar-progress{display:flex;flex-direction:column;gap:.5rem}.lms-progress-bar{height:8px;background:var(--gray-100);border-radius:4px;overflow:hidden}.lms-progress-fill{height:100%;background:linear-gradient(90deg,var(--success-500),var(--success-400));border-radius:4px;transition:width .5s ease}.lms-progress-text{font-size:.75rem;font-weight:500;color:var(--gray-500)}.lms-collapsed-progress{width:48px;height:48px}.circular-progress{width:48px;height:48px;transform:rotate(-90deg)}.circular-progress .circle-bg{fill:none;stroke:var(--gray-100);stroke-width:3}.circular-progress .circle-fill{fill:none;stroke:var(--success-500);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .5s ease}.circular-progress .progress-text{fill:var(--gray-700);font-size:7px;font-weight:700;text-anchor:middle;transform:rotate(90deg);transform-origin:center}.lms-sidebar-nav{flex:1;overflow-y:auto;padding:.75rem}.lms-sidebar.collapsed .lms-sidebar-nav{padding:.5rem}.lms-chapter{margin-bottom:.75rem;border-radius:var(--radius-lg);overflow:hidden;background:var(--gray-50);border:1px solid transparent;transition:all .2s}.lms-chapter.has-current{background:#1a56db0d;border-color:#1a56db26}.lms-chapter.completed{background:#22c55e0d;border-color:#22c55e26}.lms-chapter.locked{opacity:.7}.lms-chapter-header{display:flex;align-items:flex-start;gap:.875rem;width:100%;padding:1rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .2s}.lms-chapter.locked .lms-chapter-header{cursor:not-allowed}.lms-chapter-header:hover:not(:disabled){background:#00000008}.lms-chapter-status{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;flex-shrink:0;font-size:.8125rem;font-weight:700;transition:all .2s}.lms-chapter-status.in-progress{background:var(--gray-100);color:var(--gray-600)}.lms-chapter-status.complete{background:var(--success-500);color:#fff}.lms-chapter-status.locked{background:var(--gray-200);color:var(--gray-400)}.lms-chapter-status svg{width:16px;height:16px}.lms-chapter-status.complete svg{stroke:#fff}.lms-chapter-status.locked svg{stroke:var(--gray-400);width:14px;height:14px}.lms-sidebar.collapsed .lms-chapter-header{padding:.75rem;justify-content:center}.lms-sidebar.collapsed .lms-chapter-status{width:36px;height:36px}.lms-chapter-info{flex:1;min-width:0}.lms-chapter-number{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:.25rem}.lms-chapter-title{font-size:.9375rem;font-weight:600;color:var(--gray-800);margin:0 0 .5rem;line-height:1.3}.lms-chapter.locked .lms-chapter-title{color:var(--gray-500)}.lms-chapter-meta{display:flex;align-items:center;gap:.75rem}.lms-chapter-progress-text{font-size:.75rem;color:var(--gray-500)}.lms-chapter-progress-mini{flex:1;height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden;max-width:80px}.lms-chapter-progress-fill{height:100%;background:var(--success-500);border-radius:2px;transition:width .3s ease}.lms-chapter-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:.25rem;transition:transform .2s}.lms-chapter-toggle svg{width:16px;height:16px;stroke:var(--gray-400)}.lms-chapter.expanded .lms-chapter-toggle{transform:rotate(180deg)}.lms-chapter.locked .lms-chapter-toggle{display:none}.lms-chapter-lessons{display:none;padding:0 .75rem .75rem}.lms-chapter.expanded .lms-chapter-lessons{display:block}.lms-lesson-item{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.875rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-md);cursor:pointer;text-align:left;margin-bottom:.375rem;transition:all .2s;position:relative}.lms-lesson-item:last-child{margin-bottom:0}.lms-lesson-item:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-200)}.lms-lesson-item.current{background:#1a56db14;border-color:var(--primary-300);border-left-width:3px}.lms-lesson-item.completed{background:#22c55e0d;border-color:#22c55e33}.lms-lesson-item.locked{opacity:.6;cursor:not-allowed;background:var(--gray-50)}.lms-lesson-item.locked:hover{background:var(--gray-50);border-color:var(--gray-100)}.lms-lesson-status{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--gray-100);border-radius:50%;flex-shrink:0;transition:all .2s}.lms-lesson-item.completed .lms-lesson-status{background:var(--success-500)}.lms-lesson-item.completed .lms-lesson-status svg{stroke:#fff}.lms-lesson-item.locked .lms-lesson-status{background:var(--gray-200)}.lms-lesson-item.locked .lms-lesson-status svg{stroke:var(--gray-400);width:12px;height:12px}.lms-lesson-status svg{width:14px;height:14px;stroke:var(--gray-500)}.lms-lesson-number{font-size:.75rem;font-weight:600;color:var(--gray-500)}.lms-lesson-info{flex:1;min-width:0}.lms-lesson-title{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.375rem;line-height:1.4}.lms-lesson-item.current .lms-lesson-title{color:var(--primary-600);font-weight:600}.lms-lesson-item.completed .lms-lesson-title{color:var(--gray-600)}.lms-lesson-item.locked .lms-lesson-title{color:var(--gray-400)}.lms-lesson-meta{display:flex;align-items:center;gap:.625rem}.lms-lesson-type{display:flex;align-items:center}.lms-lesson-type svg{width:14px;height:14px;stroke:var(--gray-400)}.lms-lesson-duration{font-size:.75rem;color:var(--gray-400)}.lms-lesson-current-indicator{position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.lms-lesson-current-indicator .pulse{display:block;width:10px;height:10px;background:var(--primary-500);border-radius:50%;animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{box-shadow:0 0 #1a56db99}70%{box-shadow:0 0 0 8px #1a56db00}to{box-shadow:0 0 #1a56db00}}.lms-sidebar-overlay{display:none}@media(max-width:1024px){.lms-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1000;width:340px;min-width:340px;transform:translate(-100%);transition:transform .3s ease;box-shadow:var(--shadow-xl)}.lms-sidebar.open{transform:translate(0)}.lms-sidebar.collapsed{width:340px;min-width:340px}.lms-sidebar-collapse-btn{display:none}.lms-sidebar-close{display:flex;align-items:center;justify-content:center;position:absolute;top:1rem;right:1rem;width:40px;height:40px;background:var(--gray-100);border:none;border-radius:50%;cursor:pointer;z-index:10;transition:background .2s}.lms-sidebar-close:hover{background:var(--gray-200)}.lms-sidebar-close svg{width:22px;height:22px;stroke:var(--gray-600)}.lms-sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}}@media(max-width:640px){.lms-sidebar{width:100%;max-width:100%;min-width:100%}.lms-sidebar-cover{height:120px}.lms-sidebar-stats{gap:.75rem}.lms-stat{padding:.625rem}.lms-stat-value{font-size:1rem}}.lms-quiz-item{border-top:1px dashed var(--gray-200);margin-top:.5rem;padding-top:.75rem}.lms-quiz-item.available{background:linear-gradient(135deg,#6366f114,#a855f714);border-color:var(--primary-200);animation:quiz-pulse 2s ease-in-out infinite}@keyframes quiz-pulse{0%,to{box-shadow:0 0 #6366f100}50%{box-shadow:0 0 0 4px #6366f126}}.lms-quiz-item.completed{background:#22c55e14;border-color:#22c55e4d}.lms-lesson-status.quiz-status{background:var(--gray-100)}.lms-lesson-status.quiz-status.available{background:var(--primary-500)}.lms-lesson-status.quiz-status.available svg{stroke:#fff}.lms-lesson-status.quiz-status.passed{background:var(--success-500)}.lms-lesson-status.quiz-status.passed svg{stroke:#fff}.lms-lesson-status.quiz-status.locked svg{stroke:var(--gray-400);width:12px;height:12px}.lms-quiz-questions,.lms-quiz-passing{font-size:.75rem;color:var(--gray-500)}.lms-quiz-item.available .lms-quiz-questions,.lms-quiz-item.available .lms-quiz-passing{color:var(--primary-600)}.lms-quiz-cta{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--primary-500);border-radius:50%;flex-shrink:0}.lms-quiz-cta svg{width:14px;height:14px;stroke:#fff}.lms-quiz-score{display:flex;align-items:center;justify-content:center;padding:.25rem .625rem;background:var(--success-100);color:var(--success-700);border-radius:var(--radius-full);font-size:.75rem;font-weight:700;flex-shrink:0}:root.dark .lms-sidebar,[data-theme=dark] .lms-sidebar{background:var(--gray-800);border-right-color:var(--gray-700)}:root.dark .lms-sidebar-header,[data-theme=dark] .lms-sidebar-header{border-bottom-color:var(--gray-700)}:root.dark .lms-sidebar-title,[data-theme=dark] .lms-sidebar-title{color:var(--gray-100)}:root.dark .lms-stat,[data-theme=dark] .lms-stat{background:var(--gray-700)}:root.dark .lms-stat-value,[data-theme=dark] .lms-stat-value{color:var(--gray-100)}:root.dark .lms-stat-label,[data-theme=dark] .lms-stat-label{color:var(--gray-400)}:root.dark .lms-progress-bar,[data-theme=dark] .lms-progress-bar{background:var(--gray-700)}:root.dark .lms-progress-text,[data-theme=dark] .lms-progress-text{color:var(--gray-400)}:root.dark .circular-progress .circle-bg,[data-theme=dark] .circular-progress .circle-bg{stroke:var(--gray-700)}:root.dark .circular-progress .progress-text,[data-theme=dark] .circular-progress .progress-text{fill:var(--gray-300)}:root.dark .lms-sidebar-collapse-btn,[data-theme=dark] .lms-sidebar-collapse-btn{background:var(--gray-700);border-color:var(--gray-600)}:root.dark .lms-sidebar-collapse-btn:hover,[data-theme=dark] .lms-sidebar-collapse-btn:hover{background:var(--gray-600)}:root.dark .lms-sidebar-collapse-btn svg,[data-theme=dark] .lms-sidebar-collapse-btn svg{stroke:var(--gray-300)}:root.dark .lms-chapter,[data-theme=dark] .lms-chapter{background:var(--gray-700)}:root.dark .lms-chapter.has-current,[data-theme=dark] .lms-chapter.has-current{background:#4f46e526;border-color:#4f46e54d}:root.dark .lms-chapter.completed,[data-theme=dark] .lms-chapter.completed{background:#22c55e1a;border-color:#22c55e33}:root.dark .lms-chapter-header:hover:not(:disabled),[data-theme=dark] .lms-chapter-header:hover:not(:disabled){background:#ffffff0d}:root.dark .lms-chapter-status.in-progress,[data-theme=dark] .lms-chapter-status.in-progress{background:var(--gray-600);color:var(--gray-300)}:root.dark .lms-chapter-status.locked,[data-theme=dark] .lms-chapter-status.locked{background:var(--gray-600)}:root.dark .lms-chapter-status.locked svg,[data-theme=dark] .lms-chapter-status.locked svg{stroke:var(--gray-500)}:root.dark .lms-chapter-title,[data-theme=dark] .lms-chapter-title{color:var(--gray-200)}:root.dark .lms-chapter.locked .lms-chapter-title,[data-theme=dark] .lms-chapter.locked .lms-chapter-title{color:var(--gray-500)}:root.dark .lms-chapter-number,[data-theme=dark] .lms-chapter-number{color:var(--gray-500)}:root.dark .lms-chapter-progress-text,[data-theme=dark] .lms-chapter-progress-text{color:var(--gray-400)}:root.dark .lms-chapter-progress-mini,[data-theme=dark] .lms-chapter-progress-mini{background:var(--gray-600)}:root.dark .lms-chapter-toggle svg,[data-theme=dark] .lms-chapter-toggle svg{stroke:var(--gray-500)}:root.dark .lms-lesson-item,[data-theme=dark] .lms-lesson-item{background:var(--gray-800);border-color:var(--gray-600)}:root.dark .lms-lesson-item:hover:not(:disabled),[data-theme=dark] .lms-lesson-item:hover:not(:disabled){background:var(--gray-700);border-color:var(--gray-500)}:root.dark .lms-lesson-item.current,[data-theme=dark] .lms-lesson-item.current{background:#4f46e533;border-color:var(--primary-500)}:root.dark .lms-lesson-item.completed,[data-theme=dark] .lms-lesson-item.completed{background:#22c55e1a;border-color:#22c55e4d}:root.dark .lms-lesson-item.locked,[data-theme=dark] .lms-lesson-item.locked{background:var(--gray-750, #2a2a3e);opacity:.5}:root.dark .lms-lesson-status,[data-theme=dark] .lms-lesson-status{background:var(--gray-600)}:root.dark .lms-lesson-status svg,[data-theme=dark] .lms-lesson-status svg{stroke:var(--gray-400)}:root.dark .lms-lesson-item.locked .lms-lesson-status,[data-theme=dark] .lms-lesson-item.locked .lms-lesson-status{background:var(--gray-600)}:root.dark .lms-lesson-number,[data-theme=dark] .lms-lesson-number{color:var(--gray-400)}:root.dark .lms-lesson-title,[data-theme=dark] .lms-lesson-title{color:var(--gray-200)}:root.dark .lms-lesson-item.current .lms-lesson-title,[data-theme=dark] .lms-lesson-item.current .lms-lesson-title{color:var(--primary-400)}:root.dark .lms-lesson-item.completed .lms-lesson-title,[data-theme=dark] .lms-lesson-item.completed .lms-lesson-title{color:var(--gray-400)}:root.dark .lms-lesson-item.locked .lms-lesson-title,[data-theme=dark] .lms-lesson-item.locked .lms-lesson-title{color:var(--gray-500)}:root.dark .lms-lesson-type svg,[data-theme=dark] .lms-lesson-type svg{stroke:var(--gray-500)}:root.dark .lms-lesson-duration,[data-theme=dark] .lms-lesson-duration{color:var(--gray-500)}:root.dark .lms-sidebar-close,[data-theme=dark] .lms-sidebar-close{background:var(--gray-700)}:root.dark .lms-sidebar-close:hover,[data-theme=dark] .lms-sidebar-close:hover{background:var(--gray-600)}:root.dark .lms-sidebar-close svg,[data-theme=dark] .lms-sidebar-close svg{stroke:var(--gray-300)}:root.dark .lms-quiz-item,[data-theme=dark] .lms-quiz-item{border-top-color:var(--gray-600)}:root.dark .lms-quiz-item.available,[data-theme=dark] .lms-quiz-item.available{background:linear-gradient(135deg,#6366f126,#a855f726);border-color:var(--primary-500)}:root.dark .lms-quiz-item.completed,[data-theme=dark] .lms-quiz-item.completed{background:#22c55e26;border-color:#22c55e66}:root.dark .lms-lesson-status.quiz-status,[data-theme=dark] .lms-lesson-status.quiz-status{background:var(--gray-600)}:root.dark .lms-quiz-questions,:root.dark .lms-quiz-passing,[data-theme=dark] .lms-quiz-questions,[data-theme=dark] .lms-quiz-passing{color:var(--gray-400)}:root.dark .lms-quiz-item.available .lms-quiz-questions,:root.dark .lms-quiz-item.available .lms-quiz-passing,[data-theme=dark] .lms-quiz-item.available .lms-quiz-questions,[data-theme=dark] .lms-quiz-item.available .lms-quiz-passing{color:var(--primary-400)}:root.dark .lms-quiz-score,[data-theme=dark] .lms-quiz-score{background:#22c55e33;color:var(--success-400)}.lms-final-quiz-section{margin:1rem .75rem;padding:1rem;background:var(--gray-50);border:2px dashed var(--gray-300);border-radius:var(--radius-lg);transition:all .3s ease}.lms-final-quiz-section.available{background:linear-gradient(135deg,#f59e0b26,#d977061f);border:2px solid var(--gpe-gold);animation:final-quiz-pulse 2s ease-in-out infinite;box-shadow:0 4px 12px #f59e0b26}.lms-final-quiz-section.available .lms-final-quiz-title{color:#b45309;font-size:.9375rem}.lms-final-quiz-section.available .lms-final-quiz-description{color:#92400e;font-weight:500;font-size:.8125rem}.lms-final-quiz-section.certified{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border:2px solid var(--success-500);animation:none}@keyframes final-quiz-pulse{0%,to{box-shadow:0 0 #f59e0b4d}50%{box-shadow:0 0 0 6px #f59e0b00}}.lms-final-quiz-header{display:flex;align-items:flex-start;gap:.75rem}.lms-final-quiz-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-200);border-radius:var(--radius-md);flex-shrink:0}.lms-final-quiz-icon svg{width:20px;height:20px;stroke:var(--gray-500)}.lms-final-quiz-icon.available{background:var(--gpe-gold)}.lms-final-quiz-icon.available svg{stroke:#fff}.lms-final-quiz-icon.certified{background:var(--success-500)}.lms-final-quiz-icon.certified svg{stroke:#fff;fill:#fff}.lms-final-quiz-info{flex:1;min-width:0}.lms-final-quiz-title{font-size:.875rem;font-weight:700;color:var(--gray-800);margin:0 0 .25rem}.lms-final-quiz-section.certified .lms-final-quiz-title{color:var(--success-700)}.lms-final-quiz-description{font-size:.75rem;color:var(--gray-500);margin:0;line-height:1.4}.lms-final-quiz-section.certified .lms-final-quiz-description{font-family:monospace;font-size:.6875rem;color:var(--success-600)}.lms-final-quiz-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.875rem;padding:.75rem 1rem;background:linear-gradient(135deg,#b45309,#92400e);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 10px #b4530959}.lms-final-quiz-btn:hover{background:linear-gradient(135deg,#92400e,#78350f);transform:translateY(-1px);box-shadow:0 5px 15px #92400e66}.lms-final-quiz-btn svg{width:18px;height:18px}.lms-certificate-download-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.875rem;padding:.75rem 1rem;background:var(--success-500);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease}.lms-certificate-download-btn:hover{background:var(--success-600);transform:translateY(-1px)}.lms-certificate-download-btn svg{width:18px;height:18px}.lms-certificate-download-btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.lms-certificate-download-btn:disabled:hover{background:var(--success-500);transform:none}.lms-certificate-download-btn .loading-spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}:root.dark .lms-final-quiz-section,[data-theme=dark] .lms-final-quiz-section{background:var(--gray-750, #2a2a3e);border-color:var(--gray-600)}:root.dark .lms-final-quiz-section.available,[data-theme=dark] .lms-final-quiz-section.available{background:#f59e0b33;border-color:var(--gpe-gold);box-shadow:0 4px 12px #f59e0b33}:root.dark .lms-final-quiz-section.certified,[data-theme=dark] .lms-final-quiz-section.certified{background:#22c55e26;border-color:var(--success-500)}:root.dark .lms-final-quiz-icon,[data-theme=dark] .lms-final-quiz-icon{background:var(--gray-600)}:root.dark .lms-final-quiz-icon svg,[data-theme=dark] .lms-final-quiz-icon svg{stroke:var(--gray-400)}:root.dark .lms-final-quiz-title,[data-theme=dark] .lms-final-quiz-title{color:var(--gray-200)}:root.dark .lms-final-quiz-section.available .lms-final-quiz-title,[data-theme=dark] .lms-final-quiz-section.available .lms-final-quiz-title{color:#fbbf24}:root.dark .lms-final-quiz-section.certified .lms-final-quiz-title,[data-theme=dark] .lms-final-quiz-section.certified .lms-final-quiz-title{color:var(--success-400)}:root.dark .lms-final-quiz-description,[data-theme=dark] .lms-final-quiz-description{color:var(--gray-400)}:root.dark .lms-final-quiz-section.available .lms-final-quiz-description,[data-theme=dark] .lms-final-quiz-section.available .lms-final-quiz-description{color:#fcd34d}:root.dark .lms-final-quiz-section.certified .lms-final-quiz-description,[data-theme=dark] .lms-final-quiz-section.certified .lms-final-quiz-description{color:var(--success-400)}.lms-final-quiz-btn .loading-spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.lms-final-quiz-btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.lms-final-quiz-btn:disabled:hover{background:linear-gradient(135deg,#b45309,#92400e);transform:none;box-shadow:0 3px 10px #b4530959}.video-player{position:relative;width:100%;max-width:100%;background:#000;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16 / 9}.video-player.fullscreen{border-radius:0;max-width:none;position:fixed;inset:0;z-index:9999;aspect-ratio:auto}.video-element{width:100%;height:100%;object-fit:contain;display:block}.video-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#000c;z-index:20}.video-loading .loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--primary-500);border-radius:50%;animation:spin 1s linear infinite}.video-loading span{color:#fffc;font-size:.875rem}.video-play-overlay{position:absolute;inset:0 0 60px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;z-index:10}.video-play-overlay svg{width:72px;height:72px;color:#fff;background:#0009;border-radius:50%;padding:16px;transition:transform .2s,background .2s}.video-play-overlay:hover svg{transform:scale(1.1);background:#000c}.video-player.show-controls .video-play-overlay svg,.video-player:not(.show-controls) .video-play-overlay:hover svg{opacity:1}.video-controls{position:absolute;bottom:0;left:0;right:0;padding:.75rem 1rem;background:linear-gradient(transparent,#000c);opacity:0;transition:opacity .3s;z-index:15}.video-player.show-controls .video-controls,.video-player:hover .video-controls{opacity:1}.controls-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.controls-left,.controls-right{display:flex;align-items:center;gap:.5rem}.control-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:#fff;cursor:pointer;border-radius:var(--radius-md);transition:background .2s}.control-btn:hover{background:#fff3}.control-btn:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.speed-btn{width:auto;padding:0 .75rem;font-size:.875rem;font-weight:600}.time-display{color:#fff;font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.video-progress{height:24px;display:flex;align-items:center;cursor:pointer;margin-bottom:.5rem}.progress-bar-bg{position:relative;width:100%;height:4px;background:#ffffff4d;border-radius:2px;overflow:visible}.video-progress:hover .progress-bar-bg{height:6px}.progress-bar-buffered{position:absolute;top:0;left:0;height:100%;background:#ffffff80;border-radius:2px}.progress-bar-fill{position:absolute;top:0;left:0;height:100%;background:var(--primary-500);border-radius:2px;transition:width .1s linear}.progress-bar-handle{position:absolute;top:50%;width:14px;height:14px;background:var(--primary-500);border:2px solid white;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s,transform .2s;z-index:5}.video-progress:hover .progress-bar-handle{opacity:1}.video-progress:active .progress-bar-handle{transform:translate(-50%,-50%) scale(1.2)}.volume-control{position:relative;display:flex;align-items:center}.volume-slider-container{position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:.75rem;background:#000000e6;border-radius:var(--radius-md);margin-bottom:.5rem}.volume-slider{width:80px;height:4px;appearance:none;background:#ffffff4d;border-radius:2px;cursor:pointer}.volume-slider::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:#fff;border-radius:50%;cursor:pointer}.volume-slider::-moz-range-thumb{width:12px;height:12px;background:#fff;border:none;border-radius:50%;cursor:pointer}.speed-control{position:relative}.speed-menu{position:absolute;bottom:100%;right:0;margin-bottom:.5rem;background:#000000f2;border-radius:var(--radius-md);padding:.5rem 0;min-width:80px;box-shadow:0 4px 12px #0000004d}.speed-option{display:block;width:100%;padding:.5rem 1rem;background:transparent;border:none;color:#fff;font-size:.875rem;text-align:center;cursor:pointer;transition:background .2s}.speed-option:hover{background:#ffffff1a}.speed-option.active{color:var(--primary-400);font-weight:600}.video-completed-badge{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--success-500);color:#fff;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;z-index:20}.video-player-embed{display:flex;flex-direction:column}.video-iframe{width:100%;height:100%;border:none;flex:1}.video-progress-overlay{padding:.75rem 1rem;background:linear-gradient(135deg,#000000f2,#1e1e32f2);border-top:1px solid rgba(255,255,255,.1)}.progress-bar-container{display:flex;align-items:center;gap:1rem}.progress-bar-container .progress-bar-bg{flex:1;height:8px;background:#fff3;border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 3px #0000004d}.progress-bar-container .progress-bar-fill{background:linear-gradient(90deg,var(--primary-500) 0%,var(--success-500) 100%);border-radius:4px;transition:width .3s ease;box-shadow:0 0 10px #6366f180}.progress-text{color:#fff;font-size:.8125rem;font-weight:600;white-space:nowrap;background:linear-gradient(135deg,var(--primary-500) 0%,var(--success-500) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid rgba(99,102,241,.3)}.embed-notice{padding:.625rem 1rem;background:linear-gradient(135deg,var(--gray-100) 0%,var(--gray-50) 100%);color:var(--gray-600);font-size:.75rem;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem;animation:fadeOutNotice .5s ease-out 5s forwards}.embed-notice:before{content:"💡";font-size:.875rem}@keyframes fadeOutNotice{0%{opacity:1;max-height:50px;padding:.625rem 1rem}to{opacity:0;max-height:0;padding:0;overflow:hidden}}.video-player:focus-within .video-controls{opacity:1}.control-btn:focus-visible,.video-progress:focus-visible,.speed-option:focus-visible{outline:2px solid var(--primary-400);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:768px){.video-controls{padding:.5rem .75rem}.control-btn{width:32px;height:32px}.control-btn svg{width:18px;height:18px}.time-display{font-size:.75rem}.speed-btn{font-size:.75rem;padding:0 .5rem}.controls-left .control-btn:nth-child(2),.controls-left .control-btn:nth-child(3){display:none}.video-play-overlay svg{width:56px;height:56px;padding:12px}}@media(max-width:480px){.controls-row{gap:.5rem}.controls-left,.controls-right{gap:.25rem}.volume-control{display:none}.time-display{font-size:.6875rem}}:root.dark .embed-notice,.dark .embed-notice{background:var(--gray-800);color:var(--gray-400)}.lesson-content{display:flex;flex-direction:column;height:100%;background:var(--white);animation:fadeInContent .4s ease-out}@keyframes fadeInContent{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lesson-header{padding:1.5rem 2rem;border-bottom:1px solid var(--gray-100);flex-shrink:0}.lesson-header-content{max-width:900px}.lesson-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem;line-height:1.3}.lesson-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lesson-duration{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-500)}.lesson-duration svg{width:16px;height:16px}.lesson-completed-badge{display:flex;align-items:center;gap:.375rem;padding:.25rem .75rem;background:linear-gradient(135deg,var(--success-50) 0%,rgba(34,197,94,.15) 100%);color:var(--success-600);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;animation:badgeAppear .5s ease-out}@keyframes badgeAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.lesson-completed-badge svg{width:14px;height:14px}.lesson-main{flex:1;overflow-y:auto;padding:0}.lesson-video-container{background:#000;width:100%;max-width:100%}.lesson-video-container .video-player{max-width:1200px;margin:0 auto}.lesson-text-container{padding:2rem;max-width:900px;margin:0 auto}.lesson-text-content{font-size:1rem;line-height:1.8;color:var(--gray-700)}.lesson-text-content h1,.lesson-text-content h2,.lesson-text-content h3,.lesson-text-content h4,.lesson-text-content h5,.lesson-text-content h6{color:var(--gray-900);margin-top:1.5em;margin-bottom:.5em;line-height:1.3}.lesson-text-content h1{font-size:1.75rem}.lesson-text-content h2{font-size:1.5rem}.lesson-text-content h3{font-size:1.25rem}.lesson-text-content p{margin-bottom:1rem}.lesson-text-content ul,.lesson-text-content ol{margin-bottom:1rem;padding-left:1.5rem}.lesson-text-content li{margin-bottom:.5rem}.lesson-text-content a{color:var(--primary-600);text-decoration:underline}.lesson-text-content a:hover{color:var(--primary-700)}.lesson-text-content img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:1rem 0}.lesson-text-content blockquote{border-left:4px solid var(--primary-500);padding-left:1rem;margin:1rem 0;color:var(--gray-600);font-style:italic}.lesson-text-content pre{background:var(--gray-100);padding:1rem;border-radius:var(--radius-md);overflow-x:auto;font-size:.875rem;margin:1rem 0}.lesson-text-content code{background:var(--gray-100);padding:.125rem .375rem;border-radius:var(--radius-sm);font-size:.875em}.lesson-text-content pre code{background:transparent;padding:0}.lesson-text-content table{width:100%;border-collapse:collapse;margin:1rem 0}.lesson-text-content th,.lesson-text-content td{border:1px solid var(--gray-200);padding:.75rem;text-align:left}.lesson-text-content th{background:var(--gray-50);font-weight:600}.lesson-resources-section{padding:2rem;border-top:1px solid var(--gray-100);background:linear-gradient(180deg,var(--gray-50) 0%,var(--white) 100%);animation:fadeInUp .5s ease-out .2s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lesson-resources-header{display:flex;align-items:center;justify-content:space-between;max-width:1000px;margin:0 auto 1.5rem}.lesson-resources-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.lesson-resources-title svg{width:24px;height:24px;stroke:var(--primary-500)}.resources-count{display:inline-flex;align-items:center;padding:.375rem .875rem;background:linear-gradient(135deg,var(--primary-50) 0%,var(--primary-100) 100%);color:var(--primary-700);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600}.lesson-resources-list{display:flex;flex-direction:column;gap:2rem;max-width:1000px;margin:0 auto}.resource-category-section{display:flex;flex-direction:column;gap:.75rem}.resource-category-label{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500)}.category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.category-dot.pdf{background:#dc2626}.category-dot.audio{background:#9333ea}.category-dot.video{background:#d97706}.category-dot.image{background:#0891b2}.category-dot.document{background:#2563eb}.category-dot.link{background:#059669}.category-dot.other{background:var(--gray-500)}.resource-viewer-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-xl);overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease}.resource-viewer-card:hover{box-shadow:0 4px 12px #00000014}.resource-viewer-card.pdf:hover{border-color:#fecaca}.resource-viewer-card.audio:hover{border-color:#e9d5ff}.resource-viewer-card.video:hover{border-color:#fde68a}.resource-viewer-card.image:hover{border-color:#a5f3fc}.resource-viewer-card.document:hover{border-color:#bfdbfe}.resource-viewer-card.link:hover{border-color:#a7f3d0}.resource-viewer-card.link-card{text-decoration:none;display:block;cursor:pointer}.resource-viewer-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;width:100%;background:none;border:none;cursor:pointer;text-align:left;transition:background .2s;font-family:inherit}.resource-viewer-header:hover{background:var(--gray-50)}.resource-viewer-header.static{cursor:default}.resource-viewer-header.static:hover{background:none}.resource-viewer-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg);flex-shrink:0}.resource-viewer-icon svg{width:20px;height:20px}.resource-viewer-icon.pdf{background:linear-gradient(135deg,#fef2f2,#fee2e2)}.resource-viewer-icon.pdf svg{stroke:#dc2626}.resource-viewer-icon.audio{background:linear-gradient(135deg,#faf5ff,#f3e8ff)}.resource-viewer-icon.audio svg{stroke:#9333ea}.resource-viewer-icon.video{background:linear-gradient(135deg,#fef3c7,#fde68a)}.resource-viewer-icon.video svg{stroke:#d97706}.resource-viewer-icon.image{background:linear-gradient(135deg,#ecfeff,#cffafe)}.resource-viewer-icon.image svg{stroke:#0891b2}.resource-viewer-icon.document{background:linear-gradient(135deg,#eff6ff,#dbeafe)}.resource-viewer-icon.document svg{stroke:#2563eb}.resource-viewer-icon.link{background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.resource-viewer-icon.link svg{stroke:#059669}.resource-viewer-info{flex:1;min-width:0}.resource-viewer-title{display:block;font-size:.9375rem;font-weight:600;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-viewer-size{display:block;font-size:.75rem;color:var(--gray-500);margin-top:.125rem}.resource-viewer-url{display:block;font-size:.75rem;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.125rem}.resource-viewer-chevron{width:20px;height:20px;stroke:var(--gray-400);flex-shrink:0;transition:transform .3s ease}.resource-viewer-chevron.open{transform:rotate(180deg)}.resource-external-icon{width:18px;height:18px;stroke:var(--gray-400);flex-shrink:0;transition:stroke .2s}.resource-viewer-card.link-card:hover .resource-external-icon{stroke:var(--primary-500)}.resource-pdf-embed{border-top:1px solid var(--gray-100);background:var(--gray-100);padding:0;animation:expandContent .3s ease-out}.resource-pdf-embed:fullscreen{background:var(--white);display:flex;flex-direction:column}.resource-pdf-embed:fullscreen .pdf-toolbar{flex-shrink:0}.resource-pdf-embed:fullscreen .pdf-iframe{flex:1;height:auto}@keyframes expandContent{0%{opacity:0;max-height:0}to{opacity:1;max-height:800px}}.pdf-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--gray-800);color:#fff}.pdf-toolbar-title{font-size:.8125rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.pdf-fullscreen-btn{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);cursor:pointer;font-size:.75rem;font-weight:500;font-family:inherit;transition:all .2s;flex-shrink:0}.pdf-fullscreen-btn:hover{background:#fff3;border-color:#ffffff4d}.pdf-fullscreen-btn svg{width:14px;height:14px;stroke:#fff}.pdf-iframe{width:100%;height:600px;border:none;display:block}.resource-audio-player{padding:.75rem 1.25rem 1.25rem}.audio-element{width:100%;height:40px;border-radius:var(--radius-lg)}.resource-image-embed{border-top:1px solid var(--gray-100);padding:1rem;background:var(--gray-50);display:flex;justify-content:center;animation:expandContent .3s ease-out}.resource-image{max-width:100%;max-height:500px;object-fit:contain;border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000001a}.resource-video-embed{border-top:1px solid var(--gray-100);background:#000}.video-element{width:100%;max-height:400px;display:block}.lesson-resources-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;max-width:1000px;margin:0 auto;background:var(--white);border:2px dashed var(--gray-200);border-radius:var(--radius-xl)}.empty-resources-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--gray-100);border-radius:var(--radius-xl);margin-bottom:1rem}.empty-resources-icon svg{width:32px;height:32px;stroke:var(--gray-400)}.lesson-resources-empty p{margin:0;font-size:.9375rem;color:var(--gray-500)}.lesson-footer{display:flex;flex-direction:column;gap:1rem;padding:1rem 2rem;border-top:1px solid var(--gray-100);background:var(--gray-50);flex-shrink:0}.lesson-complete-section{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#6366f114,#22c55e14);border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-lg);text-align:center;animation:slideUpFade .4s ease-out;position:relative;overflow:hidden}.lesson-complete-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary-500),var(--success-500))}@keyframes slideUpFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.lesson-complete-hint{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-600);margin:0}.lesson-complete-hint svg{width:18px;height:18px;stroke:var(--primary-500);flex-shrink:0}.lesson-nav{display:flex;gap:.5rem;flex:1}.lesson-nav-btn{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:0;position:relative;overflow:hidden}.lesson-nav-btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#6366f11a;border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.lesson-nav-btn:hover:not(:disabled):after{width:200%;height:200%}.lesson-nav-btn:hover:not(:disabled){border-color:var(--primary-300);background:var(--white);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.lesson-nav-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.lesson-nav-btn:disabled{opacity:.5;cursor:not-allowed}.lesson-nav-btn.lesson-nav-next.locked{background:var(--gray-100);border-color:var(--gray-200);opacity:.85}.lesson-nav-btn.lesson-nav-next.locked .nav-btn-label{display:flex;align-items:center;gap:.375rem;color:var(--gray-500)}.lesson-nav-btn.lesson-nav-next.locked .lock-icon{width:12px;height:12px;stroke:var(--gray-400)}.lesson-nav-btn svg{width:20px;height:20px;stroke:var(--gray-500);flex-shrink:0}.nav-btn-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.lesson-nav-next .nav-btn-text{align-items:flex-end}.nav-btn-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400)}.nav-btn-title{font-size:.8125rem;font-weight:500;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.lesson-complete-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem 2rem;background:linear-gradient(135deg,var(--success-500) 0%,var(--success-600) 100%);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 4px 14px #22c55e4d;position:relative;overflow:hidden}.lesson-complete-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.lesson-complete-btn:hover:not(:disabled):before{left:100%}.lesson-complete-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--success-600) 0%,var(--success-700) 100%);transform:translateY(-2px);box-shadow:0 6px 20px #22c55e66}.lesson-complete-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #22c55e4d}.lesson-complete-btn:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.lesson-complete-btn svg{width:20px;height:20px;transition:transform .3s ease}.lesson-complete-btn:hover:not(:disabled) svg{transform:scale(1.1)}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:1024px){.lesson-header{padding:1.25rem 1.5rem}.lesson-title{font-size:1.25rem}.lesson-text-container,.lesson-resources-section{padding:1.5rem}.lesson-resources-header{flex-direction:column;align-items:flex-start;gap:.75rem}.lesson-footer{padding:1rem 1.5rem}}@media(max-width:640px){.lesson-header{padding:1rem}.lesson-title{font-size:1.125rem}.lesson-meta{gap:.5rem}.lesson-text-container{padding:1rem}.lesson-text-content{font-size:.9375rem}.lesson-resources-section{padding:1rem}.lesson-resources-title{font-size:1rem}.resource-viewer-header{padding:.875rem 1rem;gap:.75rem}.resource-viewer-icon{width:34px;height:34px}.resource-viewer-icon svg{width:16px;height:16px}.resource-viewer-title{font-size:.875rem}.pdf-iframe{height:400px}.resource-image{max-height:300px}.lesson-resources-empty{padding:2rem 1rem}.empty-resources-icon{width:48px;height:48px}.empty-resources-icon svg{width:24px;height:24px}.lesson-footer{flex-direction:column;padding:1rem;gap:.75rem}.lesson-nav{width:100%}.lesson-nav-btn{flex:1;padding:.625rem .75rem}.nav-btn-title{display:none}.lesson-complete-btn{width:100%;justify-content:center;padding:.875rem 1rem}}[data-theme=dark] .lesson-content,.dark .lesson-content{background:var(--gray-900)}[data-theme=dark] .lesson-header,.dark .lesson-header{border-bottom-color:var(--gray-700)}[data-theme=dark] .lesson-title,.dark .lesson-title{color:var(--gray-100)}[data-theme=dark] .lesson-duration,.dark .lesson-duration{color:var(--gray-400)}[data-theme=dark] .lesson-completed-badge,.dark .lesson-completed-badge{background:#10b98126;color:var(--success-400)}[data-theme=dark] .lesson-text-content,.dark .lesson-text-content{color:var(--gray-300)}[data-theme=dark] .lesson-text-content h1,[data-theme=dark] .lesson-text-content h2,[data-theme=dark] .lesson-text-content h3,[data-theme=dark] .lesson-text-content h4,[data-theme=dark] .lesson-text-content h5,[data-theme=dark] .lesson-text-content h6,.dark .lesson-text-content h1,.dark .lesson-text-content h2,.dark .lesson-text-content h3,.dark .lesson-text-content h4,.dark .lesson-text-content h5,.dark .lesson-text-content h6{color:var(--gray-100)}[data-theme=dark] .lesson-text-content a,.dark .lesson-text-content a{color:var(--primary-400)}[data-theme=dark] .lesson-text-content blockquote,.dark .lesson-text-content blockquote{color:var(--gray-400)}[data-theme=dark] .lesson-text-content pre,[data-theme=dark] .lesson-text-content code,.dark .lesson-text-content pre,.dark .lesson-text-content code{background:var(--gray-800);color:var(--gray-200)}[data-theme=dark] .lesson-text-content th,[data-theme=dark] .lesson-text-content td,.dark .lesson-text-content th,.dark .lesson-text-content td{border-color:var(--gray-700)}[data-theme=dark] .lesson-text-content th,.dark .lesson-text-content th{background:var(--gray-800)}[data-theme=dark] .lesson-resources-section,.dark .lesson-resources-section{border-top-color:var(--gray-700);background:linear-gradient(180deg,var(--gray-850, #1f1f2e) 0%,var(--gray-900) 100%)}[data-theme=dark] .lesson-resources-title,.dark .lesson-resources-title{color:var(--gray-100)}[data-theme=dark] .lesson-resources-title svg,.dark .lesson-resources-title svg{stroke:var(--primary-400)}[data-theme=dark] .resources-count,.dark .resources-count{background:linear-gradient(135deg,var(--primary-900) 0%,var(--primary-800) 100%);color:var(--primary-300)}[data-theme=dark] .resource-category-label,.dark .resource-category-label{color:var(--gray-400)}[data-theme=dark] .resource-viewer-card,.dark .resource-viewer-card{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .resource-viewer-header:hover,.dark .resource-viewer-header:hover{background:var(--gray-750, #2a2a3e)}[data-theme=dark] .resource-viewer-title,.dark .resource-viewer-title{color:var(--gray-200)}[data-theme=dark] .resource-viewer-size,.dark .resource-viewer-size,[data-theme=dark] .resource-viewer-url,.dark .resource-viewer-url{color:var(--gray-500)}[data-theme=dark] .resource-viewer-chevron,.dark .resource-viewer-chevron,[data-theme=dark] .resource-external-icon,.dark .resource-external-icon{stroke:var(--gray-500)}[data-theme=dark] .resource-pdf-embed,.dark .resource-pdf-embed,[data-theme=dark] .resource-image-embed,.dark .resource-image-embed{background:var(--gray-900);border-top-color:var(--gray-700)}[data-theme=dark] .lesson-resources-empty,.dark .lesson-resources-empty{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .empty-resources-icon,.dark .empty-resources-icon{background:var(--gray-700)}[data-theme=dark] .empty-resources-icon svg,.dark .empty-resources-icon svg{stroke:var(--gray-500)}[data-theme=dark] .lesson-resources-empty p,.dark .lesson-resources-empty p{color:var(--gray-400)}[data-theme=dark] .lesson-footer,.dark .lesson-footer{border-top-color:var(--gray-700);background:var(--gray-850, #1a1a2e)}[data-theme=dark] .lesson-nav-btn,.dark .lesson-nav-btn{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .lesson-nav-btn:hover:not(:disabled),.dark .lesson-nav-btn:hover:not(:disabled){background:var(--gray-700);border-color:var(--primary-500)}[data-theme=dark] .lesson-nav-btn svg,.dark .lesson-nav-btn svg{stroke:var(--gray-400)}[data-theme=dark] .nav-btn-label,.dark .nav-btn-label{color:var(--gray-500)}[data-theme=dark] .nav-btn-title,.dark .nav-btn-title{color:var(--gray-300)}:root.dark .lesson-content,.dark .lesson-content{background:var(--gray-900)}:root.dark .lesson-header,.dark .lesson-header{border-bottom-color:var(--gray-700)}:root.dark .lesson-title,.dark .lesson-title{color:var(--gray-100)}:root.dark .lesson-duration,.dark .lesson-duration{color:var(--gray-400)}:root.dark .lesson-completed-badge,.dark .lesson-completed-badge{background:#10b98126;color:var(--gpe-green-400)}:root.dark .lesson-text-content,.dark .lesson-text-content{color:var(--gray-300)}:root.dark .lesson-text-content h1,:root.dark .lesson-text-content h2,:root.dark .lesson-text-content h3,:root.dark .lesson-text-content h4,:root.dark .lesson-text-content h5,:root.dark .lesson-text-content h6,.dark .lesson-text-content h1,.dark .lesson-text-content h2,.dark .lesson-text-content h3,.dark .lesson-text-content h4,.dark .lesson-text-content h5,.dark .lesson-text-content h6{color:var(--gray-100)}:root.dark .lesson-text-content a,.dark .lesson-text-content a{color:var(--gpe-indigo-400)}:root.dark .lesson-text-content blockquote,.dark .lesson-text-content blockquote{color:var(--gray-400)}:root.dark .lesson-text-content pre,:root.dark .lesson-text-content code,.dark .lesson-text-content pre,.dark .lesson-text-content code{background:var(--gray-800);color:var(--gray-200)}:root.dark .lesson-text-content th,:root.dark .lesson-text-content td,.dark .lesson-text-content th,.dark .lesson-text-content td{border-color:var(--gray-700)}:root.dark .lesson-text-content th,.dark .lesson-text-content th{background:var(--gray-800)}:root.dark .lesson-resources-section,.dark .lesson-resources-section{border-top-color:var(--gray-700);background:linear-gradient(180deg,var(--gray-850, #1f1f2e) 0%,var(--gray-900) 100%)}:root.dark .lesson-resources-title,.dark .lesson-resources-title{color:var(--gray-100)}:root.dark .lesson-resources-title svg,.dark .lesson-resources-title svg{stroke:var(--gpe-indigo-400)}:root.dark .resources-count,.dark .resources-count{background:linear-gradient(135deg,var(--primary-900) 0%,var(--primary-800) 100%);color:var(--primary-300)}:root.dark .resource-category-label,.dark .resource-category-label{color:var(--gray-400)}:root.dark .resource-viewer-card,.dark .resource-viewer-card{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .resource-viewer-header:hover,.dark .resource-viewer-header:hover{background:var(--gray-750, #2a2a3e)}:root.dark .resource-viewer-title,.dark .resource-viewer-title{color:var(--gray-200)}:root.dark .resource-viewer-size,.dark .resource-viewer-size{color:var(--gray-500)}:root.dark .resource-viewer-url,.dark .resource-viewer-url{color:var(--gray-500)}:root.dark .resource-viewer-chevron,.dark .resource-viewer-chevron{stroke:var(--gray-500)}:root.dark .resource-external-icon,.dark .resource-external-icon{stroke:var(--gray-500)}:root.dark .resource-pdf-embed,.dark .resource-pdf-embed{background:var(--gray-900);border-top-color:var(--gray-700)}:root.dark .resource-image-embed,.dark .resource-image-embed{background:var(--gray-900);border-top-color:var(--gray-700)}:root.dark .lesson-resources-empty,.dark .lesson-resources-empty{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .empty-resources-icon,.dark .empty-resources-icon{background:var(--gray-700)}:root.dark .empty-resources-icon svg,.dark .empty-resources-icon svg{stroke:var(--gray-500)}:root.dark .lesson-resources-empty p,.dark .lesson-resources-empty p{color:var(--gray-400)}:root.dark .lesson-footer,.dark .lesson-footer{border-top-color:var(--gray-700);background:var(--gray-800)}:root.dark .lesson-nav-btn,.dark .lesson-nav-btn{background:var(--gray-700);border-color:var(--gray-600)}:root.dark .lesson-nav-btn:hover:not(:disabled),.dark .lesson-nav-btn:hover:not(:disabled){background:var(--gray-600);border-color:var(--gpe-indigo)}:root.dark .lesson-nav-btn svg,.dark .lesson-nav-btn svg{stroke:var(--gray-400)}:root.dark .nav-btn-label,.dark .nav-btn-label{color:var(--gray-500)}:root.dark .nav-btn-title,.dark .nav-btn-title{color:var(--gray-300)}:root.dark .lesson-complete-section,.dark .lesson-complete-section{background:linear-gradient(135deg,#6366f11a,#10b9811a);border-color:var(--gray-700)}:root.dark .lesson-complete-hint,.dark .lesson-complete-hint{color:var(--gray-400)}:root.dark .lesson-complete-hint svg,.dark .lesson-complete-hint svg{stroke:var(--gpe-indigo-400)}:root.dark .lesson-nav-btn.lesson-nav-next.locked,.dark .lesson-nav-btn.lesson-nav-next.locked{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .lesson-nav-btn.lesson-nav-next.locked .nav-btn-label,.dark .lesson-nav-btn.lesson-nav-next.locked .nav-btn-label{color:var(--gray-500)}:root.dark .lesson-nav-btn.lesson-nav-next.locked .lock-icon,.dark .lesson-nav-btn.lesson-nav-next.locked .lock-icon{stroke:var(--gray-500)}.session-countdown{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;background:linear-gradient(135deg,var(--gpe-blue-50) 0%,var(--white) 50%,var(--gpe-green-50) 100%)}.countdown-bg{position:absolute;inset:0;overflow:hidden;z-index:0}.countdown-bg-image{width:100%;height:100%;object-fit:cover;opacity:.08;filter:blur(20px)}.countdown-bg-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,var(--white) 70%)}.countdown-content{position:relative;z-index:1;max-width:600px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem}.countdown-header{width:100%;display:flex;justify-content:flex-start}.countdown-back-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--gray-600);text-decoration:none;border-radius:var(--radius);transition:all var(--transition)}.countdown-back-link:hover{color:var(--gpe-green);background:var(--gpe-green-50)}.countdown-back-link svg{width:16px;height:16px}.countdown-icon{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gpe-blue) 0%,var(--gpe-green) 100%);border-radius:50%;animation:pulse-countdown 2s ease-in-out infinite}.countdown-icon svg{width:48px;height:48px;color:#fff}.countdown-icon-success{background:linear-gradient(135deg,var(--gpe-green) 0%,var(--gpe-green-600) 100%)}@keyframes pulse-countdown{0%,to{transform:scale(1);box-shadow:0 0 #10b98166}50%{transform:scale(1.05);box-shadow:0 0 0 20px #10b98100}}.countdown-info{display:flex;flex-direction:column;align-items:center;gap:.75rem}.countdown-session-badge{display:inline-block;padding:.375rem .875rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gpe-blue);background:var(--gpe-blue-50);border-radius:var(--radius-full)}.countdown-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0;line-height:1.3}.countdown-message{font-size:1rem;color:var(--gray-600);margin:0}.countdown-message strong{color:var(--gpe-green);font-weight:600}.countdown-timer{display:flex;align-items:center;gap:.75rem;padding:1.5rem 2rem;background:#fff;border-radius:var(--radius-xl);box-shadow:0 4px 20px #00000014;margin:.5rem 0}.countdown-timer-unit{display:flex;flex-direction:column;align-items:center;min-width:60px}.countdown-timer-value{font-size:2.5rem;font-weight:700;color:var(--gray-900);font-variant-numeric:tabular-nums;line-height:1}.countdown-timer-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}.countdown-timer-separator{font-size:2rem;font-weight:700;color:var(--gray-300);line-height:1;margin-bottom:1rem}.countdown-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:.5rem}.countdown-actions-text{font-size:.875rem;color:var(--gray-500);margin:0}.countdown-actions-buttons{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.countdown-btn-primary,.countdown-btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none}.countdown-btn-primary{background:var(--gpe-green);color:#fff;box-shadow:0 2px 8px #10b98140}.countdown-btn-primary:hover{background:var(--gpe-green-600);transform:translateY(-2px);box-shadow:0 4px 16px #10b98159}.countdown-btn-primary svg{width:18px;height:18px}.countdown-btn-secondary{background:#fff;color:var(--gray-700);border:1px solid var(--gray-200)}.countdown-btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-300);transform:translateY(-2px)}.countdown-btn-secondary svg{width:18px;height:18px;color:var(--gpe-blue)}.countdown-info-card{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:var(--gpe-blue-50);border-radius:var(--radius-lg);text-align:left;margin-top:.5rem;border:1px solid var(--gpe-blue-100)}.countdown-info-card-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius);box-shadow:0 2px 4px #0000000d}.countdown-info-card-icon svg{width:20px;height:20px;color:var(--gpe-blue)}.countdown-info-card-content h3{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .25rem}.countdown-info-card-content p{font-size:.8125rem;color:var(--gray-600);margin:0;line-height:1.5}@media(max-width:640px){.session-countdown{padding:1rem}.countdown-timer{padding:1rem 1.25rem;gap:.5rem}.countdown-timer-unit{min-width:45px}.countdown-timer-value{font-size:1.75rem}.countdown-timer-label{font-size:.625rem}.countdown-timer-separator{font-size:1.5rem;margin-bottom:.75rem}.countdown-title{font-size:1.375rem}.countdown-icon{width:80px;height:80px}.countdown-icon svg{width:36px;height:36px}.countdown-actions-buttons{flex-direction:column;width:100%}.countdown-btn-primary,.countdown-btn-secondary{width:100%;justify-content:center}.countdown-info-card{flex-direction:column;align-items:center;text-align:center;gap:.75rem}}.lms-player{display:flex;flex-direction:column;height:100vh;background:var(--gray-50);overflow:hidden}.lms-player-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:var(--white);border-bottom:1px solid var(--gray-200);flex-shrink:0;z-index:100}.lms-header-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.lms-menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-100);border:none;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;transition:background .2s}.lms-menu-btn:hover{background:var(--gray-200)}.lms-menu-btn svg{width:22px;height:22px;stroke:var(--gray-700)}.lms-back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-100);border-radius:var(--radius-md);color:var(--gray-600);transition:all .2s;flex-shrink:0}.lms-back-btn:hover{background:var(--gray-200);color:var(--gray-900)}.lms-back-btn svg{width:22px;height:22px}.lms-header-info{flex:1;min-width:0}.lms-header-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lms-breadcrumb{display:flex;align-items:center;gap:.375rem;margin-top:.125rem;font-size:.75rem;color:var(--gray-500)}.lms-breadcrumb-chapter{font-weight:500;color:var(--gray-600);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lms-breadcrumb-separator{width:12px;height:12px;stroke:var(--gray-400);flex-shrink:0}.lms-breadcrumb-lesson{color:var(--primary-600);font-weight:500;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lms-header-progress{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.lms-header-progress-bar{width:120px;height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden}.lms-header-progress-fill{height:100%;background:var(--success-500);border-radius:2px;transition:width .3s ease}.lms-header-progress-text{font-size:.75rem;font-weight:600;color:var(--gray-500)}.lms-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.lms-theater-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gray-100);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.lms-theater-btn:hover{background:var(--gray-200)}.lms-theater-btn.active{background:var(--primary-100);color:var(--primary-600)}.lms-theater-btn svg{width:20px;height:20px;stroke:var(--gray-600)}.lms-theater-btn.active svg{stroke:var(--primary-600)}.lms-quiz-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--primary-500);color:#fff;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s}.lms-quiz-btn:hover{background:var(--primary-600)}.lms-quiz-btn svg{width:18px;height:18px}.lms-quiz-btn.pulse{animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.lms-quiz-btn:disabled{opacity:.7;cursor:not-allowed}.lms-quiz-btn:disabled:hover{background:var(--primary-500)}.lms-quiz-btn .loading-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.lms-quiz-btn .loading-spinner.small{width:16px;height:16px}.lms-certification-progress{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-full)}.lms-cert-progress-item{display:flex;align-items:center;gap:.375rem}.lms-cert-progress-item:not(:last-child):after{content:"";width:1px;height:16px;background:var(--gray-300);margin-left:.5rem}.lms-cert-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--gray-200);border-radius:var(--radius-full);font-size:.6875rem;font-weight:700;color:var(--gray-600)}.lms-cert-check.completed{background:var(--gpe-green);color:#fff}.lms-cert-check.completed svg{width:14px;height:14px}.lms-cert-check.ready{background:var(--gpe-gold);color:#fff;animation:pulseReady 1.5s ease-in-out infinite}.lms-cert-check.ready svg{width:14px;height:14px}@keyframes pulseReady{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.lms-cert-check svg{width:12px;height:12px}.lms-cert-label{font-size:.75rem;font-weight:600;color:var(--gray-600)}.lms-certificate-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:linear-gradient(135deg,var(--gpe-gold) 0%,#D97706 100%);color:#fff;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;box-shadow:0 2px 8px #f59e0b4d}.lms-certificate-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.lms-certificate-btn svg{width:18px;height:18px}.lms-player-layout{display:flex;flex:1;overflow:hidden}.lms-player-layout.sidebar-collapsed .lms-player-main{margin-left:0}.lms-player-layout.theater-mode .lms-sidebar{transform:translate(-100%);opacity:0;pointer-events:none}.lms-player-layout.theater-mode .lms-player-main{margin-left:0}.lms-player-main{flex:1;overflow:hidden;display:flex;flex-direction:column;transition:margin-left .3s ease}.lms-player-loading,.lms-lesson-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;padding:2rem}.lms-player-loading .loading-spinner,.lms-lesson-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-500);border-radius:50%;animation:spin 1s linear infinite}.lms-player-loading p,.lms-lesson-loading p{font-size:.9375rem;color:var(--gray-500);margin:0}.lms-player-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;padding:2rem;text-align:center}.lms-player-error svg{width:64px;height:64px;stroke:var(--gray-300)}.lms-player-error h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.lms-player-error p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:400px}.lms-back-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;background:var(--primary-500);color:#fff;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s}.lms-back-link:hover{background:var(--primary-600)}.lms-no-lesson{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;padding:2rem;text-align:center}.lms-no-lesson svg{width:64px;height:64px;stroke:var(--gray-300)}.lms-no-lesson h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.lms-no-lesson p{font-size:.9375rem;color:var(--gray-500);margin:0}@media(max-width:1024px){.lms-menu-btn{display:flex}.lms-back-btn{display:none}.lms-player-header{padding:.625rem 1rem}.lms-header-title{font-size:.9375rem}.lms-header-progress-bar{width:80px}.lms-quiz-btn span{display:none}.lms-quiz-btn{padding:.625rem}.lms-certification-progress,.lms-certificate-btn span{display:none}.lms-certificate-btn{padding:.625rem}}@media(max-width:640px){.lms-header-left{gap:.5rem}.lms-menu-btn{width:36px;height:36px}.lms-menu-btn svg{width:20px;height:20px}.lms-header-title{font-size:.875rem}.lms-header-progress{display:none}.lms-player-error svg,.lms-no-lesson svg{width:48px;height:48px}.lms-player-error h2,.lms-no-lesson h2{font-size:1.125rem}}[data-theme=dark] .lms-player,.dark .lms-player{background:var(--gray-950, #0a0a14)}[data-theme=dark] .lms-player-header,.dark .lms-player-header{background:var(--gray-900);border-bottom-color:var(--gray-700)}[data-theme=dark] .lms-menu-btn,.dark .lms-menu-btn{background:var(--gray-800)}[data-theme=dark] .lms-menu-btn:hover,.dark .lms-menu-btn:hover{background:var(--gray-700)}[data-theme=dark] .lms-menu-btn svg,.dark .lms-menu-btn svg{stroke:var(--gray-300)}[data-theme=dark] .lms-back-btn,.dark .lms-back-btn{background:var(--gray-800);color:var(--gray-400)}[data-theme=dark] .lms-back-btn:hover,.dark .lms-back-btn:hover{background:var(--gray-700);color:var(--gray-200)}[data-theme=dark] .lms-header-title,.dark .lms-header-title{color:var(--gray-100)}[data-theme=dark] .lms-header-progress-bar,.dark .lms-header-progress-bar{background:var(--gray-700)}[data-theme=dark] .lms-header-progress-text,.dark .lms-header-progress-text{color:var(--gray-400)}[data-theme=dark] .lms-breadcrumb,.dark .lms-breadcrumb{color:var(--gray-500)}[data-theme=dark] .lms-breadcrumb-chapter,.dark .lms-breadcrumb-chapter{color:var(--gray-400)}[data-theme=dark] .lms-breadcrumb-separator,.dark .lms-breadcrumb-separator{stroke:var(--gray-600)}[data-theme=dark] .lms-breadcrumb-lesson,.dark .lms-breadcrumb-lesson{color:var(--primary-400)}[data-theme=dark] .lms-player-loading p,[data-theme=dark] .lms-lesson-loading p,.dark .lms-player-loading p,.dark .lms-lesson-loading p{color:var(--gray-400)}[data-theme=dark] .lms-player-loading .loading-spinner,[data-theme=dark] .lms-lesson-loading .loading-spinner,.dark .lms-player-loading .loading-spinner,.dark .lms-lesson-loading .loading-spinner{border-color:var(--gray-700);border-top-color:var(--primary-500)}[data-theme=dark] .lms-player-error svg,[data-theme=dark] .lms-no-lesson svg,.dark .lms-player-error svg,.dark .lms-no-lesson svg{stroke:var(--gray-600)}[data-theme=dark] .lms-player-error h2,[data-theme=dark] .lms-no-lesson h2,.dark .lms-player-error h2,.dark .lms-no-lesson h2{color:var(--gray-100)}[data-theme=dark] .lms-player-error p,[data-theme=dark] .lms-no-lesson p,.dark .lms-player-error p,.dark .lms-no-lesson p{color:var(--gray-400)}:root.dark .lms-player,.dark .lms-player{background:var(--gray-900)}:root.dark .lms-player-header,.dark .lms-player-header{background:var(--gray-800);border-bottom-color:var(--gray-700)}:root.dark .lms-menu-btn,.dark .lms-menu-btn{background:var(--gray-700)}:root.dark .lms-menu-btn:hover,.dark .lms-menu-btn:hover{background:var(--gray-600)}:root.dark .lms-menu-btn svg,.dark .lms-menu-btn svg{stroke:var(--gray-300)}:root.dark .lms-back-btn,.dark .lms-back-btn{background:var(--gray-700);color:var(--gray-400)}:root.dark .lms-back-btn:hover,.dark .lms-back-btn:hover{background:var(--gray-600);color:var(--gray-200)}:root.dark .lms-header-title,.dark .lms-header-title{color:var(--gray-100)}:root.dark .lms-header-progress-bar,.dark .lms-header-progress-bar{background:var(--gray-700)}:root.dark .lms-header-progress-text,.dark .lms-header-progress-text{color:var(--gray-400)}:root.dark .lms-breadcrumb,.dark .lms-breadcrumb{color:var(--gray-500)}:root.dark .lms-breadcrumb-chapter,.dark .lms-breadcrumb-chapter{color:var(--gray-400)}:root.dark .lms-breadcrumb-separator,.dark .lms-breadcrumb-separator{stroke:var(--gray-600)}:root.dark .lms-breadcrumb-lesson,.dark .lms-breadcrumb-lesson{color:var(--gpe-indigo-400)}:root.dark .lms-theater-btn,.dark .lms-theater-btn{background:var(--gray-700)}:root.dark .lms-theater-btn:hover,.dark .lms-theater-btn:hover{background:var(--gray-600)}:root.dark .lms-theater-btn svg,.dark .lms-theater-btn svg{stroke:var(--gray-400)}:root.dark .lms-theater-btn.active,.dark .lms-theater-btn.active{background:var(--primary-900)}:root.dark .lms-theater-btn.active svg,.dark .lms-theater-btn.active svg{stroke:var(--primary-400)}:root.dark .lms-player-loading p,:root.dark .lms-lesson-loading p,.dark .lms-player-loading p,.dark .lms-lesson-loading p{color:var(--gray-400)}:root.dark .lms-player-loading .loading-spinner,:root.dark .lms-lesson-loading .loading-spinner,.dark .lms-player-loading .loading-spinner,.dark .lms-lesson-loading .loading-spinner{border-color:var(--gray-700);border-top-color:var(--gpe-indigo)}:root.dark .lms-player-error svg,:root.dark .lms-no-lesson svg,.dark .lms-player-error svg,.dark .lms-no-lesson svg{stroke:var(--gray-600)}:root.dark .lms-player-error h2,:root.dark .lms-no-lesson h2,.dark .lms-player-error h2,.dark .lms-no-lesson h2{color:var(--gray-100)}:root.dark .lms-player-error p,:root.dark .lms-no-lesson p,.dark .lms-player-error p,.dark .lms-no-lesson p{color:var(--gray-400)}:root.dark .lms-certification-progress,.dark .lms-certification-progress{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .lms-cert-progress-item:after,.dark .lms-cert-progress-item:after{background:var(--gray-600)}:root.dark .lms-cert-check,.dark .lms-cert-check{background:var(--gray-700);color:var(--gray-400)}:root.dark .lms-cert-label,.dark .lms-cert-label{color:var(--gray-400)}.quiz-question{display:flex;flex-direction:column;gap:1.5rem;padding:2rem;background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-xl);box-shadow:0 1px 3px #0000000a;max-width:900px;margin:0 auto;width:100%}.quiz-question-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--gray-100)}.quiz-question-number{display:inline-flex;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:700;color:var(--gpe-blue);background:var(--gpe-blue-50);border-radius:var(--radius-full)}.quiz-question-type{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full)}.quiz-question-type.single{background:var(--gray-100);color:var(--gray-600)}.quiz-question-type.multiple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.quiz-question-text{font-size:1.25rem;font-weight:600;color:var(--gray-900);line-height:1.6;margin:0;padding:.5rem 0}.quiz-answers-list{display:flex;flex-direction:column;gap:.875rem}.quiz-answer-option{display:flex;align-items:flex-start;gap:1rem;padding:1.125rem 1.25rem;background:var(--gray-50);border:2px solid var(--gray-100);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;position:relative}.quiz-answer-option:hover:not(.review-mode){background:var(--gpe-blue-50);border-color:var(--gpe-blue-200);transform:translateY(-1px);box-shadow:0 4px 12px #1a56db1a}.quiz-answer-option:focus{outline:none;box-shadow:0 0 0 3px var(--gpe-blue-100)}.quiz-answer-option.selected{background:var(--gpe-blue-50);border-color:var(--gpe-blue);box-shadow:0 4px 12px #1a56db26}.quiz-answer-option.review-mode{cursor:default}.quiz-answer-indicator{display:flex;align-items:center;gap:.625rem;flex-shrink:0}.quiz-radio,.quiz-checkbox{position:absolute;opacity:0;width:0;height:0}.quiz-answer-key{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:.875rem;font-weight:700;color:var(--gray-500);background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-md);transition:all .2s ease}.quiz-answer-option:hover:not(.review-mode) .quiz-answer-key{border-color:var(--gpe-blue);color:var(--gpe-blue);background:var(--white)}.quiz-answer-option.selected .quiz-answer-key{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white);box-shadow:0 2px 6px #1a56db4d}.quiz-answer-text{flex:1;font-size:1rem;color:var(--gray-700);line-height:1.6;padding-top:.25rem}.quiz-answer-option.selected .quiz-answer-text{color:var(--gray-900);font-weight:500}.quiz-answer-check{width:22px;height:22px;color:var(--gpe-blue);flex-shrink:0;margin-top:.25rem;animation:checkIn .2s ease}@keyframes checkIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.quiz-keyboard-hint{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--gray-50);border:1px dashed var(--gray-200);border-radius:var(--radius-md);font-size:.8125rem;color:var(--gray-500);margin-top:.5rem}.quiz-keyboard-hint svg{width:18px;height:18px;color:var(--gray-400);flex-shrink:0}[data-theme=dark] .quiz-question{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .quiz-question-number{background:#1a56db33;color:var(--gpe-blue-300)}[data-theme=dark] .quiz-question-type.single{background:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .quiz-question-type.multiple{background:#7c3aed33;color:var(--gpe-purple-300)}[data-theme=dark] .quiz-question-text{color:var(--gray-100)}[data-theme=dark] .quiz-answer-option{background:var(--gray-700)}[data-theme=dark] .quiz-answer-option:hover:not(.review-mode){background:#1a56db26;border-color:#1a56db4d}[data-theme=dark] .quiz-answer-option:focus{box-shadow:0 0 0 3px #1a56db4d}[data-theme=dark] .quiz-answer-option.selected{background:#1a56db26;border-color:var(--gpe-blue)}[data-theme=dark] .quiz-answer-key{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-400)}[data-theme=dark] .quiz-answer-option:hover:not(.review-mode) .quiz-answer-key{border-color:var(--gpe-blue-300);color:var(--gpe-blue-300)}[data-theme=dark] .quiz-answer-option.selected .quiz-answer-key{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}[data-theme=dark] .quiz-answer-text{color:var(--gray-300)}[data-theme=dark] .quiz-answer-option.selected .quiz-answer-text{color:var(--gray-100)}[data-theme=dark] .quiz-answer-check{color:var(--gpe-blue-300)}[data-theme=dark] .quiz-keyboard-hint{background:var(--gray-700);color:var(--gray-400)}[data-theme=dark] .quiz-keyboard-hint svg{color:var(--gray-500)}@media(max-width:768px){.quiz-question{padding:1.25rem;gap:1rem}.quiz-question-header{flex-direction:column;align-items:flex-start;gap:.5rem}.quiz-question-text{font-size:1rem}.quiz-answer-option{padding:.875rem 1rem;gap:.75rem}.quiz-answer-key{width:26px;height:26px;font-size:.75rem}.quiz-answer-text{font-size:.875rem}.quiz-keyboard-hint{display:none}}@media(max-width:480px){.quiz-question{padding:1rem;border-radius:var(--radius-md)}.quiz-answers-list{gap:.625rem}.quiz-answer-option{padding:.75rem;gap:.625rem}.quiz-answer-key{width:24px;height:24px}}.lms-quiz{display:flex;flex-direction:column;height:100vh;background:var(--gray-50);overflow:hidden}.lms-quiz-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.875rem 1.5rem;background:var(--white);border-bottom:1px solid var(--gray-200);flex-shrink:0;z-index:100;box-shadow:0 1px 3px #0000000d}.lms-quiz-header-left{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.lms-quiz-back-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--gray-100);border-radius:var(--radius-md);color:var(--gray-600);transition:all .2s;flex-shrink:0}.lms-quiz-back-btn:hover{background:var(--gray-200);color:var(--gray-900)}.lms-quiz-back-btn svg{width:22px;height:22px}.lms-quiz-header-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.lms-quiz-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.lms-quiz-chapter-title{font-size:.8125rem;color:var(--gpe-blue);font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lms-quiz-progress{display:flex;align-items:center;gap:.75rem;margin-top:.125rem}.lms-quiz-progress-bar{width:140px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.lms-quiz-progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-green) 0%,var(--gpe-green-dark) 100%);border-radius:3px;transition:width .3s ease}.lms-quiz-progress-text{font-size:.8125rem;font-weight:600;color:var(--gray-600)}.lms-quiz-header-right{display:flex;align-items:center;gap:.875rem;flex-shrink:0}.lms-quiz-timer{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:var(--gray-100);border-radius:var(--radius-md);font-size:.875rem;font-weight:700;color:var(--gray-700);font-variant-numeric:tabular-nums}.lms-quiz-timer svg{width:18px;height:18px}.lms-quiz-timer.warning{background:var(--gpe-orange-50);color:var(--gpe-orange)}.lms-quiz-timer.danger{background:var(--gpe-rose-50);color:var(--gpe-rose);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.lms-quiz-view-toggle{display:flex;background:var(--gray-100);border-radius:var(--radius-md);padding:3px}.lms-quiz-view-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--gray-500);cursor:pointer;transition:all .2s}.lms-quiz-view-btn:hover{color:var(--gray-700)}.lms-quiz-view-btn.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm)}.lms-quiz-view-btn svg{width:18px;height:18px}.lms-quiz-submit-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--gpe-green);color:var(--white);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.lms-quiz-submit-btn:hover:not(:disabled){background:var(--gpe-green-dark);box-shadow:var(--shadow-sm)}.lms-quiz-submit-btn:disabled{opacity:.5;cursor:not-allowed}.lms-quiz-submit-btn svg{width:18px;height:18px}.lms-quiz-submit-btn.large{padding:.875rem 2rem;font-size:1rem}.lms-quiz-layout{display:flex;flex:1;overflow:hidden}.lms-quiz-sidebar{width:240px;background:var(--white);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.lms-quiz-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--gray-100)}.lms-quiz-sidebar-header h2{font-size:.8125rem;font-weight:700;color:var(--gray-800);margin:0;text-transform:uppercase;letter-spacing:.05em}.lms-quiz-sidebar-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 .5rem;background:var(--gpe-blue-50);border-radius:var(--radius-full);font-size:.8125rem;font-weight:700;color:var(--gpe-blue)}.lms-quiz-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:.75rem;overflow-y:auto;flex:1;align-content:start}.lms-quiz-nav-item{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1;min-width:36px;min-height:36px;background:var(--gray-100);border:2px solid transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:700;color:var(--gray-600);cursor:pointer;transition:all .15s ease}.lms-quiz-nav-item:hover{background:var(--gray-200);color:var(--gray-800);transform:scale(1.08)}.lms-quiz-nav-item.current{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white);box-shadow:0 2px 8px #1a56db59}.lms-quiz-nav-item.answered{background:var(--gpe-green-50);color:var(--gpe-green);border-color:var(--gpe-green-100)}.lms-quiz-nav-item.answered.current{background:var(--gpe-green);border-color:var(--gpe-green);color:var(--white);box-shadow:0 2px 8px #05966959}.lms-quiz-nav-check{position:absolute;top:-4px;right:-4px;width:14px;height:14px;padding:2px;background:var(--gpe-green);border-radius:50%;color:var(--white);border:2px solid var(--white)}.lms-quiz-nav-item.answered.current .lms-quiz-nav-check{background:var(--white);color:var(--gpe-green);border-color:var(--gpe-green)}.lms-quiz-sidebar-legend{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 1rem;border-top:1px solid var(--gray-100);background:var(--gray-50)}.lms-quiz-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--gray-600);white-space:nowrap}.lms-quiz-legend-dot{width:14px;height:14px;background:var(--gray-200);border-radius:var(--radius-sm);flex-shrink:0}.lms-quiz-legend-dot.current{background:var(--gpe-blue)}.lms-quiz-legend-dot.answered{background:var(--gpe-green-50);border:2px solid var(--gpe-green)}.lms-quiz-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:2rem 2.5rem;gap:1.5rem;background:var(--gray-50)}.lms-quiz-all-questions{display:flex;flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto;width:100%}.lms-quiz-navigation{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1.25rem 0;margin-top:auto;background:var(--white);border-radius:var(--radius-lg);box-shadow:0 -4px 12px #0000000a}.lms-quiz-nav-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}.lms-quiz-nav-btn:hover:not(:disabled){background:var(--gpe-blue-50);border-color:var(--gpe-blue);color:var(--gpe-blue)}.lms-quiz-nav-btn:disabled{opacity:.4;cursor:not-allowed}.lms-quiz-nav-btn svg{width:18px;height:18px}.lms-quiz-nav-indicator{font-size:1rem;font-weight:700;color:var(--gray-700);padding:0 1rem}.lms-quiz-bottom-submit{display:flex;justify-content:center;padding:2rem 0}.lms-quiz-error-message{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;background:var(--gpe-rose-50);border:1px solid var(--gpe-rose-100);border-radius:var(--radius-md);font-size:.875rem;color:var(--gpe-rose)}.lms-quiz-error-message svg{width:18px;height:18px;flex-shrink:0}.lms-quiz-loading,.lms-quiz-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;padding:2rem;text-align:center}.lms-quiz-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--gpe-blue);border-radius:50%;animation:spin 1s linear infinite}.lms-quiz-loading p{font-size:.9375rem;color:var(--gray-500);margin:0}.lms-quiz-error svg{width:64px;height:64px;stroke:var(--gray-300)}.lms-quiz-error h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.lms-quiz-error p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:400px}.lms-quiz-back-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;background:var(--gpe-blue);color:var(--white);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s}.lms-quiz-back-link:hover{background:var(--gpe-blue-dark)}.lms-quiz-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .2s ease}.lms-quiz-modal{width:100%;max-width:440px;background:var(--white);border-radius:var(--radius-xl);padding:2rem;text-align:center;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lms-quiz-modal-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 1.25rem;background:var(--gray-100);border-radius:50%}.lms-quiz-modal-icon svg{width:32px;height:32px;stroke:var(--gray-500)}.lms-quiz-modal h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.lms-quiz-modal p{font-size:.9375rem;color:var(--gray-600);margin:0 0 .5rem;line-height:1.5}.lms-quiz-modal-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--gpe-orange-50);border-radius:var(--radius-md);font-size:.8125rem;color:var(--gpe-orange-dark);text-align:left;margin-top:1rem}.lms-quiz-modal-warning svg{width:18px;height:18px;flex-shrink:0;margin-top:.125rem}.lms-quiz-modal-actions{display:flex;gap:.75rem;margin-top:1.5rem}.lms-quiz-modal-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;flex:1;padding:.75rem 1.25rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none}.lms-quiz-modal-btn svg{width:18px;height:18px}.lms-quiz-modal-btn.cancel,.lms-quiz-modal-btn.secondary{background:var(--gray-100);border:none;color:var(--gray-700)}.lms-quiz-modal-btn.cancel:hover,.lms-quiz-modal-btn.secondary:hover{background:var(--gray-200)}.lms-quiz-modal-btn.confirm{background:var(--gpe-green);border:none;color:var(--white)}.lms-quiz-modal-btn.confirm:hover{background:var(--gpe-green-dark)}.lms-quiz-modal-btn:disabled{opacity:.7;cursor:wait}.lms-quiz-modal-btn .loading-spinner.small{width:16px;height:16px;border-width:2px}.lms-quiz-modal.results{max-width:480px;overflow:hidden}.lms-quiz-modal.results.certified{max-width:520px;border:3px solid var(--gpe-gold);box-shadow:0 0 40px #f59e0b4d}.lms-quiz-modal.results.passed .lms-quiz-result-icon{background:var(--gpe-green-50)}.lms-quiz-modal.results.passed .lms-quiz-result-icon svg{stroke:var(--gpe-green)}.lms-quiz-modal.results.certified .lms-quiz-result-icon{background:linear-gradient(135deg,var(--gpe-gold) 0%,#D97706 100%);animation:celebrate-pulse 1s ease-in-out infinite}.lms-quiz-modal.results.certified .lms-quiz-result-icon svg{stroke:#fff;fill:#fff3}@keyframes celebrate-pulse{0%,to{transform:scale(1);box-shadow:0 0 #f59e0b80}50%{transform:scale(1.05);box-shadow:0 0 20px 10px #f59e0b00}}.lms-quiz-modal.results.failed .lms-quiz-result-icon{background:var(--gpe-rose-50)}.lms-quiz-modal.results.failed .lms-quiz-result-icon svg{stroke:var(--gpe-rose)}.lms-quiz-confetti{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:10px;height:10px;background:var(--gpe-gold);animation:confetti-fall 3s ease-out forwards}.confetti-0{left:10%;background:var(--gpe-gold);animation-delay:0s;transform:rotate(45deg)}.confetti-1{left:25%;background:var(--gpe-green);animation-delay:.2s;border-radius:50%}.confetti-2{left:45%;background:var(--gpe-blue);animation-delay:.1s}.confetti-3{left:65%;background:var(--gpe-purple);animation-delay:.3s;border-radius:50%}@keyframes confetti-fall{0%{top:-10%;opacity:1;transform:translateY(0) rotate(0) scale(1)}to{top:100%;opacity:0;transform:translateY(100%) rotate(720deg) scale(.5)}}.lms-quiz-certification-subtitle{font-size:1rem;color:var(--gray-600);margin:-.5rem 0 1rem;text-align:center}.result-detail.certificate-code .detail-value{font-family:monospace;font-size:.75rem;background:var(--gray-100);padding:.25rem .5rem;border-radius:var(--radius-sm);letter-spacing:.05em}.lms-quiz-modal-btn.certificate{background:linear-gradient(135deg,var(--gpe-gold) 0%,#D97706 100%);color:#fff;box-shadow:0 4px 12px #f59e0b4d}.lms-quiz-modal-btn.certificate:hover{background:linear-gradient(135deg,#D97706 0%,var(--gpe-gold) 100%);transform:translateY(-2px);box-shadow:0 6px 16px #f59e0b66}.lms-quiz-result-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 1.5rem;border-radius:50%}.lms-quiz-result-icon svg{width:40px;height:40px}.lms-quiz-result-score{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:1.5rem 0}.lms-quiz-result-score .score-value{font-size:3rem;font-weight:800;line-height:1}.lms-quiz-modal.results.passed .score-value{color:var(--gpe-green)}.lms-quiz-modal.results.failed .score-value{color:var(--gpe-rose)}.lms-quiz-result-score .score-label{font-size:.875rem;color:var(--gray-500)}.lms-quiz-result-details{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--gray-50);border-radius:var(--radius-md);margin-bottom:1rem}.lms-quiz-result-details .result-detail{display:flex;align-items:center;justify-content:space-between}.lms-quiz-result-details .detail-label{font-size:.8125rem;color:var(--gray-500)}.lms-quiz-result-details .detail-value{font-size:.875rem;font-weight:600;color:var(--gray-900)}.lms-quiz-result-message{font-size:.9375rem;color:var(--gray-700);line-height:1.5}[data-theme=dark] .lms-quiz{background:var(--gray-950)}[data-theme=dark] .lms-quiz-header{background:var(--gray-900);border-bottom-color:var(--gray-700)}[data-theme=dark] .lms-quiz-back-btn{background:var(--gray-800);color:var(--gray-400)}[data-theme=dark] .lms-quiz-back-btn:hover{background:var(--gray-700);color:var(--gray-200)}[data-theme=dark] .lms-quiz-title{color:var(--gray-100)}[data-theme=dark] .lms-quiz-progress-bar{background:var(--gray-700)}[data-theme=dark] .lms-quiz-progress-text{color:var(--gray-400)}[data-theme=dark] .lms-quiz-timer{background:var(--gray-800);color:var(--gray-300)}[data-theme=dark] .lms-quiz-view-toggle{background:var(--gray-800)}[data-theme=dark] .lms-quiz-view-btn{color:var(--gray-400)}[data-theme=dark] .lms-quiz-view-btn:hover{color:var(--gray-200)}[data-theme=dark] .lms-quiz-view-btn.active{background:var(--gray-700);color:var(--gray-100)}[data-theme=dark] .lms-quiz-sidebar{background:var(--gray-900);border-right-color:var(--gray-700)}[data-theme=dark] .lms-quiz-sidebar-header{border-bottom-color:var(--gray-700)}[data-theme=dark] .lms-quiz-sidebar-header h2{color:var(--gray-300)}[data-theme=dark] .lms-quiz-sidebar-count{background:#1a56db33;color:var(--gpe-blue-300)}[data-theme=dark] .lms-quiz-nav-item{background:var(--gray-800);color:var(--gray-400)}[data-theme=dark] .lms-quiz-nav-item:hover{background:var(--gray-700);color:var(--gray-200)}[data-theme=dark] .lms-quiz-nav-item.current{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white);box-shadow:0 2px 8px #1a56db66}[data-theme=dark] .lms-quiz-nav-item.answered{background:#05966933;color:var(--gpe-green-300)}[data-theme=dark] .lms-quiz-nav-item.answered.current{background:var(--gpe-green);border-color:var(--gpe-green);color:var(--white);box-shadow:0 2px 8px #05966966}[data-theme=dark] .lms-quiz-sidebar-legend{border-top-color:var(--gray-700);background:var(--gray-850)}[data-theme=dark] .lms-quiz-legend-item{color:var(--gray-400)}[data-theme=dark] .lms-quiz-legend-dot{background:var(--gray-700)}[data-theme=dark] .lms-quiz-legend-dot.current{background:var(--gpe-blue)}[data-theme=dark] .lms-quiz-legend-dot.answered{background:#0596694d;border-color:var(--gpe-green-300)}[data-theme=dark] .lms-quiz-main{background:var(--gray-950)}[data-theme=dark] .lms-quiz-nav-btn{background:var(--gray-800);border-color:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .lms-quiz-nav-btn:hover:not(:disabled){background:var(--gray-700);border-color:var(--gray-600)}[data-theme=dark] .lms-quiz-nav-indicator{color:var(--gray-400)}[data-theme=dark] .lms-quiz-error-message{background:#e11d4826;border-color:#e11d484d}[data-theme=dark] .lms-quiz-loading .loading-spinner{border-color:var(--gray-700);border-top-color:var(--gpe-blue)}[data-theme=dark] .lms-quiz-loading p{color:var(--gray-400)}[data-theme=dark] .lms-quiz-error svg{stroke:var(--gray-600)}[data-theme=dark] .lms-quiz-error h2{color:var(--gray-100)}[data-theme=dark] .lms-quiz-error p{color:var(--gray-400)}[data-theme=dark] .lms-quiz-modal{background:var(--gray-800)}[data-theme=dark] .lms-quiz-modal-icon{background:var(--gray-700)}[data-theme=dark] .lms-quiz-modal-icon svg{stroke:var(--gray-400)}[data-theme=dark] .lms-quiz-modal h2{color:var(--gray-100)}[data-theme=dark] .lms-quiz-modal p{color:var(--gray-400)}[data-theme=dark] .lms-quiz-modal-warning{background:#ea580c26;color:var(--gpe-orange-300)}[data-theme=dark] .lms-quiz-modal-btn.cancel,[data-theme=dark] .lms-quiz-modal-btn.secondary{background:var(--gray-700);color:var(--gray-200)}[data-theme=dark] .lms-quiz-modal-btn.cancel:hover,[data-theme=dark] .lms-quiz-modal-btn.secondary:hover{background:var(--gray-600)}[data-theme=dark] .lms-quiz-result-details{background:var(--gray-700)}[data-theme=dark] .lms-quiz-result-details .detail-label{color:var(--gray-400)}[data-theme=dark] .lms-quiz-result-details .detail-value{color:var(--gray-100)}[data-theme=dark] .lms-quiz-result-message{color:var(--gray-300)}@media(max-width:1024px){.lms-quiz-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .3s ease;box-shadow:var(--shadow-xl)}.lms-quiz-sidebar.open{transform:translate(0)}.lms-quiz-main{padding:1.5rem}}@media(max-width:768px){.lms-quiz-header{padding:.625rem 1rem;flex-wrap:wrap;gap:.75rem}.lms-quiz-header-left{flex:1 1 100%}.lms-quiz-header-right{flex:1 1 100%;justify-content:flex-end}.lms-quiz-title{font-size:.9375rem}.lms-quiz-progress-bar{width:100px}.lms-quiz-timer{padding:.375rem .625rem;font-size:.8125rem}.lms-quiz-timer svg{width:16px;height:16px}.lms-quiz-submit-btn span{display:none}.lms-quiz-submit-btn{padding:.625rem}.lms-quiz-main{padding:1rem;gap:1rem}.lms-quiz-navigation{flex-wrap:wrap;gap:.75rem}.lms-quiz-nav-btn{flex:1;justify-content:center}.lms-quiz-nav-indicator{order:-1;width:100%;text-align:center}.lms-quiz-modal{padding:1.5rem;margin:1rem}.lms-quiz-modal h2{font-size:1.125rem}.lms-quiz-modal-actions{flex-direction:column}.lms-quiz-result-score .score-value{font-size:2.5rem}}@media(max-width:480px){.lms-quiz-back-btn{width:36px;height:36px}.lms-quiz-back-btn svg{width:20px;height:20px}.lms-quiz-progress,.lms-quiz-view-toggle{display:none}.lms-quiz-sidebar{width:100%}.lms-quiz-nav-grid{grid-template-columns:repeat(3,1fr)}.lms-quiz-nav-btn{padding:.625rem 1rem;font-size:.8125rem}.lms-quiz-nav-btn span{display:none}.lms-quiz-result-icon{width:64px;height:64px}.lms-quiz-result-icon svg{width:32px;height:32px}}.teaching-eval-list{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.teaching-eval-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;background:linear-gradient(135deg,var(--gpe-indigo-500) 0%,var(--gpe-indigo-600) 100%);border-radius:16px;padding:2rem;margin-bottom:1.5rem;color:#fff}.teaching-eval-header-content h1{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.teaching-eval-header-content p{font-size:1rem;opacity:.9;line-height:1.6}.teaching-eval-header-content strong{color:var(--gpe-amber-300)}.teaching-eval-header-icon{flex-shrink:0;opacity:.3}.teaching-eval-info{display:flex;align-items:flex-start;gap:.75rem;background:var(--gpe-green-50);border:1px solid var(--gpe-green-200);border-radius:12px;padding:1rem 1.25rem;margin-bottom:2rem;font-size:.9375rem;color:var(--gpe-green-800)}.teaching-eval-info svg{flex-shrink:0;color:var(--gpe-green-600);margin-top:2px}.teaching-eval-info strong{font-weight:600}.teaching-eval-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.teaching-eval-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.teaching-eval-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a,0 8px 24px #00000014}.teaching-eval-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--gpe-indigo-50);border-bottom:1px solid var(--gpe-indigo-100)}.teaching-eval-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--gpe-amber-500);color:#fff;font-size:.75rem;font-weight:600;border-radius:20px;text-transform:uppercase;letter-spacing:.025em}.teaching-eval-semester{font-size:.875rem;font-weight:600;color:var(--gpe-indigo-600)}.teaching-eval-card-body{padding:1.25rem}.teaching-eval-ue-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem;line-height:1.4}.teaching-eval-ue-code{font-size:.875rem;color:var(--gray-500);font-family:var(--font-mono, monospace);margin-bottom:1rem}.teaching-eval-teacher,.teaching-eval-year{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--gray-600);margin-bottom:.5rem}.teaching-eval-teacher svg,.teaching-eval-year svg{color:var(--gray-400)}.teaching-eval-card-footer{padding:1rem 1.25rem;background:var(--gray-50);border-top:1px solid var(--gray-100)}.teaching-eval-start-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;background:var(--gpe-indigo-500);color:#fff;font-size:.9375rem;font-weight:600;border-radius:10px;text-decoration:none;transition:all .2s ease}.teaching-eval-start-btn:hover{background:var(--gpe-indigo-600);transform:translateY(-1px)}.teaching-eval-empty{text-align:center;padding:4rem 2rem;background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014}.teaching-eval-empty svg{color:var(--gpe-green-500);margin-bottom:1.5rem}.teaching-eval-empty h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin-bottom:.5rem}.teaching-eval-empty p{color:var(--gray-600);max-width:400px;margin:0 auto}.teaching-eval-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.teaching-eval-spinner{width:48px;height:48px;border:3px solid var(--gray-200);border-top-color:var(--gpe-indigo-500);border-radius:50%;animation:teaching-eval-spin 1s linear infinite;margin-bottom:1rem}@keyframes teaching-eval-spin{to{transform:rotate(360deg)}}.teaching-eval-loading p{color:var(--gray-600)}.teaching-eval-error{text-align:center;padding:4rem 2rem;background:#fff;border-radius:16px}.teaching-eval-error svg{color:var(--gpe-rose-500);margin-bottom:1rem}.teaching-eval-error p{color:var(--gray-600);margin-bottom:1.5rem}.teaching-eval-retry-btn{padding:.75rem 1.5rem;background:var(--gpe-indigo-500);color:#fff;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease}.teaching-eval-retry-btn:hover{background:var(--gpe-indigo-600)}.teaching-eval-remaining{text-align:center;padding:1.5rem;margin-top:2rem}.teaching-eval-remaining p{font-size:.9375rem;color:var(--gray-600)}[data-theme=dark] .teaching-eval-card{background:var(--gray-800)}[data-theme=dark] .teaching-eval-card-header{background:var(--gray-700);border-bottom-color:var(--gray-600)}[data-theme=dark] .teaching-eval-ue-title{color:#fff}[data-theme=dark] .teaching-eval-card-footer{background:var(--gray-750);border-top-color:var(--gray-700)}[data-theme=dark] .teaching-eval-empty,[data-theme=dark] .teaching-eval-error{background:var(--gray-800)}[data-theme=dark] .teaching-eval-info{background:#10b9811a;border-color:#10b9814d;color:var(--gpe-green-400)}@media(max-width:768px){.teaching-eval-list{padding:1rem}.teaching-eval-header{flex-direction:column;text-align:center;padding:1.5rem}.teaching-eval-header-icon{display:none}.teaching-eval-header-content h1{font-size:1.5rem}.teaching-eval-grid{grid-template-columns:1fr}.teaching-eval-info{flex-direction:column;text-align:center}}.teaching-eval-form{max-width:900px;margin:0 auto;padding:1.5rem}.teaching-eval-form-header{margin-bottom:1.5rem}.teaching-eval-form-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--gray-600);font-size:.875rem;text-decoration:none;margin-bottom:1rem;transition:color .2s ease}.teaching-eval-form-back:hover{color:var(--gpe-indigo-500)}.teaching-eval-form-title h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.teaching-eval-form-title p{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--gray-600)}.teaching-eval-form-title .separator{color:var(--gray-300)}.teaching-eval-form-progress{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.teaching-eval-form-progress-bar{flex:1;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.teaching-eval-form-progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-indigo-500) 0%,var(--gpe-indigo-400) 100%);border-radius:4px;transition:width .3s ease}.teaching-eval-form-progress-text{font-size:.875rem;font-weight:600;color:var(--gray-600);white-space:nowrap}.teaching-eval-form-anonymity{display:flex;align-items:center;gap:.75rem;background:var(--gpe-green-50);border:1px solid var(--gpe-green-200);border-radius:10px;padding:.875rem 1rem;margin-bottom:2rem;font-size:.875rem;color:var(--gpe-green-800)}.teaching-eval-form-anonymity svg{flex-shrink:0;color:var(--gpe-green-600)}.teaching-eval-form-anonymity strong{font-weight:600;color:var(--gpe-green-700)}.teaching-eval-form-sections{display:flex;flex-direction:column;gap:2rem}.teaching-eval-form-section{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a;overflow:hidden}.teaching-eval-form-section-title{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--gpe-indigo-500) 0%,var(--gpe-indigo-600) 100%);color:#fff;font-size:1.125rem;font-weight:600}.teaching-eval-form-section-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff3;border-radius:10px}.teaching-eval-form-questions{padding:1rem}.teaching-eval-form-question{padding:1.25rem;border-radius:12px;border:2px solid transparent;transition:all .2s ease;margin-bottom:.75rem}.teaching-eval-form-question:last-child{margin-bottom:0}.teaching-eval-form-question:hover{background:var(--gray-50)}.teaching-eval-form-question.answered{background:var(--gpe-indigo-50);border-color:var(--gpe-indigo-200)}.teaching-eval-form-question-header{display:flex;gap:.75rem;margin-bottom:1rem}.teaching-eval-form-question-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gpe-indigo-100);color:var(--gpe-indigo-600);font-size:.75rem;font-weight:700;border-radius:8px;flex-shrink:0}.teaching-eval-form-question.answered .teaching-eval-form-question-number{background:var(--gpe-indigo-500);color:#fff}.teaching-eval-form-question-text{font-size:.9375rem;color:var(--gray-800);line-height:1.5;padding-top:.25rem}.teaching-eval-form-options{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.teaching-eval-form-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.875rem .5rem;background:#fff;border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:center}.teaching-eval-form-option:hover{border-color:var(--gpe-indigo-300);background:var(--gpe-indigo-50)}.teaching-eval-form-option.selected{border-color:var(--gpe-indigo-500);background:var(--gpe-indigo-100)}.teaching-eval-form-option input{position:absolute;opacity:0;pointer-events:none}.teaching-eval-form-option-circle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid var(--gray-300);border-radius:50%;transition:all .2s ease}.teaching-eval-form-option.selected .teaching-eval-form-option-circle{background:var(--gpe-indigo-500);border-color:var(--gpe-indigo-500);color:#fff}.teaching-eval-form-option-label{font-size:.75rem;font-weight:500;color:var(--gray-600);line-height:1.3}.teaching-eval-form-option.selected .teaching-eval-form-option-label{color:var(--gpe-indigo-700);font-weight:600}.teaching-eval-form-submit{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2rem;padding:1.5rem;background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a}.teaching-eval-form-submit-info p{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500}.teaching-eval-form-submit-info p.complete{color:var(--gpe-green-600)}.teaching-eval-form-submit-info p.incomplete{color:var(--gpe-amber-600)}.teaching-eval-form-submit-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:var(--gpe-indigo-500);color:#fff;font-size:.9375rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.teaching-eval-form-submit-btn:hover:not(:disabled){background:var(--gpe-indigo-600);transform:translateY(-1px)}.teaching-eval-form-submit-btn:disabled{opacity:.5;cursor:not-allowed}.teaching-eval-form-submit-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.teaching-eval-form-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.teaching-eval-form-modal{background:#fff;border-radius:20px;padding:2rem;max-width:420px;width:100%;text-align:center}.teaching-eval-form-modal-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 1.5rem;background:var(--gpe-indigo-100);border-radius:50%;color:var(--gpe-indigo-500)}.teaching-eval-form-modal h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:.75rem}.teaching-eval-form-modal p{font-size:.9375rem;color:var(--gray-600);line-height:1.6;margin-bottom:1.5rem}.teaching-eval-form-modal strong{color:var(--gpe-green-600)}.teaching-eval-form-modal-actions{display:flex;gap:.75rem}.teaching-eval-form-modal-cancel,.teaching-eval-form-modal-confirm{flex:1;padding:.875rem 1rem;font-size:.9375rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s ease}.teaching-eval-form-modal-cancel{background:var(--gray-100);color:var(--gray-700);border:none}.teaching-eval-form-modal-cancel:hover{background:var(--gray-200)}.teaching-eval-form-modal-confirm{background:var(--gpe-indigo-500);color:#fff;border:none}.teaching-eval-form-modal-confirm:hover:not(:disabled){background:var(--gpe-indigo-600)}.teaching-eval-form-modal-confirm:disabled,.teaching-eval-form-modal-cancel:disabled{opacity:.5;cursor:not-allowed}.teaching-eval-form-loading,.teaching-eval-form-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.teaching-eval-form-spinner{width:48px;height:48px;border:3px solid var(--gray-200);border-top-color:var(--gpe-indigo-500);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.teaching-eval-form-error svg{color:var(--gpe-rose-500);margin-bottom:1rem}.teaching-eval-form-error p{color:var(--gray-600);margin-bottom:1.5rem}.teaching-eval-form-back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--gpe-indigo-500);color:#fff;font-weight:600;border-radius:8px;text-decoration:none}[data-theme=dark] .teaching-eval-form-section{background:var(--gray-800)}[data-theme=dark] .teaching-eval-form-question:hover{background:var(--gray-750)}[data-theme=dark] .teaching-eval-form-question.answered{background:#6366f126;border-color:#6366f14d}[data-theme=dark] .teaching-eval-form-question-text{color:var(--gray-200)}[data-theme=dark] .teaching-eval-form-option{background:var(--gray-700);border-color:var(--gray-600)}[data-theme=dark] .teaching-eval-form-option:hover{background:var(--gray-650);border-color:var(--gpe-indigo-400)}[data-theme=dark] .teaching-eval-form-submit,[data-theme=dark] .teaching-eval-form-modal{background:var(--gray-800)}[data-theme=dark] .teaching-eval-form-modal h3{color:#fff}[data-theme=dark] .teaching-eval-form-anonymity{background:#10b9811a;border-color:#10b9814d;color:var(--gpe-green-400)}@media(max-width:768px){.teaching-eval-form{padding:1rem}.teaching-eval-form-title h1{font-size:1.25rem}.teaching-eval-form-options{grid-template-columns:repeat(2,1fr)}.teaching-eval-form-submit{flex-direction:column;text-align:center}.teaching-eval-form-submit-btn{width:100%;justify-content:center}}@media(max-width:480px){.teaching-eval-form-options{grid-template-columns:1fr}.teaching-eval-form-option{flex-direction:row;justify-content:flex-start;padding:.75rem 1rem}.teaching-eval-form-option-label{text-align:left}}.bank-transfer-upload{padding:1.5rem}.upload-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200)}.upload-header h2{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.upload-header p{color:var(--gray-600);font-size:.875rem}.payment-summary{display:flex;justify-content:space-between;background:var(--gray-50);border-radius:8px;padding:1rem;margin-bottom:1rem}.summary-row{display:flex;flex-direction:column;gap:.25rem}.summary-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em}.summary-value{font-size:1rem;color:var(--gray-900)}.summary-value.reference{font-family:monospace;font-weight:600}.summary-value.amount{font-weight:700;color:var(--primary-700);font-size:1.125rem}.bank-details-card{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.bank-details-card h3{font-size:.875rem;font-weight:600;color:#92400e;margin-bottom:.75rem}.bank-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.detail-item{display:flex;flex-direction:column;gap:.125rem}.detail-item.full-width{grid-column:1 / -1}.bank-details-card .detail-label{font-size:.688rem;color:#92400e;text-transform:uppercase;letter-spacing:.025em}.bank-details-card .detail-value{font-size:.813rem;color:#78350f}.bank-details-card .detail-value.iban{font-family:monospace;font-size:.75rem;word-break:break-all}.bank-notice{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #f59e0b;font-size:.813rem;color:#78350f}.bank-notice code{background:#fde68a;padding:.125rem .375rem;border-radius:4px;font-family:monospace;font-weight:600}.upload-section{margin-bottom:1rem}.upload-section h3{font-size:.875rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.upload-hint{font-size:.813rem;color:var(--gray-600);margin-bottom:.75rem}.dropzone{position:relative;border:2px dashed var(--gray-300);border-radius:8px;background:var(--gray-50);transition:all .2s}.dropzone:hover,.dropzone.active{border-color:var(--primary-500);background:var(--primary-50)}.file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone-content{display:flex;flex-direction:column;align-items:center;padding:2rem;cursor:pointer}.dropzone-icon{width:48px;height:48px;background:var(--primary-100);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}.dropzone-icon svg{width:24px;height:24px;color:var(--primary-600)}.dropzone-text{font-size:.875rem;color:var(--gray-700);margin-bottom:.25rem}.dropzone-formats{font-size:.75rem;color:var(--gray-500)}.file-preview{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px}.preview-image{width:60px;height:60px;object-fit:cover;border-radius:4px}.preview-pdf{width:60px;height:60px;background:#fee2e2;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#dc2626}.preview-pdf svg{width:24px;height:24px}.preview-pdf span{font-size:.625rem;font-weight:700;margin-top:.25rem}.file-info{flex:1}.file-name{font-size:.875rem;font-weight:500;color:var(--gray-900);word-break:break-all}.file-size{font-size:.75rem;color:var(--gray-500)}.btn-remove{width:32px;height:32px;border:none;background:var(--gray-200);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-remove svg{width:16px;height:16px;color:var(--gray-600)}.btn-remove:hover{background:#fee2e2}.btn-remove:hover svg{color:#dc2626}.upload-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.upload-error svg{width:18px;height:18px;flex-shrink:0}.upload-actions{display:flex;gap:.75rem;margin-bottom:1rem}.btn-cancel{flex:1;padding:.75rem 1rem;border:1px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.875rem;color:var(--gray-700);cursor:pointer;transition:all .2s}.btn-submit{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border:none;background:var(--primary-600);border-radius:8px;font-size:.875rem;color:#fff;cursor:pointer;transition:all .2s}.btn-submit:hover:not(:disabled){background:var(--primary-700)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.upload-info{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:var(--primary-50);border-radius:8px;font-size:.813rem;color:var(--primary-700)}.upload-info svg{width:18px;height:18px;flex-shrink:0;margin-top:.125rem}@media(max-width:480px){.bank-transfer-upload{padding:1rem}.payment-summary{flex-direction:column;gap:.75rem}.bank-details-grid{grid-template-columns:1fr}.upload-actions{flex-direction:column}}.my-payments-page{padding:2rem;max-width:1200px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.payments-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000001a}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-icon.total{background:#eff6ff;color:#2563eb}.stat-icon.pending{background:#fef3c7;color:#d97706}.stat-icon.completed{background:#d1fae5;color:#059669}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.25rem;font-weight:700;color:var(--gray-900)}.action-banner{display:flex;align-items:flex-start;gap:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.banner-icon{width:40px;height:40px;background:#f59e0b;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.banner-icon svg{width:20px;height:20px}.banner-content h3{font-size:1rem;font-weight:600;color:#92400e;margin-bottom:.25rem}.banner-content p{color:#78350f;font-size:.875rem}.filter-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.tab-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid var(--gray-200);border-radius:8px;font-size:.875rem;color:var(--gray-600);cursor:pointer;transition:all .2s}.tab-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.tab-btn.active{background:var(--primary-50);border-color:var(--primary-500);color:var(--primary-700)}.tab-count{background:var(--gray-100);padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600}.tab-btn.active .tab-count{background:var(--primary-100);color:var(--primary-700)}.payment-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:box-shadow .2s}.payment-card:hover{box-shadow:0 4px 12px #0000001a}.payment-card.needs-action{border-left:4px solid #f59e0b}.payment-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;border-bottom:1px solid var(--gray-100)}.program-info{display:flex;gap:1rem;align-items:center}.program-thumbnail{width:60px;height:60px;border-radius:8px;object-fit:cover}.program-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.status-badge{padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-completed{background:#d1fae5;color:#065f46}.status-pending{background:#fef3c7;color:#92400e}.status-awaiting{background:#eff6ff;color:#1e40af}.status-failed{background:#fee2e2;color:#991b1b}.status-refunded{background:#e5e7eb;color:#374151}.payment-details{padding:1rem 1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.detail-row{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em}.detail-value{font-size:.938rem;color:var(--gray-900)}.detail-value.method{display:flex;align-items:center;gap:.5rem}.method-icon{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem}.paid-date{color:var(--gray-500);font-size:.813rem}.rejection-notice{margin:0 1.25rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:.875rem}.payment-actions{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-100);background:var(--gray-50)}.btn-action{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--gray-300);border-radius:6px;background:#fff;font-size:.813rem;color:var(--gray-700);cursor:pointer;transition:all .2s;text-decoration:none}.btn-action svg{width:16px;height:16px}.btn-action:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-action.primary{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.btn-action.primary:hover{background:var(--primary-700);border-color:var(--primary-700)}.btn-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.empty-icon{width:64px;height:64px;margin:0 auto 1rem;background:var(--gray-100);border-radius:50%;display:flex;align-items:center;justify-content:center}.empty-icon svg{width:32px;height:32px;color:var(--gray-400)}.empty-state h3{font-size:1.125rem;color:var(--gray-900);margin-bottom:.5rem}.btn-retry{margin-top:1rem;padding:.625rem 1.5rem;background:var(--primary-600);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:var(--gray-100);border-radius:50%;font-size:1.5rem;color:var(--gray-500);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}@media(max-width:768px){.my-payments-page{padding:1rem}.payments-stats{grid-template-columns:1fr}.payment-header{flex-direction:column;gap:1rem}.payment-details{grid-template-columns:1fr 1fr}.payment-actions{flex-wrap:wrap}}@media(max-width:480px){.payment-details{grid-template-columns:1fr}.filter-tabs{flex-direction:column}.tab-btn{width:100%;justify-content:center}}.training-payment-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#f1f5f9);padding:2rem 1rem}.training-payment-container{max-width:720px;margin:0 auto}.training-payment-loading,.training-payment-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:2rem}.training-payment-loading .loading-spinner{width:48px;height:48px;border:3px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin 1s linear infinite}.training-payment-error svg{color:#f87171;margin-bottom:1rem}.training-payment-error h2{font-size:1.5rem;color:#111827;margin:0 0 .5rem}.training-payment-error p{color:#6b7280;margin:0 0 1.5rem}.payment-progress{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000f}.progress-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.5;transition:opacity .3s ease}.progress-step.active{opacity:1}.progress-step .step-number{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#e5e7eb;color:#6b7280;border-radius:50%;font-weight:600;font-size:.875rem;transition:all .3s ease}.progress-step.active .step-number{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;box-shadow:0 4px 12px #4f46e54d}.progress-step .step-label{font-size:.75rem;font-weight:500;color:#6b7280;white-space:nowrap}.progress-step.active .step-label{color:#111827}.progress-line{width:60px;height:2px;background:#e5e7eb;margin:0 .5rem}.payment-error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-bottom:1.5rem}.payment-error-banner svg{color:#dc2626;flex-shrink:0}.payment-error-banner span{flex:1;font-size:.875rem;color:#b91c1c}.error-dismiss{background:none;border:none;padding:.25rem;cursor:pointer;color:#dc2626;opacity:.7;transition:opacity .2s}.error-dismiss:hover{opacity:1}.payment-step-content{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.payment-step-content h1{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 .5rem}.step-description{font-size:.9375rem;color:#6b7280;margin:0 0 2rem}.back-button{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;color:#6b7280;font-size:.875rem;font-weight:500;cursor:pointer;padding:0;margin-bottom:1.5rem;transition:color .2s}.back-button:hover{color:#111827}.payment-section{margin-bottom:2rem}.payment-section h2{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin:0 0 1rem}.user-info-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.user-info-card .user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;flex-shrink:0}.user-info-card .user-details{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.user-info-card .user-name{font-weight:600;color:#111827}.user-info-card .user-email{font-size:.875rem;color:#6b7280}.info-verified{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#d1fae5;color:#059669;border-radius:9999px;font-size:.75rem;font-weight:500}.formation-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.formation-thumbnail{width:80px;height:60px;object-fit:cover;border-radius:8px;flex-shrink:0}.formation-details{flex:1;min-width:0}.formation-details h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .375rem}.formation-meta{display:flex;flex-direction:column;gap:.25rem}.session-info,.date-info{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#6b7280}.session-info svg{flex-shrink:0}.formation-price{text-align:right}.formation-price .price-value{font-size:1.25rem;font-weight:700;color:#111827}.payment-methods{display:flex;flex-direction:column;gap:1rem}.payment-method-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:2px solid #e5e7eb;border-radius:16px;cursor:pointer;transition:all .3s ease;text-align:left}.payment-method-card:hover{border-color:#4f46e5;background:#f9fafb;transform:translateY(-2px);box-shadow:0 4px 12px #4f46e51a}.method-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.method-icon.online{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff}.method-icon.check{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff}.method-info{flex:1}.method-info h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .25rem}.method-info p{font-size:.875rem;color:#6b7280;margin:0 0 .5rem}.method-badge{display:inline-flex;padding:.25rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.method-badge.instant{background:#d1fae5;color:#059669}.method-badge.pending{background:#fef3c7;color:#d97706}.method-arrow{color:#9ca3af;transition:transform .2s}.payment-method-card:hover .method-arrow{transform:translate(4px);color:#4f46e5}.payment-actions{display:flex;justify-content:flex-start;padding-top:1rem;border-top:1px solid #e5e7eb;margin-top:1rem}.payment-summary-card{background:#f9fafb;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;border:1px solid #e5e7eb}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.summary-row span:first-child{color:#6b7280;font-size:.875rem}.summary-row span:last-child{color:#111827;font-weight:500}.summary-row.total span:first-child{font-weight:600;color:#111827}.summary-row.total span:last-child{font-size:1.25rem;font-weight:700;color:#4f46e5}.summary-divider{height:1px;background:#e5e7eb;margin:.75rem 0}.payment-form{margin-top:1.5rem}.form-notice{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:#f0fdf4;border-radius:8px;margin-bottom:1.5rem}.form-notice svg{color:#22c55e}.form-notice span{font-size:.875rem;font-weight:500;color:#166534}.btn-pay,.btn-submit-check{width:100%;padding:1rem 1.5rem;font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.625rem;border-radius:12px}.check-form{margin-top:1.5rem}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.check-notice{display:flex;gap:.75rem;padding:1rem;background:#fef3c7;border-radius:8px;margin-bottom:1.5rem}.check-notice svg{color:#d97706;flex-shrink:0;margin-top:.125rem}.check-notice strong{display:block;font-size:.875rem;color:#92400e;margin-bottom:.25rem}.check-notice p{font-size:.8125rem;color:#b45309;margin:0;line-height:1.5}.payment-step-content.confirmation{text-align:center;padding:3rem 2rem}.confirmation-icon{width:96px;height:96px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:50%}.confirmation-icon svg{color:#059669}.confirmation-message{font-size:1rem;color:#6b7280;margin:0 0 2rem;max-width:400px;margin-left:auto;margin-right:auto}.confirmation-details{background:#f9fafb;border-radius:12px;padding:1.25rem;margin-bottom:2rem;text-align:left}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.detail-item:not(:last-child){border-bottom:1px solid #e5e7eb}.detail-label{font-size:.875rem;color:#6b7280}.detail-value{font-weight:500;color:#111827}.detail-value.status-pending{color:#d97706}.btn-access{padding:1rem 2rem;font-size:1rem}.pending-notice{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;background:#eff6ff;border-radius:12px;margin-bottom:2rem;text-align:left}.pending-notice svg{color:#3b82f6;flex-shrink:0;margin-top:.125rem}.pending-notice p{font-size:.875rem;color:#1e40af;margin:0;line-height:1.5}.confirmation-actions{display:flex;flex-direction:column;gap:.75rem}.confirmation-actions .btn{width:100%;justify-content:center}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;box-shadow:0 4px 12px #4f46e540}.btn-primary:hover{background:linear-gradient(135deg,#4338ca,#4f46e5);transform:translateY(-1px);box-shadow:0 6px 16px #4f46e54d}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:640px){.training-payment-page{padding:1rem}.payment-step-content{padding:1.5rem;border-radius:16px}.payment-progress{padding:1rem}.progress-line{width:30px}.progress-step .step-label{display:none}.formation-card{flex-direction:column;align-items:flex-start;gap:1rem}.formation-thumbnail{width:100%;height:120px}.formation-price{width:100%;text-align:left;padding-top:.5rem;border-top:1px solid #e5e7eb}.user-info-card{flex-wrap:wrap}.info-verified{order:-1;width:100%;justify-content:center;margin-bottom:.5rem}}.student-mes-cours{max-width:1200px;margin:0 auto}.student-mes-cours .semester-select{padding:.625rem 2.5rem .625rem 1rem;border:2px solid var(--gray-200);border-radius:var(--student-radius-sm);font-size:var(--student-font-base);font-weight:500;color:var(--gray-700);background:var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .75rem center no-repeat;background-size:1.25em 1.25em;appearance:none;cursor:pointer;transition:all .2s ease;min-height:var(--student-touch-target)}.student-mes-cours .semester-select:hover{border-color:var(--student-primary-200)}.student-mes-cours .semester-select:focus{outline:none;border-color:var(--student-primary);box-shadow:0 0 0 3px var(--student-primary-50)}.mes-cours-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.mes-cours-stats .stat-card{background:var(--white);border-radius:var(--student-radius);border:1px solid var(--gray-200);padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.mes-cours-stats .stat-card:hover{border-color:var(--student-primary-200);box-shadow:0 4px 12px #4f46e514}.mes-cours-stats .stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mes-cours-stats .stat-icon svg{width:24px;height:24px}.mes-cours-stats .stat-total .stat-icon{background:linear-gradient(135deg,var(--gpe-indigo-50, #eef2ff) 0%,var(--gpe-indigo-100, #e0e7ff) 100%);color:var(--gpe-indigo, #4f46e5)}.mes-cours-stats .stat-progress .stat-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#f59e0b}.mes-cours-stats .stat-completed .stat-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:var(--student-success)}.mes-cours-stats .stat-attendance .stat-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--student-info)}.mes-cours-stats .stat-content{display:flex;flex-direction:column;gap:.125rem}.mes-cours-stats .stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900);line-height:1.2}.mes-cours-stats .stat-suffix{font-size:1rem;font-weight:500;color:var(--gray-500)}.mes-cours-stats .stat-label{font-size:var(--student-font-sm);color:var(--gray-500)}.mes-cours-toolbar{margin-bottom:1rem}.mes-cours-toolbar .toolbar-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;flex-wrap:wrap}.mes-cours-toolbar .search-wrapper{position:relative;flex:1;min-width:200px}.mes-cours-toolbar .search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}.mes-cours-toolbar .search-input{width:100%;padding:.6rem 1rem .6rem 2.5rem;border:1px solid var(--gray-200);border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);color:var(--gray-700);background:var(--gray-50);transition:all .2s ease;min-height:var(--student-touch-target)}.mes-cours-toolbar .search-input::placeholder{color:var(--gray-400)}.mes-cours-toolbar .search-input:hover{background:var(--white);border-color:var(--gray-300)}.mes-cours-toolbar .search-input:focus{outline:none;background:var(--white);border-color:var(--student-primary);box-shadow:0 0 0 3px var(--student-primary-50)}.mes-cours-toolbar .toolbar-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.mes-cours-toolbar .filter-select{padding:.6rem 2rem .6rem .75rem;border:1px solid var(--gray-200);border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);color:var(--gray-700);background:var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") right .5rem center no-repeat;background-size:1.25em 1.25em;appearance:none;cursor:pointer;transition:all .2s ease;min-height:var(--student-touch-target)}.view-toggle{display:flex;border:1px solid var(--gray-200);border-radius:var(--student-radius-sm);overflow:hidden}.view-toggle-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:var(--white);color:var(--gray-400);cursor:pointer;transition:all .15s ease}.view-toggle-btn:first-child{border-right:1px solid var(--gray-200)}.view-toggle-btn:hover{background:var(--gray-50);color:var(--gray-600)}.view-toggle-btn.active{background:var(--student-primary);color:var(--white)}.mes-cours-toolbar .active-filters{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-top:1px solid var(--gray-100);flex-wrap:wrap}.mes-cours-toolbar .active-filters-label{font-size:var(--student-font-sm);color:var(--gray-500)}.mes-cours-toolbar .filter-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .5rem .2rem .75rem;background:var(--student-primary-50);color:var(--student-primary);border-radius:20px;font-size:var(--student-font-sm);font-weight:500}.mes-cours-toolbar .filter-tag button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;color:var(--student-primary);cursor:pointer;border-radius:50%;transition:background .2s ease}.mes-cours-toolbar .filter-tag button:hover{background:var(--student-primary-100)}.mes-cours-toolbar .clear-all-filters{margin-left:auto;padding:.375rem .75rem;border:none;background:transparent;color:var(--gray-500);font-size:var(--student-font-sm);font-weight:500;cursor:pointer}.mes-cours-toolbar .clear-all-filters:hover{color:var(--student-primary)}.mes-cours-result-count{font-size:var(--student-font-sm);color:var(--gray-500);margin-bottom:1rem;padding-left:.25rem}.mes-cours-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.25rem}.ue-card{background:var(--white);border-radius:var(--card-radius-premium, 16px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));overflow:hidden;transition:var(--card-transition-premium, all .3s cubic-bezier(.4, 0, .2, 1));display:flex;flex-direction:column}.ue-card:hover{box-shadow:var(--card-shadow-colored, 0 12px 32px rgba(79, 70, 229, .12));transform:translateY(-4px)}.ue-card-blue{border-top:4px solid var(--gpe-indigo, #4f46e5)}.ue-card-green{border-top:4px solid var(--student-success)}.ue-card-purple{border-top:4px solid #8b5cf6}.ue-card-orange{border-top:4px solid #f97316}.ue-card-rose{border-top:4px solid #f43f5e}.ue-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}.ue-code-badge{font-size:12px;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;padding:.25rem .625rem;background:var(--white);border-radius:6px;border:1px solid var(--gray-200)}.ue-status-badge{font-size:11px;font-weight:600;padding:.25rem .625rem;border-radius:999px;text-transform:uppercase;letter-spacing:.025em}.ue-status-badge.status-in-progress{background:#fef3c7;color:#92400e}.ue-status-badge.status-completed{background:#d1fae5;color:#065f46}.ue-status-badge.status-failed{background:#fee2e2;color:#991b1b}.ue-status-badge.status-pending{background:var(--gray-100);color:var(--gray-600)}.ue-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:.875rem;flex:1}.ue-name{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-900);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ue-teacher,.ue-schedule{display:flex;align-items:center;gap:.5rem;font-size:var(--student-font-sm);color:var(--gray-600)}.ue-teacher svg,.ue-schedule svg{color:var(--gray-400);flex-shrink:0}.ue-attendance{padding:.875rem;background:var(--gray-50);border-radius:10px}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.attendance-label{font-size:var(--student-font-sm);color:var(--gray-500)}.attendance-value{font-size:var(--student-font-sm);font-weight:600}.attendance-value.attendance-good{color:var(--student-success)}.attendance-value.attendance-warning{color:#f59e0b}.attendance-value.attendance-danger{color:#ef4444}.attendance-bar{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;margin-bottom:.375rem}.attendance-fill{height:100%;border-radius:3px;transition:width .3s ease}.attendance-fill.attendance-good{background:var(--student-success)}.attendance-fill.attendance-warning{background:#f59e0b}.attendance-fill.attendance-danger{background:#ef4444}.attendance-detail{font-size:11px;color:var(--gray-400)}.ue-grades{display:flex;gap:.5rem;flex-wrap:wrap}.grade-item{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;background:var(--gray-50);border-radius:8px;min-width:50px}.grade-item.grade-final{background:var(--gpe-indigo-50, #eef2ff)}.grade-item.grade-retake{background:#fef3c7}.grade-label{font-size:10px;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.125rem}.grade-value{font-size:var(--student-font-sm);font-weight:700;color:var(--gray-900)}.grade-value.grade-pass{color:var(--student-success)}.grade-value.grade-fail{color:#ef4444}.ue-credits{display:flex;align-items:center;gap:.375rem;font-size:var(--student-font-sm);color:var(--gray-500)}.ue-credits svg{color:var(--gray-400)}.ue-card-footer{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-100);margin-top:auto}.ue-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem 1rem;border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;border:none}.ue-action-btn.primary{flex:1;background:var(--student-primary);color:var(--white)}.ue-action-btn.primary:hover{background:var(--student-primary-dark, #4338ca)}.ue-action-btn.secondary{background:var(--gray-100);color:var(--gray-700)}.ue-action-btn.secondary:hover{background:var(--gray-200)}.ue-action-btn:focus-visible{outline:var(--student-focus-ring);outline-offset:var(--student-focus-offset)}.mes-cours-table-wrap{background:var(--white);border-radius:var(--student-radius);border:1px solid var(--gray-200);overflow:hidden}.mes-cours-table{width:100%;border-collapse:collapse}.mes-cours-table th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--gray-200);background:var(--gray-50);white-space:nowrap}.mes-cours-table td{padding:.75rem 1rem;font-size:var(--student-font-sm);color:var(--gray-700);border-bottom:1px solid var(--gray-100);vertical-align:middle}.mes-cours-table tr:last-child td{border-bottom:none}.mes-cours-table tr:hover td{background:var(--gray-50)}.table-code{font-size:.75rem;font-weight:700;color:var(--gray-500);letter-spacing:.03em;background:var(--gray-100);padding:.15rem .5rem;border-radius:4px}.table-ue-name{font-weight:600;color:var(--gray-900);text-decoration:none;transition:color .15s}.table-ue-name:hover{color:var(--student-primary)}.table-teacher{color:var(--gray-500);font-size:.8rem}.table-center{text-align:center}.table-attendance{display:flex;align-items:center;gap:.5rem;min-width:100px}.table-attendance-value{font-weight:600;font-size:.8rem;min-width:36px}.table-attendance-bar{flex:1;height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden;min-width:40px}.table-grade{font-weight:500;color:var(--gray-600)}.table-grade-final{font-weight:700}.table-detail-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;color:var(--gray-400);text-decoration:none;transition:all .15s}.table-detail-btn:hover{background:var(--student-primary-50);color:var(--student-primary)}.mes-cours-empty{padding:3rem 1.5rem}@media(max-width:1024px){.mes-cours-stats{grid-template-columns:repeat(2,1fr)}.mes-cours-toolbar .toolbar-row{flex-direction:column;align-items:stretch}.mes-cours-toolbar .search-wrapper{min-width:100%}.mes-cours-toolbar .toolbar-controls{justify-content:flex-start}.mes-cours-table-wrap{overflow-x:auto}}@media(max-width:768px){.student-mes-cours .student-page-header{flex-direction:column;align-items:flex-start;gap:1rem}.mes-cours-grid{grid-template-columns:1fr}.mes-cours-toolbar .toolbar-controls{flex-wrap:wrap;width:100%}.mes-cours-toolbar .filter-select{flex:1;min-width:140px}}@media(max-width:640px){.mes-cours-stats{grid-template-columns:repeat(2,1fr);gap:.75rem}.mes-cours-stats .stat-card{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.mes-cours-stats .stat-icon{width:40px;height:40px}.mes-cours-stats .stat-icon svg{width:20px;height:20px}.mes-cours-stats .stat-value{font-size:1.25rem}.ue-grades{justify-content:space-between}.grade-item{flex:1;min-width:auto}}:root.dark .ue-card,.dark .ue-card{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .ue-card-header,.dark .ue-card-header{background:var(--gray-900);border-color:var(--gray-700)}:root.dark .ue-code-badge,.dark .ue-code-badge{background:var(--gray-700);border-color:var(--gray-600);color:var(--gray-300)}:root.dark .ue-name,.dark .ue-name{color:var(--gray-100)}:root.dark .ue-attendance,:root.dark .grade-item,.dark .ue-attendance,.dark .grade-item{background:var(--gray-700)}:root.dark .attendance-bar,.dark .attendance-bar{background:var(--gray-600)}:root.dark .grade-value,.dark .grade-value{color:var(--gray-100)}:root.dark .ue-card-footer,.dark .ue-card-footer{border-color:var(--gray-700)}:root.dark .mes-cours-table-wrap,.dark .mes-cours-table-wrap{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .mes-cours-table th,.dark .mes-cours-table th{background:var(--gray-900);border-color:var(--gray-700);color:var(--gray-400)}:root.dark .mes-cours-table td,.dark .mes-cours-table td{border-color:var(--gray-700);color:var(--gray-300)}:root.dark .table-ue-name,.dark .table-ue-name{color:var(--gray-100)}:root.dark .table-code,.dark .table-code{background:var(--gray-700);color:var(--gray-300)}:root.dark .view-toggle-btn,.dark .view-toggle-btn{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-400)}:root.dark .view-toggle,.dark .view-toggle{border-color:var(--gray-600)}:root.dark .ue-action-btn.secondary,.dark .ue-action-btn.secondary{background:var(--gray-700);color:var(--gray-200)}@media(prefers-reduced-motion:reduce){.ue-card:hover{transform:none}}.student-ue-detail{max-width:1200px;margin:0 auto}.student-ue-detail .breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:var(--student-font-sm)}.student-ue-detail .breadcrumb-link{color:var(--student-primary);text-decoration:none;transition:color .2s ease}.student-ue-detail .breadcrumb-link:hover{color:var(--student-primary-dark, #4338ca)}.student-ue-detail .breadcrumb svg{color:var(--gray-400);flex-shrink:0}.student-ue-detail .breadcrumb-current{color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.ue-detail-header{background:var(--white);border-radius:var(--card-radius-premium, 16px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));padding:1.5rem 2rem;margin-bottom:1.5rem;border-top:4px solid var(--gpe-indigo, #4f46e5)}.ue-detail-header-blue{border-top-color:var(--gpe-indigo, #4f46e5)}.ue-detail-header-green{border-top-color:var(--student-success)}.ue-detail-header-purple{border-top-color:#8b5cf6}.ue-detail-header-orange{border-top-color:#f97316}.ue-detail-header-rose{border-top-color:#f43f5e}.ue-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.ue-header-main{flex:1}.ue-header-badges{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.ue-detail-header .ue-code-badge{font-size:12px;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;padding:.375rem .75rem;background:var(--gray-100);border-radius:6px}.ue-detail-header .ue-status-badge{font-size:11px;font-weight:600;padding:.375rem .75rem;border-radius:999px;text-transform:uppercase;letter-spacing:.025em}.ue-header-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem;line-height:1.3}.ue-header-meta{display:flex;flex-wrap:wrap;gap:1.25rem}.ue-header-meta .meta-item{display:flex;align-items:center;gap:.5rem;font-size:var(--student-font-sm);color:var(--gray-600)}.ue-header-meta .meta-item svg{color:var(--gray-400);flex-shrink:0}.ue-header-actions{flex-shrink:0}.download-syllabus-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--student-primary);color:var(--white);border:none;border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.download-syllabus-btn:hover{background:var(--student-primary-dark, #4338ca)}.download-syllabus-btn:disabled{opacity:.7;cursor:not-allowed}.download-syllabus-btn .btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.ue-detail-layout{display:grid;grid-template-columns:1fr 320px;gap:1.5rem}.ue-detail-main{min-width:0}.ue-detail-sidebar{display:flex;flex-direction:column;gap:1rem}.ue-tabs{display:flex;background:var(--white);border-radius:var(--student-radius);border:1px solid var(--gray-200);padding:.375rem;margin-bottom:1rem;overflow-x:auto;gap:.25rem}.ue-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;font-size:var(--student-font-sm);font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .2s ease;white-space:nowrap}.ue-tab:hover{background:var(--gray-100);color:var(--gray-900)}.ue-tab.active{background:var(--student-primary);color:var(--white)}.ue-tab svg{flex-shrink:0}.tab-badge{padding:.125rem .5rem;background:#fff3;border-radius:999px;font-size:11px;font-weight:600}.ue-tab:not(.active) .tab-badge{background:var(--gray-200);color:var(--gray-600)}.ue-tab-content{min-height:400px}.info-section{margin-bottom:2rem}.info-section:last-child{margin-bottom:0}.info-section-title{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-900);margin:0 0 1rem}.info-text{font-size:var(--student-font-base);color:var(--gray-600);line-height:1.7;margin:0}.objectives-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.objectives-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:var(--student-font-base);color:var(--gray-700);line-height:1.5}.objectives-list li svg{flex-shrink:0;color:var(--student-success);margin-top:2px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--gray-50);border-radius:10px}.info-label{font-size:var(--student-font-sm);color:var(--gray-500)}.info-value{font-size:var(--student-font-lg);font-weight:600;color:var(--gray-900)}.evaluation-methods{display:flex;flex-direction:column;gap:.75rem}.eval-method{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px}.eval-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--white);border-radius:10px;color:var(--student-primary)}.eval-info{flex:1;display:flex;justify-content:space-between;align-items:center}.eval-name{font-size:var(--student-font-base);font-weight:500;color:var(--gray-700)}.eval-weight{font-size:var(--student-font-base);font-weight:600;color:var(--student-primary)}.sessions-count{font-size:var(--student-font-sm);color:var(--gray-500)}.sessions-list{display:flex;flex-direction:column;gap:.75rem}.session-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;border-left:4px solid var(--gray-300)}.session-item.session-completed{border-left-color:var(--student-success)}.session-item.session-upcoming{border-left-color:var(--student-info)}.session-item.session-ongoing{border-left-color:#f59e0b}.session-item.session-cancelled{border-left-color:var(--gray-400);opacity:.6}.session-date{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:.5rem;background:var(--white);border-radius:8px}.session-date .date-day{font-size:1.25rem;font-weight:700;color:var(--gray-900);line-height:1}.session-date .date-month{font-size:11px;font-weight:500;color:var(--gray-500);text-transform:uppercase}.session-info{flex:1}.session-time{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.session-topic{font-size:var(--student-font-sm);color:var(--gray-600);margin-top:.25rem}.session-meta{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.session-type{font-size:11px;font-weight:600;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase}.session-type.type-presentiel{background:var(--gpe-indigo-50, #eef2ff);color:var(--gpe-indigo, #4f46e5)}.session-type.type-distanciel{background:#dbeafe;color:#2563eb}.session-room{display:flex;align-items:center;gap:.25rem;font-size:var(--student-font-sm);color:var(--gray-500)}.session-status-col{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.session-status-badge{font-size:11px;font-weight:600;padding:.25rem .625rem;border-radius:999px;text-transform:uppercase}.session-status-badge.status-upcoming{background:#dbeafe;color:#1e40af}.session-status-badge.status-ongoing{background:#fef3c7;color:#92400e}.session-status-badge.status-completed{background:#d1fae5;color:#065f46}.session-status-badge.status-cancelled{background:var(--gray-200);color:var(--gray-600)}.attendance-badge{font-size:10px;font-weight:600;padding:.25rem .5rem;border-radius:4px}.attendance-badge.attendance-present{background:#d1fae5;color:#065f46}.attendance-badge.attendance-absent{background:#fee2e2;color:#991b1b}.attendance-badge.attendance-late{background:#fef3c7;color:#92400e}.attendance-badge.attendance-justified{background:#dbeafe;color:#1e40af}.grades-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.grade-summary-item{display:flex;flex-direction:column;align-items:center;padding:1.25rem;background:var(--gray-50);border-radius:12px}.grade-summary-item.final{background:var(--gpe-indigo-50, #eef2ff)}.grade-summary-item.retake{background:#fef3c7}.grade-summary-item .summary-label{font-size:var(--student-font-sm);color:var(--gray-500);margin-bottom:.5rem}.grade-summary-item .summary-value{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.grade-summary-item .summary-value.grade-pass{color:var(--student-success)}.grade-summary-item .summary-value.grade-fail{color:#ef4444}.grade-components{margin-bottom:2rem}.components-title{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900);margin:0 0 1rem}.components-list{display:flex;flex-direction:column;gap:.5rem}.component-item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--gray-50);border-radius:8px}.component-info{display:flex;align-items:center;gap:1rem}.component-title{font-size:var(--student-font-base);font-weight:500;color:var(--gray-900)}.component-type{font-size:11px;font-weight:600;padding:.25rem .5rem;background:var(--gray-200);border-radius:4px;color:var(--gray-600);text-transform:uppercase}.component-date{font-size:var(--student-font-sm);color:var(--gray-500)}.component-grade{text-align:right}.component-value{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.component-weight{font-size:var(--student-font-sm);color:var(--gray-500);display:block}.grade-status-section{padding:1.5rem;background:var(--gray-50);border-radius:12px;text-align:center}.status-title{font-size:var(--student-font-sm);font-weight:500;color:var(--gray-500);margin:0 0 .75rem}.grade-status-badge{display:inline-block;padding:.5rem 1rem;border-radius:999px;font-size:var(--student-font-base);font-weight:600}.grade-status-badge.en_cours{background:#fef3c7;color:#92400e}.grade-status-badge.valide{background:#d1fae5;color:#065f46}.grade-status-badge.non_valide{background:#fee2e2;color:#991b1b}.grade-status-badge.rattrapage{background:#dbeafe;color:#1e40af}.validated-date{font-size:var(--student-font-sm);color:var(--gray-500);margin:.75rem 0 0}.attendance-summary{display:flex;align-items:center;gap:2rem;padding:1.5rem;background:var(--gray-50);border-radius:12px;margin-bottom:2rem}.attendance-rate-circle{position:relative;width:120px;height:120px;flex-shrink:0}.rate-ring{transform:rotate(-90deg)}.rate-value{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.rate-percent{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.rate-label{font-size:var(--student-font-sm);color:var(--gray-500)}.attendance-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;flex:1}.att-stat{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:var(--white);border-radius:10px}.att-stat-value{font-size:1.25rem;font-weight:700;line-height:1}.att-stat.present .att-stat-value{color:var(--student-success)}.att-stat.absent .att-stat-value{color:#ef4444}.att-stat.late .att-stat-value{color:#f59e0b}.att-stat.justified .att-stat-value{color:var(--student-info)}.att-stat-label{font-size:11px;color:var(--gray-500);margin-top:.25rem}.attendance-warning{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fef2f2;border-radius:10px;margin-top:1rem;width:100%}.attendance-warning svg{color:#ef4444;flex-shrink:0}.attendance-warning span{font-size:var(--student-font-sm);color:#991b1b}.history-title{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900);margin:0 0 1rem}.history-list{display:flex;flex-direction:column;gap:.5rem}.history-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:var(--gray-50);border-radius:8px;border-left:3px solid var(--gray-300)}.history-item.attendance-present{border-left-color:var(--student-success)}.history-item.attendance-absent{border-left-color:#ef4444}.history-item.attendance-late{border-left-color:#f59e0b}.history-item.attendance-justified{border-left-color:var(--student-info)}.history-date{display:flex;flex-direction:column;align-items:center;min-width:40px}.history-date .date-day{font-size:1rem;font-weight:700;color:var(--gray-900);line-height:1}.history-date .date-month{font-size:10px;font-weight:500;color:var(--gray-500);text-transform:uppercase}.history-info{flex:1}.history-time{font-size:var(--student-font-sm);font-weight:500;color:var(--gray-700)}.history-topic{font-size:var(--student-font-sm);color:var(--gray-500)}.late-info{font-size:11px;color:#f59e0b;font-weight:500}.history-status{font-size:11px;font-weight:600;padding:.25rem .625rem;border-radius:999px}.history-status.attendance-present{background:#d1fae5;color:#065f46}.history-status.attendance-absent{background:#fee2e2;color:#991b1b}.history-status.attendance-late{background:#fef3c7;color:#92400e}.history-status.attendance-justified{background:#dbeafe;color:#1e40af}.resources-count{font-size:var(--student-font-sm);color:var(--gray-500)}.resources-list{display:flex;flex-direction:column;gap:.5rem}.resource-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;text-decoration:none;transition:all .2s ease}.resource-item:hover{background:var(--gray-100)}.resource-item.syllabus{background:var(--gpe-indigo-50, #eef2ff);border:1px solid var(--gpe-indigo-100, #e0e7ff)}.resource-item.syllabus:hover{background:var(--gpe-indigo-100, #e0e7ff)}.resource-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--white);border-radius:10px;color:var(--gray-500);flex-shrink:0}.resource-type-pdf .resource-icon,.resource-type-syllabus .resource-icon{color:#ef4444}.resource-type-video .resource-icon{color:var(--student-primary)}.resource-type-link .resource-icon{color:var(--student-info)}.resource-info{flex:1;min-width:0}.resource-title{display:block;font-size:var(--student-font-base);font-weight:500;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-meta{display:flex;align-items:center;gap:.75rem;font-size:var(--student-font-sm);color:var(--gray-500);margin-top:.25rem}.resource-date{color:var(--gray-400)}.resource-action{color:var(--gray-400);transition:color .2s ease}.resource-item:hover .resource-action{color:var(--student-primary)}.sidebar-card-title{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900);margin:0 0 1rem}.sidebar-teacher-card{padding:1.25rem}.teacher-profile{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.teacher-avatar{width:56px;height:56px;border-radius:50%;background:var(--student-primary);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;flex-shrink:0;overflow:hidden}.teacher-avatar img{width:100%;height:100%;object-fit:cover}.teacher-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.teacher-name{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.teacher-email{font-size:var(--student-font-sm);color:var(--student-primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-email:hover{text-decoration:underline}.teacher-phone{font-size:var(--student-font-sm);color:var(--gray-500)}.teacher-office,.teacher-hours{display:flex;align-items:center;gap:.5rem;font-size:var(--student-font-sm);color:var(--gray-600);margin-bottom:.5rem}.teacher-office svg,.teacher-hours svg{color:var(--gray-400);flex-shrink:0}.contact-teacher-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--gray-100);color:var(--gray-700);border:none;border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease;margin-top:1rem}.contact-teacher-btn:hover{background:var(--gray-200)}.sidebar-stats-card{padding:1.25rem}.sidebar-stats{display:flex;flex-direction:column;gap:.75rem}.sidebar-stat{display:flex;align-items:center;gap:.75rem}.stat-icon-small{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border-radius:8px;color:var(--gray-500)}.sidebar-stat .stat-content{display:flex;flex-direction:column}.sidebar-stat .stat-value{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.sidebar-stat .stat-value.grade-pass{color:var(--student-success)}.sidebar-stat .stat-value.grade-fail{color:#ef4444}.sidebar-stat .stat-label{font-size:var(--student-font-sm);color:var(--gray-500)}@media(max-width:1024px){.ue-detail-layout{grid-template-columns:1fr}.ue-detail-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}}@media(max-width:768px){.ue-header-content{flex-direction:column;gap:1rem}.ue-header-actions{width:100%}.download-syllabus-btn{width:100%;justify-content:center}.ue-tabs{gap:0}.ue-tab{padding:.625rem .75rem;font-size:13px}.ue-tab svg{display:none}.grades-summary{grid-template-columns:repeat(2,1fr)}.attendance-summary{flex-direction:column;text-align:center}.attendance-rate-circle{margin-bottom:1rem}.ue-detail-sidebar,.info-grid{grid-template-columns:1fr}}:root.dark .ue-detail-header,.dark .ue-detail-header{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .ue-header-title,.dark .ue-header-title{color:var(--gray-100)}:root.dark .ue-tabs,.dark .ue-tabs{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .ue-tab,.dark .ue-tab{color:var(--gray-400)}:root.dark .ue-tab:hover,.dark .ue-tab:hover{background:var(--gray-700);color:var(--gray-200)}:root.dark .info-section-title,:root.dark .components-title,:root.dark .history-title,.dark .info-section-title,.dark .components-title,.dark .history-title{color:var(--gray-100)}:root.dark .info-item,:root.dark .eval-method,:root.dark .session-item,:root.dark .component-item,:root.dark .grade-summary-item,:root.dark .history-item,:root.dark .resource-item,:root.dark .attendance-summary,:root.dark .grade-status-section,.dark .info-item,.dark .eval-method,.dark .session-item,.dark .component-item,.dark .grade-summary-item,.dark .history-item,.dark .resource-item,.dark .attendance-summary,.dark .grade-status-section{background:var(--gray-700)}:root.dark .session-date,:root.dark .att-stat,:root.dark .eval-icon,:root.dark .resource-icon,.dark .session-date,.dark .att-stat,.dark .eval-icon,.dark .resource-icon{background:var(--gray-600)}@media(prefers-reduced-motion:reduce){.download-syllabus-btn .btn-spinner{animation:none}}.student-mes-paiements{max-width:1000px;margin:0 auto}.student-mes-paiements .refresh-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--white);color:var(--gray-700);border:1px solid var(--gray-200);border-radius:var(--student-radius-sm);font-size:var(--student-font-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.student-mes-paiements .refresh-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.payment-status-card{background:var(--white);border-radius:var(--card-radius-premium, 16px);border:var(--card-border-premium, 1px solid rgba(0,0,0,.06));box-shadow:var(--card-shadow-premium, 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04));overflow:hidden;margin-bottom:1.5rem}.status-content{padding:1.5rem 2rem}.status-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.status-title{display:flex;align-items:center;gap:.75rem}.status-title h2{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.modality-tag{font-size:11px;font-weight:600;padding:.25rem .625rem;background:var(--gray-100);color:var(--gray-600);border-radius:999px;text-transform:uppercase}.status-badge{font-size:12px;font-weight:600;padding:.375rem .875rem;border-radius:999px;text-transform:uppercase}.status-badge.status-paid{background:#d1fae5;color:#065f46}.status-badge.status-pending{background:#fef3c7;color:#92400e}.status-badge.status-overdue{background:#fee2e2;color:#991b1b}.status-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:1.5rem}.amount-item{display:flex;flex-direction:column;gap:.25rem}.amount-label{font-size:var(--student-font-sm);color:var(--gray-500)}.amount-value{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.amount-item.paid .amount-value{color:var(--student-success)}.amount-item.remaining .amount-value{color:var(--gray-900)}.status-progress{margin-bottom:0}.status-progress .progress-bar{height:10px;background:var(--gray-200);border-radius:5px;overflow:hidden;margin-bottom:.75rem}.status-progress .progress-fill{height:100%;background:linear-gradient(90deg,var(--student-primary) 0%,var(--student-success) 100%);border-radius:5px;transition:width .5s ease}.status-progress .progress-fill.complete{background:var(--student-success)}.progress-info{display:flex;justify-content:space-between;align-items:center}.progress-text{font-size:var(--student-font-sm);color:var(--gray-600)}.progress-percent{font-size:var(--student-font-sm);font-weight:600;color:var(--gray-900)}.next-payment{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2rem;background:var(--gray-50);border-top:1px solid var(--gray-100)}.next-payment.urgent{background:#fef3c7;border-top-color:#fde68a}.next-payment.overdue{background:#fef2f2;border-top-color:#fecaca}.next-info{display:flex;flex-direction:column;gap:.25rem}.next-label{font-size:var(--student-font-sm);color:var(--gray-500)}.next-date{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.next-countdown{font-size:var(--student-font-sm);font-weight:500}.next-payment:not(.overdue):not(.urgent) .next-countdown{color:var(--gray-600)}.next-payment.urgent .next-countdown{color:#92400e}.next-payment.overdue .next-countdown{color:#991b1b}.next-amount{text-align:right}.next-amount .amount{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.next-amount .currency{font-size:var(--student-font-sm);color:var(--gray-500);margin-left:.25rem}.overdue-alert{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--student-radius);margin-bottom:1.5rem}.overdue-alert svg{color:#ef4444;flex-shrink:0;margin-top:2px}.alert-content strong{display:block;font-size:var(--student-font-base);color:#991b1b;margin-bottom:.25rem}.alert-content p{font-size:var(--student-font-sm);color:#b91c1c;margin:0}.paiements-tabs{display:flex;background:var(--white);border-radius:var(--student-radius);border:1px solid var(--gray-200);padding:.375rem;margin-bottom:1.5rem;overflow-x:auto;gap:.25rem}.paiements-tabs .tab-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;font-size:var(--student-font-sm);font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .2s ease;white-space:nowrap}.paiements-tabs .tab-btn:hover{background:var(--gray-100);color:var(--gray-900)}.paiements-tabs .tab-btn.active{background:var(--student-primary);color:var(--white)}.paiements-tabs .tab-badge{padding:.125rem .5rem;background:#fff3;border-radius:999px;font-size:11px;font-weight:600}.paiements-tabs .tab-btn:not(.active) .tab-badge{background:var(--gray-200);color:var(--gray-600)}.paiements-content{display:flex;flex-direction:column;gap:1rem}.method-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;transition:all .2s ease}.method-card.available{border:1px solid transparent}.method-card.available:hover{background:var(--white);border-color:var(--student-primary-200)}.method-card.coming-soon{opacity:.6}.method-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--white);border-radius:10px;color:var(--gray-500);flex-shrink:0}.method-card.available .method-icon{color:var(--student-primary)}.method-info{flex:1;min-width:0}.method-name{display:block;font-size:var(--student-font-base);font-weight:500;color:var(--gray-900)}.method-description{display:block;font-size:var(--student-font-sm);color:var(--gray-500);margin-top:.125rem}.method-status{font-size:11px;font-weight:600;padding:.25rem .625rem;border-radius:999px;white-space:nowrap}.method-status.active{background:#d1fae5;color:#065f46}.method-status.inactive{background:var(--gray-200);color:var(--gray-600)}.bank-details{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.bank-detail-item{display:flex;flex-direction:column;gap:.25rem}.bank-detail-item .detail-label{font-size:var(--student-font-sm);color:var(--gray-500)}.bank-detail-item .detail-value{font-size:var(--student-font-base);font-weight:500;color:var(--gray-900)}.bank-detail-item .detail-value.account-number{font-family:monospace;font-size:1rem;letter-spacing:.05em}.bank-info-note{font-size:var(--student-font-sm);color:var(--gray-600);margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--gray-100)}.info-card{display:flex;gap:1rem;padding:1.25rem}.info-card .info-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--student-primary-50);border-radius:10px;color:var(--student-primary);flex-shrink:0}.info-card .info-content{flex:1}.info-card .info-content h3{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900);margin:0 0 .5rem}.info-card .info-content p{font-size:var(--student-font-sm);color:var(--gray-600);margin:0 0 .75rem;line-height:1.6}.info-card .info-content p:last-child{margin-bottom:0}.office-hours{font-size:var(--student-font-sm);color:var(--gray-700)}.installments-table{overflow-x:auto}.table-header,.table-row{display:grid;grid-template-columns:50px 1fr 120px 140px 100px 120px;gap:1rem;align-items:center;padding:.875rem 1rem}.table-header{background:var(--gray-50);border-radius:8px;font-size:var(--student-font-sm);font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.table-row{border-bottom:1px solid var(--gray-100);transition:background .2s ease}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--gray-50)}.table-row .col-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gray-100);border-radius:50%;font-size:var(--student-font-sm);font-weight:600;color:var(--gray-600)}.table-row.status-paid .col-number{background:#d1fae5;color:#065f46}.table-row.status-overdue .col-number{background:#fee2e2;color:#991b1b}.col-label{font-size:var(--student-font-base);color:var(--gray-900)}.col-due{font-size:var(--student-font-sm);color:var(--gray-600)}.col-due.overdue{color:#ef4444;font-weight:500}.col-amount{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.status-tag{display:inline-block;font-size:11px;font-weight:600;padding:.25rem .625rem;border-radius:999px;text-transform:uppercase}.status-tag.status-paid{background:#d1fae5;color:#065f46}.status-tag.status-pending{background:#fef3c7;color:#92400e}.status-tag.status-overdue{background:#fee2e2;color:#991b1b}.status-tag.status-partial{background:#dbeafe;color:#1e40af}.col-paid{font-size:var(--student-font-sm);color:var(--gray-500)}.payments-history-list{display:flex;flex-direction:column;gap:.75rem}.payment-history-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;transition:background .2s ease}.payment-history-item:hover{background:var(--gray-100)}.payment-date-col{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:.5rem;background:var(--white);border-radius:8px}.payment-day{font-size:1.25rem;font-weight:700;color:var(--gray-900);line-height:1}.payment-month{font-size:10px;font-weight:500;color:var(--gray-500);text-align:center}.payment-info-col{flex:1;min-width:0}.payment-main{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.payment-reference{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.payment-status{font-size:10px;font-weight:600;padding:.125rem .5rem;border-radius:4px;text-transform:uppercase}.payment-status.status-completed{background:#d1fae5;color:#065f46}.payment-status.status-pending{background:#fef3c7;color:#92400e}.payment-status.status-failed{background:#fee2e2;color:#991b1b}.payment-status.status-refunded{background:#dbeafe;color:#1e40af}.payment-details{display:flex;align-items:center;gap:.75rem;font-size:var(--student-font-sm);color:var(--gray-500)}.payment-installment:before{content:"•";margin-right:.75rem}.payment-amount-col{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.payment-amount{font-size:var(--student-font-base);font-weight:600;color:var(--gray-900)}.download-receipt-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--white);color:var(--gray-600);border:1px solid var(--gray-200);border-radius:6px;font-size:var(--student-font-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.download-receipt-btn:hover{background:var(--student-primary-50);border-color:var(--student-primary-200);color:var(--student-primary)}.download-receipt-btn:disabled{opacity:.7;cursor:not-allowed}.btn-spinner-small{width:14px;height:14px;border:2px solid var(--gray-300);border-top-color:var(--student-primary);border-radius:50%;animation:spin .8s linear infinite}@media(max-width:768px){.student-mes-paiements .student-page-header{flex-direction:column;align-items:flex-start;gap:1rem}.student-mes-paiements .refresh-btn{width:100%;justify-content:center}.status-content{padding:1.25rem}.status-header{flex-direction:column;gap:.75rem}.status-amounts{grid-template-columns:1fr;gap:1rem}.amount-value{font-size:1.25rem}.next-payment{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem 1.25rem}.next-amount{text-align:left}.paiements-tabs .tab-btn{padding:.625rem .75rem;font-size:13px}.paiements-tabs .tab-btn svg{display:none}.payment-methods-grid,.bank-details{grid-template-columns:1fr}.installments-table{font-size:14px}.table-header,.table-row{grid-template-columns:40px 1fr 90px 100px;gap:.5rem;padding:.75rem}.table-header .col-status,.table-header .col-paid,.table-row .col-status,.table-row .col-paid{display:none}.payment-history-item{flex-direction:column;align-items:flex-start;gap:.75rem}.payment-date-col{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem}.payment-day{font-size:var(--student-font-base)}.payment-amount-col{width:100%;flex-direction:row;justify-content:space-between;align-items:center}}:root.dark .payment-status-card,.dark .payment-status-card{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .status-title h2,.dark .status-title h2{color:var(--gray-100)}:root.dark .amount-value,:root.dark .next-amount .amount,:root.dark .payment-amount,:root.dark .col-amount,.dark .amount-value,.dark .next-amount .amount,.dark .payment-amount,.dark .col-amount{color:var(--gray-100)}:root.dark .status-progress .progress-bar,.dark .status-progress .progress-bar{background:var(--gray-700)}:root.dark .next-payment,.dark .next-payment{background:var(--gray-700);border-top-color:var(--gray-600)}:root.dark .paiements-tabs,.dark .paiements-tabs{background:var(--gray-800);border-color:var(--gray-700)}:root.dark .paiements-tabs .tab-btn,.dark .paiements-tabs .tab-btn{color:var(--gray-400)}:root.dark .paiements-tabs .tab-btn:hover,.dark .paiements-tabs .tab-btn:hover{background:var(--gray-700);color:var(--gray-200)}:root.dark .method-card,:root.dark .payment-history-item,:root.dark .table-header,.dark .method-card,.dark .payment-history-item,.dark .table-header{background:var(--gray-700)}:root.dark .method-icon,:root.dark .payment-date-col,.dark .method-icon,.dark .payment-date-col{background:var(--gray-600)}:root.dark .method-name,:root.dark .payment-reference,:root.dark .col-label,.dark .method-name,.dark .payment-reference,.dark .col-label{color:var(--gray-100)}:root.dark .table-row,.dark .table-row{border-bottom-color:var(--gray-700)}:root.dark .table-row:hover,.dark .table-row:hover{background:var(--gray-700)}:root.dark .download-receipt-btn,.dark .download-receipt-btn{background:var(--gray-600);border-color:var(--gray-500);color:var(--gray-200)}.student-password{max-width:560px;margin:0 auto;padding:0 1rem}.student-password__header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:2rem}.student-password__icon{width:56px;height:56px;background:linear-gradient(135deg,var(--primary-500, #1a56db),var(--primary-600, #1e40af));border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.student-password__title{font-size:1.75rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 .25rem}.student-password__subtitle{color:var(--text-secondary, #64748b);margin:0;font-size:.95rem}.student-password__card{background:var(--bg-card, white);border-radius:16px;box-shadow:0 1px 3px #00000014;padding:2rem}.student-password__alert{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:10px;margin-bottom:1.5rem;font-size:.9rem}.student-password__alert--error{background:#fee2e2;color:#dc2626}.student-password__alert--success{background:#dcfce7;color:#16a34a}.student-password__form{display:flex;flex-direction:column;gap:1.5rem}.student-password__field{display:flex;flex-direction:column;gap:.5rem}.student-password__field label{font-size:.9rem;font-weight:500;color:var(--text-primary, #374151)}.student-password__input-wrapper{position:relative;display:flex;align-items:center}.student-password__field input{width:100%;padding:.875rem 3rem .875rem 1rem;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.95rem;color:var(--text-primary, #1e293b);background:var(--bg-input, white);transition:border-color .2s,box-shadow .2s}.student-password__field input:focus{outline:none;border-color:var(--primary-500, #1a56db);box-shadow:0 0 0 3px #1a56db1a}.student-password__field input::placeholder{color:var(--text-tertiary, #94a3b8)}.student-password__toggle{position:absolute;right:.75rem;background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-tertiary, #94a3b8);display:flex;align-items:center;justify-content:center;transition:color .2s}.student-password__toggle:hover{color:var(--text-secondary, #64748b)}.student-password__hint{font-size:.8rem;color:var(--text-tertiary, #94a3b8)}.student-password__actions{margin-top:.5rem}.student-password__btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--primary-500, #1a56db),var(--primary-600, #1e40af));color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.student-password__btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1a56db4d}.student-password__btn:disabled{opacity:.7;cursor:not-allowed}.student-password__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:student-password-spin .8s linear infinite}@keyframes student-password-spin{to{transform:rotate(360deg)}}.student-password__tips{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #e2e8f0)}.student-password__tips h3{font-size:.9rem;font-weight:600;color:var(--text-secondary, #475569);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.student-password__tips h3:before{content:"";display:inline-block;width:20px;height:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");background-size:contain}.student-password__tips ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.student-password__tips li{font-size:.85rem;color:var(--text-secondary, #64748b);display:flex;align-items:center;gap:.5rem}.student-password__tips li:before{content:"";display:inline-block;width:6px;height:6px;background:#10b981;border-radius:50%;flex-shrink:0}[data-theme=dark] .student-password__card{background:var(--bg-card)}[data-theme=dark] .student-password__alert--error{background:#dc262626}[data-theme=dark] .student-password__alert--success{background:#16a34a26}@media(max-width:480px){.student-password__header{flex-direction:column;align-items:center;text-align:center}.student-password__card{padding:1.5rem}.student-password__title{font-size:1.5rem}}.justifications-page{max-width:900px;margin:0 auto}.justifications-page .page-header{margin-bottom:1.5rem}.justifications-page .page-header h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.justifications-page .page-header p{color:var(--gray-500);margin:0}.page-error{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1.5rem}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--gray-200);padding-bottom:.5rem}.tab{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:none;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .15s}.tab:hover{background:var(--gray-100);color:var(--gray-900)}.tab.active{background:var(--gpe-green-50);color:var(--gpe-green)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--gpe-rose);color:#fff;font-size:.75rem;font-weight:700;border-radius:10px}.tab.active .tab-badge{background:var(--gpe-green)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--gray-500)}.empty-state svg{margin-bottom:1rem;color:var(--gray-300)}.empty-state h3{font-size:1.125rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.empty-state p{margin:0;max-width:320px}.status-badge{display:inline-flex;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:9999px}.status-green{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d)}.status-orange{background:var(--amber-100, #fef3c7);color:var(--amber-700, #b45309)}.status-red{background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c)}.status-gray{background:var(--gray-100);color:var(--gray-700)}.absences-list{display:flex;flex-direction:column;gap:.75rem}.absence-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#fff;border:1px solid var(--gray-200);border-radius:12px;transition:all .15s}.absence-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #0000000d}.absence-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.375rem}.absence-date{font-weight:600;color:var(--gray-900)}.absence-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.ue-code{font-weight:600;color:var(--gpe-green);font-size:.875rem}.ue-title{color:var(--gray-600);font-size:.875rem}.absence-details{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--gray-500)}.btn-justify{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--gpe-green);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;flex-shrink:0}.btn-justify:hover{background:#047857}.justifications-list{display:flex;flex-direction:column;gap:1rem}.justification-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.justification-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.justification-date{font-weight:600;color:var(--gray-900)}.justification-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.justification-ue{display:flex;align-items:center;gap:.5rem}.justification-reason{font-size:.9375rem;color:var(--gray-700)}.justification-document{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-500)}.justification-review{padding:.75rem;background:var(--blue-50, #eff6ff);border-radius:8px;font-size:.875rem}.justification-review strong{color:var(--blue-700, #1d4ed8)}.justification-review p{margin:.375rem 0 0;color:var(--blue-900, #1e3a8a)}.justification-footer{display:flex;justify-content:space-between;padding:.75rem 1.25rem;border-top:1px solid var(--gray-100);font-size:.8125rem;color:var(--gray-500)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.modal-header h2{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0}.modal-close{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--gray-400);border-radius:8px;transition:all .15s}.modal-close:hover{background:var(--gray-100);color:var(--gray-600)}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.absence-summary{padding:1rem;background:var(--gray-50);border-radius:10px;margin-bottom:1.5rem}.absence-summary h3{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem}.absence-summary p{margin:.25rem 0;color:var(--gray-700)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:500;color:var(--gray-700);margin-bottom:.5rem;font-size:.875rem}.form-group .required{color:var(--gpe-rose)}.form-group .optional{color:var(--gray-400);font-weight:400;font-size:.8125rem}.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--gray-300);border-radius:8px;font-size:.9375rem;resize:vertical;font-family:inherit}.form-group textarea:focus{outline:none;border-color:var(--gpe-green);box-shadow:0 0 0 3px #0596691a}.file-upload{border:2px dashed var(--gray-300);border-radius:10px;padding:1.5rem;cursor:pointer;transition:all .15s}.file-upload:hover{border-color:var(--gpe-green);background:var(--gpe-green-50)}.file-upload.has-file{border-style:solid;border-color:var(--gpe-green);background:var(--gpe-green-50)}.file-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--gray-500);text-align:center}.file-hint{font-size:.75rem;color:var(--gray-400)}.file-info{display:flex;align-items:center;gap:.75rem;color:var(--gpe-green)}.file-info span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-file{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--gray-400);border-radius:4px}.remove-file:hover{background:var(--gray-200);color:var(--gray-600)}.form-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;color:#dc2626;border-radius:8px;font-size:.875rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50);border-radius:0 0 16px 16px}.btn-cancel,.btn-submit{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-cancel{background:#fff;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-cancel:hover:not(:disabled){background:var(--gray-50)}.btn-submit{background:var(--gpe-green);border:none;color:#fff}.btn-submit:hover:not(:disabled){background:#047857}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:640px){.absence-card{flex-direction:column;align-items:flex-start;gap:1rem}.btn-justify{width:100%;justify-content:center}.tabs{flex-direction:column}.tab{justify-content:center}.justification-footer{flex-direction:column;gap:.25rem}}:root.dark .absence-card,.dark .absence-card{background:#1e293b;border-color:#334155}:root.dark .justification-card,.dark .justification-card{background:#1e293b;border-color:#334155}:root.dark .justification-header,.dark .justification-header{background:#0f172a;border-bottom-color:#334155}:root.dark .modal,.dark .modal{background:#1e293b}:root.dark .modal-header,.dark .modal-header{border-bottom-color:#334155}:root.dark .modal-header h2,.dark .modal-header h2{color:#f1f5f9}:root.dark .absence-summary,.dark .absence-summary{background:#0f172a}:root.dark .form-group textarea,.dark .form-group textarea{background:#0f172a;border-color:#334155;color:#f1f5f9}:root.dark .file-upload,.dark .file-upload{border-color:#334155}:root.dark .modal-footer,.dark .modal-footer{background:#0f172a;border-top-color:#334155}:root.dark .btn-cancel,.dark .btn-cancel{background:#334155;border-color:#475569;color:#e2e8f0}.delegated-attendance-page{min-height:100vh;background:linear-gradient(135deg,var(--gpe-green-50) 0%,#f0fdf4 100%);padding:2rem 1rem}.delegated-container{max-width:600px;margin:0 auto}.delegated-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;color:var(--gray-600)}.delegated-loading .spinner{width:3rem;height:3rem;border:3px solid var(--gray-200);border-top-color:var(--gpe-green);border-radius:50%;animation:spin .8s linear infinite}.delegated-error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.error-icon{color:var(--gpe-rose);margin-bottom:1.5rem}.delegated-error-page h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.delegated-error-page p{color:var(--gray-600);margin:0 0 2rem}.btn-back{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--gpe-green);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-back:hover{background:#047857}.delegated-success{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.success-icon{color:var(--gpe-green);margin-bottom:1.5rem}.delegated-success h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.delegated-success p{color:var(--gray-600);margin:0 0 .5rem}.success-summary{font-size:.875rem;color:var(--gray-500);margin-bottom:2rem!important}.delegated-header{background:#fff;border-radius:16px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 4px 12px #0000000d}.delegated-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--gpe-green-50);color:var(--gpe-green);font-size:.75rem;font-weight:600;border-radius:9999px;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.delegated-header h1{font-size:1.5rem;font-weight:700;color:var(--gpe-green);margin:0 0 .25rem}.delegated-ue-title{color:var(--gray-700);margin:0 0 1rem}.delegated-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.meta-item{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--gray-600)}.meta-item svg{color:var(--gray-400)}.delegated-teacher{font-size:.875rem;color:var(--gray-500);padding-top:.75rem;border-top:1px solid var(--gray-100)}.delegated-error{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.delegated-actions-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#fff;border-radius:12px;margin-bottom:1rem;box-shadow:0 2px 8px #0000000a}.mark-all-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--gpe-green);color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.mark-all-btn:hover{background:#047857}.mark-all-btn:disabled{opacity:.5;cursor:not-allowed}.mark-progress{display:flex;align-items:center;gap:.75rem}.mark-progress-text{font-size:.875rem;color:var(--gray-600);font-weight:500;white-space:nowrap}.mark-progress-bar{width:80px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.mark-progress-fill{height:100%;background:var(--gpe-green);border-radius:3px;transition:width .3s ease}.delegated-student-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.student-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a}.student-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.student-avatar{width:44px;height:44px;background:var(--gpe-green-50);color:var(--gpe-green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;flex-shrink:0}.student-details{display:flex;flex-direction:column;min-width:0}.student-name{font-weight:600;color:var(--gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-matricule{font-size:.8125rem;color:var(--gray-500)}.status-buttons{display:flex;gap:.5rem;flex-shrink:0}.status-btn{width:44px;height:44px;border:2px solid var(--gray-200);border-radius:10px;background:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:all .15s}.status-btn:disabled{opacity:.5;cursor:not-allowed}.status-btn-present{color:var(--gray-400)}.status-btn-present:hover:not(:disabled){border-color:#059669;background:#ecfdf5;color:#059669}.status-btn-present.active{border-color:#059669;background:#059669;color:#fff}.status-btn-absent{color:var(--gray-400)}.status-btn-absent:hover:not(:disabled){border-color:#dc2626;background:#fef2f2;color:#dc2626}.status-btn-absent.active{border-color:#dc2626;background:#dc2626;color:#fff}.status-btn-late{color:var(--gray-400)}.status-btn-late:hover:not(:disabled){border-color:#ea580c;background:#fff7ed;color:#ea580c}.status-btn-late.active{border-color:#ea580c;background:#ea580c;color:#fff}.delegated-footer{position:sticky;bottom:1rem;padding-top:1rem}.btn-submit{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem;background:var(--gpe-green);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #0596694d;transition:all .15s}.btn-submit:hover:not(:disabled){background:#047857;transform:translateY(-2px);box-shadow:0 6px 16px #05966966}.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}:root.dark .delegated-attendance-page,.dark .delegated-attendance-page{background:linear-gradient(135deg,#0f172a,#1e293b)}:root.dark .delegated-header,.dark .delegated-header{background:#1e293b}:root.dark .delegated-header h1,.dark .delegated-header h1{color:#10b981}:root.dark .delegated-ue-title,.dark .delegated-ue-title{color:#f1f5f9}:root.dark .delegated-actions-bar,.dark .delegated-actions-bar{background:#1e293b}:root.dark .student-item,.dark .student-item{background:#1e293b}:root.dark .student-name,.dark .student-name{color:#f1f5f9}:root.dark .status-btn,.dark .status-btn{background:#0f172a;border-color:#334155}@media(max-width:640px){.delegated-attendance-page{padding:1rem .75rem}.delegated-actions-bar{flex-direction:column;align-items:stretch}.mark-all-btn{justify-content:center}.mark-progress{justify-content:space-between}.mark-progress-bar{flex:1}.student-item{flex-wrap:wrap}.student-info{flex:1 1 100%;margin-bottom:.75rem}.status-buttons{flex:1 1 100%;justify-content:space-between}.status-btn{flex:1;width:auto;max-width:80px}}.as-nav{display:flex;flex-direction:column;height:100%}.as-nav-content{flex:1;padding:1.5rem 1.25rem;overflow-y:auto}.as-nav-section{margin-bottom:1.25rem}.as-nav-section-title{font-size:.8125rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;padding:0 1rem;margin-bottom:.875rem}.as-nav-list{list-style:none;padding:0;margin:0}.as-nav-link{display:flex;align-items:center;gap:1rem;min-height:52px;padding:.875rem 1rem;color:var(--gray-700);text-decoration:none;border-radius:10px;border:2px solid transparent;transition:all .2s ease;font-size:16px;font-weight:500;position:relative}.as-nav-link:hover{background:var(--gray-100);color:var(--gray-900)}.as-nav-link:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.as-nav-link.active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.as-nav-link.active .as-nav-icon{color:#1d4ed8}.as-nav-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--gray-500);flex-shrink:0}.as-nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.as-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;background:#dc2626;color:var(--white);font-size:.8125rem;font-weight:700;border-radius:999px;flex-shrink:0}.as-nav-separator{height:1px;background:var(--gray-200);margin:1rem}.as-nav-footer{padding:1rem 1.25rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.as-nav-back{color:var(--gray-500)}.as-nav-back:hover{background:var(--gray-100);color:var(--gray-700)}.as-nav-link:hover .as-nav-badge{background:#b91c1c}.as-nav-link.active .as-nav-badge{background:#1d4ed8}@media(max-width:1024px){.as-nav-content{padding:1.25rem 1rem}.as-nav-link{padding:1rem}}@media(prefers-contrast:high){.as-nav-link{border:2px solid transparent}.as-nav-link:hover{border-color:var(--gray-500)}.as-nav-link.active{border-color:#1d4ed8;border-width:3px}.as-nav-badge{border:2px solid var(--white)}}@media(prefers-reduced-motion:reduce){.as-nav-link{transition:none}}:root.dark .as-nav-link:hover,.dark .as-nav-link:hover{background:#334155}:root.dark .as-nav-link.active,.dark .as-nav-link.active{background:#1d4ed833;border-color:#3b82f64d}:root.dark .as-nav-separator,.dark .as-nav-separator{background:#334155}:root.dark .as-nav-footer,.dark .as-nav-footer{background:#0f172a;border-top-color:#334155}:root.dark .as-nav-back:hover,.dark .as-nav-back:hover{background:#334155}.as-layout{--as-touch-target: 52px;--as-font-base: 16px;--as-font-large: 18px;--as-font-xlarge: 20px;--as-spacing: 1.5rem;--as-radius: 10px;--as-primary: #1a56db;--as-primary-light: #3b82f6;--as-primary-dark: #1e40af;--as-success: #059669;--as-warning: #d97706;--as-danger: #dc2626;--as-focus-ring: 3px solid #3b82f6;--as-focus-offset: 3px;min-height:100vh;background:var(--gray-50);font-size:var(--as-font-base)}.as-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:80px;padding:0 2rem;background:var(--white);border-bottom:2px solid var(--gray-200);box-shadow:var(--shadow-sm)}.as-header-left{display:flex;align-items:center;gap:1.25rem}.as-menu-toggle{display:none;min-width:var(--as-touch-target);min-height:var(--as-touch-target);padding:.75rem;background:none;border:2px solid transparent;color:var(--gray-700);cursor:pointer;border-radius:var(--as-radius);transition:all .2s ease}.as-menu-toggle:hover{background:var(--gray-100);color:var(--gray-900)}.as-menu-toggle:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-logo{display:flex;align-items:center;gap:1rem}.as-logo-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:linear-gradient(135deg,var(--as-primary) 0%,var(--as-primary-dark) 100%);color:var(--white);border-radius:var(--as-radius)}.as-logo-text{font-size:var(--as-font-xlarge);color:var(--gray-700);font-weight:500}.as-logo-text strong{color:var(--as-primary);font-weight:700}.as-header-right,.as-user-menu{display:flex;align-items:center;gap:1.25rem}.as-user-info{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.as-user-name{font-size:var(--as-font-large);font-weight:600;color:var(--gray-900)}.as-user-role{font-size:var(--as-font-base);color:var(--gray-500)}.as-user-avatar{display:flex;align-items:center;justify-content:center;width:var(--as-touch-target);height:var(--as-touch-target);background:linear-gradient(135deg,var(--as-primary) 0%,var(--as-primary-dark) 100%);color:var(--white);font-size:var(--as-font-large);font-weight:600;border-radius:50%}.as-logout-btn{display:flex;align-items:center;justify-content:center;min-width:var(--as-touch-target);min-height:var(--as-touch-target);background:none;border:2px solid transparent;color:var(--gray-600);cursor:pointer;border-radius:var(--as-radius);transition:all .2s ease}.as-logout-btn:hover{background:#fef2f2;color:var(--as-danger);border-color:#fecaca}.as-logout-btn:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-theme-toggle{display:flex;align-items:center;justify-content:center;min-width:var(--as-touch-target);min-height:var(--as-touch-target);background:var(--gray-100);border:2px solid transparent;color:var(--gray-600);cursor:pointer;border-radius:var(--as-radius);transition:all .2s ease}.as-theme-toggle:hover{background:#eff6ff;color:var(--as-primary)}.as-theme-toggle:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-container{display:flex;min-height:calc(100vh - 80px)}.as-sidebar{width:300px;background:var(--white);border-right:1px solid var(--gray-200);flex-shrink:0}.as-main{flex:1;padding:2rem;overflow-x:hidden}.as-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:90}@media(max-width:1024px){.as-sidebar{position:fixed;top:80px;left:0;bottom:0;z-index:95;transform:translate(-100%);box-shadow:var(--shadow-xl);transition:transform .3s ease}.as-sidebar.mobile-open{transform:translate(0)}.as-menu-toggle{display:flex}.as-overlay{display:block}}@media(max-width:640px){.as-header{padding:0 1.25rem;height:72px}.as-container{min-height:calc(100vh - 72px)}.as-sidebar{top:72px}.as-logo-text,.as-user-info{display:none}.as-main{padding:1.25rem}}.as-page{max-width:1400px;margin:0 auto}.as-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1.25rem}.as-page-header-content h1{font-size:1.875rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.as-page-header-content p{font-size:var(--as-font-base);color:var(--gray-500);margin:0}.as-page-actions{display:flex;align-items:center;gap:1rem}.as-card{background:var(--white);border-radius:var(--as-radius);border:1px solid var(--gray-200);overflow:hidden}.as-card-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.as-card-title{font-size:var(--as-font-large);font-weight:600;color:var(--gray-900);margin:0}.as-card-body{padding:1.5rem}.as-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem}.as-stat-card{display:flex;flex-direction:column;background:var(--white);border-radius:var(--as-radius);border:2px solid var(--gray-200);padding:1.75rem;text-decoration:none;transition:all .2s ease;cursor:pointer}.as-stat-card:hover{border-color:var(--as-primary);box-shadow:0 4px 20px #1a56db26;transform:translateY(-2px)}.as-stat-card:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-stat-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--as-radius);margin-bottom:1rem}.as-stat-icon.blue{background:#eff6ff;color:var(--as-primary)}.as-stat-icon.green{background:#ecfdf5;color:var(--as-success)}.as-stat-icon.orange{background:#fffbeb;color:var(--as-warning)}.as-stat-icon.red{background:#fef2f2;color:var(--as-danger)}.as-stat-icon.purple{background:#faf5ff;color:#9333ea}.as-stat-value{font-size:2.5rem;font-weight:700;color:var(--gray-900);line-height:1}.as-stat-label{font-size:var(--as-font-base);color:var(--gray-500);margin-top:.5rem}.as-btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;min-height:var(--as-touch-target);padding:.875rem 1.75rem;font-size:var(--as-font-base);font-weight:600;border-radius:var(--as-radius);border:2px solid transparent;cursor:pointer;transition:all .2s ease}.as-btn:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-btn:disabled{opacity:.5;cursor:not-allowed}.as-btn-primary{background:var(--as-primary);color:var(--white);border-color:var(--as-primary)}.as-btn-primary:hover:not(:disabled){background:var(--as-primary-dark);border-color:var(--as-primary-dark)}.as-btn-secondary{background:var(--white);color:var(--gray-700);border-color:var(--gray-300)}.as-btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--as-primary);color:var(--as-primary)}.as-btn-success{background:var(--as-success);color:var(--white);border-color:var(--as-success)}.as-btn-success:hover:not(:disabled){background:#047857;border-color:#047857}.as-btn-danger{background:var(--as-danger);color:var(--white);border-color:var(--as-danger)}.as-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.as-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1.5rem;background:var(--gray-50);border-radius:var(--as-radius);margin-bottom:2rem}.as-quick-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:100px;padding:1.5rem;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--as-radius);color:var(--gray-700);text-decoration:none;font-size:var(--as-font-base);font-weight:600;cursor:pointer;transition:all .2s ease}.as-quick-action:hover{border-color:var(--as-primary);color:var(--as-primary);background:#f8faff}.as-quick-action:focus-visible{outline:var(--as-focus-ring);outline-offset:var(--as-focus-offset)}.as-quick-action svg{width:32px;height:32px}.as-activity-list{list-style:none;margin:0;padding:0}.as-activity-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--gray-100)}.as-activity-item:last-child{border-bottom:none}.as-activity-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;flex-shrink:0}.as-activity-icon.blue{background:#eff6ff;color:var(--as-primary)}.as-activity-icon.green{background:#ecfdf5;color:var(--as-success)}.as-activity-icon.orange{background:#fffbeb;color:var(--as-warning)}.as-activity-content{flex:1;min-width:0}.as-activity-title{font-size:var(--as-font-base);font-weight:600;color:var(--gray-900);margin:0 0 .25rem}.as-activity-description{font-size:.9375rem;color:var(--gray-600);margin:0}.as-activity-time{font-size:.875rem;color:var(--gray-400);flex-shrink:0}.as-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.as-empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--gray-100);color:var(--gray-400);border-radius:50%;margin-bottom:1.5rem}.as-empty-title{font-size:var(--as-font-large);font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.as-empty-text{font-size:var(--as-font-base);color:var(--gray-500);margin:0 0 2rem;max-width:400px}.as-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;gap:1rem}.as-loading-spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top-color:var(--as-primary);border-radius:50%;animation:as-spin .8s linear infinite}@keyframes as-spin{to{transform:rotate(360deg)}}.as-loading-text{font-size:var(--as-font-base);color:var(--gray-500)}.as-alert-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-radius:var(--as-radius);margin-bottom:1.5rem}.as-alert-banner.warning{background:#fffbeb;border:2px solid #fcd34d;color:#92400e}.as-alert-banner.error{background:#fef2f2;border:2px solid #fecaca;color:#991b1b}.as-alert-banner.info{background:#eff6ff;border:2px solid #93c5fd;color:#1e40af}.as-alert-banner svg{width:28px;height:28px;flex-shrink:0}.as-alert-content{flex:1}.as-alert-title{font-weight:600;margin:0 0 .25rem}.as-alert-text{font-size:.9375rem;margin:0}.as-alert-dismiss{min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:currentColor;opacity:.7;cursor:pointer;border-radius:6px}.as-alert-dismiss:hover{opacity:1;background:#0000001a}:root.dark .as-layout,.dark .as-layout{background:linear-gradient(180deg,#0f172a,#1e293b)}:root.dark .as-header,.dark .as-header{background:#1e293b;border-bottom-color:#334155}:root.dark .as-menu-toggle:hover,.dark .as-menu-toggle:hover{background:#334155}:root.dark .as-sidebar,.dark .as-sidebar{background:#1e293b;border-right-color:#334155}:root.dark .as-overlay,.dark .as-overlay{background:#000000b3}:root.dark .as-card,.dark .as-card{background:#1e293b;border-color:#334155}:root.dark .as-card-header,.dark .as-card-header{border-bottom-color:#334155}:root.dark .as-stat-card,.dark .as-stat-card{background:#1e293b;border-color:#334155}:root.dark .as-stat-card:hover,.dark .as-stat-card:hover{border-color:var(--as-primary-light);box-shadow:0 4px 20px #3b82f633}:root.dark .as-stat-icon.blue,.dark .as-stat-icon.blue{background:#1a56db33}:root.dark .as-stat-icon.green,.dark .as-stat-icon.green{background:#05966933}:root.dark .as-stat-icon.orange,.dark .as-stat-icon.orange{background:#d9770633}:root.dark .as-stat-icon.red,.dark .as-stat-icon.red{background:#dc262633}:root.dark .as-stat-icon.purple,.dark .as-stat-icon.purple{background:#9333ea33}:root.dark .as-quick-actions,.dark .as-quick-actions{background:#0f172a}:root.dark .as-quick-action,.dark .as-quick-action{background:#1e293b;border-color:#334155;color:var(--gray-300)}:root.dark .as-quick-action:hover,.dark .as-quick-action:hover{background:#334155;border-color:var(--as-primary-light);color:var(--as-primary-light)}:root.dark .as-activity-item,.dark .as-activity-item{border-bottom-color:#334155}:root.dark .as-activity-icon.blue,.dark .as-activity-icon.blue{background:#1a56db33}:root.dark .as-activity-icon.green,.dark .as-activity-icon.green{background:#05966933}:root.dark .as-activity-icon.orange,.dark .as-activity-icon.orange{background:#d9770633}:root.dark .as-empty-icon,.dark .as-empty-icon{background:#334155}:root.dark .as-btn-secondary,.dark .as-btn-secondary{background:#1e293b;border-color:#475569;color:var(--gray-300)}:root.dark .as-btn-secondary:hover:not(:disabled),.dark .as-btn-secondary:hover:not(:disabled){background:#334155;border-color:var(--as-primary-light);color:var(--as-primary-light)}:root.dark .as-alert-banner.warning,.dark .as-alert-banner.warning{background:#d9770626;border-color:#d977064d;color:#fbbf24}:root.dark .as-alert-banner.error,.dark .as-alert-banner.error{background:#dc262626;border-color:#dc26264d;color:#f87171}:root.dark .as-alert-banner.info,.dark .as-alert-banner.info{background:#1d4ed826;border-color:#1d4ed84d;color:#60a5fa}:root.dark .as-theme-toggle,.dark .as-theme-toggle{background:#334155;color:var(--gray-400)}:root.dark .as-theme-toggle:hover,.dark .as-theme-toggle:hover{background:#3b82f633;color:#60a5fa}.as-dashboard-header{margin-bottom:1.5rem}.as-dashboard-welcome h1{font-size:2rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.as-dashboard-welcome p{font-size:1.125rem;color:var(--gray-500);margin:0}.as-alerts-section{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.as-alert-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--surface-primary, #fff);border-radius:10px;border-left:4px solid;box-shadow:0 1px 3px #00000014}.as-alert-item.warning{border-left-color:#f59e0b;background:#f59e0b0d}.as-alert-item.error{border-left-color:#ef4444;background:#ef44440d}.as-alert-item.info{border-left-color:#3b82f6;background:#3b82f60d}.as-alert-item.success{border-left-color:#22c55e;background:#22c55e0d}.as-alert-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%}.as-alert-item.warning .as-alert-item-icon{background:#f59e0b26;color:#d97706}.as-alert-item.error .as-alert-item-icon{background:#ef444426;color:#dc2626}.as-alert-item.info .as-alert-item-icon{background:#3b82f626;color:#2563eb}.as-alert-item.success .as-alert-item-icon{background:#22c55e26;color:#16a34a}.as-alert-item-content{flex:1}.as-alert-item-content h4{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0 0 .25rem}.as-alert-item-content p{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0}.as-alert-item-dismiss{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .2s}.as-alert-item-dismiss:hover{background:#0000000d;color:var(--text-secondary, #64748b)}.as-systems-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:1.5rem}.as-system-card{background:var(--surface-primary, #fff);border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #00000014;border:1px solid transparent;transition:all .2s}.as-system-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.as-system-card.academic{border-top:4px solid #4f46e5}.as-system-card.certificates{border-top:4px solid #22c55e}.as-system-card.workshops{border-top:4px solid #8b5cf6}.as-system-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.as-system-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px}.as-system-card.academic .as-system-icon{background:#4f46e51a;color:#4f46e5}.as-system-card.certificates .as-system-icon{background:#22c55e1a;color:#22c55e}.as-system-card.workshops .as-system-icon{background:#8b5cf61a;color:#8b5cf6}.as-system-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0}.as-system-stats{display:flex;gap:1rem;margin-bottom:1.25rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border-radius:10px}.as-system-stat{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.as-system-stat.highlight .as-system-stat-value{color:#f59e0b}.as-system-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);line-height:1}.as-system-stat-label{font-size:.75rem;color:var(--text-tertiary, #94a3b8);margin-top:.375rem}.as-system-actions{display:flex;flex-wrap:wrap;gap:.5rem}.as-system-link{padding:.5rem .875rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b);background:var(--surface-secondary, #f8fafc);border-radius:6px;text-decoration:none;transition:all .2s}.as-system-link:hover{color:var(--primary-color, #4f46e5);background:#4f46e51a}.as-dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.as-quick-actions-list{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.as-quick-action-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:var(--surface-secondary, #f8fafc);border-radius:10px;text-decoration:none;transition:all .2s}.as-quick-action-item:hover{background:var(--surface-tertiary, #f1f5f9);transform:translate(4px)}.as-quick-action-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.as-quick-action-icon.blue{background:#4f46e51a;color:#4f46e5}.as-quick-action-icon.green{background:#22c55e1a;color:#22c55e}.as-quick-action-icon.purple{background:#8b5cf61a;color:#8b5cf6}.as-quick-action-icon.orange{background:#f973161a;color:#f97316}.as-quick-action-text{display:flex;flex-direction:column;gap:.125rem}.as-quick-action-title{font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e)}.as-quick-action-desc{font-size:.8125rem;color:var(--text-tertiary, #94a3b8)}.as-checklist-progress{font-size:.875rem;font-weight:600;color:#22c55e;padding:.375rem .75rem;background:#22c55e1a;border-radius:20px}.as-checklist{list-style:none;padding:0;margin:0}.as-checklist-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 0;border-bottom:1px solid var(--border-color, #e2e8f0)}.as-checklist-item:last-child{border-bottom:none}.as-checklist-item.completed{opacity:.7}.as-checklist-checkbox{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--surface-secondary, #f8fafc);color:var(--text-tertiary, #94a3b8);flex-shrink:0}.as-checklist-checkbox.checked{background:#22c55e;color:#fff}.as-checklist-content{flex:1;display:flex;align-items:center;gap:.5rem}.as-checklist-label{font-size:.9375rem;color:var(--text-primary, #1a1a2e)}.as-checklist-item.completed .as-checklist-label{text-decoration:line-through;color:var(--text-tertiary, #94a3b8)}.as-checklist-count{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);padding:.125rem .5rem;background:var(--surface-secondary, #f8fafc);border-radius:10px}.as-checklist-link{font-size:.8125rem;font-weight:500;color:var(--primary-color, #4f46e5);text-decoration:none}.as-checklist-link:hover{text-decoration:underline}.as-activity-icon.grade{background:#3b82f61a;color:#3b82f6}.as-activity-icon.training{background:#22c55e1a;color:#22c55e}.as-activity-icon.workshop{background:#8b5cf61a;color:#8b5cf6}.as-activity-icon.system{background:#64748b1a;color:#64748b}.as-stat-icon.yellow{background:#f59e0b1a;color:#f59e0b}.as-btn-small{padding:.375rem .75rem;font-size:.75rem;min-height:auto}@media(max-width:1024px){.as-systems-grid,.as-dashboard-columns{grid-template-columns:1fr}}@media(max-width:768px){.as-dashboard-welcome h1{font-size:1.5rem}.as-system-stats{flex-wrap:wrap}.as-system-stat{min-width:calc(50% - .5rem)}.as-quick-action-item{padding:.75rem}.as-quick-action-icon{width:36px;height:36px}}.gv-filters-section{margin-bottom:1.5rem}.gv-filters-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.gv-filters{display:flex;gap:.75rem}.gv-filter-btn{min-height:48px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:2px solid var(--gray-300);border-radius:10px;background:var(--white);color:var(--gray-600);cursor:pointer;transition:all .2s ease}.gv-filter-btn:hover{border-color:#1d4ed8;color:#1d4ed8}.gv-filter-btn:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.gv-filter-btn.active{background:#1d4ed8;border-color:#1d4ed8;color:var(--white)}.gv-search-filters{display:flex;align-items:center;gap:.75rem}.gv-search-box{position:relative;display:flex;align-items:center}.gv-search-box svg{position:absolute;left:1rem;color:var(--gray-400);pointer-events:none}.gv-search-input{min-height:48px;width:280px;padding:.75rem 1rem .75rem 2.75rem;font-size:1rem;border:2px solid var(--gray-300);border-radius:10px;background:var(--white);transition:all .2s ease}.gv-search-input:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.gv-filter-toggle{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;border:2px solid var(--gray-300);border-radius:10px;background:var(--white);color:var(--gray-600);cursor:pointer;transition:all .2s ease}.gv-filter-toggle:hover{border-color:#1d4ed8;color:#1d4ed8}.gv-filter-toggle.active{background:#eff6ff;border-color:#1d4ed8;color:#1d4ed8}.gv-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .375rem;font-size:.75rem;font-weight:700;background:#1d4ed8;color:var(--white);border-radius:10px}.gv-advanced-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;padding:1.25rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;margin-bottom:1rem}.gv-filter-group{display:flex;flex-direction:column;gap:.375rem;min-width:200px}.gv-filter-group label{font-size:.8125rem;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em}.gv-filter-select{min-height:44px;padding:.625rem 1rem;font-size:.9375rem;border:2px solid var(--gray-300);border-radius:8px;background:var(--white);cursor:pointer;transition:all .2s ease}.gv-filter-select:focus{outline:none;border-color:#1d4ed8}.gv-clear-filters{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.9375rem;font-weight:600;color:var(--gray-600);background:var(--white);border:2px solid var(--gray-300);border-radius:8px;cursor:pointer;transition:all .2s ease}.gv-clear-filters:hover{background:var(--gray-100);border-color:var(--gray-400)}.gv-results-count{font-size:.9375rem;font-weight:500;color:var(--gray-500)}.gv-submissions-list{display:flex;flex-direction:column;gap:1.25rem}.gv-submission-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.gv-submission-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.gv-submission-ue{display:flex;flex-direction:column;gap:.25rem}.gv-ue-code{font-size:.875rem;font-weight:600;color:#1d4ed8}.gv-ue-title{font-size:1.125rem;font-weight:600;color:var(--gray-900)}.gv-status-badge{padding:.375rem .875rem;border-radius:9999px;font-size:.875rem;font-weight:600}.gv-status-badge.gv-status-blue{background:#eff6ff;color:#1d4ed8}.gv-status-badge.gv-status-purple{background:#faf5ff;color:#9333ea}.gv-status-badge.gv-status-green{background:#ecfdf5;color:#059669}.gv-status-badge.gv-status-teal{background:#f0fdfa;color:#0d9488}.gv-status-badge.gv-status-red{background:#fef2f2;color:#dc2626}.gv-submission-body{padding:1.5rem}.gv-submission-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.25rem;margin-bottom:1.25rem}.gv-info-item{display:flex;flex-direction:column;gap:.25rem}.gv-info-label{font-size:.8125rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.gv-info-value{font-size:1rem;font-weight:600;color:var(--gray-900)}.gv-submission-stats{display:flex;gap:2rem;padding:1rem 1.25rem;background:var(--gray-50);border-radius:8px;margin-bottom:1rem}.gv-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.gv-stat-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase}.gv-stat-value{font-size:1.25rem;font-weight:700;color:var(--gray-900)}.gv-submission-meta{font-size:.9375rem;color:var(--gray-500)}.gv-submission-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.gv-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.gv-modal{background:var(--white);border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow:auto;box-shadow:0 25px 50px -12px #00000040}.gv-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.gv-modal-header h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.gv-modal-close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--gray-400);cursor:pointer;border-radius:8px}.gv-modal-close:hover{background:var(--gray-100);color:var(--gray-600)}.gv-modal-body{padding:1.5rem}.gv-modal-summary{padding:1rem;background:var(--gray-50);border-radius:8px;font-size:1rem;color:var(--gray-700);margin-bottom:1.5rem}.gv-modal-field{margin-bottom:1rem}.gv-modal-field label{display:block;font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.gv-modal-field textarea{width:100%;padding:.875rem 1rem;font-size:1rem;font-family:inherit;border:2px solid var(--gray-300);border-radius:10px;resize:vertical;min-height:100px}.gv-modal-field textarea:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.gv-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}@media(max-width:768px){.gv-filters-row{flex-direction:column;align-items:stretch}.gv-search-filters{width:100%}.gv-search-box{flex:1}.gv-search-input{width:100%}.gv-advanced-filters{flex-direction:column;align-items:stretch}.gv-filter-group{width:100%}}@media(max-width:640px){.gv-filters{flex-wrap:wrap;width:100%}.gv-filter-btn{flex:1;justify-content:center}.gv-submission-info{grid-template-columns:1fr 1fr}.gv-submission-actions{flex-direction:column}.gv-submission-actions .as-btn{width:100%;justify-content:center}}.gvd-header{margin-bottom:1.5rem}.gvd-back-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--gray-600);background:var(--white);border:2px solid var(--gray-200);border-radius:10px;text-decoration:none;transition:all .2s ease}.gvd-back-btn:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-900)}.gvd-back-btn:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.gvd-info-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden;margin-bottom:1.5rem}.gvd-info-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.gvd-ue-info{display:flex;flex-direction:column;gap:.25rem}.gvd-ue-code{font-size:.9375rem;font-weight:600;color:#1d4ed8}.gvd-ue-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.gvd-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;padding:1.5rem}.gvd-info-item{display:flex;flex-direction:column;gap:.25rem}.gvd-info-label{font-size:.8125rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.gvd-info-value{font-size:1.0625rem;font-weight:600;color:var(--gray-900)}.gvd-stats-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.gvd-section-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1.25rem}.gvd-stats-grid{display:flex;flex-wrap:wrap;gap:1rem}.gvd-stat-item{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--gray-50);border-radius:10px}.gvd-stat-item.gvd-stat-highlight{background:#eff6ff}.gvd-stat-item.gvd-stat-highlight .gvd-stat-value{color:#1d4ed8}.gvd-stat-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.gvd-stat-label{font-size:.8125rem;font-weight:500;color:var(--gray-500);text-align:center}.gvd-chart-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.gvd-chart{display:flex;align-items:flex-end;gap:.5rem;height:200px;padding:1rem 0}.gvd-chart-bar-container{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.gvd-chart-bar-wrapper{flex:1;display:flex;align-items:flex-end;width:100%}.gvd-chart-bar{width:100%;min-height:4px;background:linear-gradient(to top,#1d4ed8,#3b82f6);border-radius:4px 4px 0 0;display:flex;justify-content:center;align-items:flex-start;padding-top:.5rem;transition:height .3s ease}.gvd-chart-count{font-size:.875rem;font-weight:700;color:var(--white)}.gvd-chart-label{font-size:.75rem;font-weight:600;color:var(--gray-600);margin-top:.5rem;text-align:center}.gvd-chart-legend{display:flex;flex-wrap:wrap;gap:1.5rem;padding-top:1rem;border-top:1px solid var(--gray-200);margin-top:1rem}.gvd-chart-legend-item{font-size:.875rem;font-weight:500;color:var(--gray-600);display:flex;align-items:center;gap:.5rem}.gvd-chart-legend-item:before{content:"";width:12px;height:12px;border-radius:3px}.gvd-legend-fail:before{background:#dc2626}.gvd-legend-pass:before{background:#f59e0b}.gvd-legend-good:before{background:#059669}.gvd-grades-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.gvd-table-wrapper{overflow-x:auto;margin:0 -1.5rem;padding:0 1.5rem}.gvd-table{width:100%;border-collapse:collapse;font-size:1rem}.gvd-table th,.gvd-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.gvd-table th{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.gvd-table tbody tr:hover{background:var(--gray-50)}.gvd-table tbody tr:last-child td{border-bottom:none}.gvd-matricule{font-family:monospace;font-weight:600;color:var(--gray-600)}.gvd-col-center{text-align:center}.gvd-grade{font-weight:700;font-size:1.0625rem}.gvd-grade-fail{color:#dc2626}.gvd-actions{display:flex;justify-content:center;gap:1rem;padding:2rem 0}.as-btn-lg{min-height:56px;padding:1rem 2rem;font-size:1.125rem}.gvd-modal-validate{max-width:450px}.gvd-modal-confirm-icon{display:flex;justify-content:center;padding:1rem 0}.gvd-modal-confirm-icon svg{color:#059669}.gvd-modal-confirm-text{font-size:1.0625rem;color:var(--gray-700);text-align:center;line-height:1.6;margin-bottom:1rem}.gvd-modal-confirm-warning{font-size:.9375rem;color:var(--gray-500);text-align:center;padding:1rem;background:#fef3c7;border-radius:8px;margin-bottom:1.5rem}@media(max-width:768px){.gvd-info-header{flex-direction:column;align-items:flex-start}.gvd-ue-title{font-size:1.25rem}.gvd-info-grid{grid-template-columns:1fr 1fr}.gvd-stats-grid{flex-direction:column}.gvd-stat-item{flex-direction:row;justify-content:space-between}.gvd-chart{height:150px}.gvd-chart-legend{flex-direction:column;gap:.75rem}.gvd-actions{flex-direction:column}.gvd-actions .as-btn{width:100%;justify-content:center}}@media(max-width:480px){.gvd-info-grid{grid-template-columns:1fr}.gvd-table{font-size:.875rem}.gvd-table th,.gvd-table td{padding:.75rem .5rem}}.mr-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.mr-requests-list{display:flex;flex-direction:column;gap:1.25rem}.mr-request-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.mr-request-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.mr-request-meta{display:flex;align-items:center;gap:.75rem}.mr-origin-badge{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--white);border:1px solid var(--gray-200);border-radius:8px;font-size:.875rem;font-weight:500;color:var(--gray-600)}.mr-origin-badge svg{color:var(--gray-400)}.mr-status-badge{padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:600}.mr-status-pending{background:#fef3c7;color:#d97706}.mr-status-approved{background:#ecfdf5;color:#059669}.mr-status-rejected{background:#fef2f2;color:#dc2626}.mr-request-date{font-size:.875rem;color:var(--gray-500)}.mr-request-body{padding:1.5rem}.mr-student-info{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}.mr-student-name{font-size:1.25rem;font-weight:700;color:var(--gray-900)}.mr-student-matricule{font-size:.9375rem;font-family:monospace;color:var(--gray-500)}.mr-grade-info{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem}.mr-ue-code{font-size:.9375rem;font-weight:600;color:#1d4ed8}.mr-ue-title{font-size:.9375rem;color:var(--gray-700)}.mr-grade-type{font-size:.8125rem;padding:.25rem .5rem;background:var(--gray-100);border-radius:4px;color:var(--gray-600)}.mr-score-change{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:10px;margin-bottom:1rem}.mr-score{display:flex;flex-direction:column;align-items:center;gap:.25rem}.mr-score-label{font-size:.75rem;font-weight:500;color:var(--gray-500);text-transform:uppercase}.mr-score-value{font-size:1.5rem;font-weight:700}.mr-score-old .mr-score-value{color:var(--gray-600)}.mr-score-new .mr-score-value{color:#1d4ed8}.mr-score-arrow{display:flex;align-items:center;color:var(--gray-400)}.mr-score-diff{margin-left:auto}.mr-diff{font-size:1rem;font-weight:600;padding:.375rem .75rem;border-radius:6px}.mr-diff.positive{background:#ecfdf5;color:#059669}.mr-diff.negative{background:#fef2f2;color:#dc2626}.mr-reason-preview{font-size:.9375rem;color:var(--gray-600);line-height:1.5}.mr-reason-preview strong{color:var(--gray-700)}.mr-request-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.mr-detail-modal{max-width:600px}.mr-detail-section{margin-bottom:1.5rem}.mr-detail-section:last-child{margin-bottom:0}.mr-detail-section h4{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-200)}.mr-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.mr-detail-item{display:flex;flex-direction:column;gap:.25rem}.mr-detail-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.mr-detail-value{font-size:1rem;font-weight:600;color:var(--gray-900)}.mr-detail-score-change{display:flex;align-items:center;justify-content:center;gap:2rem;padding:1.5rem;background:var(--gray-50);border-radius:10px}.mr-detail-score{display:flex;flex-direction:column;align-items:center;gap:.5rem}.mr-detail-score-label{font-size:.875rem;font-weight:500;color:var(--gray-500)}.mr-detail-score-value{font-size:2rem;font-weight:700}.mr-detail-score-old .mr-detail-score-value{color:var(--gray-600)}.mr-detail-score-new .mr-detail-score-value{color:#1d4ed8}.mr-detail-score-arrow{display:flex;align-items:center;color:var(--gray-400)}.mr-detail-reason{padding:1rem;background:var(--gray-50);border-radius:8px;font-size:1rem;color:var(--gray-700);line-height:1.6}.mr-attachments{display:flex;flex-direction:column;gap:.5rem}.mr-attachment{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;font-size:.9375rem;color:var(--gray-700);text-decoration:none;transition:all .2s ease}.mr-attachment:hover{background:var(--gray-100);border-color:var(--gray-300)}.mr-attachment svg{color:var(--gray-400)}@media(max-width:768px){.mr-request-header{flex-direction:column;align-items:flex-start;gap:.75rem}.mr-score-change{flex-direction:column;gap:1rem}.mr-score-arrow{transform:rotate(90deg)}.mr-score-diff{margin-left:0}.mr-request-actions{flex-direction:column}.mr-request-actions .as-btn{width:100%;justify-content:center}.mr-detail-grid{grid-template-columns:1fr}.mr-detail-score-change{flex-direction:column;gap:1rem}.mr-detail-score-arrow{transform:rotate(90deg)}}.ayw-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem}.ayw-cancel-btn{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--gray-600);background:var(--white);border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .2s ease}.ayw-cancel-btn:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-900)}.ayw-cancel-btn:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.ayw-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.ayw-progress{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:1.5rem;margin-bottom:2rem}.ayw-progress-track{height:6px;background:var(--gray-200);border-radius:3px;margin-bottom:1.5rem;overflow:hidden}.ayw-progress-fill{height:100%;background:linear-gradient(to right,#1d4ed8,#3b82f6);border-radius:3px;transition:width .3s ease}.ayw-steps{display:flex;justify-content:space-between}.ayw-step{display:flex;align-items:center;gap:.75rem;opacity:.5;transition:opacity .2s ease}.ayw-step.active,.ayw-step.completed{opacity:1}.ayw-step-indicator{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;background:var(--gray-100);color:var(--gray-500);border-radius:50%;transition:all .2s ease}.ayw-step.active .ayw-step-indicator{background:#1d4ed8;color:var(--white)}.ayw-step.completed .ayw-step-indicator{background:#059669;color:var(--white)}.ayw-step-content{display:flex;flex-direction:column;gap:.125rem}.ayw-step-title{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.ayw-step-description{font-size:.8125rem;color:var(--gray-500)}.ayw-content{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:2rem;margin-bottom:1.5rem}.ayw-step-header{margin-bottom:2rem}.ayw-step-header h2{font-size:1.375rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.ayw-step-header p{font-size:1rem;color:var(--gray-500);margin:0}.ayw-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.ayw-form-grid.full-width{grid-template-columns:1fr}.ayw-form-group{display:flex;flex-direction:column;gap:.5rem}.ayw-form-group.span-2{grid-column:span 2}.ayw-form-label{font-size:1rem;font-weight:600;color:var(--gray-700)}.ayw-form-input,.ayw-form-select{min-height:52px;padding:.875rem 1rem;font-size:1rem;font-family:inherit;border:2px solid var(--gray-300);border-radius:10px;background:var(--white);color:var(--gray-900);transition:all .2s ease}.ayw-form-input:focus,.ayw-form-select:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.ayw-form-input::placeholder{color:var(--gray-400)}.ayw-form-hint{font-size:.875rem;color:var(--gray-500)}.ayw-clone-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--gray-200)}.ayw-clone-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.ayw-clone-options{display:flex;flex-direction:column;gap:.75rem}.ayw-checkbox-label{display:flex;align-items:center;gap:.75rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:500;color:var(--gray-700);background:var(--gray-50);border-radius:10px;cursor:pointer;transition:all .2s ease}.ayw-checkbox-label:hover{background:var(--gray-100)}.ayw-checkbox-label input[type=checkbox]{width:24px;height:24px;accent-color:#1d4ed8;cursor:pointer}.ayw-semester-toggle{display:flex;gap:1rem;margin-bottom:2rem}.ayw-semester-option{flex:1;display:flex;align-items:center;justify-content:center;min-height:60px;padding:1rem;font-size:1.125rem;font-weight:600;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .2s ease}.ayw-semester-option:hover{border-color:#1d4ed8}.ayw-semester-option.active{background:#eff6ff;border-color:#1d4ed8;color:#1d4ed8}.ayw-semester-option:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.ayw-semester-dates{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.ayw-semester-box{padding:1.5rem;background:var(--gray-50);border-radius:12px}.ayw-semester-box h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.ayw-semester-box.disabled{opacity:.5;pointer-events:none}.ayw-programs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.ayw-program-card{display:flex;align-items:center;gap:.75rem;min-height:56px;padding:1rem;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .2s ease}.ayw-program-card:hover{border-color:#1d4ed8}.ayw-program-card.selected{background:#eff6ff;border-color:#1d4ed8}.ayw-program-card input[type=checkbox]{width:24px;height:24px;accent-color:#1d4ed8}.ayw-program-name{font-size:1rem;font-weight:600;color:var(--gray-900)}.ayw-promotions-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--gray-200)}.ayw-promotions-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem}.ayw-promotions-list{display:flex;flex-direction:column;gap:1rem}.ayw-promotion-item{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;align-items:center;padding:1rem;background:var(--gray-50);border-radius:10px}.ayw-promotion-item .ayw-form-input{min-height:44px}.ayw-add-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;color:#1d4ed8;background:var(--white);border:2px dashed #1d4ed8;border-radius:10px;cursor:pointer;margin-top:1rem;transition:all .2s ease}.ayw-add-btn:hover{background:#eff6ff}.ayw-remove-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;color:var(--gray-400);border-radius:8px;cursor:pointer;transition:all .2s ease}.ayw-remove-btn:hover{background:#fef2f2;color:#dc2626}.ayw-ues-table{width:100%;border-collapse:collapse;font-size:1rem}.ayw-ues-table th,.ayw-ues-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.ayw-ues-table th{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.ayw-ues-table tbody tr:hover{background:var(--gray-50)}.ayw-ue-code{font-weight:600;color:#1d4ed8}.ayw-ue-new-badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:600;background:#ecfdf5;color:#059669;border-radius:4px;margin-left:.5rem}.ayw-summary-section{margin-bottom:2rem}.ayw-summary-section:last-child{margin-bottom:0}.ayw-summary-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:.75rem}.ayw-summary-title svg{color:#1d4ed8}.ayw-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.ayw-summary-item{display:flex;flex-direction:column;gap:.25rem}.ayw-summary-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.ayw-summary-value{font-size:1.0625rem;font-weight:600;color:var(--gray-900)}.ayw-summary-list{display:flex;flex-wrap:wrap;gap:.5rem}.ayw-summary-tag{padding:.5rem .75rem;font-size:.9375rem;font-weight:500;background:var(--gray-100);border-radius:6px;color:var(--gray-700)}.ayw-navigation{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:16px}.ayw-step-indicator-text{font-size:1rem;font-weight:500;color:var(--gray-500)}.ayw-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}@media(max-width:1024px){.ayw-steps{flex-wrap:wrap;gap:1rem}.ayw-step-content{display:none}.ayw-form-grid{grid-template-columns:1fr}.ayw-form-group.span-2{grid-column:span 1}.ayw-semester-dates,.ayw-promotion-item{grid-template-columns:1fr}}@media(max-width:640px){.ayw-header{flex-direction:column;align-items:flex-start}.ayw-content{padding:1.5rem}.ayw-navigation{flex-direction:column;gap:1rem}.ayw-navigation .as-btn{width:100%;justify-content:center}.ayw-step-indicator-text{order:-1}}.aym-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.aym-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.aym-subtitle{font-size:1rem;color:var(--text-secondary);margin:.25rem 0 0}.aym-actions{display:flex;gap:.75rem}.aym-progress-card{margin-bottom:2rem}.aym-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.aym-progress-percentage{font-size:1.5rem;font-weight:700;color:var(--accent-blue)}.aym-progress-bar{height:12px;background:var(--gray-100);border-radius:6px;overflow:hidden;margin-bottom:.75rem}.aym-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),#3b82f6);border-radius:6px;transition:width .5s ease}.aym-progress-dates{display:flex;justify-content:space-between;font-size:.875rem;color:var(--text-secondary)}.aym-semesters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.aym-semester-card{padding:1.5rem;border-left:4px solid var(--gray-300)}.aym-semester-card.current{border-left-color:var(--accent-blue);background:linear-gradient(135deg,rgba(29,78,216,.03),transparent)}.aym-semester-card.past{border-left-color:var(--accent-green)}.aym-semester-card.future{border-left-color:var(--gray-400)}.aym-semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.aym-semester-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.aym-semester-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:9999px;text-transform:uppercase}.aym-semester-badge.current{background:#1d4ed81a;color:var(--accent-blue)}.aym-semester-badge.past{background:#0596691a;color:var(--accent-green)}.aym-semester-badge.future{background:var(--gray-100);color:var(--text-secondary)}.aym-semester-dates{display:flex;flex-direction:column;gap:.5rem}.aym-date-row{display:flex;justify-content:space-between;align-items:center}.aym-date-label{font-size:.875rem;color:var(--text-secondary)}.aym-date-value{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.aym-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem}.aym-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;text-decoration:none;transition:all .2s ease;cursor:pointer}.aym-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.aym-stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.aym-stat-icon.blue{background:#1d4ed81a;color:var(--accent-blue)}.aym-stat-icon.green{background:#0596691a;color:var(--accent-green)}.aym-stat-icon.purple{background:#7c3aed1a;color:#7c3aed}.aym-stat-content{display:flex;flex-direction:column;gap:.25rem}.aym-stat-label{font-size:1rem;font-weight:600;color:var(--text-primary)}.aym-stat-action{font-size:.875rem;color:var(--accent-blue)}.aym-description{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin:0}@media(max-width:768px){.aym-header{flex-direction:column}.aym-title{font-size:1.5rem}.aym-semesters-grid,.aym-stats-grid{grid-template-columns:1fr}}.uem-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.uem-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.uem-subtitle{font-size:1rem;color:var(--text-secondary);margin:.25rem 0 0}.uem-filters{margin-bottom:1.5rem}.uem-search{position:relative;margin-bottom:1rem}.uem-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.uem-search-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:all .2s ease}.uem-search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #1d4ed81a}.uem-filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.uem-filter-select{padding:.625rem 2rem .625rem 1rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;min-height:44px;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.uem-filter-select:focus{outline:none;border-color:var(--accent-blue)}.uem-clear-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:var(--gray-100);border:none;border-radius:8px;cursor:pointer;min-height:44px;transition:all .2s ease}.uem-clear-btn:hover{background:var(--gray-200);color:var(--text-primary)}.uem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.uem-card{display:flex;flex-direction:column;padding:1.25rem;transition:all .2s ease}.uem-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.uem-card.inactive{opacity:.7;background:var(--gray-50)}.uem-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.uem-code{font-size:.8125rem;font-weight:600;color:var(--accent-blue);font-family:monospace}.uem-type-badge{font-size:.6875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase}.uem-type-badge.blue{background:#1d4ed81a;color:var(--accent-blue)}.uem-type-badge.green{background:#0596691a;color:var(--accent-green)}.uem-type-badge.orange{background:#ea580c1a;color:var(--accent-orange)}.uem-type-badge.gray{background:var(--gray-100);color:var(--text-secondary)}.uem-card-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem;line-height:1.4}.uem-card-meta{display:flex;gap:1rem;margin-bottom:1rem}.uem-meta-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary)}.uem-meta-item svg{color:var(--gray-400)}.uem-card-stats{display:flex;gap:1.5rem;padding-top:1rem;border-top:1px solid var(--gray-100);margin-top:auto}.uem-stat{display:flex;flex-direction:column;align-items:center;text-align:center}.uem-stat-value{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.uem-stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.uem-hours-detail{display:flex;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--gray-200);font-size:.8125rem;color:var(--text-secondary)}.uem-inactive-badge{display:inline-flex;align-items:center;gap:.25rem;margin-top:.75rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:var(--accent-red);background:#dc26261a;border-radius:4px;width:fit-content}@media(max-width:768px){.uem-title{font-size:1.5rem}.uem-grid{grid-template-columns:1fr}.uem-filter-row{flex-direction:column;align-items:stretch}.uem-filter-select{width:100%}}.ta-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.ta-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.ta-subtitle{font-size:1rem;color:var(--text-secondary);margin:.25rem 0 0}.ta-filters{margin-bottom:1.5rem}.ta-search{position:relative;margin-bottom:1rem}.ta-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.ta-search-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:all .2s ease}.ta-search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #1d4ed81a}.ta-filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.ta-filter-select{padding:.625rem 2rem .625rem 1rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;min-height:44px;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.ta-filter-select:focus{outline:none;border-color:var(--accent-blue)}.ta-clear-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:var(--gray-100);border:none;border-radius:8px;cursor:pointer;min-height:44px;transition:all .2s ease}.ta-clear-btn:hover{background:var(--gray-200);color:var(--text-primary)}.ta-groups{display:flex;flex-direction:column;gap:1.5rem}.ta-teacher-card{padding:0;overflow:hidden}.ta-teacher-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}.ta-teacher-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent-blue),#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0}.ta-teacher-info{flex:1;min-width:0}.ta-teacher-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin:0}.ta-teacher-email{font-size:.875rem;color:var(--text-secondary)}.ta-assignment-count{font-size:.875rem;font-weight:500;color:var(--text-secondary);background:#fff;padding:.375rem .75rem;border-radius:9999px;border:1px solid var(--gray-200);white-space:nowrap}.ta-ue-list{display:flex;flex-direction:column}.ta-ue-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100);transition:background .15s ease}.ta-ue-item:last-child{border-bottom:none}.ta-ue-item:hover{background:var(--gray-50)}.ta-ue-main{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.ta-ue-code{font-size:.8125rem;font-weight:600;color:var(--accent-blue);font-family:monospace;flex-shrink:0}.ta-ue-title{font-size:.9375rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ta-ue-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ta-ue-level,.ta-ue-semester{font-size:.75rem;color:var(--text-secondary);background:var(--gray-100);padding:.25rem .5rem;border-radius:4px}.ta-role-badge{font-size:.6875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase}.ta-role-badge.blue{background:#1d4ed81a;color:var(--accent-blue)}.ta-role-badge.green{background:#0596691a;color:var(--accent-green)}.ta-role-badge.purple{background:#7c3aed1a;color:#7c3aed}.ta-role-badge.orange{background:#ea580c1a;color:var(--accent-orange)}.ta-role-badge.gray{background:var(--gray-100);color:var(--text-secondary)}@media(max-width:768px){.ta-title{font-size:1.5rem}.ta-ue-item{flex-direction:column;align-items:flex-start}.ta-ue-main{flex-direction:column;align-items:flex-start;gap:.25rem}.ta-ue-meta{flex-wrap:wrap;margin-top:.5rem}}.am-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.am-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.am-subtitle{font-size:1rem;color:var(--text-secondary);margin:.25rem 0 0}.am-stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.5rem}.am-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;background:#fff;border-radius:12px;border:1px solid var(--gray-200);text-align:center}.am-stat-card.orange{background:#ea580c0d;border-color:#ea580c33}.am-stat-card.blue{background:#1d4ed80d;border-color:#1d4ed833}.am-stat-card.green{background:#0596690d;border-color:#05966933}.am-stat-card.red{background:#dc26260d;border-color:#dc262633}.am-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.am-stat-card.orange .am-stat-value{color:var(--accent-orange)}.am-stat-card.blue .am-stat-value{color:var(--accent-blue)}.am-stat-card.green .am-stat-value{color:var(--accent-green)}.am-stat-card.red .am-stat-value{color:var(--accent-red)}.am-stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:500;margin-top:.25rem}.am-filters{margin-bottom:1.5rem}.am-search{position:relative;margin-bottom:1rem}.am-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.am-search-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:all .2s ease}.am-search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #1d4ed81a}.am-filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.am-filter-select{padding:.625rem 2rem .625rem 1rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;min-height:44px;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.am-filter-select:focus{outline:none;border-color:var(--accent-blue)}.am-clear-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:var(--gray-100);border:none;border-radius:8px;cursor:pointer;min-height:44px;transition:all .2s ease}.am-clear-btn:hover{background:var(--gray-200);color:var(--text-primary)}.am-list{display:flex;flex-direction:column;gap:1rem}.am-app-card{padding:1.25rem}.am-app-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.am-app-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent-blue),#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0}.am-app-info{flex:1;min-width:0}.am-app-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin:0}.am-app-email{font-size:.875rem;color:var(--text-secondary)}.am-status-badge{font-size:.75rem;font-weight:600;padding:.375rem .75rem;border-radius:9999px;text-transform:uppercase;flex-shrink:0}.am-status-badge.orange{background:#ea580c1a;color:var(--accent-orange)}.am-status-badge.blue{background:#1d4ed81a;color:var(--accent-blue)}.am-status-badge.green{background:#0596691a;color:var(--accent-green)}.am-status-badge.red{background:#dc26261a;color:var(--accent-red)}.am-status-badge.purple{background:#7c3aed1a;color:#7c3aed}.am-status-badge.gray{background:var(--gray-100);color:var(--text-secondary)}.am-app-details{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-100)}.am-detail-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.am-detail-item svg{color:var(--gray-400);flex-shrink:0}.am-detail-mono{font-family:monospace;font-weight:500;color:var(--accent-blue)}.am-app-actions{display:flex;justify-content:flex-end}@media(max-width:1024px){.am-stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.am-title{font-size:1.5rem}.am-stats-grid{grid-template-columns:repeat(2,1fr)}.am-stats-grid .am-stat-card:first-child{grid-column:span 2}.am-app-header{flex-wrap:wrap}.am-status-badge{order:-1;width:100%;text-align:center;margin-bottom:.5rem}}.cd-header-left{display:flex;flex-direction:column;gap:.75rem}.cd-back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;color:var(--gray-500);text-decoration:none;padding:.5rem 0;transition:color .2s ease}.cd-back-link:hover{color:var(--accent-blue)}.cd-back-link:focus-visible{outline:3px solid #3b82f6;outline-offset:3px;border-radius:6px}.cd-header-title{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.cd-title{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin:0}.cd-status-badge{display:inline-flex;padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600;text-transform:uppercase}.cd-subtitle{font-size:1.0625rem;color:var(--text-secondary);margin:0}.cd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.cd-section-full{grid-column:span 2}.cd-section .as-card-header{border-bottom:2px solid var(--gray-100)}.cd-section .as-card-title{display:flex;align-items:center;gap:.75rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.cd-section .as-card-title svg{color:var(--accent-blue)}.cd-info-grid{display:grid;gap:1rem}.cd-info-item{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid var(--gray-100)}.cd-info-item:last-child{border-bottom:none;padding-bottom:0}.cd-info-label{font-size:.9375rem;color:var(--text-secondary)}.cd-info-value{font-size:.9375rem;font-weight:500;color:var(--text-primary);text-align:right;max-width:60%}.cd-program-info{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.cd-program-name{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.cd-modality-badge{display:inline-flex;padding:.375rem .875rem;background:#eff6ff;color:#1d4ed8;border-radius:9999px;font-size:.875rem;font-weight:500}.cd-dates{display:flex;flex-direction:column;gap:.75rem}.cd-date-item{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--text-secondary)}.cd-date-item svg{color:var(--gray-400);flex-shrink:0}.cd-empty-docs{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:var(--gray-400)}.cd-empty-docs p{margin:.75rem 0 0;font-size:.9375rem}.cd-documents-list{display:flex;flex-direction:column;gap:.75rem}.cd-document-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--gray-50);border-radius:10px;gap:1rem}.cd-document-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.cd-document-type{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.cd-document-filename{font-size:.8125rem;color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cd-document-btn{flex-shrink:0;min-height:44px;padding:.5rem 1rem;font-size:.875rem}.cd-payments-list{display:flex;flex-direction:column;gap:1rem}.cd-payment-item{padding:1.25rem;background:var(--gray-50);border-radius:10px}.cd-payment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.cd-payment-status{display:inline-flex;padding:.375rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:600}.cd-payment-amount{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.cd-payment-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.9375rem;color:var(--text-secondary)}.cd-payment-ref{font-family:monospace;font-weight:500}.cd-payment-receipt{display:inline-flex;align-items:center;gap:.375rem;margin-top:.75rem;font-size:.9375rem;font-weight:500;color:var(--accent-blue);text-decoration:none}.cd-payment-receipt:hover{text-decoration:underline}.cd-payment-rejection{margin-top:.75rem;padding:.75rem;background:#fef2f2;border-radius:6px;font-size:.9375rem;color:#dc2626}.cd-reviewed-by{font-size:.9375rem;color:var(--text-secondary);margin-bottom:.75rem}.cd-admin-notes{padding:1rem;background:var(--gray-50);border-radius:10px;font-size:.9375rem;color:var(--text-primary);line-height:1.6}.cd-rejection-reason{margin-top:1rem;padding:1rem;background:#fef2f2;border-radius:10px;font-size:.9375rem;color:#dc2626}.cd-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.cd-header-actions{display:flex;gap:.75rem;flex-shrink:0}.cd-payment-actions{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--gray-200)}.cd-payment-actions .as-btn{flex:1;justify-content:center}.cd-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.cd-modal{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.cd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:2px solid var(--gray-100)}.cd-modal-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.cd-modal-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;color:var(--gray-500);cursor:pointer;border-radius:8px;transition:all .2s ease}.cd-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.cd-modal-body{padding:1.5rem}.cd-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--gray-100);background:var(--gray-50)}.cd-form-group{margin-bottom:1.25rem}.cd-form-group:last-child{margin-bottom:0}.cd-form-label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.cd-form-select,.cd-form-textarea{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;transition:all .2s ease}.cd-form-select:focus,.cd-form-textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #1d4ed81a}.cd-form-textarea{resize:vertical;min-height:100px}.cd-form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}@media(max-width:1024px){.cd-grid{grid-template-columns:1fr}.cd-section-full{grid-column:span 1}}@media(max-width:768px){.cd-header{flex-direction:column}.cd-header-actions{width:100%}.cd-header-actions .as-btn{flex:1;justify-content:center}.cd-title{font-size:1.5rem}.cd-header-title{flex-direction:column;align-items:flex-start;gap:.5rem}.cd-info-item{flex-direction:column;align-items:flex-start;gap:.25rem}.cd-info-value{text-align:left;max-width:100%}.cd-program-info,.cd-document-item{flex-direction:column;align-items:flex-start}.cd-document-btn{width:100%;justify-content:center}.cd-payment-actions{flex-direction:column}.cd-modal{margin:.5rem}.cd-modal-footer{flex-direction:column}.cd-modal-footer .as-btn{width:100%;justify-content:center}}.prm-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.prm-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.prm-subtitle{font-size:1rem;color:var(--text-secondary);margin:.25rem 0 0}.prm-stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.5rem}.prm-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;background:#fff;border-radius:12px;border:2px solid var(--gray-200);text-align:center;transition:all .2s ease}.prm-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.prm-stat-rate{background:linear-gradient(135deg,#1d4ed80d,#1d4ed81a);border-color:var(--accent-blue)}.prm-stat-rate .prm-stat-value{color:var(--accent-blue)}.prm-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.prm-stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:500;margin-top:.25rem}.prm-pipeline{margin-bottom:1.5rem;padding:1.5rem}.prm-pipeline-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.prm-pipeline-steps{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem}.prm-pipeline-step{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;background:var(--gray-50);border-radius:8px;min-width:140px}.prm-pipeline-count{font-size:1.5rem;font-weight:700;color:var(--accent-blue)}.prm-pipeline-label{font-size:.75rem;color:var(--text-secondary);text-align:center;margin-top:.25rem}.prm-pipeline-arrow{font-size:1.5rem;color:var(--gray-300)}.prm-pipeline-info{text-align:center;font-size:.875rem;color:var(--text-secondary);padding-top:1rem;border-top:1px dashed var(--gray-200)}.prm-info-highlight{font-weight:700;color:var(--accent-orange)}.prm-filters{margin-bottom:1.5rem}.prm-search{position:relative;margin-bottom:1rem}.prm-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.prm-search-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;border:2px solid var(--gray-200);border-radius:8px;transition:all .2s ease}.prm-search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #1d4ed81a}.prm-filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.prm-filter-select{padding:.625rem 2rem .625rem 1rem;font-size:.9375rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;min-height:44px;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.prm-filter-select:focus{outline:none;border-color:var(--accent-blue)}.prm-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:6px;transition:background .15s ease}.prm-checkbox-label:hover{background:var(--gray-50)}.prm-checkbox{width:18px;height:18px;accent-color:var(--accent-blue)}.prm-clear-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:var(--gray-100);border:none;border-radius:8px;cursor:pointer;min-height:44px;transition:all .2s ease}.prm-clear-btn:hover{background:var(--gray-200);color:var(--text-primary)}.prm-list{display:flex;flex-direction:column;gap:1rem}.prm-card{padding:1.25rem}.prm-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.prm-card-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0}.prm-card-info{flex:1;min-width:0}.prm-card-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin:0}.prm-card-email{font-size:.875rem;color:var(--text-secondary)}.prm-status-badge{font-size:.75rem;font-weight:600;padding:.375rem .75rem;border-radius:9999px;text-transform:uppercase;flex-shrink:0}.prm-card-details{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-100)}.prm-detail-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.prm-detail-item svg{color:var(--gray-400);flex-shrink:0}.prm-detail-mono{font-family:monospace;font-weight:500;color:#7c3aed}.prm-expiry{color:var(--accent-orange)}.prm-expiry svg{color:var(--accent-orange)}.prm-card-footer{margin-top:auto}.prm-application-status{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:.75rem;border-radius:8px}.prm-application-status.has-application{background:#16a34a1a;color:#16a34a}.prm-application-status.no-application{background:var(--gray-50);color:var(--text-secondary)}.prm-application-status strong{font-family:monospace}.prm-link{margin-left:auto;color:inherit;text-decoration:none;font-weight:500}.prm-link:hover{text-decoration:underline}@media(max-width:1024px){.prm-stats-grid{grid-template-columns:repeat(3,1fr)}.prm-pipeline-steps{flex-wrap:wrap}}@media(max-width:768px){.prm-title{font-size:1.5rem}.prm-stats-grid{grid-template-columns:repeat(2,1fr)}.prm-stats-grid .prm-stat-card:last-child{grid-column:span 2}.prm-pipeline-steps{flex-direction:column}.prm-pipeline-arrow{transform:rotate(90deg)}.prm-card-header{flex-wrap:wrap}.prm-status-badge{order:-1;width:100%;text-align:center;margin-bottom:.5rem}.prm-card-details{flex-direction:column;gap:.5rem}}.jw-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1.5rem}.jw-loading-spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top-color:var(--primary-500);border-radius:50%;animation:jw-spin 1s linear infinite}.jw-loading p{font-size:1rem;color:var(--gray-600);margin:0}.jw-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem}.jw-cancel-btn{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--gray-600);background:var(--white);border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .2s ease}.jw-cancel-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.jw-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.jw-subtitle{font-size:1rem;color:var(--gray-500);margin:.25rem 0 0}.jw-progress{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.jw-progress-track{height:6px;background:var(--gray-200);border-radius:3px;margin-bottom:1.5rem;overflow:hidden}.jw-progress-fill{height:100%;background:linear-gradient(to right,#9333ea,#a855f7);border-radius:3px;transition:width .3s ease}.jw-steps{display:flex;justify-content:space-between}.jw-step{display:flex;align-items:center;gap:.75rem;opacity:.5;transition:opacity .2s ease}.jw-step.active,.jw-step.completed{opacity:1}.jw-step-indicator{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;background:var(--gray-100);color:var(--gray-500);border-radius:50%;transition:all .2s ease}.jw-step.active .jw-step-indicator{background:#9333ea;color:var(--white)}.jw-step.completed .jw-step-indicator{background:#059669;color:var(--white)}.jw-step-content{display:flex;flex-direction:column;gap:.125rem}.jw-step-title{font-size:.9375rem;font-weight:600;color:var(--gray-900)}.jw-step-description{font-size:.8125rem;color:var(--gray-500)}.jw-stats-bar{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:12px;margin-bottom:1.5rem}.jw-stat{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.5rem;border-radius:8px;min-width:100px}.jw-stat-total{background:var(--gray-100)}.jw-stat-validated{background:#ecfdf5}.jw-stat-validated .jw-stat-value{color:#059669}.jw-stat-catchup{background:#fef3c7}.jw-stat-catchup .jw-stat-value{color:#d97706}.jw-stat-repeat{background:#fef2f2}.jw-stat-repeat .jw-stat-value{color:#dc2626}.jw-stat-pending{background:#eff6ff}.jw-stat-pending .jw-stat-value{color:#1d4ed8}.jw-stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.jw-stat-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.jw-content{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:2rem;margin-bottom:1.5rem}.jw-step-header{margin-bottom:2rem}.jw-step-header h2{font-size:1.375rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.jw-step-header p{font-size:1rem;color:var(--gray-500);margin:0}.jw-type-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.jw-type-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:center}.jw-type-card:hover{border-color:#9333ea}.jw-type-card.active{background:#faf5ff;border-color:#9333ea}.jw-type-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--white);border-radius:12px;color:#9333ea}.jw-type-card.active .jw-type-card-icon{background:#9333ea;color:var(--white)}.jw-type-card-title{font-size:1.0625rem;font-weight:600;color:var(--gray-900)}.jw-type-card-description{font-size:.875rem;color:var(--gray-500)}.jw-promotions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.jw-promotion-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--gray-50);border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;transition:all .2s ease}.jw-promotion-card:hover{border-color:#9333ea}.jw-promotion-card.selected{background:#faf5ff;border-color:#9333ea}.jw-promotion-radio{width:24px;height:24px;accent-color:#9333ea}.jw-promotion-info{display:flex;flex-direction:column;gap:.25rem}.jw-promotion-name{font-size:1.0625rem;font-weight:600;color:var(--gray-900)}.jw-promotion-meta{font-size:.875rem;color:var(--gray-500)}.jw-grades-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.jw-grades-summary-item{padding:1rem;background:var(--gray-50);border-radius:10px;text-align:center}.jw-grades-summary-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.jw-grades-summary-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.jw-grades-summary-item.warning{background:#fef3c7}.jw-grades-summary-item.warning .jw-grades-summary-value{color:#d97706}.jw-missing-grades-warning{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.5rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:10px;margin-bottom:1.5rem}.jw-missing-grades-warning svg{color:#d97706;flex-shrink:0}.jw-missing-grades-warning p{margin:0;color:var(--gray-700)}.jw-students-table{width:100%;border-collapse:collapse}.jw-students-table th,.jw-students-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.jw-students-table th{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.jw-students-table tbody tr:hover{background:var(--gray-50)}.jw-student-name{font-weight:600;color:var(--gray-900)}.jw-student-matricule{font-size:.875rem;color:var(--gray-500)}.jw-grade-value{font-weight:600;font-size:1.0625rem}.jw-grade-fail{color:#dc2626}.jw-grade-pass{color:#059669}.jw-missing-badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:600;background:#fef3c7;color:#d97706;border-radius:4px}.jw-decision-select{min-height:44px;min-width:160px;padding:.5rem 1rem;font-size:.9375rem;font-weight:600;border:2px solid var(--gray-300);border-radius:8px;background:var(--white);cursor:pointer}.jw-decision-select:focus{outline:none;border-color:#9333ea}.jw-decision-select.validated{background:#ecfdf5;border-color:#059669;color:#059669}.jw-decision-select.catch_up{background:#fef3c7;border-color:#d97706;color:#d97706}.jw-decision-select.repeat{background:#fef2f2;border-color:#dc2626;color:#dc2626}.jw-decision-select.excluded{background:var(--gray-100);border-color:var(--gray-500);color:var(--gray-600)}.jw-decision-select.eligible_next{background:#eff6ff;border-color:#1d4ed8;color:#1d4ed8}.jw-finalize-form{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.jw-form-group{display:flex;flex-direction:column;gap:.5rem}.jw-form-group.full-width{grid-column:span 2}.jw-form-label{font-size:1rem;font-weight:600;color:var(--gray-700)}.jw-form-input,.jw-form-textarea{min-height:52px;padding:.875rem 1rem;font-size:1rem;font-family:inherit;border:2px solid var(--gray-300);border-radius:10px;background:var(--white);transition:all .2s ease}.jw-form-input:focus,.jw-form-textarea:focus{outline:none;border-color:#9333ea;box-shadow:0 0 0 3px #9333ea1a}.jw-form-textarea{min-height:100px;resize:vertical}.jw-summary-card{padding:1.5rem;background:#faf5ff;border:1px solid #9333ea;border-radius:12px;margin-top:2rem}.jw-summary-card h4{margin:0 0 1rem;color:#9333ea;font-size:1.125rem}.jw-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.jw-summary-item{display:flex;flex-direction:column;gap:.25rem}.jw-summary-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.jw-summary-value{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.jw-navigation{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:16px}.jw-step-indicator-text{font-size:1rem;font-weight:500;color:var(--gray-500)}.jw-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:jw-spin 1s linear infinite}@keyframes jw-spin{to{transform:rotate(360deg)}}@media(max-width:1024px){.jw-steps{flex-wrap:wrap;gap:1rem}.jw-step-content{display:none}.jw-type-cards{grid-template-columns:1fr}.jw-grades-summary{grid-template-columns:repeat(2,1fr)}.jw-finalize-form{grid-template-columns:1fr}.jw-form-group.full-width{grid-column:span 1}}@media(max-width:640px){.jw-header{flex-direction:column;align-items:flex-start}.jw-content{padding:1.5rem}.jw-stats-bar{justify-content:center}.jw-navigation{flex-direction:column;gap:1rem}.jw-navigation .as-btn{width:100%;justify-content:center}.jw-step-indicator-text{order:-1}}.jw-success-screen{display:flex;flex-direction:column;align-items:center;padding:3rem 2rem;text-align:center;max-width:600px;margin:0 auto}.jw-success-icon{width:96px;height:96px;display:flex;align-items:center;justify-content:center;background:#ecfdf5;border-radius:50%;margin-bottom:1.5rem}.jw-success-title{font-size:1.75rem;font-weight:700;color:#059669;margin:0 0 .75rem}.jw-success-message{font-size:1.125rem;color:var(--gray-600);margin:0 0 2rem}.jw-success-summary{width:100%;padding:1.5rem;background:var(--gray-50);border-radius:12px;margin-bottom:2rem}.jw-success-summary h3{font-size:1rem;font-weight:600;color:var(--gray-700);margin:0 0 1rem}.jw-success-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.jw-success-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.jw-success-stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.jw-success-stat-label{font-size:.8125rem;color:var(--gray-500)}.jw-success-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.jw-promotion-completion{display:block;font-size:.8125rem;color:var(--gray-400);margin-top:.25rem}.jw-promotion-progress-bar{width:100%;height:4px;background:var(--gray-200);border-radius:2px;margin-top:.5rem;overflow:hidden}.jw-promotion-progress-fill{height:100%;border-radius:2px;transition:width .3s ease}.jw-empty-promotions{padding:2rem;text-align:center;color:var(--gray-500);background:var(--gray-50);border-radius:12px}@media(max-width:640px){.jw-success-stats{grid-template-columns:repeat(2,1fr)}.jw-success-actions{flex-direction:column;width:100%}.jw-success-actions .as-btn{width:100%;justify-content:center}}.jr-page{background:var(--gray-100)}.jr-screen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.jr-back-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--gray-600);background:var(--white);border:2px solid var(--gray-200);border-radius:10px;text-decoration:none;transition:all .2s ease}.jr-back-btn:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-900)}.jr-actions{display:flex;gap:.75rem}.jr-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:jr-spin 1s linear infinite}@keyframes jr-spin{to{transform:rotate(360deg)}}.jr-document{background:var(--white);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:3rem;max-width:900px;margin:0 auto}.jr-doc-header{text-align:center;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:2px solid var(--gray-200)}.jr-institution{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:2rem}.jr-logo img{width:80px;height:auto}.jr-institution-info{text-align:left}.jr-institution-info h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.jr-institution-info p{font-size:.9375rem;color:var(--gray-600);margin:0}.jr-program-name{font-weight:600;color:#1d4ed8!important}.jr-doc-title{margin-bottom:1.5rem}.jr-doc-title h1{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em}.jr-doc-title h2{font-size:1.125rem;font-weight:600;color:#1d4ed8;margin:0}.jr-semester{font-size:1rem;color:var(--gray-600);margin:.5rem 0 0}.jr-promotion-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.jr-promotion-info p{font-size:.9375rem;color:var(--gray-700);margin:0}.jr-summary{margin-bottom:2.5rem;padding:1.5rem;background:var(--gray-50);border-radius:12px}.jr-summary h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.jr-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.5rem}.jr-summary-item{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--white);border-radius:8px;text-align:center}.jr-summary-success{background:#ecfdf5}.jr-summary-success .jr-summary-value{color:#059669}.jr-summary-warning{background:#fef3c7}.jr-summary-warning .jr-summary-value{color:#d97706}.jr-summary-danger{background:#fef2f2}.jr-summary-danger .jr-summary-value{color:#dc2626}.jr-summary-value{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.jr-summary-label{font-size:.8125rem;font-weight:500;color:var(--gray-500);margin-top:.25rem}.jr-stats-row{display:flex;justify-content:center;gap:2.5rem;flex-wrap:wrap}.jr-stat-item{display:flex;align-items:center;gap:.5rem}.jr-stat-label{font-size:.9375rem;font-weight:500;color:var(--gray-600)}.jr-stat-value{font-size:1rem;font-weight:700;color:var(--gray-900)}.jr-results{margin-bottom:2.5rem}.jr-results h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.jr-table{width:100%;border-collapse:collapse;font-size:.9375rem}.jr-table th,.jr-table td{padding:.875rem 1rem;text-align:left;border:1px solid var(--gray-200)}.jr-table th{font-size:.75rem;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.jr-table tbody tr:nth-child(2n){background:var(--gray-50)}.jr-col-rank{text-align:center;width:60px}.jr-col-matricule{font-family:monospace;font-weight:600;width:120px}.jr-col-name{font-weight:500}.jr-col-average{text-align:center;font-weight:700;width:80px}.jr-grade-fail{color:#dc2626}.jr-col-credits{text-align:center;width:80px}.jr-col-decision{text-align:center;font-weight:600;width:120px}.jr-decision-success{color:#059669}.jr-decision-warning{color:#d97706}.jr-decision-danger{color:#dc2626}.jr-comments{margin-bottom:2.5rem;padding:1.5rem;background:var(--gray-50);border-radius:12px}.jr-comments h3{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.jr-comments p{font-size:.9375rem;color:var(--gray-700);margin:0;line-height:1.6}.jr-signatures{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem;margin:3rem 0 2rem;padding-top:2rem;border-top:1px solid var(--gray-200)}.jr-signature-block{text-align:center}.jr-signature-role{font-size:.9375rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.jr-signature-name{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 2rem}.jr-signature-line{width:200px;height:1px;background:var(--gray-400);margin:0 auto}.jr-doc-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-200);text-align:center}.jr-doc-footer p{font-size:.8125rem;color:var(--gray-500);margin:0 0 .5rem}.jr-doc-reference{font-family:monospace;font-size:.75rem!important}.jr-doc-final{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ecfdf5;color:#059669!important;border-radius:9999px;font-weight:600;margin-top:.5rem}@media(max-width:768px){.jr-screen-header{flex-direction:column;gap:1rem;align-items:stretch}.jr-actions{flex-direction:column}.jr-document{padding:1.5rem;border-radius:0}.jr-institution{flex-direction:column;text-align:center}.jr-institution-info{text-align:center}.jr-summary-grid{grid-template-columns:repeat(2,1fr)}.jr-summary-grid .jr-summary-item:last-child{grid-column:span 2}.jr-stats-row{flex-direction:column;align-items:center;gap:1rem}.jr-signatures{grid-template-columns:1fr;gap:2rem}.jr-table{font-size:.8125rem}.jr-table th,.jr-table td{padding:.5rem}.jr-col-matricule{width:90px}}@media print{.jr-screen-header{display:none!important}.jr-page{background:#fff;padding:0}.jr-document{max-width:none;box-shadow:none;border-radius:0;padding:0;margin:0}@page{size:A4;margin:1.5cm}.jr-table{page-break-inside:auto}.jr-table tr{page-break-inside:avoid;page-break-after:auto}.jr-table thead{display:table-header-group}.jr-signatures{page-break-inside:avoid}.jr-summary-item,.jr-summary-success,.jr-summary-warning,.jr-summary-danger,.jr-comments{-webkit-print-color-adjust:exact;print-color-adjust:exact}.jr-table tbody tr:nth-child(2n){-webkit-print-color-adjust:exact;print-color-adjust:exact}.jr-table th,.jr-table td{border:1px solid #e5e7eb!important}.jr-decision-success,.jr-decision-warning,.jr-decision-danger,.jr-grade-fail{-webkit-print-color-adjust:exact;print-color-adjust:exact}.jr-logo img{width:60px}.jr-doc-footer{position:fixed;bottom:0;left:0;right:0;padding:.5cm;background:#fff}}.st-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.st-stat-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:12px;text-align:center}.st-stat-card.st-stat-active{background:#ecfdf5;border-color:#a7f3d0}.st-stat-card.st-stat-active .st-stat-value{color:#059669}.st-stat-card.st-stat-catchup{background:#fef3c7;border-color:#fcd34d}.st-stat-card.st-stat-catchup .st-stat-value{color:#d97706}.st-stat-card.st-stat-graduated{background:#dbeafe;border-color:#93c5fd}.st-stat-card.st-stat-graduated .st-stat-value{color:#1d4ed8}.st-stat-value{font-size:2rem;font-weight:700;color:var(--gray-900)}.st-stat-label{font-size:.9375rem;font-weight:500;color:var(--gray-500)}.st-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.5rem;padding:1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:12px}.st-search{position:relative;flex:1;min-width:280px}.st-search svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}.st-search input{width:100%;min-height:48px;padding:.75rem 1rem .75rem 3rem;font-size:1rem;border:2px solid var(--gray-300);border-radius:8px;background:var(--white)}.st-search input:focus{outline:none;border-color:#1d4ed8}.st-filter-select{min-height:48px;min-width:180px;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--gray-300);border-radius:8px;background:var(--white);cursor:pointer}.st-filter-select:focus{outline:none;border-color:#1d4ed8}.st-list{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;overflow:hidden}.st-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.st-empty svg{color:var(--gray-300);margin-bottom:1rem}.st-empty p{font-size:1rem;color:var(--gray-500);margin:0}.st-table-wrapper{overflow-x:auto}.st-table{width:100%;border-collapse:collapse;font-size:1rem}.st-table th,.st-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--gray-200)}.st-table th{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.st-table tbody tr:hover{background:var(--gray-50)}.st-table tbody tr:last-child td{border-bottom:none}.st-col-center{text-align:center}.st-student-info{display:flex;align-items:center;gap:.75rem}.st-student-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#e0e7ff;color:#4338ca;font-size:.875rem;font-weight:700;border-radius:50%;flex-shrink:0}.st-student-name{font-weight:600;color:var(--gray-900)}.st-student-matricule{font-size:.875rem;color:var(--gray-500)}.st-promotion{padding:.25rem .75rem;font-size:.875rem;font-weight:500;color:#1d4ed8;background:#dbeafe;border-radius:6px}.st-grade{font-size:1rem;font-weight:700}.st-grade.pass{color:#059669}.st-grade.fail{color:#dc2626}.st-credits{font-weight:600;color:var(--gray-900)}.st-credits.incomplete{color:#d97706}.st-attendance{display:flex;align-items:center;gap:.5rem}.st-attendance-bar{width:60px;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.st-attendance-fill{height:100%;border-radius:4px;transition:width .3s ease}.st-attendance span{font-size:.875rem;font-weight:600;color:var(--gray-700)}.st-status-badge{display:inline-block;padding:.375rem .75rem;font-size:.875rem;font-weight:600;border-radius:6px}.st-status-green{background:#ecfdf5;color:#059669}.st-status-orange{background:#fef3c7;color:#d97706}.st-status-red{background:#fef2f2;color:#dc2626}.st-status-blue{background:#dbeafe;color:#1d4ed8}.st-status-gray{background:var(--gray-100);color:var(--gray-600)}.st-view-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:8px;color:var(--gray-500);cursor:pointer;transition:all .2s ease}.st-view-btn:hover{background:var(--gray-100);color:#1d4ed8}.st-view-btn:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.st-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.st-modal{width:100%;max-width:560px;max-height:90vh;background:var(--white);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.st-modal-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.st-modal-avatar{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#e0e7ff;color:#4338ca;font-size:1.25rem;font-weight:700;border-radius:50%;flex-shrink:0}.st-modal-header h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.st-modal-header p{font-size:.9375rem;color:var(--gray-500);margin:.25rem 0 0}.st-modal-close{margin-left:auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:8px;color:var(--gray-500);cursor:pointer;transition:all .2s ease}.st-modal-close:hover{background:var(--gray-200);color:var(--gray-700)}.st-modal-close:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.st-modal-body{padding:1.5rem;overflow-y:auto}.st-modal-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.st-modal-stat{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--gray-50);border-radius:8px}.st-modal-stat-label{font-size:.8125rem;font-weight:500;color:var(--gray-500)}.st-modal-stat-value{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.st-modal-stat-value.pass{color:#059669}.st-modal-stat-value.fail{color:#dc2626}.st-modal-section{margin-bottom:1.5rem}.st-modal-section h4{font-size:.9375rem;font-weight:600;color:var(--gray-700);margin:0 0 .75rem}.st-modal-section p{font-size:1rem;color:var(--gray-900);margin:0}.st-modal-actions{display:flex;flex-wrap:wrap;gap:.75rem}.st-modal-actions .as-btn{flex:1;min-width:180px}@media(max-width:768px){.st-stats{grid-template-columns:1fr 1fr}.st-filters{flex-direction:column;align-items:stretch}.st-search{min-width:100%}.st-filter-select{width:100%}.st-table{font-size:.875rem}.st-table th,.st-table td{padding:.75rem 1rem}.st-modal-stats{grid-template-columns:1fr}.st-modal-actions{flex-direction:column}.st-modal-actions .as-btn{width:100%}}.rp-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;background:var(--white);border:1px solid var(--gray-200);border-radius:12px}.rp-tab{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;color:var(--gray-600);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.rp-tab:hover{background:var(--gray-100);color:var(--gray-900)}.rp-tab.active{background:#1d4ed8;color:var(--white)}.rp-tab:focus-visible{outline:3px solid #3b82f6;outline-offset:2px}.rp-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;padding:1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:12px}.rp-filter-group{display:flex;flex-direction:column;gap:.5rem}.rp-filter-group label{font-size:.875rem;font-weight:600;color:var(--gray-600)}.rp-filter-select{min-height:48px;min-width:200px;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--gray-300);border-radius:8px;background:var(--white);cursor:pointer}.rp-filter-select:focus{outline:none;border-color:#1d4ed8}.rp-filter-actions{display:flex;gap:.75rem;margin-left:auto}.rp-content{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:1.5rem}.rp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.rp-summary-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;background:var(--gray-50);border-radius:12px;text-align:center}.rp-summary-card.rp-summary-success{background:#ecfdf5}.rp-summary-card.rp-summary-success .rp-summary-value{color:#059669}.rp-summary-card.rp-summary-validated{background:#ecfdf5}.rp-summary-card.rp-summary-validated .rp-summary-value{color:#059669}.rp-summary-card.rp-summary-catchup{background:#fef3c7}.rp-summary-card.rp-summary-catchup .rp-summary-value{color:#d97706}.rp-summary-value{font-size:2rem;font-weight:700;color:var(--gray-900)}.rp-summary-label{font-size:.9375rem;font-weight:500;color:var(--gray-500)}.rp-table-card{border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.rp-table-card h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0;padding:1.25rem 1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.rp-table-wrapper{overflow-x:auto}.rp-table{width:100%;border-collapse:collapse;font-size:1rem}.rp-table th,.rp-table td{padding:1rem 1.5rem;text-align:left;border-bottom:1px solid var(--gray-200)}.rp-table th{font-size:.8125rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50)}.rp-table tbody tr:hover{background:var(--gray-50)}.rp-table tbody tr:last-child td{border-bottom:none}.rp-col-center{text-align:center}.rp-ue-code{font-weight:600;color:#1d4ed8}.rp-ue-title{font-size:.875rem;color:var(--gray-500)}.rp-grade{font-weight:700;font-size:1.0625rem}.rp-grade.pass{color:#059669}.rp-grade.fail{color:#dc2626}.rp-progress-bar{position:relative;width:100%;height:28px;background:var(--gray-200);border-radius:14px;overflow:hidden}.rp-progress-fill{position:absolute;left:0;top:0;height:100%;background:#1d4ed8;border-radius:14px;transition:width .3s ease}.rp-progress-fill.high{background:#059669}.rp-progress-fill.medium{background:#d97706}.rp-progress-fill.low{background:#dc2626}.rp-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.8125rem;font-weight:700;color:var(--gray-900);z-index:1}.rp-success-validated{color:#059669;font-weight:600}.rp-success-catchup{color:#d97706;font-weight:600}.rp-success-repeat{color:#dc2626;font-weight:600}.rp-success-excluded{color:var(--gray-500);font-weight:600}.rp-coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.rp-coming-soon svg{color:var(--gray-300);margin-bottom:1.5rem}.rp-coming-soon h3{font-size:1.25rem;font-weight:600;color:var(--gray-700);margin:0 0 .5rem}.rp-coming-soon p{font-size:1rem;color:var(--gray-500);margin:0}@media(max-width:768px){.rp-tabs{flex-direction:column}.rp-tab{width:100%;justify-content:center}.rp-filters{flex-direction:column;align-items:stretch}.rp-filter-select{width:100%}.rp-filter-actions{margin-left:0;flex-direction:column}.rp-filter-actions .as-btn{width:100%;justify-content:center}.rp-summary{grid-template-columns:1fr 1fr}.rp-table{font-size:.875rem}.rp-table th,.rp-table td{padding:.75rem 1rem}}.exam-sessions-page{padding:1.5rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.header-content h1{display:flex;align-items:center;gap:.5rem;font-size:1.75rem;font-weight:700;color:var(--color-text-primary, #1f2937);margin:0}.header-content h1 .icon{width:1.75rem;height:1.75rem;color:var(--color-primary, #2563eb)}.header-content .subtitle{color:var(--color-text-secondary, #6b7280);margin:.25rem 0 0;font-size:.875rem}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .15s}.btn-primary .icon{width:1rem;height:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;border-radius:.75rem;padding:1rem 1.25rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.stat-card .stat-value{font-size:1.5rem;font-weight:700;color:var(--color-text-primary, #1f2937)}.stat-card .stat-label{font-size:.75rem;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}.stat-card.stat-draft .stat-value{color:#6b7280}.stat-card.stat-ongoing .stat-value{color:#2563eb}.stat-card.stat-validation .stat-value{color:#7c3aed}.filters-section{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;align-items:center}.search-box{position:relative;flex:1;min-width:200px;max-width:320px}.search-box .icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--color-text-tertiary, #9ca3af);pointer-events:none}.search-box input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;background:#fff;transition:border-color .15s,box-shadow .15s}.search-box input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.status-filters{display:flex;flex-wrap:wrap;gap:.5rem}.filter-btn{padding:.375rem .75rem;background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;font-size:.8125rem;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .15s}.filter-btn:hover{background:var(--color-bg-hover, #f9fafb);border-color:var(--color-border-hover, #d1d5db)}.filter-btn.active{background:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb);color:#fff}.sessions-list{display:grid;gap:1rem}.session-card{position:relative;background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb);transition:box-shadow .15s}.session-card:hover{box-shadow:0 4px 6px #0000001a}.session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.session-badges{display:flex;gap:.5rem;flex-wrap:wrap}.session-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.session-title a{color:var(--color-text-primary, #1f2937);text-decoration:none;transition:color .15s}.session-title a:hover{color:var(--color-primary, #2563eb)}.session-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.session-stats{display:flex;flex-wrap:wrap;gap:1.5rem;padding:.75rem 0;border-top:1px solid var(--color-border, #e5e7eb);border-bottom:1px solid var(--color-border, #e5e7eb);margin-bottom:1rem}.session-stats .stat{display:flex;align-items:center;gap:.5rem}.session-stats .stat-icon{width:1.25rem;height:1.25rem;color:var(--color-text-tertiary, #9ca3af)}.session-stats .stat-icon svg{width:100%;height:100%}.session-stats .stat-value{font-size:1rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.session-stats .stat-label{font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.session-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;background:#fff;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .15s}.btn-icon svg{width:1rem;height:1rem}.btn-icon:hover{background:var(--color-bg-hover, #f9fafb)}.btn-icon.btn-view:hover{color:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb)}.btn-icon.btn-publish{color:#16a34a;border-color:#86efac;background:#f0fdf4}.btn-icon.btn-publish:hover{background:#dcfce7}.btn-icon.btn-delete:hover{color:#dc2626;border-color:#dc2626;background:#fef2f2}.delete-overlay{position:absolute;inset:0;background:#fffffff2;border-radius:.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10}.delete-overlay p{font-weight:500;color:var(--color-text-primary, #1f2937);margin:0}.delete-actions{display:flex;gap:.5rem}.btn-cancel{padding:.5rem 1rem;background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-confirm-delete{padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-confirm-delete:hover{background:#b91c1c}.btn-confirm-delete:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:3rem 1.5rem;background:#fff;border-radius:.75rem;border:1px solid var(--color-border, #e5e7eb)}.empty-state .icon-large{width:3rem;height:3rem;color:var(--color-text-tertiary, #9ca3af);margin-bottom:1rem}.empty-state h3{font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 .5rem}.empty-state p{color:var(--color-text-secondary, #6b7280);margin:0 0 1.5rem;font-size:.875rem}@media(max-width:640px){.exam-sessions-page{padding:1rem}.page-header{flex-direction:column}.header-content h1{font-size:1.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.filters-section{flex-direction:column;align-items:stretch}.search-box{max-width:none}.status-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem}.session-stats{gap:1rem}.session-actions{justify-content:flex-start}}.text-red-600{color:#dc2626}.text-orange-600{color:#ea580c}.text-yellow-600{color:#ca8a04}.text-gray-500{color:#6b7280}.exam-session-form-page{padding:1.5rem;max-width:800px;margin:0 auto}.page-header{margin-bottom:1.5rem}.page-header h1{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:var(--color-text-primary, #1f2937);margin:0}.page-header h1 .icon{width:1.5rem;height:1.5rem;color:var(--color-primary, #2563eb)}.session-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.form-section h2{font-size:1rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.form-group:last-child{margin-bottom:0}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-primary, #1f2937);margin-bottom:.5rem}.form-group label .optional{font-weight:400;color:var(--color-text-tertiary, #9ca3af);font-size:.8125rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;background:#fff;transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc2626}.form-group input.error:focus,.form-group select.error:focus{box-shadow:0 0 0 3px #dc26261a}.form-group textarea{resize:vertical;min-height:100px}.error-message{display:block;font-size:.8125rem;color:#dc2626;margin-top:.375rem}.help-text{display:block;font-size:.8125rem;color:var(--color-text-tertiary, #9ca3af);margin-top:.375rem}.btn-auto{margin-left:auto;padding:.25rem .5rem;background:var(--color-primary-light, #dbeafe);color:var(--color-primary, #2563eb);border:none;border-radius:.25rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-auto:hover{background:#bfdbfe}.radio-group{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.radio-card{position:relative;display:flex;padding:1rem;background:#fff;border:2px solid var(--color-border, #e5e7eb);border-radius:.5rem;cursor:pointer;transition:all .15s}.radio-card:hover{border-color:var(--color-border-hover, #d1d5db)}.radio-card.selected{border-color:var(--color-primary, #2563eb);background:var(--color-primary-light, #eff6ff)}.radio-card input{position:absolute;opacity:0;width:0;height:0}.radio-content{display:flex;flex-direction:column;gap:.25rem}.radio-title{font-weight:600;color:var(--color-text-primary, #1f2937);font-size:.9375rem}.radio-description{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.btn-cancel{padding:.625rem 1.25rem;background:#fff;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s}.btn-cancel:hover{background:var(--color-bg-hover, #f9fafb);color:var(--color-text-primary, #1f2937)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--color-primary, #2563eb);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark, #1d4ed8)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.spinner-small{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1.5rem}.loading-state p{margin-top:1rem;color:var(--color-text-secondary, #6b7280);font-size:.875rem}@media(max-width:640px){.exam-session-form-page{padding:1rem}.form-row,.radio-group{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button,.form-actions a{width:100%;justify-content:center;text-align:center}}.exam-session-detail-page{padding:1.5rem;max-width:1200px;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.875rem}.breadcrumb a{color:var(--color-primary, #2563eb);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .separator{color:var(--color-text-tertiary, #9ca3af)}.breadcrumb span:last-child{color:var(--color-text-secondary, #6b7280)}.alert{padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;cursor:pointer;font-size:.875rem}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.session-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;padding:1.5rem;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.header-info{flex:1}.session-badges{display:flex;gap:.5rem;margin-bottom:.75rem}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-type{background:#f3f4f6;color:#4b5563}.bg-gray-100{background:#f3f4f6}.text-gray-800{color:#1f2937}.bg-blue-100{background:#dbeafe}.text-blue-800{color:#1e40af}.bg-yellow-100{background:#fef3c7}.text-yellow-800{color:#92400e}.bg-orange-100{background:#ffedd5}.text-orange-800{color:#9a3412}.bg-purple-100{background:#f3e8ff}.text-purple-800{color:#6b21a8}.bg-indigo-100{background:#e0e7ff}.text-indigo-800{color:#3730a3}.bg-green-100{background:#dcfce7}.text-green-800{color:#166534}.session-header h1{font-size:1.5rem;font-weight:700;color:var(--color-text-primary, #1f2937);margin:0 0 .75rem}.session-meta{display:flex;flex-wrap:wrap;gap:1rem}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.meta-item .icon{width:1rem;height:1rem;opacity:.7}.meta-item.deadline-passed{color:#dc2626}.meta-item.deadline-today{color:#ea580c}.meta-item.deadline-soon{color:#ca8a04}.header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn-primary,.btn-secondary,.btn-success,.btn-danger{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s;border:none}.btn-primary{background:var(--color-primary, #2563eb);color:#fff}.btn-primary:hover{background:var(--color-primary-dark, #1d4ed8)}.btn-secondary{background:#fff;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #e5e7eb)}.btn-secondary:hover{background:var(--color-bg-hover, #f9fafb);color:var(--color-text-primary, #1f2937)}.btn-success{background:#16a34a;color:#fff}.btn-success:hover{background:#15803d}.btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca}.btn-danger:hover{background:#fef2f2}.btn-primary .icon,.btn-secondary .icon,.btn-success .icon,.btn-danger .icon{width:1rem;height:1rem}.btn-cancel{padding:.5rem 1rem;background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;font-size:.875rem;cursor:pointer}.btn-cancel:hover{background:var(--color-bg-hover, #f9fafb)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:.75rem;padding:1rem 1.25rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.stat-icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light, #dbeafe);border-radius:.5rem}.stat-icon svg{width:1.25rem;height:1.25rem;color:var(--color-primary, #2563eb)}.stat-icon.stat-icon-progress{background:#fef3c7}.stat-icon.stat-icon-progress svg{color:#d97706}.stat-icon.stat-icon-complete{background:#dcfce7}.stat-icon.stat-icon-complete svg{color:#16a34a}.stat-content .stat-value{font-size:1.5rem;font-weight:700;color:var(--color-text-primary, #1f2937);line-height:1.2}.stat-content .stat-label{font-size:.75rem;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border, #e5e7eb);margin-bottom:1.5rem}.tab{padding:.75rem 1.25rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #6b7280);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab:hover{color:var(--color-text-primary, #1f2937)}.tab.active{color:var(--color-primary, #2563eb);border-bottom-color:var(--color-primary, #2563eb)}.tab-content{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--color-border, #e5e7eb)}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tab-header h2{font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0}.empty-tab{text-align:center;padding:2rem 1rem;color:var(--color-text-secondary, #6b7280)}.empty-tab p{margin:0 0 1rem}.schedules-list{display:flex;flex-direction:column;gap:.75rem}.schedule-card{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;padding:1rem;background:var(--color-bg-secondary, #f9fafb);border-radius:.5rem;align-items:center}.schedule-time{text-align:center;min-width:80px}.schedule-date{display:block;font-size:.8125rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.schedule-hours{display:block;font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.schedule-info h4{margin:0 0 .25rem;font-size:.9375rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.schedule-info .ue-code{display:inline-block;padding:.125rem .375rem;background:var(--color-primary-light, #dbeafe);color:var(--color-primary, #2563eb);border-radius:.25rem;font-size:.75rem;font-weight:600;margin-right:.5rem}.schedule-room{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.schedule-room .icon{width:.875rem;height:.875rem}.schedule-status{text-align:right}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.status-badge.status-scheduled{background:#dbeafe;color:#1e40af}.status-badge.status-ongoing{background:#fef3c7;color:#92400e}.status-badge.status-completed{background:#dcfce7;color:#166534}.status-badge.status-cancelled{background:#f3f4f6;color:#6b7280}.schedule-duration{display:block;font-size:.75rem;color:var(--color-text-tertiary, #9ca3af);margin-top:.25rem}.codes-stats{display:flex;gap:.5rem}.stat-badge{padding:.25rem .625rem;background:var(--color-bg-secondary, #f9fafb);border-radius:9999px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary, #6b7280)}.stat-badge.stat-revealed{background:#dcfce7;color:#166534}.stat-badge.stat-hidden{background:#f3f4f6;color:#4b5563}.codes-table{overflow-x:auto}.codes-table table{width:100%;border-collapse:collapse}.codes-table th,.codes-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.codes-table th{font-size:.75rem;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-secondary, #f9fafb)}.codes-table td{font-size:.875rem;color:var(--color-text-primary, #1f2937)}.code-cell{font-family:monospace;font-weight:600;color:var(--color-primary, #2563eb)}.status-badge.revealed{background:#dcfce7;color:#166534}.status-badge.hidden{background:#f3f4f6;color:#4b5563}.progress-list{display:flex;flex-direction:column;gap:1rem}.progress-card{padding:1rem;background:var(--color-bg-secondary, #f9fafb);border-radius:.5rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-title .ue-code{display:inline-block;padding:.125rem .375rem;background:var(--color-primary-light, #dbeafe);color:var(--color-primary, #2563eb);border-radius:.25rem;font-size:.75rem;font-weight:600;margin-right:.5rem}.progress-title .ue-title{font-size:.9375rem;font-weight:500;color:var(--color-text-primary, #1f2937)}.progress-percent{font-size:1rem;font-weight:700;color:var(--color-text-primary, #1f2937)}.progress-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#e5e7eb;margin-bottom:.5rem}.bar-draft{background:#9ca3af}.bar-submitted{background:#3b82f6}.bar-approved{background:#22c55e}.bar-published{background:#16a34a}.progress-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.progress-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.25rem}.dot-draft{background:#9ca3af}.dot-submitted{background:#3b82f6}.dot-approved{background:#22c55e}.dot-published{background:#16a34a}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:.75rem;padding:1.5rem;max-width:400px;width:90%;box-shadow:0 20px 25px -5px #0000001a}.modal h3{margin:0 0 .75rem;font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.modal p{margin:0 0 1.5rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1.5rem;text-align:center}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--color-border, #e5e7eb);border-top-color:var(--color-primary, #2563eb);border-radius:50%;animation:spin .8s linear infinite}.loading-state p{margin-top:1rem;color:var(--color-text-secondary, #6b7280)}.error-state h3{margin:0 0 1rem;color:var(--color-text-primary, #1f2937)}@media(max-width:768px){.session-header{flex-direction:column}.header-actions{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.schedule-card{grid-template-columns:1fr;text-align:left}.schedule-time{text-align:left}.schedule-status{text-align:left;margin-top:.5rem}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{white-space:nowrap}}.te-manager{display:flex;flex-direction:column;height:calc(100vh - 64px);background:var(--background);overflow:hidden}.te-manager-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--card-bg);border-bottom:1px solid var(--border);flex-shrink:0}.te-manager-title h1{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.te-manager-subtitle{font-size:.875rem;color:var(--text-secondary)}.te-manager-toast{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--gpe-green-50, #f0fdf4);color:var(--gpe-green-700, #15803d);border-radius:.5rem;font-size:.875rem;font-weight:500;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}.te-manager-columns{display:flex;flex:1;overflow:hidden}.te-column{display:flex;flex-direction:column;width:280px;min-width:280px;background:var(--card-bg);border-right:1px solid var(--border);transition:opacity .2s ease}.te-column:last-child{border-right:none}.te-column.te-column-detail{flex:1;min-width:400px}.te-column:not(.active):not(:first-child){opacity:.5}.te-column.active{opacity:1}.te-column-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--background);border-bottom:1px solid var(--border);flex-shrink:0}.te-column-header h2{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.te-column-count{font-size:.75rem;font-weight:500;color:var(--text-tertiary);background:var(--hover-bg);padding:.125rem .5rem;border-radius:1rem}.te-column-content{flex:1;overflow-y:auto}.te-column-list{list-style:none;margin:0;padding:0}.te-column-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--border-subtle, rgba(0,0,0,.05))}.te-column-item:hover{background:var(--hover-bg)}.te-column-item.selected{background:var(--primary-50, #eff6ff)}.te-column-item-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--hover-bg);border-radius:.5rem;color:var(--text-secondary);flex-shrink:0}.te-column-item.selected .te-column-item-icon{background:var(--primary-100, #dbeafe);color:var(--primary-600, #2563eb)}.te-column-item-content{flex:1;min-width:0}.te-column-item-title{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-column-item-code{display:block;font-size:.75rem;color:var(--text-secondary);font-family:var(--font-mono)}.te-column-item-meta{display:block;font-size:.75rem;color:var(--text-tertiary);margin-top:.125rem}.te-column-item-stats{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.te-column-item-chevron{color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity .15s ease}.te-column-item:hover .te-column-item-chevron,.te-column-item.selected .te-column-item-chevron{opacity:1}.te-status{display:inline-flex;align-items:center;font-size:.625rem;font-weight:600;text-transform:uppercase;padding:.125rem .375rem;border-radius:.25rem}.te-status-open{background:var(--gpe-amber-100, #fef3c7);color:var(--gpe-amber-700, #b45309)}.te-status-closed{background:var(--gpe-green-100, #dcfce7);color:var(--gpe-green-700, #15803d)}.te-status-pending{background:var(--gray-100, #f3f4f6);color:var(--gray-600, #4b5563)}.te-responses{font-size:.75rem;color:var(--text-secondary)}.te-column-placeholder,.te-column-loading,.te-column-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);text-align:center;padding:2rem}.te-column-placeholder svg,.te-column-empty svg{margin-bottom:.75rem;opacity:.5}.te-column-placeholder span,.te-column-empty{font-size:.875rem}.te-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary-500);border-radius:50%;animation:spin .8s linear infinite}.te-detail{display:flex;flex-direction:column;height:100%}.te-detail-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--background)}.te-detail-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.te-detail-header p{font-size:.875rem;color:var(--text-secondary);margin:0}.te-detail-stats-row{display:flex;gap:1.5rem;margin-top:.75rem}.te-detail-stat{display:flex;flex-direction:column}.te-detail-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.te-detail-stat-label{font-size:.75rem;color:var(--text-tertiary)}.te-detail-tabs{display:flex;gap:.25rem;padding:.5rem 1rem;background:var(--background);border-bottom:1px solid var(--border)}.te-detail-tabs button{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:.375rem;cursor:pointer;transition:all .15s ease}.te-detail-tabs button:hover{background:var(--hover-bg);color:var(--text-primary)}.te-detail-tabs button.active{background:var(--primary-500);color:#fff}.te-detail-content{flex:1;overflow-y:auto;padding:1rem 1.25rem}.te-detail-summary{display:flex;flex-direction:column;gap:1.5rem}.te-detail-overall{display:flex;flex-direction:column;align-items:center;padding:1.5rem;background:var(--background);border-radius:.75rem}.te-detail-score-circle{display:flex;align-items:baseline;justify-content:center;width:80px;height:80px;border:4px solid;border-radius:50%;margin-bottom:.5rem}.te-detail-score-circle span{font-size:1.5rem;font-weight:700}.te-detail-score-circle small{font-size:.875rem;color:var(--text-tertiary)}.te-detail-score-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.te-detail-sections{display:flex;flex-direction:column;gap:.75rem}.te-detail-section{background:var(--background);padding:.75rem 1rem;border-radius:.5rem}.te-detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.te-detail-section-header span:first-child{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.te-detail-section-header span:last-child{font-size:.875rem;font-weight:600}.te-detail-section-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.te-detail-section-bar>div{height:100%;border-radius:3px;transition:width .3s ease}.te-detail-questions{display:flex;flex-direction:column;gap:1rem}.te-detail-question-group h4{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.te-detail-question{display:flex;flex-direction:column;gap:.375rem;padding:.5rem 0}.te-detail-question>span{font-size:.8125rem;color:var(--text-primary);line-height:1.4}.te-detail-question-score{display:flex;align-items:center;gap:.5rem}.te-detail-question-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.te-detail-question-bar>div{height:100%;border-radius:2px}.te-detail-question-score>span{font-size:.75rem;font-weight:600;width:2rem;text-align:right}.te-detail-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:var(--text-tertiary)}.te-detail-no-data svg{margin-bottom:1rem;opacity:.5}.te-detail-no-data p{font-size:.9375rem;font-weight:500;color:var(--text-secondary);margin:0 0 .25rem}.te-detail-no-data span{font-size:.8125rem}.te-detail-responses{display:flex;flex-direction:column;gap:1rem}.te-detail-responses-info{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary);padding:.5rem .75rem;background:var(--background);border-radius:.5rem}.te-detail-responses-list{display:flex;flex-direction:column;gap:.5rem}.te-detail-response{background:var(--background);padding:.75rem 1rem;border-radius:.5rem}.te-detail-response-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.te-detail-response-header span:first-child{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.te-detail-response-header span:last-child{font-size:.75rem;color:var(--text-tertiary)}.te-detail-response-scores{display:flex;flex-wrap:wrap;gap:.25rem}.te-detail-response-score{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.625rem;font-weight:600;color:#fff;border-radius:.25rem}.te-detail-report{display:flex;flex-direction:column;gap:1.5rem}.te-detail-actions{display:flex;flex-direction:column;gap:.5rem}.te-action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s ease}.te-action-btn:disabled{opacity:.5;cursor:not-allowed}.te-action-notify{background:var(--primary-500);color:#fff}.te-action-notify:hover:not(:disabled){background:var(--primary-600)}.te-action-count{opacity:.8}.te-action-export{background:var(--hover-bg);color:var(--text-primary)}.te-action-export:hover:not(:disabled){background:var(--border)}.te-detail-info-card{background:var(--background);padding:1rem;border-radius:.5rem}.te-detail-info-card h4{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.te-detail-info-card dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}.te-detail-info-card dt{font-size:.75rem;color:var(--text-tertiary)}.te-detail-info-card dd{font-size:.8125rem;color:var(--text-primary);margin:0}@media(max-width:1280px){.te-column{width:240px;min-width:240px}}@media(max-width:1024px){.te-manager-columns{overflow-x:auto}.te-column{width:260px;min-width:260px}.te-column.te-column-detail{min-width:360px}}[data-theme=dark] .te-column-item.selected{background:var(--primary-900, #1e3a8a)}[data-theme=dark] .te-column-item.selected .te-column-item-icon{background:var(--primary-800, #1e40af)}[data-theme=dark] .te-status-open{background:#f59e0b33;color:#fbbf24}[data-theme=dark] .te-status-closed,[data-theme=dark] .te-manager-toast{background:#22c55e33;color:#4ade80}.cert-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.cert-stat-card{position:relative;display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.cert-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-blue-light, #3b82f6));opacity:0;transition:opacity .3s ease}.cert-stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014}.cert-stat-card:hover:before{opacity:1}.cert-stat-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;flex-shrink:0;transition:transform .3s ease}.cert-stat-card:hover .cert-stat-icon{transform:scale(1.05)}.cert-stat-icon.blue{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.cert-stat-icon.green{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:#22c55e;box-shadow:0 4px 12px #22c55e26}.cert-stat-icon.purple{background:linear-gradient(135deg,#a855f726,#a855f70d);color:#a855f7;box-shadow:0 4px 12px #a855f726}.cert-stat-content{display:flex;flex-direction:column;gap:.25rem}.cert-stat-value{font-size:2rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.cert-stat-label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.04em}.cert-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:1.25rem;background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06))}.cert-search{display:flex;align-items:center;gap:.875rem;flex:1;min-width:280px;padding:.75rem 1.25rem;background:var(--surface-secondary, #f8fafc);border:2px solid transparent;border-radius:12px;transition:all .2s ease}.cert-search:focus-within{background:var(--surface-primary, #fff);border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.cert-search svg{color:var(--text-tertiary, #94a3b8);flex-shrink:0;transition:color .2s}.cert-search:focus-within svg{color:var(--gpe-blue, #1a56db)}.cert-search input{flex:1;border:none;background:transparent;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e);outline:none}.cert-search input::placeholder{color:var(--text-tertiary, #94a3b8);font-weight:400}.cert-filter-select{padding:.75rem 2.5rem .75rem 1rem;background:var(--surface-secondary, #f8fafc);border:2px solid transparent;border-radius:12px;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;transition:all .2s ease}.cert-filter-select:hover{background-color:var(--surface-tertiary, #f1f5f9)}.cert-filter-select:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.cert-clear-filters{padding:.75rem 1.25rem;background:transparent;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.875rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease}.cert-clear-filters:hover{background:var(--danger-color, #dc2626);border-color:var(--danger-color, #dc2626);color:#fff}.cert-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.cert-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.cert-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.cert-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px}.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.75rem}.cert-card{position:relative;display:flex;flex-direction:column;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:visible;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:1}.cert-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px #0000001a,0 8px 16px #0000000f}.cert-card:has(.cert-action-dropdown:hover),.cert-card:has(.cert-action-dropdown:focus-within){z-index:100}.cert-card-header{position:relative;height:180px;overflow:hidden;border-radius:20px 20px 0 0}.cert-card-image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}.cert-card:hover .cert-card-image{transform:scale(1.08)}.cert-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a56db,#7c3aed,#1a56db);background-size:200% 200%;animation:gradientShift 8s ease infinite;color:#ffffffb3}.cert-card-badges{position:absolute;top:1rem;left:1rem;display:flex;gap:.5rem;z-index:10}.cert-status-badge{padding:.375rem .875rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026}.cert-status-badge.draft{background:#fbbf24f2;color:#78350f}.cert-status-badge.published{background:#22c55ef2;color:#fff;box-shadow:0 2px 12px #22c55e66}.cert-status-badge.archived{background:#64748bf2;color:#fff}.cert-level-badge{padding:.375rem .875rem;border-radius:100px;font-size:.6875rem;font-weight:600;background:#fffffff2;color:#334155;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #0000001a}.cert-card-body{flex:1;padding:1.5rem}.cert-card-title{font-size:1.1875rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.01em}.cert-card-description{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0 0 1.25rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cert-card-meta{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.cert-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b)}.cert-meta-item svg{color:var(--text-tertiary, #94a3b8);opacity:.8}.cert-card-price{display:flex;align-items:baseline;gap:.625rem}.cert-price-original{font-size:.9375rem;font-weight:500;color:var(--text-tertiary, #94a3b8);text-decoration:line-through}.cert-price-current{font-size:1.375rem;font-weight:800;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.cert-card-actions{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--surface-secondary, #f8fafc);border-radius:0 0 20px 20px}.cert-action-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-secondary, #64748b);text-decoration:none;cursor:pointer;transition:all .2s ease}.cert-action-btn:hover{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #1a56db40}.cert-action-btn svg{transition:transform .2s ease}.cert-action-btn:hover svg{transform:scale(1.1)}.cert-action-dropdown{position:relative;margin-left:auto}.cert-action-more{padding:.625rem;background:transparent;border:1px solid transparent}.cert-action-more:hover{background:var(--surface-primary, #fff);border-color:var(--border-color, #e2e8f0)}.cert-dropdown-menu{position:absolute;right:0;top:100%;margin-top:.5rem;min-width:180px;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;box-shadow:0 10px 40px #00000026,0 4px 12px #0000001a;z-index:1000;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.cert-action-dropdown:hover .cert-dropdown-menu,.cert-action-dropdown:focus-within .cert-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.cert-dropdown-menu button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1.25rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .15s ease}.cert-dropdown-menu button:hover{background:var(--surface-secondary, #f8fafc);padding-left:1.5rem}.cert-dropdown-menu button svg{opacity:.7}.cert-dropdown-menu button.cert-action-danger{color:#dc2626}.cert-dropdown-menu button.cert-action-danger:hover{background:#dc262614}.cert-pagination{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:3rem;padding:1.5rem}.cert-pagination-btn{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.5rem;background:var(--surface-primary, #fff);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .2s ease}.cert-pagination-btn:hover:not(:disabled){background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #1a56db40}.cert-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.cert-pagination-info{font-size:.9375rem;font-weight:600;color:var(--text-secondary, #64748b);padding:.5rem 1rem;background:var(--surface-secondary, #f8fafc);border-radius:8px}[data-theme=dark] .cert-stat-card,[data-theme=dark] .cert-filters,[data-theme=dark] .cert-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .cert-card-actions{background:var(--surface-secondary)}[data-theme=dark] .cert-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .cert-dropdown-menu{background:var(--surface-primary);border-color:var(--border-color);box-shadow:0 10px 40px #0006,0 4px 12px #0000004d}[data-theme=dark] .cert-price-current{background:linear-gradient(135deg,var(--gpe-blue, #1a56db),#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media(max-width:768px){.cert-stats-row{grid-template-columns:1fr}.cert-filters{flex-direction:column}.cert-search{min-width:unset;width:100%}.cert-grid{grid-template-columns:1fr;gap:1.25rem}.cert-card-actions{flex-wrap:wrap;gap:.5rem}.cert-action-btn{flex:1;justify-content:center;min-width:calc(50% - .25rem)}.cert-action-dropdown{margin-left:0;width:100%}.cert-action-more{width:100%;justify-content:center}.cert-pagination{flex-direction:column;gap:1rem}.cert-pagination-btn{width:100%;justify-content:center}}@media(max-width:480px){.cert-stat-card{padding:1rem}.cert-stat-icon{width:48px;height:48px}.cert-stat-value{font-size:1.5rem}.cert-card-header{height:140px}.cert-card-body{padding:1.25rem}}.cert-wizard-steps{display:flex;align-items:center;justify-content:center;padding:1.5rem 2rem;margin-bottom:2rem;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow-x:auto;gap:0}.cert-wizard-step{display:flex;align-items:center;gap:.625rem;padding:.625rem 1rem;background:transparent;border:none;font-size:.875rem;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .3s ease;white-space:nowrap;position:relative}.cert-wizard-step:hover:not(:disabled){color:var(--text-secondary, #64748b)}.cert-wizard-step:disabled{cursor:not-allowed;opacity:.4}.cert-wizard-step.active{color:var(--primary-color, #c4a77d)}.cert-wizard-step.completed{color:var(--success-color, #22c55e)}.cert-step-indicator{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--surface-secondary, #f1f5f9);border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.cert-wizard-step:hover:not(:disabled) .cert-step-indicator{transform:scale(1.05)}.cert-wizard-step.active .cert-step-indicator{background:linear-gradient(135deg,var(--primary-color, #c4a77d),#a08563);border-color:transparent;color:#fff;box-shadow:0 4px 16px #c4a77d66}.cert-wizard-step.completed .cert-step-indicator{background:var(--success-color, #22c55e);border-color:transparent;color:#fff;box-shadow:0 4px 12px #22c55e4d}.cert-step-title{font-weight:600;font-size:.8125rem;letter-spacing:.01em}.cert-wizard-step.active .cert-step-title{color:var(--text-primary, #1a1a2e)}.cert-step-connector{width:48px;height:3px;background:var(--border-color, #e2e8f0);margin:0 .5rem;border-radius:2px;position:relative;overflow:hidden}.cert-step-connector:after{content:"";position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,var(--primary-color, #c4a77d),var(--success-color, #22c55e));transition:width .4s ease;border-radius:2px}.cert-wizard-step.completed+.cert-wizard-step .cert-step-connector:after,.cert-wizard-step.active+.cert-wizard-step .cert-step-connector:after{width:100%}.cert-wizard-content{background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));padding:2.5rem;margin-bottom:1.5rem;min-height:450px}.cert-form-section{max-width:720px;margin:0 auto}.cert-section-title{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem;letter-spacing:-.02em;position:relative}.cert-section-title:after{content:"";display:block;width:48px;height:4px;background:linear-gradient(90deg,var(--primary-color, #c4a77d),transparent);border-radius:2px;margin-top:.75rem}.cert-section-description{color:var(--text-secondary, #64748b);font-size:1rem;line-height:1.6;margin:0 0 2.5rem}.cert-form-field{margin-bottom:1.75rem}.cert-form-field label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.625rem;letter-spacing:.01em}.cert-form-field label .required{color:#dc2626;margin-left:.25rem}.cert-form-field input[type=text],.cert-form-field input[type=number],.cert-form-field input[type=url],.cert-form-field input[type=date],.cert-form-field textarea,.cert-form-field select{width:100%;padding:.875rem 1.25rem;font-size:.9375rem;font-weight:500;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.cert-form-field input:hover,.cert-form-field textarea:hover,.cert-form-field select:hover{border-color:var(--text-tertiary, #94a3b8)}.cert-form-field input:focus,.cert-form-field textarea:focus,.cert-form-field select:focus{outline:none;border-color:var(--primary-color, #c4a77d);box-shadow:0 0 0 4px #c4a77d1f}.cert-form-field input::placeholder,.cert-form-field textarea::placeholder{color:var(--text-tertiary, #94a3b8);font-weight:400}.cert-form-field textarea{resize:vertical;min-height:120px}.cert-field-hint{display:block;font-size:.8125rem;color:var(--text-tertiary, #94a3b8);margin-top:.5rem;line-height:1.5}.cert-field-sublabel{font-size:.8125rem;color:var(--text-secondary, #64748b);margin:0 0 .875rem;line-height:1.5}.cert-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.cert-array-item{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.cert-array-item input{flex:1}.cert-array-remove{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:2px solid transparent;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:10px;transition:all .2s ease;flex-shrink:0}.cert-array-remove:hover{background:#dc262614;border-color:#dc262633;color:#dc2626}.cert-array-add{display:flex;align-items:center;justify-content:center;gap:.625rem;padding:.75rem 1.25rem;margin-top:.75rem;background:transparent;border:2px dashed var(--border-color, #e2e8f0);border-radius:12px;font-size:.875rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease;width:100%}.cert-array-add:hover{border-color:var(--primary-color, #c4a77d);color:var(--primary-color, #c4a77d);background:#c4a77d0a}.cert-upload-container{display:flex;align-items:stretch;gap:1.25rem;margin-bottom:.75rem}.cert-upload-box{flex:1;position:relative;min-height:140px;border:2px dashed var(--border-color, #e2e8f0);border-radius:16px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;cursor:pointer;background:linear-gradient(180deg,var(--surface-secondary, #fafbfc) 0%,var(--surface-primary, #fff) 100%)}.cert-upload-box:hover{border-color:var(--primary-color, #c4a77d);border-style:solid;background:linear-gradient(180deg,rgba(196,167,125,.04) 0%,var(--surface-primary, #fff) 100%);box-shadow:0 4px 20px #c4a77d1f}.cert-upload-box:hover .cert-upload-content svg{transform:scale(1.1);color:var(--primary-color, #c4a77d)}.cert-file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.cert-file-input:disabled{cursor:not-allowed}.cert-upload-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:1.5rem;color:var(--text-secondary, #64748b);pointer-events:none}.cert-upload-content svg{color:var(--text-tertiary, #94a3b8);transition:all .3s ease}.cert-upload-content span{font-weight:600;font-size:.9375rem}.cert-upload-hint{font-size:.75rem;color:var(--text-tertiary, #94a3b8);font-weight:400}.cert-upload-progress{width:100%;max-width:200px;height:6px;background:var(--border-color, #e2e8f0);border-radius:3px;overflow:hidden}.cert-upload-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary-color, #c4a77d),var(--success-color, #22c55e));transition:width .3s ease;border-radius:3px}.cert-upload-or{display:flex;align-items:center;padding:0 .75rem;font-size:.875rem;font-weight:600;color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.05em}.cert-url-input{flex:1;padding:.875rem 1.25rem;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.9375rem;font-weight:500;background:var(--surface-primary, #fff);color:var(--text-primary, #0f172a);transition:all .2s ease}.cert-url-input:focus{outline:none;border-color:var(--primary-color, #c4a77d);box-shadow:0 0 0 4px #c4a77d1f}.cert-image-preview{position:relative;margin-top:1rem;max-width:320px;border-radius:16px;overflow:hidden;border:2px solid var(--border-color, #e2e8f0);box-shadow:0 4px 12px #00000014}.cert-image-preview img{width:100%;height:auto;display:block}.cert-preview-remove{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease}.cert-preview-remove:hover{background:#dc2626;transform:scale(1.1)}.cert-video-preview{margin-top:1rem}.cert-video-url{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--surface-secondary, #f8fafc);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.875rem;color:var(--text-secondary, #64748b)}.cert-video-url span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.cert-video-url .cert-preview-remove{position:static;background:transparent;color:var(--text-tertiary, #94a3b8);width:28px;height:28px}.cert-video-url .cert-preview-remove:hover{color:#dc2626;background:#dc262614}.cert-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:linear-gradient(180deg,var(--surface-secondary, #fafbfc) 0%,var(--surface-primary, #fff) 100%);border-radius:16px;border:2px dashed var(--border-color, #e2e8f0)}.cert-empty-state svg{color:var(--primary-color, #c4a77d);opacity:.6;margin-bottom:1.5rem}.cert-empty-state h3{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem}.cert-empty-state p{color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px;line-height:1.6}.cert-info-box{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#c4a77d14,#c4a77d0a);border:1px solid rgba(196,167,125,.2);border-radius:14px;margin-top:2rem}.cert-info-box svg{flex-shrink:0;color:var(--primary-color, #c4a77d)}.cert-info-box p{font-size:.875rem;color:var(--text-primary, #1a1a2e);margin:0;line-height:1.6}.cert-save-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;margin-bottom:1.25rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;box-shadow:0 1px 3px #0000000a}.cert-save-status{display:flex;align-items:center;min-height:28px}.cert-save-indicator{display:flex;align-items:center;gap:.625rem;font-size:.875rem;font-weight:500}.cert-save-indicator.saving{color:var(--primary-color, #c4a77d)}.cert-save-indicator.saved{color:var(--success-color, #22c55e)}.cert-save-indicator.unsaved{color:var(--warning-color, #f59e0b)}.cert-save-indicator svg.spinning{animation:spin 1s linear infinite}.cert-save-actions{display:flex;align-items:center;gap:1.25rem}.cert-autosave-toggle{display:flex;align-items:center;gap:.625rem;cursor:pointer;padding:.25rem}.cert-autosave-toggle input{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color, #c4a77d)}.cert-autosave-label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b)}.as-btn-sm{padding:.5rem 1rem;font-size:.8125rem}.as-btn-sm svg{width:16px;height:16px}.cert-quiz-manager{display:flex;flex-direction:column;gap:1.75rem}.cert-quiz-status{padding:1.5rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:16px}.cert-quiz-loading{display:flex;align-items:center;justify-content:center;gap:.875rem;padding:1.25rem;color:var(--text-secondary, #64748b);font-weight:500}.cert-quiz-info{display:flex;align-items:center;gap:1.25rem}.cert-quiz-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;flex-shrink:0}.cert-quiz-icon.success{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:var(--success-color, #22c55e);box-shadow:0 4px 12px #22c55e26}.cert-quiz-icon.empty{background:var(--surface-tertiary, #f1f5f9);color:var(--text-tertiary, #94a3b8)}.cert-quiz-details h4{font-size:1.0625rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .375rem}.cert-quiz-details p{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0}.cert-quiz-actions{padding:1.5rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px}.cert-quiz-actions h4{font-size:1.0625rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .5rem}.cert-quiz-buttons{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:1.25rem}.cert-quiz-upload{position:relative}.cert-quiz-upload .cert-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.cert-import-result{display:flex;align-items:center;gap:.625rem;margin-top:1.25rem;padding:.875rem 1.25rem;border-radius:12px;font-size:.875rem;font-weight:500}.cert-import-result.success{background:#22c55e14;border:1px solid rgba(34,197,94,.2);color:#15803d}.cert-import-result.error{background:#dc262614;border:1px solid rgba(220,38,38,.2);color:#dc2626}.cert-quiz-manual{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.cert-divider{display:flex;align-items:center;width:100%;gap:1.25rem}.cert-divider:before,.cert-divider:after{content:"";flex:1;height:1px;background:var(--border-color, #e2e8f0)}.cert-divider span{font-size:.8125rem;font-weight:600;color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.08em}.cert-content-manager{display:flex;flex-direction:column;gap:1.75rem}.cert-content-loading{display:flex;align-items:center;justify-content:center;gap:.875rem;padding:2.5rem;color:var(--text-secondary, #64748b);font-weight:500}.cert-content-summary{display:flex;flex-direction:column;gap:1.75rem}.cert-content-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem}.cert-content-stat{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;box-shadow:0 2px 8px #0000000a;transition:all .2s ease}.cert-content-stat:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.cert-content-stat-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:linear-gradient(135deg,#c4a77d26,#c4a77d0d);color:var(--primary-color, #c4a77d);border-radius:14px;flex-shrink:0}.cert-content-stat-info{display:flex;flex-direction:column}.cert-content-stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.cert-content-stat-label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b);margin-top:.25rem}.cert-content-chapters{background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.cert-content-chapters-title{font-size:.8125rem;font-weight:700;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.06em;padding:1rem 1.5rem;margin:0;background:var(--surface-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.cert-content-chapters-list{max-height:420px;overflow-y:auto}.cert-content-chapter-item{border-bottom:1px solid var(--border-color, #e2e8f0)}.cert-content-chapter-item:last-child{border-bottom:none}.cert-content-chapter-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1.25rem 1.5rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease}.cert-content-chapter-header:hover{background:var(--surface-secondary, #f8fafc)}.cert-content-chapter-left{display:flex;align-items:center;gap:.875rem;flex:1;min-width:0}.cert-content-chapter-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,var(--primary-color, #c4a77d),#a08563);color:#fff;border-radius:10px;font-size:.875rem;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px #c4a77d4d}.cert-content-chapter-title{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cert-content-chapter-badge{font-size:.75rem;font-weight:600;padding:.375rem .75rem;background:var(--surface-tertiary, #f1f5f9);color:var(--text-secondary, #64748b);border-radius:100px;white-space:nowrap;flex-shrink:0}.cert-content-chapter-chevron{color:var(--text-tertiary, #94a3b8);transition:transform .25s ease;flex-shrink:0}.cert-content-chapter-chevron.expanded{transform:rotate(180deg)}.cert-content-lessons-list{background:var(--surface-secondary, #f8fafc);border-top:1px solid var(--border-color, #e2e8f0);padding:.75rem 0}.cert-content-lesson-item{display:flex;align-items:center;gap:.875rem;padding:.75rem 1.5rem .75rem 4rem;font-size:.875rem}.cert-content-lesson-number{color:var(--text-tertiary, #94a3b8);font-size:.8125rem;font-weight:600;flex-shrink:0;width:36px}.cert-content-lesson-title{color:var(--text-primary, #1a1a2e);font-weight:500;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cert-content-lesson-type{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:700;padding:.3125rem .625rem;border-radius:6px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.cert-content-lesson-type.video{background:#3b82f61a;color:#3b82f6}.cert-content-lesson-type.text{background:#22c55e1a;color:#22c55e}.cert-content-lesson-type.mixed{background:#a855f71a;color:#a855f7}.cert-content-lesson-duration{color:var(--text-tertiary, #94a3b8);font-size:.75rem;font-weight:500;flex-shrink:0}.cert-content-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:var(--surface-secondary, #f8fafc);border:2px dashed var(--border-color, #e2e8f0);border-radius:16px;text-align:center}.cert-content-empty svg{color:var(--primary-color, #c4a77d);opacity:.5;margin-bottom:1rem}.cert-content-empty p{font-size:.9375rem;font-weight:600;color:var(--text-secondary, #64748b);margin:0}.cert-content-empty-hint{font-size:.8125rem;color:var(--text-tertiary, #94a3b8);margin-top:.5rem;font-weight:400}.cert-content-edit-btn{align-self:flex-start}.cert-wizard-nav{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06))}.cert-wizard-nav-right{display:flex;gap:.875rem}.as-btn-success{background:linear-gradient(135deg,var(--success-color, #22c55e),#16a34a);color:#fff;border:none;box-shadow:0 4px 12px #22c55e4d}.as-btn-success:hover{background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.as-btn svg{flex-shrink:0}[data-theme=dark] .cert-wizard-steps,[data-theme=dark] .cert-wizard-content,[data-theme=dark] .cert-wizard-nav,[data-theme=dark] .cert-save-toolbar{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .cert-upload-box,[data-theme=dark] .cert-empty-state{background:linear-gradient(180deg,var(--surface-secondary) 0%,var(--surface-primary) 100%)}[data-theme=dark] .cert-info-box{background:linear-gradient(135deg,#c4a77d1f,#c4a77d0f);border-color:#c4a77d40}[data-theme=dark] .cert-content-stat,[data-theme=dark] .cert-content-chapters,[data-theme=dark] .cert-quiz-status,[data-theme=dark] .cert-quiz-actions{background:var(--surface-primary);border-color:var(--border-color)}@media(max-width:768px){.cert-wizard-steps{justify-content:flex-start;padding:1rem 1.25rem;gap:.25rem}.cert-step-title{display:none}.cert-step-indicator{width:36px;height:36px}.cert-step-connector{width:24px;margin:0 .25rem}.cert-wizard-content{padding:1.75rem;border-radius:16px}.cert-section-title{font-size:1.5rem}.cert-form-row{grid-template-columns:1fr}.cert-upload-container{flex-direction:column}.cert-upload-or{padding:.5rem 0}.cert-wizard-nav{flex-direction:column;gap:1rem;padding:1.25rem;border-radius:16px}.cert-wizard-nav-right{width:100%;flex-direction:column}.cert-wizard-nav-right .as-btn{width:100%;justify-content:center}.cert-content-stats{grid-template-columns:1fr}.cert-quiz-buttons{flex-direction:column}.cert-quiz-buttons .as-btn{width:100%;justify-content:center}}@media(max-width:480px){.cert-step-connector{width:16px}.cert-wizard-content{padding:1.25rem;min-height:380px}.cert-section-title{font-size:1.25rem}.cert-form-field input,.cert-form-field textarea,.cert-form-field select{padding:.75rem 1rem}.cert-save-toolbar{flex-direction:column;gap:.75rem;align-items:stretch}.cert-save-actions{justify-content:space-between}}.rte-container{--rte-min-height: 200px;display:flex;flex-direction:column;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;overflow:hidden;background:var(--surface-primary, #fff)}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.5rem;background:var(--surface-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.rte-toolbar-group{display:flex;align-items:center;gap:.125rem}.rte-toolbar-separator{width:1px;height:24px;background:var(--border-color, #e2e8f0);margin:0 .375rem}.rte-toolbar-spacer{flex:1}.rte-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, #64748b);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s}.rte-btn:hover{background:var(--surface-tertiary, #e2e8f0);color:var(--text-primary, #1a1a2e)}.rte-btn.active{background:var(--primary-color, #c8a97e);color:#fff}.rte-btn:disabled{opacity:.4;cursor:not-allowed}.rte-btn:disabled:hover{background:transparent;color:var(--text-secondary, #64748b)}.rte-content{flex:1;min-height:var(--rte-min-height);overflow-y:auto}.rte-content .tiptap{min-height:var(--rte-min-height);padding:1rem;outline:none;color:var(--text-primary, #1a1a2e);font-size:.9375rem;line-height:1.7}.rte-content .tiptap:focus{outline:none}.rte-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-tertiary, #94a3b8);float:left;height:0;pointer-events:none}.rte-content .tiptap h1{font-size:1.75rem;font-weight:700;margin:1.5rem 0 .75rem;line-height:1.3;color:var(--text-primary, #1a1a2e)}.rte-content .tiptap h2{font-size:1.375rem;font-weight:600;margin:1.25rem 0 .625rem;line-height:1.4;color:var(--text-primary, #1a1a2e)}.rte-content .tiptap h3{font-size:1.125rem;font-weight:600;margin:1rem 0 .5rem;line-height:1.4;color:var(--text-primary, #1a1a2e)}.rte-content .tiptap p{margin:0 0 .75rem}.rte-content .tiptap p:last-child{margin-bottom:0}.rte-content .tiptap a,.rte-link{color:var(--primary-color, #c8a97e);text-decoration:underline;cursor:pointer}.rte-content .tiptap a:hover{color:#b8996e}.rte-content .tiptap ul,.rte-content .tiptap ol{margin:.5rem 0 .75rem 1.5rem;padding:0}.rte-content .tiptap li{margin:.25rem 0}.rte-content .tiptap ul{list-style-type:disc}.rte-content .tiptap ol{list-style-type:decimal}.rte-content .tiptap blockquote{margin:1rem 0;padding:.75rem 1rem;border-left:4px solid var(--primary-color, #c8a97e);background:var(--surface-secondary, #f8fafc);border-radius:0 8px 8px 0;color:var(--text-secondary, #64748b);font-style:italic}.rte-content .tiptap pre{margin:1rem 0;padding:1rem;background:#1e1e1e;border-radius:8px;color:#d4d4d4;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.875rem;overflow-x:auto}.rte-content .tiptap code{background:var(--surface-secondary, #f1f5f9);padding:.125rem .375rem;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.875em;color:#e11d48}.rte-content .tiptap pre code{background:none;padding:0;color:inherit}.rte-content .tiptap hr{margin:1.5rem 0;border:none;border-top:2px solid var(--border-color, #e2e8f0)}.rte-content .tiptap img,.rte-image{max-width:100%;height:auto;border-radius:8px;margin:1rem 0}.rte-content .tiptap [style*="text-align: center"]{text-align:center}.rte-content .tiptap [style*="text-align: right"]{text-align:right}.rte-bubble-menu{display:flex;align-items:center;gap:.25rem;padding:.375rem;background:#1a1a2e;border-radius:8px;box-shadow:0 4px 12px #0003}.rte-bubble-menu button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:#e2e8f0;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s}.rte-bubble-menu button:hover{background:#ffffff1a}.rte-bubble-menu button.active{background:var(--primary-color, #c8a97e);color:#fff}:root.dark .rte-container{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #333)}:root.dark .rte-toolbar{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .rte-toolbar-separator{background:var(--border-color, #444)}:root.dark .rte-btn{color:var(--text-secondary, #a1a1aa)}:root.dark .rte-btn:hover{background:var(--surface-tertiary, #333);color:var(--text-primary, #fff)}:root.dark .rte-btn.active{background:var(--primary-color, #c8a97e);color:#fff}:root.dark .rte-content .tiptap{color:var(--text-primary, #fff)}:root.dark .rte-content .tiptap h1,:root.dark .rte-content .tiptap h2,:root.dark .rte-content .tiptap h3{color:var(--text-primary, #fff)}:root.dark .rte-content .tiptap blockquote{background:var(--surface-secondary, #252525);color:var(--text-secondary, #a1a1aa)}:root.dark .rte-content .tiptap code{background:var(--surface-secondary, #333);color:#f472b6}:root.dark .rte-content .tiptap hr{border-color:var(--border-color, #444)}:root:not(.dark) .rte-container{background:#fff;border-color:#e2e8f0}:root:not(.dark) .rte-toolbar{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .rte-toolbar-separator{background:#e2e8f0}:root:not(.dark) .rte-btn{color:#64748b}:root:not(.dark) .rte-btn:hover{background:#e2e8f0;color:#1a1a2e}:root:not(.dark) .rte-content .tiptap{color:#1a1a2e}:root:not(.dark) .rte-content .tiptap h1,:root:not(.dark) .rte-content .tiptap h2,:root:not(.dark) .rte-content .tiptap h3{color:#1a1a2e}:root:not(.dark) .rte-content .tiptap blockquote{background:#f8fafc;color:#64748b}:root:not(.dark) .rte-content .tiptap code{background:#f1f5f9;color:#e11d48}@media(max-width:768px){.rte-toolbar{gap:.125rem;padding:.375rem}.rte-btn{width:28px;height:28px;font-size:.75rem}.rte-toolbar-separator{height:20px;margin:0 .25rem}.rte-content .tiptap{padding:.75rem;font-size:.875rem}}@media(max-width:480px){.rte-toolbar-group:nth-child(n+4){display:none}.rte-toolbar-separator:nth-child(n+3){display:none}}.resource-uploader{display:flex;flex-direction:column;gap:.75rem}.ru-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem}.ru-error-close{display:flex;padding:.25rem;background:none;border:none;color:#dc2626;cursor:pointer;opacity:.7;transition:opacity .15s}.ru-error-close:hover{opacity:1}.ru-list{display:flex;flex-direction:column;gap:.5rem}.ru-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;transition:background .15s,opacity .15s}.ru-item:hover{background:var(--surface-tertiary, #f1f5f9)}.ru-item.deleting{opacity:.5;pointer-events:none}.ru-item-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--surface-primary, #fff);border-radius:8px;color:var(--primary-color, #c8a97e);flex-shrink:0}.ru-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ru-item-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a2e);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ru-item-title:hover{color:var(--primary-color, #c8a97e);text-decoration:underline}.ru-item-size{font-size:.75rem;color:var(--text-tertiary, #94a3b8)}.ru-item-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .15s}.ru-item-delete:hover:not(:disabled){background:#fef2f2;color:#dc2626}.ru-item-delete:disabled{cursor:not-allowed}.ru-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1.5rem;background:var(--surface-secondary, #f8fafc);border:2px dashed var(--border-color, #cbd5e1);border-radius:12px;cursor:pointer;transition:all .2s}.ru-dropzone:hover:not(.disabled){background:var(--surface-tertiary, #f1f5f9);border-color:var(--primary-color, #c8a97e)}.ru-dropzone.dragging{background:#c8a97e1a;border-color:var(--primary-color, #c8a97e);border-style:solid}.ru-dropzone.disabled{opacity:.6;cursor:not-allowed}.ru-dropzone-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--surface-primary, #fff);border-radius:12px;color:var(--text-tertiary, #94a3b8)}.ru-dropzone.dragging .ru-dropzone-icon{color:var(--primary-color, #c8a97e)}.ru-dropzone-text{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.ru-dropzone-main{font-size:.9375rem;color:var(--text-secondary, #64748b)}.ru-link{color:var(--primary-color, #c8a97e);cursor:pointer}.ru-link:hover{text-decoration:underline}.ru-dropzone-hint{font-size:.8125rem;color:var(--text-tertiary, #94a3b8)}.ru-uploading{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--text-secondary, #64748b)}.ru-spinner{width:32px;height:32px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #c8a97e);border-radius:50%;animation:ru-spin .8s linear infinite}.ru-spinner-small{width:16px;height:16px;border:2px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #c8a97e);border-radius:50%;animation:ru-spin .8s linear infinite}@keyframes ru-spin{to{transform:rotate(360deg)}}.ru-add-link-section{margin-top:.25rem}.ru-add-link-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:none;border:none;color:var(--text-secondary, #64748b);font-size:.875rem;cursor:pointer;transition:color .15s}.ru-add-link-btn:hover:not(:disabled){color:var(--primary-color, #c8a97e)}.ru-add-link-btn:disabled{opacity:.5;cursor:not-allowed}.ru-link-form{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px}.ru-input{width:100%;padding:.625rem .75rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.875rem;color:var(--text-primary, #1a1a2e);transition:border-color .15s}.ru-input:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.ru-input:disabled{opacity:.6;cursor:not-allowed}.ru-link-form-actions{display:flex;gap:.5rem;margin-top:.25rem}.ru-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.ru-btn-primary{background:var(--primary-color, #c8a97e);border:none;color:#fff}.ru-btn-primary:hover:not(:disabled){background:#b8996e}.ru-btn-primary:disabled{opacity:.6;cursor:not-allowed}.ru-btn-secondary{background:none;border:1px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #64748b)}.ru-btn-secondary:hover:not(:disabled){background:var(--surface-tertiary, #f1f5f9);color:var(--text-primary, #1a1a2e)}:root.dark .ru-error{background:#dc26261a;border-color:#dc26264d}:root.dark .ru-item{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .ru-item:hover{background:var(--surface-tertiary, #333)}:root.dark .ru-item-icon{background:var(--surface-primary, #1a1a1a)}:root.dark .ru-item-title{color:var(--text-primary, #fff)}:root.dark .ru-item-delete:hover:not(:disabled){background:#dc262633}:root.dark .ru-dropzone{background:var(--surface-secondary, #252525);border-color:var(--border-color, #444)}:root.dark .ru-dropzone:hover:not(.disabled){background:var(--surface-tertiary, #333)}:root.dark .ru-dropzone-icon{background:var(--surface-primary, #1a1a1a)}:root.dark .ru-link-form{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .ru-input{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}:root:not(.dark) .ru-item{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .ru-item:hover{background:#f1f5f9}:root:not(.dark) .ru-item-icon{background:#fff}:root:not(.dark) .ru-item-title{color:#1a1a2e}:root:not(.dark) .ru-dropzone{background:#f8fafc;border-color:#cbd5e1}:root:not(.dark) .ru-dropzone:hover:not(.disabled){background:#f1f5f9}:root:not(.dark) .ru-dropzone-icon{background:#fff}:root:not(.dark) .ru-link-form{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .ru-input{background:#fff;border-color:#e2e8f0;color:#1a1a2e}@media(max-width:480px){.ru-dropzone{padding:1.5rem 1rem}.ru-dropzone-icon{width:48px;height:48px}.ru-link-form-actions{flex-direction:column}.ru-btn{width:100%;text-align:center}}.cqe-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.cqe-modal{width:100%;max-width:800px;max-height:90vh;background:var(--surface-primary, #fff);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.cqe-modal-large{max-width:900px}.cqe-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;gap:1rem;color:var(--text-secondary, #64748b)}.cqe-spinner{width:32px;height:32px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #c8a97e);border-radius:50%;animation:cqe-spin .8s linear infinite}.cqe-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:cqe-spin .8s linear infinite;margin-right:.375rem}@keyframes cqe-spin{to{transform:rotate(360deg)}}.cqe-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--surface-secondary, #f8fafc)}.cqe-header-left h2{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cqe-subtitle{display:block;font-size:.8125rem;color:var(--text-secondary, #64748b);margin-top:.125rem}.cqe-header-right{display:flex;align-items:center;gap:.75rem}.cqe-unsaved{padding:.25rem .75rem;background:#fef3c7;color:#92400e;border-radius:9999px;font-size:.75rem;font-weight:500}.cqe-close-btn{display:flex;padding:.5rem;background:none;border:none;color:var(--text-secondary, #64748b);cursor:pointer;border-radius:6px;transition:all .15s}.cqe-close-btn:hover{background:var(--surface-tertiary, #e2e8f0);color:var(--text-primary, #1a1a2e)}.cqe-success{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#dcfce7;color:#16a34a;font-size:.875rem}.cqe-success svg{flex-shrink:0}.cqe-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#fee2e2;color:#dc2626;font-size:.875rem}.cqe-error button{background:none;border:none;color:inherit;font-size:1.125rem;cursor:pointer;padding:.25rem;line-height:1}.cqe-content{flex:1;overflow-y:auto;padding:1.5rem}.cqe-top-section{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.cqe-settings{display:flex;gap:1rem;flex:1}.cqe-field{flex:1}.cqe-field-small{flex:0 0 110px}.cqe-field label{display:block;font-size:.8125rem;color:var(--text-secondary, #64748b);margin-bottom:.375rem}.cqe-field input{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.cqe-field input:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.cqe-import-section{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem}.cqe-import-label{font-size:.75rem;color:var(--text-secondary, #64748b)}.cqe-import-buttons{display:flex;gap:.5rem}.cqe-template-btn,.cqe-import-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.cqe-template-btn{background:none;border:1px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #64748b)}.cqe-template-btn:hover:not(:disabled){border-color:var(--primary-color, #c8a97e);color:var(--primary-color, #c8a97e)}.cqe-template-btn:disabled{opacity:.5;cursor:not-allowed}.cqe-import-btn{background:var(--surface-secondary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #1a1a2e)}.cqe-import-btn:hover:not(.disabled){background:var(--primary-color, #c8a97e);border-color:var(--primary-color, #c8a97e);color:#fff}.cqe-import-btn.disabled{opacity:.5;cursor:not-allowed}.cqe-questions{min-height:200px}.cqe-questions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.cqe-questions-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);display:flex;align-items:center;gap:.75rem}.cqe-total-points{font-size:.8125rem;font-weight:400;color:var(--text-secondary, #64748b);background:var(--surface-secondary, #f1f5f9);padding:.25rem .625rem;border-radius:9999px}.cqe-add-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--primary-color, #c8a97e);color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s}.cqe-add-btn:hover{background:#b8996e}.cqe-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary, #64748b);background:var(--surface-secondary, #f8fafc);border-radius:8px;border:1px dashed var(--border-color, #e2e8f0)}.cqe-empty svg{margin-bottom:.75rem;opacity:.5}.cqe-empty p{margin:0}.cqe-empty-hint{font-size:.8125rem;margin-top:.375rem!important;opacity:.8}.cqe-questions-list{display:flex;flex-direction:column;gap:.75rem}.cqe-question{background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;overflow:hidden;transition:box-shadow .15s}.cqe-question.expanded{box-shadow:0 2px 8px #0000000f}.cqe-question-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;background:var(--surface-secondary, #f8fafc);transition:background .15s}.cqe-question-header:hover{background:var(--surface-tertiary, #f1f5f9)}.cqe-question-header-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.cqe-expand-icon{flex-shrink:0;color:var(--text-tertiary, #94a3b8);transition:transform .2s}.cqe-question.expanded .cqe-expand-icon{transform:rotate(180deg)}.cqe-question-number{font-weight:600;color:var(--primary-color, #c8a97e);flex-shrink:0}.cqe-question-preview{font-size:.875rem;color:var(--text-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqe-question-header-right{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.cqe-type-badge,.cqe-points-badge{padding:.25rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:500;text-transform:uppercase}.cqe-type-badge{background:#e0e7ff;color:#4338ca}.cqe-points-badge{background:#fef3c7;color:#92400e}.cqe-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:4px;transition:all .15s}.cqe-action-btn:hover:not(:disabled){background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.cqe-action-btn:disabled{opacity:.3;cursor:not-allowed}.cqe-action-btn-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.cqe-question-body{padding:1rem;border-top:1px solid var(--border-color, #e2e8f0);display:flex;flex-direction:column;gap:1rem}.cqe-question-settings{display:flex;gap:1rem}.cqe-inline-field{display:flex;align-items:center;gap:.5rem}.cqe-inline-field label{font-size:.8125rem;color:var(--text-secondary, #64748b);white-space:nowrap}.cqe-inline-field select,.cqe-inline-field input{padding:.375rem .625rem;border:1px solid var(--border-color, #e2e8f0);border-radius:5px;font-size:.8125rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.cqe-inline-field-small input{width:60px;text-align:center}.cqe-inline-field select:focus,.cqe-inline-field input:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.cqe-question-text-field{display:flex;flex-direction:column;gap:.375rem}.cqe-question-text-field label{font-size:.8125rem;color:var(--text-secondary, #64748b)}.cqe-question-text-field textarea,.cqe-question-body textarea{width:100%;padding:.625rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.875rem;resize:vertical;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);font-family:inherit}.cqe-question-text-field textarea:focus,.cqe-question-body textarea:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.cqe-answers{display:flex;flex-direction:column;gap:.5rem}.cqe-answers>label{font-size:.8125rem;color:var(--text-secondary, #64748b)}.cqe-hint{font-weight:400;opacity:.8}.cqe-answers-list{display:flex;flex-direction:column;gap:.5rem}.cqe-answer{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-secondary, #f8fafc);border-radius:6px;border:1px solid transparent;transition:all .15s}.cqe-answer.correct{background:#dcfce7;border-color:#86efac}.cqe-answer-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:pointer;position:relative}.cqe-answer-check input{position:absolute;opacity:0;width:0;height:0}.cqe-check-indicator{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid var(--border-color, #cbd5e1);border-radius:50%;background:var(--surface-primary, #fff);transition:all .15s}.cqe-answer-check input[type=checkbox]+.cqe-check-indicator{border-radius:4px}.cqe-answer-check input:checked+.cqe-check-indicator{border-color:#16a34a;background:#16a34a}.cqe-answer-check input:checked+.cqe-check-indicator:after{content:"";width:6px;height:6px;background:#fff;border-radius:50%}.cqe-answer-check input[type=checkbox]:checked+.cqe-check-indicator:after{border-radius:1px}.cqe-answer-input{flex:1;padding:.375rem .625rem;border:1px solid var(--border-color, #e2e8f0);border-radius:5px;font-size:.875rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.cqe-answer-input:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.cqe-answer-remove{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:none;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:4px;transition:all .15s}.cqe-answer-remove:hover{background:#fee2e2;color:#dc2626}.cqe-add-answer{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;background:none;border:1px dashed var(--border-color, #cbd5e1);border-radius:6px;color:var(--text-secondary, #64748b);font-size:.8125rem;cursor:pointer;transition:all .15s;margin-top:.25rem}.cqe-add-answer:hover{border-color:var(--primary-color, #c8a97e);color:var(--primary-color, #c8a97e)}.cqe-explanation{display:flex;flex-direction:column;gap:.375rem}.cqe-explanation label{font-size:.8125rem;color:var(--text-secondary, #64748b)}.cqe-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--surface-secondary, #f8fafc)}.cqe-footer-right{display:flex;gap:.75rem}.cqe-delete-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:none;border:1px solid #dc2626;border-radius:8px;color:#dc2626;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.cqe-delete-btn:hover:not(:disabled){background:#dc2626;color:#fff}.cqe-delete-btn:disabled{opacity:.5;cursor:not-allowed}.cqe-cancel-btn{padding:.625rem 1rem;background:none;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;color:var(--text-secondary, #64748b);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.cqe-cancel-btn:hover:not(:disabled){background:var(--surface-tertiary, #e2e8f0);color:var(--text-primary, #1a1a2e)}.cqe-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.cqe-save-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1.25rem;background:var(--primary-color, #c8a97e);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.cqe-save-btn:hover:not(:disabled){background:#b8996e}.cqe-save-btn:disabled{opacity:.6;cursor:not-allowed}:root.dark .cqe-modal{background:var(--surface-primary, #1a1a1a)}:root.dark .cqe-header{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .cqe-header-left h2,:root.dark .cqe-questions-header h3{color:var(--text-primary, #fff)}:root.dark .cqe-success{background:#16a34a26;color:#4ade80}:root.dark .cqe-top-section{border-color:var(--border-color, #333)}:root.dark .cqe-field input,:root.dark .cqe-inline-field select,:root.dark .cqe-inline-field input,:root.dark .cqe-question-body textarea,:root.dark .cqe-answer-input{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}:root.dark .cqe-question{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #333)}:root.dark .cqe-question-header{background:var(--surface-secondary, #252525)}:root.dark .cqe-question-header:hover{background:var(--surface-tertiary, #2d2d2d)}:root.dark .cqe-question-body{border-color:var(--border-color, #333)}:root.dark .cqe-answer{background:var(--surface-secondary, #252525)}:root.dark .cqe-answer.correct{background:#16a34a26;border-color:#16a34a4d}:root.dark .cqe-check-indicator{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #444)}:root.dark .cqe-empty{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .cqe-total-points{background:var(--surface-secondary, #252525)}:root.dark .cqe-type-badge{background:#4338ca33;color:#a5b4fc}:root.dark .cqe-points-badge{background:#92400e33;color:#fcd34d}:root.dark .cqe-action-btn:hover:not(:disabled){background:var(--surface-secondary, #252525)}:root.dark .cqe-template-btn{border-color:var(--border-color, #333)}:root.dark .cqe-import-btn{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}:root.dark .cqe-footer{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .cqe-cancel-btn{border-color:var(--border-color, #333)}:root.dark .cqe-error{background:#dc262626}:root:not(.dark) .cqe-modal{background:#fff}:root:not(.dark) .cqe-header{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .cqe-field input,:root:not(.dark) .cqe-inline-field select,:root:not(.dark) .cqe-inline-field input,:root:not(.dark) .cqe-question-body textarea,:root:not(.dark) .cqe-answer-input{background:#fff;border-color:#e2e8f0;color:#1a1a2e}:root:not(.dark) .cqe-question{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cqe-question-header{background:#f8fafc}:root:not(.dark) .cqe-footer{background:#f8fafc;border-color:#e2e8f0}@media(max-width:768px){.cqe-modal-overlay{padding:1rem}.cqe-modal{max-height:calc(100vh - 2rem)}.cqe-top-section{flex-direction:column;gap:1rem}.cqe-settings{flex-direction:column;width:100%}.cqe-field-small{flex:auto}.cqe-import-section{align-items:flex-start;width:100%}.cqe-question-header{flex-wrap:wrap;gap:.5rem}.cqe-question-header-left{flex:1 1 100%}.cqe-question-header-right{flex:1 1 100%;justify-content:flex-end}.cqe-question-settings,.cqe-footer{flex-direction:column;gap:.75rem}.cqe-footer-right{width:100%;justify-content:flex-end}.cqe-delete-btn{width:100%;justify-content:center}}.cert-content-page{--gpe-blue: #1a56db;--gpe-blue-light: #3b82f6;--gpe-blue-dark: #1e40af;--gpe-blue-bg: rgba(26, 86, 219, .1);--gpe-blue-hover: rgba(26, 86, 219, .15);padding-bottom:2rem}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite;margin-right:.5rem;vertical-align:middle}.btn-spinner-sm{width:12px;height:12px;border-width:1.5px;margin-right:.375rem}@keyframes btn-spin{to{transform:rotate(360deg)}}.cert-content-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:.5rem}.cert-breadcrumb-link{color:var(--gpe-blue, #1a56db);text-decoration:none;font-weight:500;transition:color .15s}.cert-breadcrumb-link:hover{color:var(--gpe-blue-dark, #1e40af);text-decoration:underline}.cert-breadcrumb-separator{color:var(--text-muted, #666)}.cert-breadcrumb-current{color:var(--text-secondary, #999)}.cert-unsaved-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fef3c7;color:#92400e;border-radius:8px;font-size:.875rem;font-weight:500;animation:pulse-warning 2s ease-in-out infinite}.cert-unsaved-indicator svg{flex-shrink:0}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.7}}.cert-content-container{max-width:900px;margin:0 auto}.cert-chapters-list{display:flex;flex-direction:column;gap:1rem}.cert-chapter-card{background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #2a2a2a);border-radius:8px;overflow:hidden}.cert-chapter-header{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#ffffff05;border-bottom:1px solid var(--border-color, #2a2a2a)}.cert-chapter-toggle{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:.25rem;display:flex;transition:transform .2s}.cert-chapter-toggle svg{transition:transform .2s}.cert-chapter-toggle svg.expanded{transform:rotate(180deg)}.cert-chapter-info{flex:1;min-width:0}.cert-chapter-number{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gpe-blue, #1a56db);font-weight:600;margin-bottom:.375rem;display:block}.cert-chapter-title{font-size:1.125rem;font-weight:700;margin:0;color:var(--text-primary, #fff);line-height:1.3}.cert-chapter-description{font-size:.9375rem;color:var(--text-secondary, #999);margin:.375rem 0 0;line-height:1.5}.cert-chapter-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cert-chapter-lessons-count{font-size:.8125rem;color:var(--text-muted, #666);font-weight:500}.cert-chapter-actions{display:flex;gap:.5rem;flex-shrink:0}.cert-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:4px}.cert-badge-free{background:#4caf5033;color:#4caf50}.cert-badge-quiz{background:#a855f733;color:#a855f7}.cert-badge-sm{padding:.125rem .375rem;font-size:.625rem}.cert-icon-btn{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:.375rem;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.cert-icon-btn:hover{background:#ffffff1a;color:var(--text-primary, #fff)}.cert-icon-btn-danger:hover{background:#f4433633;color:#f44336}.cert-icon-btn-active{color:var(--gpe-blue, #1a56db);background:var(--gpe-blue-bg, rgba(26, 86, 219, .1))}.cert-icon-btn-active:hover{background:var(--gpe-blue-hover, rgba(26, 86, 219, .15));color:var(--gpe-blue, #1a56db)}.cert-icon-btn-sm{padding:.25rem}.cert-lessons-list{padding:.5rem}.cert-lesson-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:6px;transition:background .15s}.cert-lesson-item:hover{background:#ffffff0d}.cert-lesson-number{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:var(--border-color, #2a2a2a);border-radius:50%;font-size:.75rem;color:var(--text-secondary, #999);flex-shrink:0}.cert-lesson-type-icon{color:var(--text-muted, #666);flex-shrink:0}.cert-lesson-info{flex:1;min-width:0;display:flex;align-items:center;gap:1rem}.cert-lesson-title{font-size:.9375rem;font-weight:500;color:var(--text-primary, #fff)}.cert-lesson-duration{font-size:.8125rem;color:var(--text-muted, #666);font-weight:500}.cert-lesson-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s}.cert-lesson-item:hover .cert-lesson-actions{opacity:1}.cert-add-lesson-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem;margin:.5rem;width:calc(100% - 1rem);border:1px dashed var(--border-color, #2a2a2a);border-radius:8px;background:none;color:var(--text-secondary, #999);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cert-add-lesson-btn:hover{border-color:var(--gpe-blue, #1a56db);color:var(--gpe-blue, #1a56db);background:var(--gpe-blue-bg, rgba(26, 86, 219, .05))}.cert-new-lesson-form{display:flex;gap:.5rem;padding:.75rem;margin:.5rem;background:#ffffff05;border-radius:6px;flex-wrap:wrap}.cert-new-lesson-form .cert-input{flex:1;min-width:200px}.cert-new-lesson-form .cert-input-sm{width:80px;flex:0 0 auto;min-width:auto}.cert-new-lesson-form .cert-select{width:100px}.cert-add-chapter-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.75rem;width:100%;border:2px dashed var(--border-color, #2a2a2a);border-radius:12px;background:none;color:var(--text-secondary, #999);font-size:1.0625rem;font-weight:600;cursor:pointer;transition:all .2s ease}.cert-add-chapter-btn:hover{border-color:var(--gpe-blue, #1a56db);color:var(--gpe-blue, #1a56db);background:var(--gpe-blue-bg, rgba(26, 86, 219, .05));transform:translateY(-2px)}.cert-new-chapter-form{background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #2a2a2a);border-radius:8px;padding:1.5rem}.cert-new-chapter-form h3{margin:0 0 1rem;font-size:1rem;color:var(--text-primary, #fff)}.cert-form-field{margin-bottom:1rem}.cert-form-field label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-secondary, #999);margin-bottom:.5rem}.cert-input,.cert-select,.cert-textarea{width:100%;padding:.75rem 1rem;font-size:.9375rem;background:var(--input-bg, #0d0d0d);border:1.5px solid var(--border-color, #2a2a2a);border-radius:8px;color:var(--text-primary, #fff);transition:all .2s ease}.cert-input:focus,.cert-select:focus,.cert-textarea:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 3px var(--gpe-blue-bg, rgba(26, 86, 219, .1))}.cert-input:disabled{opacity:.6;cursor:not-allowed}.cert-textarea{resize:vertical}.cert-textarea-lg{font-family:Fira Code,monospace;line-height:1.5}.cert-form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.cert-chapter-edit-form{display:flex;flex-direction:column;gap:.5rem;flex:1}.cert-chapter-edit-form .cert-input,.cert-chapter-edit-form .cert-textarea{padding:.5rem}.cert-chapter-edit-actions{display:flex;gap:.5rem;margin-top:.5rem}.cert-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.cert-modal{background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #2a2a2a);border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.cert-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #2a2a2a)}.cert-modal-header h2{margin:0;font-size:1.125rem;color:var(--text-primary, #fff)}.cert-unsaved-badge{padding:.25rem .75rem;background:#fef3c7;color:#92400e;border-radius:9999px;font-size:.75rem;font-weight:500;margin-left:.75rem}.cert-modal-close{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:.25rem;display:flex;transition:color .15s}.cert-modal-close:hover{color:var(--text-primary, #fff)}.cert-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.cert-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #2a2a2a)}.cert-lesson-editor{max-width:900px}.cert-lesson-editor .cert-modal-body{padding:1.5rem}.cert-lesson-editor .rte-container{margin-top:.5rem}:root:not(.dark) .cert-content-page,:root.light .cert-content-page{--card-bg: #ffffff;--border-color: #e2e8f0;--text-primary: #1a1a2e;--text-secondary: #64748b;--text-muted: #94a3b8;--input-bg: #ffffff;--surface-hover: rgba(0, 0, 0, .05)}:root:not(.dark) .cert-chapter-card,:root.light .cert-chapter-card{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cert-chapter-header,:root.light .cert-chapter-header{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .cert-chapter-title,:root:not(.dark) .cert-lesson-title,:root.light .cert-chapter-title,:root.light .cert-lesson-title{color:#1a1a2e}:root:not(.dark) .cert-chapter-description,:root:not(.dark) .cert-chapter-toggle,:root:not(.dark) .cert-icon-btn,:root.light .cert-chapter-description,:root.light .cert-chapter-toggle,:root.light .cert-icon-btn{color:#64748b}:root:not(.dark) .cert-icon-btn:hover,:root.light .cert-icon-btn:hover{background:#0000000d;color:#1a1a2e}:root:not(.dark) .cert-lesson-item:hover,:root.light .cert-lesson-item:hover{background:#00000008}:root:not(.dark) .cert-lesson-number,:root.light .cert-lesson-number{background:#e2e8f0;color:#64748b}:root:not(.dark) .cert-add-lesson-btn,:root:not(.dark) .cert-add-chapter-btn,:root.light .cert-add-lesson-btn,:root.light .cert-add-chapter-btn{border-color:#cbd5e1;color:#64748b}:root:not(.dark) .cert-new-lesson-form,:root.light .cert-new-lesson-form{background:#f8fafc}:root:not(.dark) .cert-new-chapter-form,:root.light .cert-new-chapter-form{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cert-new-chapter-form h3,:root.light .cert-new-chapter-form h3{color:#1a1a2e}:root:not(.dark) .cert-input,:root:not(.dark) .cert-select,:root:not(.dark) .cert-textarea,:root.light .cert-input,:root.light .cert-select,:root.light .cert-textarea{background:#fff;border-color:#e2e8f0;color:#1a1a2e}:root:not(.dark) .cert-modal,:root.light .cert-modal{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cert-modal-header,:root:not(.dark) .cert-modal-footer,:root.light .cert-modal-header,:root.light .cert-modal-footer{border-color:#e2e8f0}:root:not(.dark) .cert-modal-header h2,:root.light .cert-modal-header h2{color:#1a1a2e}:root:not(.dark) .cert-modal-overlay,:root.light .cert-modal-overlay{background:#00000080}:root.dark .cert-content-page{--card-bg: #1a1a1a;--border-color: #2a2a2a;--text-primary: #ffffff;--text-secondary: #999999;--text-muted: #666666;--input-bg: #0d0d0d;--surface-hover: rgba(255, 255, 255, .05)}.cert-lesson-metadata-row{display:flex;gap:1rem;margin-bottom:1rem}.cert-form-field-flex{flex:1}.cert-form-field-sm{flex:0 0 120px}.cert-form-field-xs{flex:0 0 90px}.cert-video-upload-section{border:1px solid var(--border-color, #2a2a2a);border-radius:8px;overflow:hidden}.cert-video-preview{padding:1rem;background:#ffffff05}.cert-video-url-display{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--input-bg, #0d0d0d);border-radius:6px}.cert-video-url-display svg{color:var(--gpe-blue, #1a56db);flex-shrink:0}.cert-video-url-text{flex:1;font-size:.875rem;color:var(--text-primary, #fff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cert-video-remove-btn{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:.375rem;border-radius:4px;display:flex;transition:background .15s,color .15s}.cert-video-remove-btn:hover{background:#f4433633;color:#f44336}.cert-video-upload-progress{padding:1rem;text-align:center}.cert-progress-bar{height:8px;background:var(--border-color, #2a2a2a);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.cert-progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-blue-light, #3b82f6));border-radius:4px;transition:width .2s}.cert-progress-text{font-size:.875rem;color:var(--text-secondary, #999)}.cert-video-upload-options{padding:1rem}.cert-video-upload-dropzone{position:relative}.cert-video-file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.cert-video-dropzone-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;border:2px dashed var(--border-color, #2a2a2a);border-radius:8px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.cert-video-dropzone-label:hover{border-color:var(--gpe-blue, #1a56db);background:var(--gpe-blue-bg, rgba(26, 86, 219, .05))}.cert-video-dropzone-label svg{color:var(--text-secondary, #999)}.cert-video-dropzone-label span{font-size:.875rem;color:var(--text-secondary, #999)}.cert-video-formats{font-size:.75rem!important;color:var(--text-muted, #666)!important}.cert-video-or-divider{display:flex;align-items:center;gap:1rem;margin:1rem 0}.cert-video-or-divider:before,.cert-video-or-divider:after{content:"";flex:1;height:1px;background:var(--border-color, #2a2a2a)}.cert-video-or-divider span{font-size:.75rem;color:var(--text-muted, #666);text-transform:uppercase;letter-spacing:.05em}:root:not(.dark) .cert-video-upload-section,:root.light .cert-video-upload-section{border-color:#e2e8f0}:root:not(.dark) .cert-video-preview,:root.light .cert-video-preview{background:#f8fafc}:root:not(.dark) .cert-video-url-display,:root.light .cert-video-url-display{background:#fff}:root:not(.dark) .cert-video-url-text,:root.light .cert-video-url-text{color:#1a1a2e}:root:not(.dark) .cert-video-dropzone-label,:root.light .cert-video-dropzone-label{border-color:#cbd5e1}:root:not(.dark) .cert-video-dropzone-label:hover,:root.light .cert-video-dropzone-label:hover{background:#1a56db14}:root:not(.dark) .cert-progress-bar,:root.light .cert-progress-bar{background:#e2e8f0}:root:not(.dark) .cert-video-or-divider:before,:root:not(.dark) .cert-video-or-divider:after,:root.light .cert-video-or-divider:before,:root.light .cert-video-or-divider:after{background:#e2e8f0}@media(max-width:768px){.cert-chapter-header{flex-wrap:wrap}.cert-chapter-actions{width:100%;justify-content:flex-end;margin-top:.5rem}.cert-lesson-info{flex-direction:column;align-items:flex-start;gap:.25rem}.cert-new-lesson-form{flex-direction:column}.cert-new-lesson-form .cert-input,.cert-new-lesson-form .cert-input-sm,.cert-new-lesson-form .cert-select{width:100%}.cert-modal{margin:1rem;max-height:calc(100vh - 2rem)}.cert-lesson-metadata-row{flex-direction:column;gap:.75rem}.cert-form-field-sm,.cert-form-field-xs{flex:0 0 auto;width:100%}}.ss-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:.5rem}.ss-breadcrumb a{color:var(--gpe-blue, #1a56db);text-decoration:none;font-weight:500;transition:color .15s}.ss-breadcrumb a:hover{color:#a08563;text-decoration:underline}.ss-breadcrumb svg{color:var(--text-tertiary, #94a3b8);flex-shrink:0}.ss-breadcrumb span{color:var(--text-secondary, #64748b);font-weight:500}.ss-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.ss-stat-card{position:relative;display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.ss-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-blue-light, #3b82f6));opacity:0;transition:opacity .3s ease}.ss-stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014}.ss-stat-card:hover:before{opacity:1}.ss-stat-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;flex-shrink:0;transition:transform .3s ease}.ss-stat-card:hover .ss-stat-icon{transform:scale(1.05)}.ss-stat-icon.blue{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.ss-stat-icon.green{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:#22c55e;box-shadow:0 4px 12px #22c55e26}.ss-stat-icon.purple{background:linear-gradient(135deg,#a855f726,#a855f70d);color:#a855f7;box-shadow:0 4px 12px #a855f726}.ss-stat-content{display:flex;flex-direction:column;gap:.25rem}.ss-stat-value{font-size:2rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.ss-stat-label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.04em}.ss-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.ss-empty-icon{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:24px;background:linear-gradient(135deg,#1a56db1a,#7c3aed14);color:var(--gpe-blue, #1a56db);margin-bottom:2rem}.ss-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.ss-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:420px;line-height:1.6}.ss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem}.ss-card{position:relative;display:flex;flex-direction:column;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:visible;transition:all .4s cubic-bezier(.4,0,.2,1)}.ss-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #0000001a,0 6px 16px #0000000f}.ss-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:20px 20px 0 0;transition:opacity .3s}.ss-card.draft:before{background:linear-gradient(90deg,#94a3b8,#cbd5e1)}.ss-card.open:before{background:linear-gradient(90deg,#22c55e,#4ade80)}.ss-card.in_progress:before{background:linear-gradient(90deg,#a08563,#c4a77d)}.ss-card.closed:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.ss-card.completed:before{background:linear-gradient(90deg,#64748b,#94a3b8)}.ss-card.cancelled:before{background:linear-gradient(90deg,#ef4444,#f87171)}.ss-card.pending_quota:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.ss-card.confirmed:before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.ss-card-header{padding:1.5rem 1.5rem 0}.ss-card-header-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.ss-card-badges{display:flex;flex-wrap:wrap;gap:.5rem}.ss-card-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0;line-height:1.35;letter-spacing:-.01em}.ss-status-badge{display:inline-flex;align-items:center;padding:.375rem .875rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.ss-status-badge.draft{background:#94a3b826;color:#64748b}.ss-status-badge.open{background:#22c55e26;color:#15803d}.ss-status-badge.pending{background:#f59e0b26;color:#b45309}.ss-status-badge.confirmed{background:#3b82f626;color:#1d4ed8}.ss-status-badge.in-progress{background:#c4a77d26;color:#a08563}.ss-status-badge.closed{background:#fbbf2426;color:#b45309}.ss-status-badge.completed{background:#64748b26;color:#475569}.ss-status-badge.cancelled{background:#ef444426;color:#dc2626}.ss-mode-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:100px;font-size:.6875rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}.ss-mode-badge.online{background:#3b82f61a;color:#2563eb}.ss-mode-badge.presential{background:#a855f71a;color:#7c3aed}.ss-mode-badge.hybrid{background:#ec48991a;color:#db2777}.ss-card-menu{position:relative}.ss-menu-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .2s}.ss-menu-trigger:hover{background:var(--surface-secondary, #f8fafc);border-color:var(--border-color, #e2e8f0);color:var(--text-primary, #1a1a2e)}.ss-dropdown-menu{position:absolute;right:0;top:100%;margin-top:.5rem;min-width:180px;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;box-shadow:0 10px 40px #00000026,0 4px 12px #0000001a;z-index:100;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ss-card-menu:hover .ss-dropdown-menu,.ss-card-menu:focus-within .ss-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.ss-dropdown-menu button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1.25rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .15s ease}.ss-dropdown-menu button:hover{background:var(--surface-secondary, #f8fafc);padding-left:1.5rem}.ss-dropdown-menu button svg{opacity:.7}.ss-dropdown-menu button.ss-action-danger{color:#dc2626}.ss-dropdown-menu button.ss-action-danger:hover{background:#dc262614}.ss-card-body{flex:1;padding:1.25rem 1.5rem}.ss-card-info-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.ss-info-item{display:flex;align-items:center;gap:.625rem;font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b)}.ss-info-item svg{color:var(--text-tertiary, #94a3b8);flex-shrink:0}.ss-card-stats{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;background:var(--surface-secondary, #f8fafc);border-radius:12px;border:1px solid var(--border-color, rgba(0, 0, 0, .04))}.ss-stat{display:flex;flex-direction:column;align-items:center;flex:1}.ss-stat-num{font-size:1.5rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.ss-stat-txt{font-size:.6875rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-top:.25rem;text-transform:uppercase;letter-spacing:.04em;text-align:center}.ss-stat-divider{width:1px;height:32px;background:var(--border-color, #e2e8f0);flex-shrink:0}.ss-card-footer{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--surface-secondary, #f8fafc);border-radius:0 0 20px 20px}.ss-card-links{display:flex;gap:.5rem}.ss-link-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-secondary, #64748b);text-decoration:none;cursor:pointer;transition:all .2s ease}.ss-link-btn:hover{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #1a56db40}.ss-link-btn svg{transition:transform .2s ease}.ss-link-btn:hover svg{transform:scale(1.1)}.ss-status-actions{display:flex;gap:.5rem}.ss-action-btn{display:flex;align-items:center;gap:.5rem;flex:1;justify-content:center;padding:.625rem 1rem;border:none;border-radius:10px;font-size:.8125rem;font-weight:700;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.ss-action-btn:hover{transform:translateY(-2px)}.ss-action-btn.primary{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 2px 8px #22c55e4d}.ss-action-btn.primary:hover{box-shadow:0 6px 20px #22c55e66}.ss-action-btn.success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 2px 8px #22c55e4d}.ss-action-btn.success:hover{box-shadow:0 6px 20px #22c55e66}.ss-action-btn.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 8px #f59e0b4d}.ss-action-btn.warning:hover{box-shadow:0 6px 20px #f59e0b66}.ss-action-btn.neutral{background:var(--surface-primary, #fff);color:var(--text-secondary, #64748b);border:1px solid var(--border-color, #e2e8f0);box-shadow:none}.ss-action-btn.neutral:hover{background:var(--text-secondary, #64748b);color:#fff;border-color:var(--text-secondary, #64748b);box-shadow:0 4px 12px #64748b4d}.ss-action-btn.danger{background:var(--surface-primary, #fff);color:#dc2626;border:1px solid rgba(220,38,38,.3);box-shadow:none}.ss-action-btn.danger:hover{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent;box-shadow:0 6px 20px #ef444466}.ss-modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.ss-modal{background:var(--surface-primary, #fff);border-radius:20px;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ss-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.75rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.ss-modal-header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0}.ss-modal-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:10px;transition:all .2s}.ss-modal-close:hover{background:var(--surface-secondary, #f8fafc);color:var(--text-primary, #1a1a2e)}.ss-modal-body{padding:1.75rem}.ss-form-field{margin-bottom:1.25rem}.ss-form-field label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.5rem}.ss-form-field label .required{color:#dc2626}.ss-form-field input,.ss-form-field select{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.ss-form-field input:focus,.ss-form-field select:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.ss-form-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.5rem;cursor:pointer}.ss-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ss-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border-color, #e2e8f0)}[data-theme=dark] .ss-stat-card,[data-theme=dark] .ss-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .ss-card-footer{background:var(--surface-secondary)}[data-theme=dark] .ss-card-stats{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .ss-modal{background:var(--surface-primary)}[data-theme=dark] .ss-dropdown-menu{background:var(--surface-primary);border-color:var(--border-color);box-shadow:0 10px 40px #0006,0 4px 12px #0000004d}[data-theme=dark] .ss-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .ss-form-field input,[data-theme=dark] .ss-form-field select{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .ss-link-btn,[data-theme=dark] .ss-action-btn.neutral{background:var(--surface-primary);border-color:var(--border-color)}@media(max-width:768px){.ss-stats-row,.ss-grid{grid-template-columns:1fr}.ss-card-stats{flex-wrap:wrap;gap:.75rem}.ss-stat-divider{display:none}.ss-stat{min-width:70px}.ss-card-links{flex-wrap:wrap}.ss-link-btn{flex:1;justify-content:center;min-width:calc(50% - .25rem)}.ss-status-actions{flex-wrap:wrap}.ss-action-btn{flex:unset;width:100%}.ss-form-row{grid-template-columns:1fr}}@media(max-width:480px){.ss-stat-card{padding:1rem}.ss-stat-icon{width:48px;height:48px}.ss-stat-value{font-size:1.5rem}.ss-card-header,.ss-card-body,.ss-card-footer{padding-left:1.25rem;padding-right:1.25rem}}.all-sessions-page{--gpe-blue: #1a56db}.all-sessions-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.all-sessions-stat-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1.5rem;background:var(--surface-primary, #fff);border-radius:12px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06));min-width:100px}.all-sessions-stat-card .stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1}.all-sessions-stat-card .stat-label{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-top:.25rem;text-transform:uppercase;letter-spacing:.04em}.all-sessions-stat-card.blue .stat-value{color:#2563eb}.all-sessions-stat-card.orange .stat-value{color:#d97706}.all-sessions-stat-card.green .stat-value{color:#16a34a}.all-sessions-stat-card.gold .stat-value{color:#a08563}.all-sessions-filters{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.all-sessions-filter-select{padding:.625rem 1rem;font-size:.9375rem;border:2px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);cursor:pointer;min-width:180px}.all-sessions-filter-select:focus{outline:none;border-color:var(--gpe-blue, #1a56db)}.all-sessions-count{font-size:.875rem;color:var(--text-tertiary, #94a3b8)}.all-sessions-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.all-sessions-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.all-sessions-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.all-sessions-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 1.5rem;max-width:400px}.all-sessions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.all-sessions-card{background:var(--surface-primary, #fff);border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06));transition:all .3s ease}.all-sessions-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000014}.all-sessions-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.all-sessions-program-title{font-size:.8125rem;font-weight:600;color:var(--gpe-blue, #1a56db);text-decoration:none;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.all-sessions-program-title:hover{text-decoration:underline}.all-sessions-card-title{font-size:1.125rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 1rem;line-height:1.3}.all-sessions-card-dates{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary, #64748b);margin-bottom:1rem}.all-sessions-card-dates svg{color:var(--text-tertiary, #94a3b8);flex-shrink:0}.all-sessions-card-stats{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border-radius:10px;margin-bottom:1rem}.all-sessions-stat{display:flex;flex-direction:column;align-items:center}.all-sessions-stat .value{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e)}.all-sessions-stat .label{font-size:.6875rem;font-weight:500;color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.03em}.all-sessions-stat-divider{width:1px;height:32px;background:var(--border-color, #e2e8f0)}.all-sessions-card-actions{display:flex;gap:.5rem}.all-sessions-action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b);background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;text-decoration:none;transition:all .2s ease}.all-sessions-action-btn:hover{background:var(--gpe-blue, #1a56db);color:#fff;border-color:var(--gpe-blue, #1a56db)}.all-sessions-action-btn svg{flex-shrink:0}.all-sessions-status{display:inline-flex;padding:.25rem .625rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.all-sessions-status.open{background:#16a34a26;color:#16a34a}.all-sessions-status.in-progress{background:#d9770626;color:#d97706}.all-sessions-status.closed{background:#64748b26;color:#64748b}.all-sessions-status.completed{background:#3b82f626;color:#2563eb}[data-theme=dark] .all-sessions-stat-card,[data-theme=dark] .all-sessions-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .all-sessions-filter-select{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .all-sessions-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .all-sessions-card-stats,[data-theme=dark] .all-sessions-action-btn{background:var(--surface-secondary);border-color:var(--border-color)}@media(max-width:768px){.all-sessions-stats{flex-direction:row;overflow-x:auto;padding-bottom:.5rem}.all-sessions-stat-card{min-width:80px;padding:1rem}.all-sessions-grid{grid-template-columns:1fr}.all-sessions-card-actions{flex-wrap:wrap}}.all-enrollments-page{padding:0}.all-enrollments-stats{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:0 1.5rem}.all-enrollments-stat-card{flex:1;min-width:120px;background:#fff;border-radius:12px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--border-color, #e5e7eb);box-shadow:0 1px 3px #0000000f}.all-enrollments-stat-card .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #111827)}.all-enrollments-stat-card .stat-label{font-size:.8rem;color:var(--text-secondary, #6b7280)}.all-enrollments-stat-card.blue .stat-value{color:#3b82f6}.all-enrollments-stat-card.orange .stat-value{color:#f59e0b}.all-enrollments-stat-card.green .stat-value{color:#10b981}.all-enrollments-stat-card.gold .stat-value{color:#d97706}.all-enrollments-stat-card.red .stat-value{color:#ef4444}.all-enrollments-filters{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:0 1.5rem;flex-wrap:wrap}.all-enrollments-search{flex:1;min-width:250px;max-width:400px;position:relative}.all-enrollments-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary, #9ca3af)}.all-enrollments-search-input{width:100%;padding:.625rem 1rem .625rem 2.5rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;background:#fff;transition:border-color .2s,box-shadow .2s}.all-enrollments-search-input:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.all-enrollments-filter-select{padding:.625rem 2rem .625rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;background:#fff;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.all-enrollments-count{font-size:.875rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.all-enrollments-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:#fff;border-radius:12px;margin:0 1.5rem;border:1px solid var(--border-color, #e5e7eb)}.all-enrollments-empty svg{color:var(--text-tertiary, #9ca3af);margin-bottom:1rem}.all-enrollments-empty h3{font-size:1.125rem;font-weight:600;color:var(--text-primary, #111827);margin:0 0 .5rem}.all-enrollments-empty p{font-size:.875rem;color:var(--text-secondary, #6b7280);margin:0 0 1.5rem;max-width:400px}.all-enrollments-table-container{background:#fff;border-radius:12px;overflow:hidden;margin:0 1.5rem;border:1px solid var(--border-color, #e5e7eb)}.all-enrollments-table{width:100%;border-collapse:collapse}.all-enrollments-table th{text-align:left;padding:.875rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280);background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.all-enrollments-table td{padding:.875rem 1rem;font-size:.875rem;color:var(--text-primary, #111827);border-bottom:1px solid var(--border-color, #e5e7eb);vertical-align:middle}.all-enrollments-table tbody tr:last-child td{border-bottom:none}.all-enrollments-table tbody tr:hover{background:var(--bg-hover, #f9fafb)}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.user-info{display:flex;flex-direction:column;min-width:0}.user-name{font-weight:500;color:var(--text-primary, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.75rem;color:var(--text-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enrollment-program-link{color:var(--primary-color, #3b82f6);text-decoration:none;font-weight:500;transition:color .2s}.enrollment-program-link:hover{color:var(--primary-hover, #2563eb);text-decoration:underline}.enrollment-no-program,.enrollment-no-session{color:var(--text-tertiary, #9ca3af)}.enrollment-session{display:flex;flex-direction:column;gap:.125rem}.session-name{font-weight:500;color:var(--text-primary, #111827)}.session-dates{font-size:.75rem;color:var(--text-secondary, #6b7280)}.enrollment-status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.enrollment-status-badge.gray{background:#f3f4f6;color:#6b7280}.enrollment-status-badge.blue{background:#dbeafe;color:#1d4ed8}.enrollment-status-badge.orange{background:#fef3c7;color:#d97706}.enrollment-status-badge.green{background:#d1fae5;color:#059669}.enrollment-status-badge.gold{background:#fef3c7;color:#b45309}.enrollment-status-badge.red{background:#fee2e2;color:#dc2626}.enrollment-progress{display:flex;align-items:center;gap:.5rem}.progress-bar{flex:1;height:6px;background:var(--bg-tertiary, #e5e7eb);border-radius:3px;overflow:hidden;min-width:60px;max-width:100px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:3px;transition:width .3s ease}.progress-text{font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);min-width:35px}.quiz-score{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.quiz-score.pass{background:#d1fae5;color:#059669}.quiz-score.fail{background:#fee2e2;color:#dc2626}.quiz-not-taken{color:var(--text-tertiary, #9ca3af)}.enrollment-date{font-size:.8rem;color:var(--text-secondary, #6b7280);white-space:nowrap}@media(max-width:1024px){.all-enrollments-table-container{overflow-x:auto}.all-enrollments-table{min-width:900px}}@media(max-width:768px){.all-enrollments-stats,.all-enrollments-filters{padding:0 1rem}.all-enrollments-table-container,.all-enrollments-empty{margin:0 1rem}.all-enrollments-stat-card{min-width:100px}}.event-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.event-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.event-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.event-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px}.event-list{display:flex;flex-direction:column;gap:1rem}.event-card{background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));border-left:5px solid var(--gpe-blue, #1a56db);padding:1.5rem 1.75rem;transition:box-shadow .2s ease}.event-card:hover{box-shadow:0 4px 16px #00000014,0 1px 4px #0000000a}.event-card.live{border-left-color:#22c55e}.event-card.completed{border-left-color:#94a3b8;opacity:.8}.event-card.cancelled{border-left-color:#ef4444;opacity:.7}.event-card.postponed{border-left-color:#f59e0b}.event-card-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.event-card-topbar-left{display:flex;align-items:center;gap:.75rem}.event-card-topbar-right{display:flex;align-items:center;gap:.25rem}.event-type-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;background:#1a56db14;color:var(--gpe-blue, #1a56db);border-radius:8px;font-size:.8125rem;font-weight:600}.event-type-badge svg{width:16px;height:16px}.event-status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:100px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.event-status-badge.blue{background:#3b82f61f;color:#2563eb}.event-status-badge.green{background:#22c55e1f;color:#15803d}.event-status-badge.gray{background:#64748b1f;color:#475569}.event-status-badge.red{background:#ef44441f;color:#dc2626}.event-status-badge.orange{background:#fbbf241f;color:#b45309}.live-indicator{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse-live 1.5s ease-in-out infinite}@keyframes pulse-live{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}}.event-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .2s ease}.event-icon-btn:hover{background:#1a56db14;border-color:#1a56db26;color:var(--gpe-blue, #1a56db)}.event-icon-btn-danger:hover{background:#ef444414;border-color:#ef444426;color:#dc2626}.event-card-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .375rem;line-height:1.4}.event-card-description{font-size:.9375rem;color:var(--text-secondary, #64748b);margin:0 0 1.25rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem;padding:1.25rem;background:var(--surface-secondary, #f8fafc);border-radius:12px;margin-bottom:0}.event-info-item{display:flex;gap:.75rem;align-items:flex-start}.event-info-item-full{grid-column:1 / -1}.event-info-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--surface-primary, #fff);color:var(--gpe-blue, #1a56db);flex-shrink:0;box-shadow:0 1px 2px #0000000d}.event-info-content{display:flex;flex-direction:column;gap:.125rem;min-width:0;padding-top:.125rem}.event-info-label{font-size:.75rem;font-weight:600;color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.05em;line-height:1.2}.event-info-value{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);line-height:1.4;text-transform:capitalize}.event-info-duration{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;background:var(--surface-primary, #fff);border-radius:6px;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b)}.event-info-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--gpe-blue, #1a56db);font-size:.9375rem;font-weight:600;text-decoration:none;transition:opacity .2s}.event-info-link:hover{opacity:.8;text-decoration:underline}.event-info-meeting-details{font-size:.8125rem;color:var(--text-secondary, #64748b);margin-top:.25rem}.event-info-meeting-details code{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8125rem;background:var(--surface-primary, #fff);padding:.125rem .5rem;border-radius:4px;font-weight:600;color:var(--text-primary, #1a1a2e)}.event-guest-chips{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}.event-guest-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;background:var(--surface-primary, #fff);border-radius:100px;font-size:.8125rem;font-weight:500;color:var(--text-primary, #1a1a2e);box-shadow:0 1px 2px #0000000d}.event-guest-chip-role{font-size:.75rem;color:var(--text-tertiary, #94a3b8);font-weight:400}.event-card-footer{display:flex;align-items:center;gap:.5rem;padding-top:1rem;margin-top:1rem;border-top:1px solid var(--border-color, #e2e8f0)}.event-status-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.event-status-btn.success{background:#22c55e;color:#fff}.event-status-btn.success:hover{background:#16a34a}.event-status-btn.warning{background:#f59e0b1f;color:#b45309}.event-status-btn.warning:hover{background:#f59e0b33}.event-status-btn.danger{background:#ef44441a;color:#dc2626}.event-status-btn.danger:hover{background:#ef44442e}.event-modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.event-modal{background:var(--surface-primary, #fff);border-radius:20px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.event-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0);position:sticky;top:0;background:var(--surface-primary, #fff);z-index:10}.event-modal-header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0}.event-modal-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:10px;transition:all .2s}.event-modal-close:hover{background:var(--surface-secondary, #f8fafc);color:var(--text-primary, #1a1a2e)}.event-modal-body{padding:1.5rem}.event-form-field{margin-bottom:1.25rem}.event-form-field label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.5rem}.event-form-field label .required{color:#dc2626}.event-form-field input,.event-form-field textarea,.event-form-field select{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.event-form-field input:focus,.event-form-field textarea:focus,.event-form-field select:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.event-form-field textarea{resize:vertical;min-height:80px}.event-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.event-form-checkbox{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.event-form-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--gpe-blue, #1a56db);cursor:pointer}.event-form-checkbox label{font-size:.9375rem;color:var(--text-primary, #1a1a2e);cursor:pointer}.event-type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.event-type-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;cursor:pointer;transition:all .2s ease}.event-type-option:hover{border-color:var(--gpe-blue, #1a56db);background:#1a56db0d}.event-type-option.selected{border-color:var(--gpe-blue, #1a56db);background:#1a56db1a;color:var(--gpe-blue, #1a56db)}.event-type-option svg{width:24px;height:24px}.event-type-option span{font-size:.75rem;font-weight:600;text-align:center}.event-guests-input{display:flex;gap:.5rem}.event-guests-input input{flex:1}.event-guests-input input:first-child{flex:2}.event-add-guest-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--gpe-blue, #1a56db);border:none;border-radius:12px;color:#fff;cursor:pointer;transition:all .2s;flex-shrink:0}.event-add-guest-btn:hover{background:#1e40af;transform:scale(1.05)}.event-guests-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.event-guest-tag{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:100px;font-size:.8125rem}.event-guest-tag .guest-role{color:var(--text-tertiary, #94a3b8);font-size:.75rem}.event-guest-tag button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:50%;font-size:.875rem;line-height:1;margin-left:.25rem}.event-guest-tag button:hover{background:#ef44441a;color:#dc2626}.event-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border-color, #e2e8f0)}[data-theme=dark] .event-card,[data-theme=dark] .event-modal{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .event-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .event-form-field input,[data-theme=dark] .event-form-field textarea,[data-theme=dark] .event-form-field select,[data-theme=dark] .event-type-option{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .event-info-grid{background:var(--surface-secondary)}[data-theme=dark] .event-info-icon,[data-theme=dark] .event-info-meeting-details code,[data-theme=dark] .event-info-duration,[data-theme=dark] .event-guest-chip,[data-theme=dark] .event-modal-header{background:var(--surface-primary)}@media(max-width:768px){.event-info-grid{grid-template-columns:1fr;gap:.875rem}.event-card{padding:1.25rem}.event-card-topbar{flex-wrap:wrap;gap:.5rem}.event-card-footer{flex-wrap:wrap}.event-form-row{grid-template-columns:1fr}.event-type-selector{grid-template-columns:repeat(2,1fr)}.event-guests-input{flex-wrap:wrap}.event-guests-input input{width:100%;flex:none}.event-guests-input input:first-child{flex:none}}.enrollment-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:.5rem}.enrollment-breadcrumb a{color:var(--gpe-blue, #1a56db);text-decoration:none;font-weight:500;transition:color .15s}.enrollment-breadcrumb a:hover{color:#a08563;text-decoration:underline}.enrollment-breadcrumb svg{color:var(--text-tertiary, #94a3b8)}.enrollment-breadcrumb span{color:var(--text-secondary, #64748b)}.enrollment-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.enrollment-stat-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1.5rem;background:var(--surface-primary, #fff);border-radius:12px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06));min-width:100px}.enrollment-stat-card .stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1}.enrollment-stat-card .stat-label{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-top:.25rem;text-transform:uppercase;letter-spacing:.04em}.enrollment-stat-card.blue .stat-value{color:#2563eb}.enrollment-stat-card.orange .stat-value{color:#d97706}.enrollment-stat-card.green .stat-value{color:#16a34a}.enrollment-stat-card.gold .stat-value{color:#a08563}.enrollment-stat-card.red .stat-value{color:#dc2626}.enrollment-filters{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.enrollment-filter-select{padding:.625rem 1rem;font-size:.9375rem;border:2px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);cursor:pointer;min-width:180px}.enrollment-filter-select:focus{outline:none;border-color:var(--gpe-blue, #1a56db)}.enrollment-count{font-size:.875rem;color:var(--text-tertiary, #94a3b8)}.enrollment-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.enrollment-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.enrollment-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.enrollment-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0;max-width:400px}.enrollment-table-container{background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:hidden}.enrollment-table{width:100%;border-collapse:collapse}.enrollment-table th{padding:1rem 1.25rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary, #94a3b8);background:var(--surface-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.enrollment-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:middle}.enrollment-table tr:last-child td{border-bottom:none}.enrollment-table tr:hover td{background:#1a56db05}.enrollment-user{display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.user-info{display:flex;flex-direction:column}.user-name{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.user-email{font-size:.8125rem;color:var(--text-tertiary, #94a3b8)}.enrollment-status-badge{display:inline-flex;padding:.375rem .75rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.enrollment-status-badge.blue{background:#3b82f626;color:#2563eb}.enrollment-status-badge.orange{background:#d9770626;color:#d97706}.enrollment-status-badge.green{background:#16a34a26;color:#16a34a}.enrollment-status-badge.gold{background:#a0856326;color:#a08563}.enrollment-status-badge.red{background:#dc262626;color:#dc2626}.enrollment-status-badge.gray{background:#64748b26;color:#64748b}.enrollment-progress{display:flex;align-items:center;gap:.75rem}.progress-bar{flex:1;height:8px;background:var(--border-color, #e2e8f0);border-radius:4px;overflow:hidden;min-width:80px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),#6366f1);border-radius:4px;transition:width .3s ease}.progress-text{font-size:.8125rem;font-weight:600;color:var(--text-primary, #1a1a2e);min-width:40px}.enrollment-lessons{font-size:.875rem;color:var(--text-secondary, #64748b)}.quiz-score{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:6px}.quiz-score.pass{background:#16a34a1a;color:#16a34a}.quiz-score.fail{background:#dc26261a;color:#dc2626}.quiz-not-taken{color:var(--text-tertiary, #94a3b8)}.enrollment-date{font-size:.875rem;color:var(--text-secondary, #64748b)}[data-theme=dark] .enrollment-stat-card,[data-theme=dark] .enrollment-table-container{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .enrollment-filter-select{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .enrollment-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .enrollment-table th{background:var(--surface-secondary)}@media(max-width:768px){.enrollment-stats{flex-direction:row;overflow-x:auto;padding-bottom:.5rem}.enrollment-stat-card{min-width:80px;padding:1rem}.enrollment-table-container{overflow-x:auto}.enrollment-table{min-width:700px}}.quiz-editor-page{min-height:100vh;background:var(--bg-primary, #f8fafc)}.quiz-editor-loading,.quiz-editor-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #64748b)}.quiz-editor-loading .spinner{width:40px;height:40px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #c8a97e);border-radius:50%;animation:spin 1s linear infinite}.quiz-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--surface-primary, #fff);border-bottom:1px solid var(--border-color, #e2e8f0);position:sticky;top:0;z-index:100}.quiz-editor-header-left{display:flex;align-items:center;gap:1rem}.quiz-back-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s}.quiz-back-btn:hover{background:var(--surface-secondary, #f1f5f9);color:var(--text-primary, #1a1a2e)}.quiz-editor-title-group h1{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0}.quiz-editor-subtitle{font-size:.875rem;color:var(--text-secondary, #64748b)}.quiz-editor-header-right{display:flex;align-items:center;gap:1rem}.quiz-unsaved-badge{padding:.25rem .75rem;background:#fef3c7;color:#92400e;border-radius:9999px;font-size:.75rem;font-weight:500}.quiz-save-btn{padding:.625rem 1.25rem;background:var(--primary-color, #c8a97e);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .15s}.quiz-save-btn:hover:not(:disabled){background:#b8996e}.quiz-save-btn:disabled{opacity:.6;cursor:not-allowed}.quiz-error-banner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 2rem;background:#fee2e2;color:#dc2626}.quiz-error-banner button{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit}.quiz-editor-content{max-width:900px;margin:0 auto;padding:2rem}.quiz-settings-panel,.quiz-import-section,.quiz-questions-section{background:var(--surface-primary, #fff);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e2e8f0)}.quiz-settings-panel h2,.quiz-import-section h2,.quiz-questions-header h2{font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0 0 1rem}.quiz-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.quiz-field label{display:block;font-size:.875rem;color:var(--text-secondary, #64748b);margin-bottom:.375rem}.quiz-field input[type=text],.quiz-field input[type=number]{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.875rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-field input:focus{outline:none;border-color:var(--primary-color, #c8a97e);box-shadow:0 0 0 3px #c8a97e1a}.quiz-field-checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.quiz-field-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary-color, #c8a97e)}.quiz-import-actions{display:flex;gap:1rem;flex-wrap:wrap}.quiz-template-btn,.quiz-import-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.quiz-template-btn{background:var(--surface-secondary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #1a1a2e)}.quiz-template-btn:hover{background:var(--surface-tertiary, #e2e8f0)}.quiz-import-btn{background:var(--primary-color, #c8a97e);border:none;color:#fff}.quiz-import-btn:hover{background:#b8996e}.quiz-questions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.quiz-add-question-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--primary-color, #c8a97e);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.quiz-add-question-btn:hover{background:#b8996e}.quiz-empty-state{text-align:center;padding:3rem 2rem;color:var(--text-secondary, #64748b)}.quiz-questions-list{display:flex;flex-direction:column;gap:1rem}.quiz-question-card{background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:1rem}.quiz-question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.quiz-question-number{font-weight:600;color:var(--text-primary, #1a1a2e)}.quiz-question-controls{display:flex;align-items:center;gap:.5rem}.quiz-question-controls select{padding:.375rem .5rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.8125rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-points-input{width:50px;padding:.375rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.8125rem;text-align:center;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-points-label{font-size:.75rem;color:var(--text-secondary, #64748b)}.quiz-remove-btn{padding:.375rem;background:none;border:none;color:#dc2626;cursor:pointer;border-radius:6px;transition:background .15s}.quiz-remove-btn:hover{background:#dc26261a}.quiz-question-text{width:100%;padding:.75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.9375rem;resize:vertical;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-question-text:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.quiz-answers-section{margin-top:1rem}.quiz-answers-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b);margin-bottom:.5rem}.quiz-answer-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.quiz-answer-correct input{width:18px;height:18px;accent-color:var(--primary-color, #c8a97e);cursor:pointer}.quiz-answer-text{flex:1;padding:.5rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-answer-text:focus{outline:none;border-color:var(--primary-color, #c8a97e)}.quiz-answer-remove{padding:.375rem;background:none;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:4px;transition:all .15s}.quiz-answer-remove:hover{background:#fee2e2;color:#dc2626}.quiz-add-answer-btn{margin-top:.5rem;padding:.375rem .75rem;background:none;border:1px dashed var(--border-color, #cbd5e1);border-radius:6px;color:var(--text-secondary, #64748b);font-size:.8125rem;cursor:pointer;transition:all .15s}.quiz-add-answer-btn:hover{border-color:var(--primary-color, #c8a97e);color:var(--primary-color, #c8a97e)}.quiz-explanation{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e2e8f0)}.quiz-explanation label{display:block;font-size:.8125rem;color:var(--text-secondary, #64748b);margin-bottom:.375rem}.quiz-explanation textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:.875rem;resize:vertical;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e)}.quiz-explanation textarea:focus{outline:none;border-color:var(--primary-color, #c8a97e)}:root.dark .quiz-editor-page{background:var(--bg-primary, #0f0f0f)}:root.dark .quiz-editor-header{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}:root.dark .quiz-settings-panel,:root.dark .quiz-import-section,:root.dark .quiz-questions-section{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}:root.dark .quiz-question-card{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .quiz-field input,:root.dark .quiz-question-text,:root.dark .quiz-answer-text,:root.dark .quiz-explanation textarea,:root.dark .quiz-question-controls select,:root.dark .quiz-points-input{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}:root.dark .quiz-template-btn{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}:root.dark .quiz-template-btn:hover{background:var(--surface-tertiary, #333)}@media(max-width:768px){.quiz-editor-header{flex-direction:column;gap:1rem;padding:1rem}.quiz-editor-header-left,.quiz-editor-header-right{width:100%;justify-content:space-between}.quiz-editor-content{padding:1rem}.quiz-settings-grid{grid-template-columns:1fr}.quiz-import-actions{flex-direction:column}.quiz-question-header{flex-direction:column;align-items:flex-start;gap:.5rem}.quiz-question-controls{width:100%;flex-wrap:wrap}}.cd-page{min-height:100vh;background:var(--bg-primary, #f8fafc)}.cd-loading,.cd-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #64748b)}.cd-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #c8a97e);border-radius:50%;animation:cd-spin .8s linear infinite}@keyframes cd-spin{to{transform:rotate(360deg)}}.cd-error h2{margin:0;color:var(--text-primary, #1a1a2e)}.cd-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:var(--surface-primary, #fff);border-bottom:1px solid var(--border-color, #e2e8f0)}.cd-header-left{display:flex;align-items:center;gap:1.5rem}.cd-back-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:var(--text-secondary, #64748b);text-decoration:none;border-radius:8px;transition:all .15s}.cd-back-link:hover{background:var(--surface-secondary, #f1f5f9);color:var(--text-primary, #1a1a2e)}.cd-header-info{display:flex;flex-direction:column;gap:.25rem}.cd-header-title-row{display:flex;align-items:center;gap:.75rem}.cd-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cd-level{font-size:.875rem;color:var(--text-secondary, #64748b)}.cd-status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.cd-status-draft{background:#fef3c7;color:#92400e}.cd-status-published{background:#d1fae5;color:#065f46}.cd-status-archived{background:#e2e8f0;color:#475569}.cd-header-actions{display:flex;gap:.75rem}.cd-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .15s}.cd-btn-primary{background:var(--primary-color, #c8a97e);color:#fff;border:none}.cd-btn-primary:hover{background:#b8996e}.cd-btn-secondary{background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);border:1px solid var(--border-color, #e2e8f0)}.cd-btn-secondary:hover{background:var(--surface-secondary, #f1f5f9)}.cd-content{max-width:1000px;margin:0 auto;padding:2rem}.cd-overview{background:var(--surface-primary, #fff);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e2e8f0)}.cd-overview-main{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;margin-bottom:1.5rem}.cd-image-container{width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--surface-secondary, #f1f5f9)}.cd-image{width:100%;height:100%;object-fit:cover}.cd-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#ffffff80}.cd-description-container h2{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cd-description{margin:0;font-size:.9375rem;color:var(--text-secondary, #64748b);line-height:1.6}.cd-description.cd-empty{font-style:italic;color:var(--text-tertiary, #94a3b8)}.cd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #e2e8f0)}.cd-stat{display:flex;align-items:center;gap:.75rem}.cd-stat-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px}.cd-stat-chapters{background:#3b82f61a;color:#3b82f6}.cd-stat-lessons{background:#a855f71a;color:#a855f7}.cd-stat-duration{background:#22c55e1a;color:#22c55e}.cd-stat-price{background:#c8a97e1a;color:#c8a97e}.cd-stat-content{display:flex;flex-direction:column}.cd-stat-value{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cd-stat-label{font-size:.8125rem;color:var(--text-secondary, #64748b)}.cd-content-section{background:var(--surface-primary, #fff);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e2e8f0)}.cd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.cd-section-header h2{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cd-link{font-size:.875rem;color:var(--primary-color, #c8a97e);text-decoration:none}.cd-link:hover{text-decoration:underline}.cd-empty-content{display:flex;flex-direction:column;align-items:center;padding:3rem 2rem;color:var(--text-tertiary, #94a3b8);text-align:center}.cd-empty-content p{margin:1rem 0 1.5rem}.cd-chapters-list{display:flex;flex-direction:column;gap:.5rem}.cd-chapter{border:1px solid var(--border-color, #e2e8f0);border-radius:8px;overflow:hidden}.cd-chapter-header{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem;background:var(--surface-secondary, #f8fafc);border:none;cursor:pointer;text-align:left;transition:background .15s}.cd-chapter-header:hover{background:var(--surface-tertiary, #f1f5f9)}.cd-chapter-toggle{display:flex;color:var(--text-tertiary, #94a3b8)}.cd-chapter-toggle svg{transition:transform .2s}.cd-chapter-toggle svg.expanded{transform:rotate(180deg)}.cd-chapter-number{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--primary-color, #c8a97e)}.cd-chapter-title{flex:1;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e)}.cd-chapter-meta{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--text-secondary, #64748b)}.cd-chapter-quiz-badge{padding:.125rem .5rem;background:#a855f71a;color:#a855f7;border-radius:4px;font-size:.75rem;font-weight:500}.cd-chapter-free-badge{padding:.125rem .5rem;background:#22c55e1a;color:#22c55e;border-radius:4px;font-size:.75rem;font-weight:500}.cd-lessons-list{padding:.5rem 1rem 1rem;background:var(--surface-primary, #fff)}.cd-lesson{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--border-color, #e2e8f0)}.cd-lesson:last-child{border-bottom:none}.cd-lesson-number{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--border-color, #e2e8f0);border-radius:50%;font-size:.75rem;color:var(--text-secondary, #64748b)}.cd-lesson-type{color:var(--text-tertiary, #94a3b8)}.cd-lesson-title{flex:1;font-size:.875rem;color:var(--text-primary, #1a1a2e)}.cd-lesson-duration{font-size:.75rem;color:var(--text-secondary, #64748b)}.cd-lesson-free{padding:.125rem .375rem;background:#22c55e1a;color:#22c55e;border-radius:4px;font-size:.625rem;font-weight:500}.cd-actions-section{background:var(--surface-primary, #fff);border-radius:12px;padding:1.5rem;border:1px solid var(--border-color, #e2e8f0)}.cd-actions-section h2{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.cd-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.cd-action-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;text-decoration:none;cursor:pointer;transition:all .15s}.cd-action-card:hover{background:var(--surface-tertiary, #f1f5f9);border-color:var(--primary-color, #c8a97e)}.cd-action-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--surface-primary, #fff);border-radius:10px;color:var(--primary-color, #c8a97e)}.cd-action-content{display:flex;flex-direction:column}.cd-action-title{font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e)}.cd-action-desc{font-size:.8125rem;color:var(--text-secondary, #64748b)}:root.dark .cd-page{background:var(--bg-primary, #0f0f0f)}:root.dark .cd-header{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}:root.dark .cd-title,:root.dark .cd-section-header h2,:root.dark .cd-actions-section h2,:root.dark .cd-description-container h2{color:var(--text-primary, #fff)}:root.dark .cd-overview,:root.dark .cd-content-section,:root.dark .cd-actions-section{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}:root.dark .cd-chapter{border-color:var(--border-color, #2a2a2a)}:root.dark .cd-chapter-header{background:var(--surface-secondary, #252525)}:root.dark .cd-chapter-header:hover{background:var(--surface-tertiary, #333)}:root.dark .cd-chapter-title,:root.dark .cd-lesson-title,:root.dark .cd-stat-value,:root.dark .cd-action-title{color:var(--text-primary, #fff)}:root.dark .cd-lessons-list{background:var(--surface-primary, #1a1a1a)}:root.dark .cd-lesson{border-color:var(--border-color, #333)}:root.dark .cd-action-card{background:var(--surface-secondary, #252525);border-color:var(--border-color, #2a2a2a)}:root.dark .cd-action-card:hover{background:var(--surface-tertiary, #333)}:root.dark .cd-action-icon{background:var(--surface-primary, #1a1a1a)}:root.dark .cd-btn-secondary{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}:root.dark .cd-btn-secondary:hover{background:var(--surface-tertiary, #333)}:root:not(.dark) .cd-page{background:#f8fafc}:root:not(.dark) .cd-header{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cd-overview,:root:not(.dark) .cd-content-section,:root:not(.dark) .cd-actions-section{background:#fff;border-color:#e2e8f0}:root:not(.dark) .cd-chapter-header{background:#f8fafc}:root:not(.dark) .cd-chapter-header:hover{background:#f1f5f9}:root:not(.dark) .cd-lessons-list{background:#fff}:root:not(.dark) .cd-action-card{background:#f8fafc;border-color:#e2e8f0}:root:not(.dark) .cd-action-card:hover{background:#f1f5f9}:root:not(.dark) .cd-action-icon{background:#fff}@media(max-width:768px){.cd-header{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.cd-header-actions{width:100%;justify-content:flex-end}.cd-content{padding:1rem}.cd-overview-main{grid-template-columns:1fr}.cd-stats{grid-template-columns:repeat(2,1fr)}.cd-actions-grid{grid-template-columns:1fr}.cd-chapter-header{flex-wrap:wrap}.cd-chapter-meta{width:100%;margin-top:.5rem;padding-left:2rem}}.ws-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.ws-stat-card{position:relative;display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.ws-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-blue-light, #3b82f6));opacity:0;transition:opacity .3s ease}.ws-stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014}.ws-stat-card:hover:before{opacity:1}.ws-stat-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;flex-shrink:0;transition:transform .3s ease}.ws-stat-card:hover .ws-stat-icon{transform:scale(1.05)}.ws-stat-icon.blue{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.ws-stat-icon.green{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:#22c55e;box-shadow:0 4px 12px #22c55e26}.ws-stat-icon.purple{background:linear-gradient(135deg,#a855f726,#a855f70d);color:#a855f7;box-shadow:0 4px 12px #a855f726}.ws-stat-content{display:flex;flex-direction:column;gap:.25rem}.ws-stat-value{font-size:2rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.ws-stat-label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.04em}.ws-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:1.25rem;background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border-color, rgba(0, 0, 0, .06))}.ws-search{display:flex;align-items:center;gap:.875rem;flex:1;min-width:280px;padding:.75rem 1.25rem;background:var(--surface-secondary, #f8fafc);border:2px solid transparent;border-radius:12px;transition:all .2s ease}.ws-search:focus-within{background:var(--surface-primary, #fff);border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.ws-search svg{color:var(--text-tertiary, #94a3b8);flex-shrink:0;transition:color .2s}.ws-search:focus-within svg{color:var(--gpe-blue, #1a56db)}.ws-search input{flex:1;border:none;background:transparent;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e);outline:none}.ws-search input::placeholder{color:var(--text-tertiary, #94a3b8);font-weight:400}.ws-filter-select{padding:.75rem 2.5rem .75rem 1rem;background:var(--surface-secondary, #f8fafc);border:2px solid transparent;border-radius:12px;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;transition:all .2s ease}.ws-filter-select:hover{background-color:var(--surface-tertiary, #f1f5f9)}.ws-filter-select:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.ws-clear-filters{padding:.75rem 1.25rem;background:transparent;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.875rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;text-decoration:none;transition:all .2s ease}.ws-clear-filters:hover{background:var(--danger-color, #dc2626);border-color:var(--danger-color, #dc2626);color:#fff}.ws-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.ws-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.ws-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.ws-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px}.ws-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.75rem}.ws-card{position:relative;display:flex;flex-direction:column;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow:visible;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:1}.ws-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px #0000001a,0 8px 16px #0000000f}.ws-card:has(.ws-action-dropdown:hover),.ws-card:has(.ws-action-dropdown:focus-within){z-index:100}.ws-card-header{position:relative;height:180px;overflow:hidden;border-radius:20px 20px 0 0}.ws-card-image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}.ws-card:hover .ws-card-image{transform:scale(1.08)}.ws-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a56db,#7c3aed,#1a56db);background-size:200% 200%;animation:gradientShift 8s ease infinite;color:#ffffffb3}.ws-card-badges{position:absolute;top:1rem;left:1rem;display:flex;gap:.5rem;z-index:10}.ws-status-badge{padding:.375rem .875rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026}.ws-status-badge.draft{background:#fbbf24f2;color:#78350f}.ws-status-badge.published{background:#22c55ef2;color:#fff;box-shadow:0 2px 12px #22c55e66}.ws-status-badge.archived{background:#64748bf2;color:#fff}.ws-card-body{flex:1;padding:1.5rem}.ws-card-title{font-size:1.1875rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.01em}.ws-card-description{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0 0 1.25rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ws-card-meta{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.ws-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b)}.ws-meta-item svg{color:var(--text-tertiary, #94a3b8);opacity:.8}.ws-card-price{display:flex;align-items:baseline;gap:.625rem}.ws-price-current{font-size:1.375rem;font-weight:800;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ws-card-actions{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e2e8f0);background:var(--surface-secondary, #f8fafc);border-radius:0 0 20px 20px}.ws-action-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-secondary, #64748b);text-decoration:none;cursor:pointer;transition:all .2s ease}.ws-action-btn:hover{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #1a56db40}.ws-action-btn svg{transition:transform .2s ease}.ws-action-btn:hover svg{transform:scale(1.1)}.ws-action-dropdown{position:relative;margin-left:auto}.ws-action-more{padding:.625rem;background:transparent;border:1px solid transparent}.ws-action-more:hover{background:var(--surface-primary, #fff);border-color:var(--border-color, #e2e8f0)}.ws-dropdown-menu{position:absolute;right:0;top:100%;margin-top:.5rem;min-width:180px;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;box-shadow:0 10px 40px #00000026,0 4px 12px #0000001a;z-index:1000;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ws-action-dropdown:hover .ws-dropdown-menu,.ws-action-dropdown:focus-within .ws-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.ws-dropdown-menu button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1.25rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .15s ease}.ws-dropdown-menu button:hover{background:var(--surface-secondary, #f8fafc);padding-left:1.5rem}.ws-dropdown-menu button svg{opacity:.7}.ws-dropdown-menu button.ws-action-danger{color:#dc2626}.ws-dropdown-menu button.ws-action-danger:hover{background:#dc262614}.ws-pagination{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:3rem;padding:1.5rem}.ws-pagination-btn{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.5rem;background:var(--surface-primary, #fff);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);cursor:pointer;transition:all .2s ease}.ws-pagination-btn:hover:not(:disabled){background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #1a56db40}.ws-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.ws-pagination-info{font-size:.9375rem;font-weight:600;color:var(--text-secondary, #64748b);padding:.5rem 1rem;background:var(--surface-secondary, #f8fafc);border-radius:8px}[data-theme=dark] .ws-stat-card,[data-theme=dark] .ws-filters,[data-theme=dark] .ws-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .ws-card-actions{background:var(--surface-secondary)}[data-theme=dark] .ws-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .ws-dropdown-menu{background:var(--surface-primary);border-color:var(--border-color);box-shadow:0 10px 40px #0006,0 4px 12px #0000004d}[data-theme=dark] .ws-price-current{background:linear-gradient(135deg,var(--gpe-blue, #1a56db),#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .ws-search,[data-theme=dark] .ws-filter-select{background:var(--surface-secondary)}[data-theme=dark] .ws-action-btn,[data-theme=dark] .ws-pagination-btn{background:var(--surface-primary);border-color:var(--border-color)}@media(max-width:768px){.ws-stats-row{grid-template-columns:1fr}.ws-filters{flex-direction:column}.ws-search{min-width:unset;width:100%}.ws-filter-select{width:100%}.ws-grid{grid-template-columns:1fr;gap:1.25rem}.ws-card-actions{flex-wrap:wrap;gap:.5rem}.ws-action-btn{flex:1;justify-content:center;min-width:calc(50% - .25rem)}.ws-action-dropdown{margin-left:0;width:100%}.ws-action-more{width:100%;justify-content:center}.ws-pagination{flex-direction:column;gap:1rem}.ws-pagination-btn{width:100%;justify-content:center}}@media(max-width:480px){.ws-stat-card{padding:1rem}.ws-stat-icon{width:48px;height:48px}.ws-stat-value{font-size:1.5rem}.ws-card-header{height:140px}.ws-card-body{padding:1.25rem}}.ws-wizard-steps{display:flex;align-items:center;justify-content:center;padding:1.5rem 2rem;margin-bottom:2rem;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));overflow-x:auto;gap:0}.ws-wizard-step{display:flex;align-items:center;gap:.625rem;padding:.625rem 1rem;background:transparent;border:none;font-size:.875rem;color:var(--text-tertiary, #94a3b8);cursor:pointer;transition:all .3s ease;white-space:nowrap;position:relative}.ws-wizard-step:hover:not(:disabled){color:var(--text-secondary, #64748b)}.ws-wizard-step:disabled{cursor:not-allowed;opacity:.4}.ws-wizard-step.active{color:var(--primary-color, #c4a77d)}.ws-wizard-step.completed{color:var(--success-color, #22c55e)}.ws-step-indicator{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--surface-secondary, #f1f5f9);border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.ws-wizard-step:hover:not(:disabled) .ws-step-indicator{transform:scale(1.05)}.ws-wizard-step.active .ws-step-indicator{background:linear-gradient(135deg,var(--primary-color, #c4a77d),#a08563);border-color:transparent;color:#fff;box-shadow:0 4px 16px #c4a77d66}.ws-wizard-step.completed .ws-step-indicator{background:var(--success-color, #22c55e);border-color:transparent;color:#fff;box-shadow:0 4px 12px #22c55e4d}.ws-step-title{font-weight:600;font-size:.8125rem;letter-spacing:.01em}.ws-wizard-step.active .ws-step-title{color:var(--text-primary, #1a1a2e)}.ws-step-connector{width:48px;height:3px;background:var(--border-color, #e2e8f0);margin:0 .5rem;border-radius:2px;position:relative;overflow:hidden}.ws-step-connector:after{content:"";position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,var(--primary-color, #c4a77d),var(--success-color, #22c55e));transition:width .4s ease;border-radius:2px}.ws-wizard-step.completed+.ws-wizard-step .ws-step-connector:after,.ws-wizard-step.active+.ws-wizard-step .ws-step-connector:after{width:100%}.ws-wizard-content{background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));padding:2.5rem;margin-bottom:1.5rem;min-height:450px}.ws-form-section{max-width:720px;margin:0 auto}.ws-section-title{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem;letter-spacing:-.02em;position:relative}.ws-section-title:after{content:"";display:block;width:48px;height:4px;background:linear-gradient(90deg,var(--primary-color, #c4a77d),transparent);border-radius:2px;margin-top:.75rem}.ws-section-description{color:var(--text-secondary, #64748b);font-size:1rem;line-height:1.6;margin:0 0 2.5rem}.ws-form-field{margin-bottom:1.75rem}.ws-form-field label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.625rem;letter-spacing:.01em}.ws-form-field label .required{color:#dc2626;margin-left:.25rem}.ws-form-field input[type=text],.ws-form-field input[type=number],.ws-form-field input[type=url],.ws-form-field input[type=date],.ws-form-field input[type=time],.ws-form-field textarea,.ws-form-field select{width:100%;padding:.875rem 1.25rem;font-size:.9375rem;font-weight:500;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.ws-form-field input:hover,.ws-form-field textarea:hover,.ws-form-field select:hover{border-color:var(--text-tertiary, #94a3b8)}.ws-form-field input:focus,.ws-form-field textarea:focus,.ws-form-field select:focus{outline:none;border-color:var(--primary-color, #c4a77d);box-shadow:0 0 0 4px #c4a77d1f}.ws-form-field input::placeholder,.ws-form-field textarea::placeholder{color:var(--text-tertiary, #94a3b8);font-weight:400}.ws-form-field textarea{resize:vertical;min-height:120px}.ws-field-hint{display:block;font-size:.8125rem;color:var(--text-tertiary, #94a3b8);margin-top:.5rem;line-height:1.5}.ws-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.ws-image-preview{position:relative;margin-top:1rem;max-width:320px;border-radius:16px;overflow:hidden;border:2px solid var(--border-color, #e2e8f0);box-shadow:0 4px 12px #00000014}.ws-image-preview img{width:100%;height:auto;display:block}.ws-info-box{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#c4a77d14,#c4a77d0a);border:1px solid rgba(196,167,125,.2);border-radius:14px;margin-top:2rem}.ws-info-box svg{flex-shrink:0;color:var(--primary-color, #c4a77d)}.ws-info-box p{font-size:.875rem;color:var(--text-primary, #1a1a2e);margin:0;line-height:1.6}.ws-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:linear-gradient(180deg,var(--surface-secondary, #fafbfc) 0%,var(--surface-primary, #fff) 100%);border-radius:16px;border:2px dashed var(--border-color, #e2e8f0)}.ws-empty-state svg{color:var(--primary-color, #c4a77d);opacity:.6;margin-bottom:1.5rem}.ws-empty-state h3{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .625rem}.ws-empty-state p{color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px;line-height:1.6}.ws-program-days{display:flex;flex-direction:column;gap:1.75rem}.ws-day-card{background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000a;transition:all .3s ease}.ws-day-card:hover{box-shadow:0 4px 20px #00000014}.ws-day-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#c4a77d0f,#c4a77d05);border-bottom:1px solid var(--border-color, #e2e8f0)}.ws-day-info{display:flex;align-items:center;gap:1.25rem}.ws-day-title-input{width:auto;min-width:220px;padding:.625rem 1rem;font-size:1rem;font-weight:700;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--text-primary, #1a1a2e);transition:all .2s ease}.ws-day-title-input:hover{background:var(--surface-primary, #fff);border-color:var(--border-color, #e2e8f0)}.ws-day-title-input:focus{border-color:var(--primary-color, #c4a77d);background:var(--surface-primary, #fff);box-shadow:0 0 0 4px #c4a77d1f}.ws-day-date-input{padding:.625rem 1rem;font-size:.875rem;font-weight:500;border:2px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--surface-primary, #fff);color:var(--text-secondary, #64748b);transition:all .2s ease}.ws-day-date-input:focus{border-color:var(--primary-color, #c4a77d);box-shadow:0 0 0 4px #c4a77d1f;outline:none}.ws-day-remove{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:2px solid transparent;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:10px;transition:all .2s ease}.ws-day-remove:hover{background:#dc262614;border-color:#dc262633;color:#dc2626}.ws-slots{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem;background:var(--surface-secondary, #f8fafc)}.ws-slot-card{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;background:var(--surface-primary, #fff);border:2px solid var(--border-color, #e2e8f0);border-radius:12px;position:relative;transition:all .2s ease}.ws-slot-card:hover{border-color:var(--primary-color-light, rgba(196, 167, 125, .4));box-shadow:0 2px 12px #0000000f}.ws-slot-card.session{border-left:4px solid var(--primary-color, #c4a77d)}.ws-slot-card.break{border-left:4px solid #fbbf24;background:#fbbf240a}.ws-slot-card.lunch{border-left:4px solid #22c55e;background:#22c55e0a}.ws-slot-time{display:flex;align-items:center;gap:.625rem;flex-shrink:0;padding:.5rem .75rem;background:var(--surface-secondary, #f8fafc);border-radius:8px}.ws-slot-time input[type=time]{width:90px;padding:.5rem .625rem;font-size:.8125rem;font-weight:600;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.ws-slot-time input[type=time]:focus{border-color:var(--primary-color, #c4a77d);outline:none}.ws-slot-time span{color:var(--text-tertiary, #94a3b8);font-weight:500}.ws-slot-content{flex:1;display:flex;flex-direction:column;gap:.625rem}.ws-slot-title-input{padding:.5rem .75rem;font-size:.9375rem;font-weight:600;border:2px solid transparent;border-radius:8px;background:transparent;color:var(--text-primary, #1a1a2e);transition:all .2s ease}.ws-slot-title-input:hover{background:var(--surface-secondary, #f8fafc)}.ws-slot-title-input:focus{border-color:var(--primary-color, #c4a77d);background:var(--surface-primary, #fff);box-shadow:0 0 0 4px #c4a77d1f}.ws-slot-meta{display:flex;align-items:center;gap:1rem}.ws-slot-type-select{padding:.375rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--surface-secondary, #f8fafc);color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease}.ws-slot-type-select:focus{border-color:var(--primary-color, #c4a77d);outline:none}.ws-slot-speaker-input{flex:1;max-width:200px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--surface-primary, #fff);color:var(--text-secondary, #64748b);transition:all .2s ease}.ws-slot-speaker-input:focus{border-color:var(--primary-color, #c4a77d);outline:none}.ws-slot-speaker-input::placeholder{color:var(--text-tertiary, #94a3b8)}.ws-slot-remove{position:absolute;top:.625rem;right:.625rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:6px;transition:all .2s ease;opacity:0}.ws-slot-card:hover .ws-slot-remove{opacity:1}.ws-slot-remove:hover{background:#dc262614;color:#dc2626}.ws-add-slot{display:flex;align-items:center;justify-content:center;gap:.625rem;padding:.75rem 1.25rem;background:transparent;border:2px dashed var(--border-color, #e2e8f0);border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease}.ws-add-slot:hover{border-color:var(--primary-color, #c4a77d);color:var(--primary-color, #c4a77d);background:#c4a77d0a}.ws-add-day{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem;background:var(--surface-primary, #fff);border:2px dashed var(--border-color, #e2e8f0);border-radius:16px;font-size:.9375rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s ease}.ws-add-day:hover{border-color:var(--primary-color, #c4a77d);color:var(--primary-color, #c4a77d);background:#c4a77d0a;transform:translateY(-2px);box-shadow:0 4px 12px #c4a77d26}.ws-add-day svg,.ws-add-slot svg{transition:transform .2s ease}.ws-add-day:hover svg,.ws-add-slot:hover svg{transform:scale(1.1)}.ws-wizard-nav{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:var(--surface-primary, #fff);border-radius:20px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06))}.ws-wizard-nav-right{display:flex;gap:.875rem}[data-theme=dark] .ws-wizard-steps,[data-theme=dark] .ws-wizard-content,[data-theme=dark] .ws-wizard-nav,[data-theme=dark] .ws-day-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .ws-day-header{background:linear-gradient(135deg,#c4a77d1a,#c4a77d0a)}[data-theme=dark] .ws-slots{background:var(--surface-secondary)}[data-theme=dark] .ws-slot-card{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .ws-empty-state{background:linear-gradient(180deg,var(--surface-secondary) 0%,var(--surface-primary) 100%)}[data-theme=dark] .ws-info-box{background:linear-gradient(135deg,#c4a77d1f,#c4a77d0f);border-color:#c4a77d40}@media(max-width:768px){.ws-wizard-steps{justify-content:flex-start;padding:1rem 1.25rem;gap:.25rem}.ws-step-title{display:none}.ws-step-indicator{width:36px;height:36px}.ws-step-connector{width:24px;margin:0 .25rem}.ws-wizard-content{padding:1.75rem;border-radius:16px}.ws-section-title{font-size:1.5rem}.ws-form-row{grid-template-columns:1fr}.ws-wizard-nav{flex-direction:column;gap:1rem;padding:1.25rem;border-radius:16px}.ws-wizard-nav-right{width:100%;flex-direction:column}.ws-wizard-nav-right .as-btn{width:100%;justify-content:center}.ws-day-header{flex-direction:column;align-items:stretch;gap:.875rem;padding:1rem 1.25rem}.ws-day-info{flex-direction:column;align-items:stretch;gap:.75rem}.ws-day-title-input{width:100%;min-width:auto}.ws-day-remove{position:absolute;top:.75rem;right:.75rem}.ws-slot-card{flex-direction:column;align-items:stretch;padding:1rem;gap:.875rem}.ws-slot-time{justify-content:flex-start;width:100%}.ws-slot-remove{opacity:1;top:.5rem;right:.5rem}.ws-slot-meta{flex-wrap:wrap;gap:.625rem}.ws-slot-speaker-input{max-width:none;width:100%}.ws-slots{padding:1rem}}@media(max-width:480px){.ws-step-connector{width:16px}.ws-wizard-content{padding:1.25rem;min-height:380px}.ws-section-title{font-size:1.25rem}.ws-form-field input,.ws-form-field textarea,.ws-form-field select{padding:.75rem 1rem}.ws-slot-time{flex-wrap:wrap}.ws-slot-time input[type=time]{width:80px;padding:.375rem .5rem}}.wd-page{min-height:100vh;background:var(--bg-primary, #f8fafc)}.wd-loading,.wd-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #64748b)}.wd-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--gpe-blue, #1a56db);border-radius:50%;animation:wd-spin .8s linear infinite}@keyframes wd-spin{to{transform:rotate(360deg)}}.wd-error h2{margin:0;color:var(--text-primary, #1a1a2e)}.wd-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:var(--surface-primary, #fff);border-bottom:1px solid var(--border-color, #e2e8f0)}.wd-header-left{display:flex;align-items:center;gap:1.5rem}.wd-back-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:var(--text-secondary, #64748b);text-decoration:none;border-radius:8px;transition:all .15s}.wd-back-link:hover{background:var(--surface-secondary, #f1f5f9);color:var(--text-primary, #1a1a2e)}.wd-header-info{display:flex;flex-direction:column;gap:.25rem}.wd-header-title-row{display:flex;align-items:center;gap:.75rem}.wd-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-location{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-secondary, #64748b)}.wd-status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.wd-status-draft{background:#fbbf2426;color:#b45309}.wd-status-published{background:#22c55e26;color:#15803d}.wd-status-archived{background:#64748b26;color:#475569}.wd-header-actions{display:flex;gap:.75rem}.wd-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:10px;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s}.wd-btn-primary{background:linear-gradient(135deg,var(--gpe-blue, #1a56db),#7c3aed);color:#fff;border:none;box-shadow:0 2px 8px #c4a77d4d}.wd-btn-primary:hover{background:linear-gradient(135deg,#b8996e,#8f7555);transform:translateY(-1px);box-shadow:0 4px 12px #c4a77d66}.wd-btn-secondary{background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);border:1px solid var(--border-color, #e2e8f0)}.wd-btn-secondary:hover{background:var(--surface-secondary, #f1f5f9);border-color:var(--gpe-blue, #1a56db)}.wd-content{max-width:1000px;margin:0 auto;padding:2rem}.wd-overview{background:var(--surface-primary, #fff);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e2e8f0);box-shadow:0 1px 3px #0000000f}.wd-overview-main{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;margin-bottom:1.5rem}.wd-image-container{width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--surface-secondary, #f1f5f9)}.wd-image{width:100%;height:100%;object-fit:cover}.wd-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a56db,#7c3aed,#1a56db);background-size:200% 200%;animation:gradientShift 8s ease infinite;color:#fff9}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.wd-description-container h2{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-description{margin:0;font-size:.9375rem;color:var(--text-secondary, #64748b);line-height:1.6}.wd-description.wd-empty{font-style:italic;color:var(--text-tertiary, #94a3b8)}.wd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #e2e8f0)}.wd-stat{display:flex;align-items:center;gap:.75rem}.wd-stat-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px}.wd-stat-sessions{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#3b82f6}.wd-stat-upcoming{background:linear-gradient(135deg,#a855f726,#a855f70d);color:#a855f7}.wd-stat-registrations{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:#22c55e}.wd-stat-price{background:linear-gradient(135deg,#c4a77d26,#c4a77d0d);color:#1a56db}.wd-stat-content{display:flex;flex-direction:column}.wd-stat-value{font-size:1.125rem;font-weight:700;color:var(--text-primary, #1a1a2e)}.wd-stat-label{font-size:.8125rem;color:var(--text-secondary, #64748b)}.wd-sessions-section{background:var(--surface-primary, #fff);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e2e8f0);box-shadow:0 1px 3px #0000000f}.wd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.wd-section-header h2{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-link{font-size:.875rem;font-weight:500;color:var(--gpe-blue, #1a56db);text-decoration:none;transition:color .15s}.wd-link:hover{color:#7c3aed;text-decoration:underline}.wd-empty-content{display:flex;flex-direction:column;align-items:center;padding:3rem 2rem;color:var(--text-tertiary, #94a3b8);text-align:center}.wd-empty-content p{margin:1rem 0 1.5rem}.wd-sessions-list{display:grid;gap:1rem}.wd-session-card{padding:1.25rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;transition:all .2s}.wd-session-card:hover{background:var(--surface-tertiary, #f1f5f9);border-color:var(--gpe-blue, #1a56db)}.wd-session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.wd-session-title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-session-badge{padding:.25rem .625rem;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase}.wd-session-badge.pending{background:#fbbf2426;color:#b45309}.wd-session-badge.confirmed{background:#22c55e26;color:#15803d}.wd-session-badge.cancelled{background:#ef444426;color:#dc2626}.wd-session-badge.completed{background:#64748b26;color:#475569}.wd-session-dates{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary, #64748b);margin-bottom:.75rem}.wd-session-stats{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:var(--text-secondary, #64748b)}.wd-session-stat strong{color:var(--text-primary, #1a1a2e)}.wd-session-stat-divider{width:1px;height:12px;background:var(--border-color, #e2e8f0)}.wd-session-quota{margin-top:.75rem;display:flex;align-items:center;gap:.75rem}.wd-quota-bar{flex:1;height:6px;background:var(--border-color, #e2e8f0);border-radius:3px;overflow:hidden}.wd-quota-progress{height:100%;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),#7c3aed);border-radius:3px;transition:width .3s ease}.wd-quota-text{font-size:.75rem;font-weight:500;color:var(--text-secondary, #64748b);white-space:nowrap}.wd-actions-section{background:var(--surface-primary, #fff);border-radius:16px;padding:1.5rem;border:1px solid var(--border-color, #e2e8f0);box-shadow:0 1px 3px #0000000f}.wd-actions-section h2{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.wd-action-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;text-decoration:none;cursor:pointer;transition:all .2s}.wd-action-card:hover{background:var(--surface-tertiary, #f1f5f9);border-color:var(--gpe-blue, #1a56db);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.wd-action-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--surface-primary, #fff);border-radius:12px;color:var(--gpe-blue, #1a56db);box-shadow:0 1px 3px #0000000f}.wd-action-icon.wd-action-publish{background:#22c55e1a;color:#22c55e}.wd-action-content{display:flex;flex-direction:column}.wd-action-title{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wd-action-desc{font-size:.8125rem;color:var(--text-secondary, #64748b)}[data-theme=dark] .wd-page{background:var(--bg-primary, #0f0f0f)}[data-theme=dark] .wd-header{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}[data-theme=dark] .wd-title,[data-theme=dark] .wd-section-header h2,[data-theme=dark] .wd-actions-section h2,[data-theme=dark] .wd-description-container h2{color:var(--text-primary, #fff)}[data-theme=dark] .wd-overview,[data-theme=dark] .wd-sessions-section,[data-theme=dark] .wd-actions-section{background:var(--surface-primary, #1a1a1a);border-color:var(--border-color, #2a2a2a)}[data-theme=dark] .wd-session-card{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}[data-theme=dark] .wd-session-card:hover{background:var(--surface-tertiary, #333)}[data-theme=dark] .wd-session-title,[data-theme=dark] .wd-stat-value,[data-theme=dark] .wd-action-title,[data-theme=dark] .wd-session-stat strong{color:var(--text-primary, #fff)}[data-theme=dark] .wd-action-card{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333)}[data-theme=dark] .wd-action-card:hover{background:var(--surface-tertiary, #333)}[data-theme=dark] .wd-action-icon{background:var(--surface-primary, #1a1a1a)}[data-theme=dark] .wd-btn-secondary{background:var(--surface-secondary, #252525);border-color:var(--border-color, #333);color:var(--text-primary, #fff)}[data-theme=dark] .wd-btn-secondary:hover{background:var(--surface-tertiary, #333)}@media(max-width:768px){.wd-header{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.wd-header-actions{width:100%;justify-content:flex-end}.wd-content{padding:1rem}.wd-overview-main{grid-template-columns:1fr}.wd-stats{grid-template-columns:repeat(2,1fr)}.wd-actions-grid{grid-template-columns:1fr}}.wss-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:.5rem}.wss-breadcrumb a{color:var(--gpe-blue, #1a56db);text-decoration:none;font-weight:500;transition:color .15s}.wss-breadcrumb a:hover{color:#a08563;text-decoration:underline}.wss-breadcrumb svg{color:var(--text-tertiary, #94a3b8)}.wss-breadcrumb span{color:var(--text-secondary, #64748b)}.wss-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;background:linear-gradient(180deg,var(--surface-primary, #fff) 0%,var(--surface-secondary, #fafbfc) 100%);border-radius:20px;border:2px dashed var(--border-color, #e2e8f0);text-align:center}.wss-empty svg{color:var(--gpe-blue, #1a56db);opacity:.6;margin-bottom:2rem}.wss-empty h3{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem}.wss-empty p{font-size:1rem;color:var(--text-secondary, #64748b);margin:0 0 2rem;max-width:400px}.wss-list{display:flex;flex-direction:column;gap:1.25rem}.wss-card{background:var(--surface-primary, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid var(--border-color, rgba(0, 0, 0, .06));padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.wss-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a,0 2px 8px #0000000f}.wss-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.wss-card-title{font-size:1.1875rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0}.wss-status-badge{padding:.375rem .875rem;border-radius:100px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.wss-status-badge.pending{background:#fbbf2426;color:#b45309}.wss-status-badge.confirmed{background:#22c55e26;color:#15803d}.wss-status-badge.cancelled{background:#ef444426;color:#dc2626}.wss-status-badge.completed{background:#64748b26;color:#475569}.wss-card-dates{margin-bottom:1rem}.wss-date{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--text-secondary, #64748b)}.wss-date svg{color:var(--gpe-blue, #1a56db);opacity:.7}.wss-quota{margin-bottom:1rem;padding:1.25rem;background:var(--surface-secondary, #f8fafc);border-radius:12px;border:1px solid var(--border-color, rgba(0, 0, 0, .04))}.wss-quota-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.wss-quota-label{font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a2e)}.wss-quota-value{font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b)}.wss-quota-max{color:var(--text-tertiary, #94a3b8)}.wss-quota-bar{height:8px;background:var(--border-color, #e2e8f0);border-radius:4px;overflow:hidden}.wss-quota-progress{height:100%;border-radius:4px;transition:width .3s ease}.wss-quota-progress.green{background:linear-gradient(90deg,#22c55e,#16a34a)}.wss-quota-progress.yellow{background:linear-gradient(90deg,#f59e0b,#d97706)}.wss-quota-progress.red{background:linear-gradient(90deg,#ef4444,#dc2626)}.wss-quota-hint{font-size:.8125rem;color:var(--text-secondary, #64748b);margin:.75rem 0 0;font-style:italic}.wss-card-stats{display:flex;align-items:center;gap:1.5rem;padding:1.25rem;background:var(--surface-secondary, #f8fafc);border-radius:12px;margin-bottom:1rem;border:1px solid var(--border-color, rgba(0, 0, 0, .04))}.wss-stat{display:flex;flex-direction:column;align-items:center}.wss-stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary, #1a1a2e);line-height:1;letter-spacing:-.02em}.wss-stat-label{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-top:.25rem;text-transform:uppercase;letter-spacing:.04em}.wss-stat-divider{width:1px;height:40px;background:var(--border-color, #e2e8f0)}.wss-days-summary{margin-bottom:1rem;padding:1.25rem;background:var(--surface-secondary, #f8fafc);border-radius:12px;border:1px solid var(--border-color, rgba(0, 0, 0, .04))}.wss-days-title{font-size:.875rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.04em}.wss-days-list{display:flex;flex-direction:column;gap:.5rem}.wss-day-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface-primary, #fff);border-radius:8px;font-size:.875rem;border:1px solid var(--border-color, rgba(0, 0, 0, .04));transition:all .15s}.wss-day-item:hover{border-color:var(--gpe-blue, #1a56db)}.wss-day-date{color:var(--gpe-blue, #1a56db);min-width:100px;font-weight:600}.wss-day-name{flex:1;color:var(--text-primary, #1a1a2e);font-weight:500}.wss-day-slots{color:var(--text-tertiary, #94a3b8);font-size:.8125rem}.wss-card-actions{display:flex;flex-wrap:wrap;gap:.5rem}.wss-action-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--surface-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-secondary, #64748b);text-decoration:none;cursor:pointer;transition:all .2s ease}.wss-action-btn:hover{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #1a56db40}.wss-action-btn.success{color:#15803d;border-color:#22c55e;background:#22c55e14}.wss-action-btn.success:hover{background:#22c55e;border-color:#22c55e;color:#fff;box-shadow:0 4px 12px #22c55e4d}.wss-action-btn.warning{color:#b45309;border-color:#f59e0b;background:#f59e0b14}.wss-action-btn.warning:hover{background:#f59e0b;border-color:#f59e0b;color:#fff;box-shadow:0 4px 12px #f59e0b4d}.wss-action-btn.danger{color:#dc2626;border-color:#ef4444;background:#ef444414}.wss-action-btn.danger:hover{background:#ef4444;border-color:#ef4444;color:#fff;box-shadow:0 4px 12px #ef44444d}.wss-status-actions{display:flex;gap:.5rem;margin-left:auto}.wss-modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.wss-modal{background:var(--surface-primary, #fff);border-radius:20px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.wss-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.wss-modal-header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1a1a2e);margin:0}.wss-modal-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-tertiary, #94a3b8);cursor:pointer;border-radius:10px;transition:all .2s}.wss-modal-close:hover{background:var(--surface-secondary, #f8fafc);color:var(--text-primary, #1a1a2e)}.wss-modal-body{padding:1.5rem}.wss-form-field{margin-bottom:1.25rem}.wss-form-field label{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin-bottom:.5rem}.wss-form-field label .required{color:#dc2626}.wss-form-field input{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:2px solid var(--border-color, #e2e8f0);border-radius:12px;background:var(--surface-primary, #fff);color:var(--text-primary, #1a1a2e);transition:all .2s ease}.wss-form-field input:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 4px #1a56db1a}.wss-field-hint{display:block;font-size:.8125rem;color:var(--text-tertiary, #94a3b8);margin-top:.375rem}.wss-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.wss-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border-color, #e2e8f0)}[data-theme=dark] .wss-card,[data-theme=dark] .wss-modal{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .wss-quota,[data-theme=dark] .wss-card-stats,[data-theme=dark] .wss-days-summary{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .wss-day-item{background:var(--surface-primary);border-color:var(--border-color)}[data-theme=dark] .wss-empty{background:linear-gradient(180deg,var(--surface-primary) 0%,var(--surface-secondary) 100%)}[data-theme=dark] .wss-form-field input{background:var(--surface-secondary);border-color:var(--border-color)}[data-theme=dark] .wss-action-btn{background:var(--surface-primary);border-color:var(--border-color)}@media(max-width:768px){.wss-card-stats{flex-wrap:wrap;gap:1rem}.wss-stat-divider{display:none}.wss-stat{flex:1;min-width:80px}.wss-card-actions{flex-direction:column}.wss-status-actions{margin-left:0;width:100%;flex-wrap:wrap}.wss-form-row{grid-template-columns:1fr}.wss-day-item{flex-direction:column;align-items:flex-start;gap:.25rem}}.payment-validation-page{padding:2rem;max-width:1000px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.header-content h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:.5rem}.page-subtitle{color:var(--gray-600);font-size:.938rem}.btn-refresh{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;color:var(--gray-700);cursor:pointer;transition:all .2s}.btn-refresh svg{width:16px;height:16px}.btn-refresh:hover{background:var(--gray-50);border-color:var(--gray-400)}.validation-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:1.25rem;text-align:center;box-shadow:0 1px 3px #0000001a}.stat-card.pending{border-top:4px solid #f59e0b}.stat-card.completed{border-top:4px solid #10b981}.stat-card.total{border-top:4px solid #3b82f6}.stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.stat-label{font-size:.813rem;color:var(--gray-500)}.payments-list{display:flex;flex-direction:column;gap:1rem}.payment-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.payment-main{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;border-bottom:1px solid var(--gray-100)}.user-info{display:flex;gap:1rem;align-items:center}.user-avatar{width:48px;height:48px;background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-700) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.875rem}.user-name{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:.125rem}.user-email{font-size:.813rem;color:var(--gray-500)}.payment-info{text-align:right}.program-title{font-size:.938rem;font-weight:500;color:var(--gray-800);margin-bottom:.125rem}.session-name{font-size:.813rem;color:var(--gray-500)}.payment-details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1rem 1.25rem;background:var(--gray-50)}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.688rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.025em}.detail-value{font-size:.875rem;color:var(--gray-900)}.detail-value.reference{font-family:monospace;font-weight:600}.detail-value.amount{font-weight:700;color:var(--primary-700)}.time-ago{color:var(--gray-500);font-size:.75rem;margin-left:.25rem}.btn-view-receipt{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#fff;border:1px solid var(--gray-300);border-radius:6px;font-size:.75rem;color:var(--gray-700);cursor:pointer;transition:all .2s}.btn-view-receipt svg{width:14px;height:14px}.btn-view-receipt:hover{background:var(--gray-50);border-color:var(--primary-500);color:var(--primary-600)}.no-receipt{color:var(--gray-400);font-style:italic;font-size:.813rem}.payment-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--gray-100)}.btn-reject,.btn-approve{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-reject{background:#fff;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-reject svg{width:16px;height:16px}.btn-reject:hover:not(:disabled){background:#fef2f2;border-color:#fecaca;color:#dc2626}.btn-approve{background:#10b981;border:none;color:#fff}.btn-approve svg{width:16px;height:16px}.btn-approve:hover:not(:disabled){background:#059669}.btn-approve:disabled,.btn-reject:disabled{opacity:.6;cursor:not-allowed}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px}.empty-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#d1fae5;border-radius:50%;display:flex;align-items:center;justify-content:center}.empty-icon svg{width:40px;height:40px;color:#10b981}.empty-state h3{font-size:1.25rem;color:var(--gray-900);margin-bottom:.5rem}.empty-state p{color:var(--gray-500)}.loading-state,.error-state{text-align:center;padding:4rem 2rem}.spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.error-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fee2e2;color:#dc2626;border-radius:50%;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.btn-retry{margin-top:1rem;padding:.625rem 1.5rem;background:var(--primary-600);color:#fff;border:none;border-radius:6px;cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.preview-modal,.reject-modal{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.preview-modal{max-width:800px}.preview-header,.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-200)}.preview-header h3,.modal-header h3{font-size:1.125rem;font-weight:600;color:var(--gray-900)}.modal-close{width:32px;height:32px;border:none;background:var(--gray-100);border-radius:50%;font-size:1.5rem;color:var(--gray-500);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--gray-200);color:var(--gray-700)}.preview-content{flex:1;overflow:auto;padding:1rem;background:var(--gray-100);display:flex;align-items:center;justify-content:center;min-height:400px}.preview-image{max-width:100%;max-height:60vh;border-radius:8px;box-shadow:0 4px 12px #00000026}.preview-pdf{width:100%;height:60vh;border:none;border-radius:8px}.preview-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end}.btn-download{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--primary-600);color:#fff;border-radius:8px;font-size:.875rem;text-decoration:none;transition:all .2s}.btn-download svg{width:16px;height:16px}.btn-download:hover{background:var(--primary-700)}.modal-body{padding:1.5rem}.reject-info{color:var(--gray-600);font-size:.938rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.5rem}.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;resize:vertical}.form-group textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f61a}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50)}.btn-cancel{padding:.625rem 1.25rem;background:#fff;border:1px solid var(--gray-300);border-radius:8px;font-size:.875rem;color:var(--gray-700);cursor:pointer}.btn-cancel:hover{background:var(--gray-50)}.btn-confirm-reject{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#dc2626;border:none;border-radius:8px;font-size:.875rem;color:#fff;cursor:pointer}.btn-confirm-reject:hover:not(:disabled){background:#b91c1c}.btn-confirm-reject:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.payment-validation-page{padding:1rem}.page-header{flex-direction:column;gap:1rem}.validation-stats{grid-template-columns:1fr}.payment-main{flex-direction:column;gap:1rem}.payment-info{text-align:left}.payment-details-grid{grid-template-columns:repeat(2,1fr)}.payment-actions{flex-direction:column}.btn-reject,.btn-approve{width:100%;justify-content:center}}.training-catalog-page{min-height:100vh}.training-tabs{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.training-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.training-tab:hover{border-color:var(--gpe-blue);color:var(--gpe-blue)}.training-tab.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.training-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.training-loading p{font-size:.9375rem;color:var(--gray-500)}.training-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;text-align:center}.training-empty svg{color:var(--gray-300)}.training-empty h3{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin:0}.training-empty p{font-size:.9375rem;color:var(--gray-500);margin:0;max-width:400px}.training-catalog-section{background:var(--gray-50)}.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.training-card{background:var(--white);border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--gray-100);text-decoration:none;transition:all var(--transition-slow)}.training-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--gpe-blue-100)}.training-card-image{position:relative;aspect-ratio:16 / 9;background:var(--gray-100);overflow:hidden}.training-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.training-card:hover .training-card-image img{transform:scale(1.05)}.training-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gpe-blue-50) 0%,var(--gpe-blue-100) 100%);color:var(--gpe-blue)}.training-level-badge{position:absolute;top:.75rem;left:.75rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.025em}.training-level-green{background:var(--gpe-green-50);color:var(--gpe-green)}.training-level-blue{background:var(--gpe-blue-50);color:var(--gpe-blue)}.training-level-purple{background:var(--gpe-purple-50);color:var(--gpe-purple)}.training-card-content{padding:1.25rem;flex:1;display:flex;flex-direction:column}.training-card-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.training-card-description{font-size:.875rem;line-height:1.5;color:var(--gray-500);margin:0 0 1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.training-card-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto}.training-meta-item{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-500)}.training-meta-item svg{color:var(--gray-400);flex-shrink:0}.training-meta-sessions{color:var(--gpe-green)}.training-meta-sessions svg{color:var(--gpe-green)}.training-card-footer{padding:1rem 1.25rem;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;background:var(--gray-50)}.training-card-price{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.training-card-cta{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;color:var(--gpe-blue);transition:gap var(--transition)}.training-card:hover .training-card-cta{gap:.625rem}.training-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2rem}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.5rem;padding:0 .75rem;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition)}.pagination-btn:hover:not(:disabled){border-color:var(--gpe-blue);color:var(--gpe-blue)}.pagination-btn.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{padding:0 .5rem;color:var(--gray-400)}.training-results-info{text-align:center;margin-top:1.5rem}.training-results-info p{font-size:.875rem;color:var(--gray-500);margin:0}.training-cta{background:var(--white)}.training-cta .cta-card{background:var(--gradient-blue);border-radius:var(--radius-xl);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.training-cta .cta-content h2{font-size:1.75rem;font-weight:700;color:var(--white);margin-bottom:.5rem}.training-cta .cta-content p{font-size:1rem;color:#fffc;max-width:500px}.training-cta .cta-actions{display:flex;gap:1rem;flex-shrink:0}.training-cta .cta-actions .btn-primary{background:var(--white);color:var(--gpe-blue);box-shadow:var(--shadow)}.training-cta .cta-actions .btn-primary:hover{background:var(--gray-50);transform:translateY(-2px)}.training-cta .cta-actions .btn-secondary{background:transparent;color:var(--white);border-color:#ffffff4d}.training-cta .cta-actions .btn-secondary:hover{background:#ffffff1a;border-color:#ffffff80}[data-theme=dark] .training-tab{background:var(--gray-800);border-color:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .training-tab:hover{border-color:var(--gpe-blue-400);color:var(--gpe-blue-400)}[data-theme=dark] .training-tab.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}[data-theme=dark] .training-loading p{color:var(--gray-400)}[data-theme=dark] .training-empty svg{color:var(--gray-600)}[data-theme=dark] .training-empty h3{color:var(--gray-100)}[data-theme=dark] .training-empty p{color:var(--gray-400)}[data-theme=dark] .training-catalog-section{background:var(--gray-900)}[data-theme=dark] .training-card{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .training-card:hover{border-color:var(--gpe-blue-600)}[data-theme=dark] .training-card-image{background:var(--gray-700)}[data-theme=dark] .training-card-placeholder{background:linear-gradient(135deg,var(--gpe-blue-900) 0%,var(--gpe-blue-800) 100%);color:var(--gpe-blue-400)}[data-theme=dark] .training-card-title{color:var(--gray-100)}[data-theme=dark] .training-card-description,[data-theme=dark] .training-meta-item{color:var(--gray-400)}[data-theme=dark] .training-meta-item svg{color:var(--gray-500)}[data-theme=dark] .training-card-footer{border-color:var(--gray-700);background:var(--gray-750)}[data-theme=dark] .training-card-price{color:var(--gray-100)}[data-theme=dark] .training-card-cta{color:var(--gpe-blue-400)}[data-theme=dark] .pagination-btn{background:var(--gray-800);border-color:var(--gray-700);color:var(--gray-300)}[data-theme=dark] .pagination-btn:hover:not(:disabled){border-color:var(--gpe-blue-400);color:var(--gpe-blue-400)}[data-theme=dark] .pagination-btn.active{background:var(--gpe-blue);border-color:var(--gpe-blue);color:var(--white)}[data-theme=dark] .pagination-ellipsis{color:var(--gray-600)}[data-theme=dark] .training-results-info p{color:var(--gray-400)}[data-theme=dark] .training-cta{background:var(--gray-900)}@media(max-width:1024px){.training-grid{grid-template-columns:repeat(2,1fr)}.training-cta .cta-card{flex-direction:column;text-align:center}.training-cta .cta-content p{max-width:100%}.training-cta .cta-actions{width:100%;flex-direction:column}.training-cta .cta-actions .btn{width:100%}}@media(max-width:768px){.training-grid{grid-template-columns:1fr}.training-tabs{gap:.5rem}.training-tab{padding:.625rem 1rem;font-size:.8125rem}}@media(max-width:640px){.training-card-content{padding:1rem}.training-card-title{font-size:1rem}.training-card-footer{padding:.875rem 1rem;flex-direction:column;gap:.75rem;align-items:flex-start}.training-card-cta{width:100%;justify-content:center;padding:.5rem 0}.training-cta .cta-card{padding:2rem 1.5rem}.training-cta .cta-content h2{font-size:1.5rem}.pagination-btn{min-width:2.25rem;height:2.25rem;padding:0 .5rem;font-size:.8125rem}}.training-detail-page{min-height:100vh}.training-detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}.training-detail-loading p{font-size:1rem;color:var(--gray-500)}.training-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem;text-align:center;padding:2rem}.training-detail-error svg{color:var(--gray-300)}.training-detail-error h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.training-detail-error p{font-size:1rem;color:var(--gray-500);margin:0;max-width:400px}.training-detail-section{background:var(--gray-50)}.training-detail-grid{display:grid;grid-template-columns:1fr 380px;gap:2.5rem;align-items:start}.training-detail-main{display:flex;flex-direction:column;gap:2rem}.training-detail-media{position:relative;border-radius:var(--radius-xl);overflow:hidden;background:var(--gray-100);aspect-ratio:16 / 9}.training-detail-video{width:100%;height:100%}.training-detail-video video{width:100%;height:100%;object-fit:cover}.training-detail-cover{width:100%;height:100%;object-fit:cover}.training-detail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gpe-blue-50) 0%,var(--gpe-blue-100) 100%);color:var(--gpe-blue)}.training-detail-level{position:absolute;top:1rem;left:1rem;padding:.375rem .875rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.025em}.training-level-orange{background:#fff3e0;color:#e65100}.training-detail-block{background:var(--white);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--gray-100)}.training-detail-block h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.training-detail-block h2 svg{color:var(--gpe-blue);flex-shrink:0}.training-detail-description{font-size:1rem;line-height:1.8;color:var(--gray-600)}.training-detail-description p{margin:0 0 1rem}.training-detail-description p:last-child{margin-bottom:0}.training-detail-list{list-style:none;display:flex;flex-direction:column;gap:1rem;margin:0;padding:0}.training-detail-list li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;line-height:1.6;color:var(--gray-700)}.training-detail-list svg{flex-shrink:0;margin-top:.125rem}.training-detail-list-objectives svg{color:var(--gpe-green)}.training-detail-list-prerequisites svg{color:var(--gpe-blue)}.training-detail-list-audience svg{color:var(--gpe-purple)}.training-detail-curriculum{padding:2rem}.curriculum-summary{font-size:.9375rem;color:var(--gray-500);margin:0 0 1.5rem}.curriculum-chapters{display:flex;flex-direction:column;gap:.75rem}.curriculum-chapter{border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition)}.curriculum-chapter:hover,.curriculum-chapter.expanded{border-color:var(--gpe-blue-200)}.curriculum-chapter-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--white);border:none;cursor:pointer;text-align:left;transition:background-color var(--transition)}.curriculum-chapter-header:hover{background:var(--gray-50)}.chapter-info{display:flex;align-items:center;gap:1rem}.chapter-number{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--gpe-blue-50);color:var(--gpe-blue);border-radius:var(--radius);font-size:.875rem;font-weight:600;flex-shrink:0}.chapter-details h3{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0;line-height:1.3}.chapter-meta{font-size:.8125rem;color:var(--gray-500);margin-top:.25rem}.chapter-toggle{flex-shrink:0;color:var(--gray-400);transition:transform var(--transition)}.curriculum-chapter.expanded .chapter-toggle{transform:rotate(180deg)}.curriculum-lessons{padding:0 1.25rem 1.25rem;border-top:1px solid var(--gray-100);background:var(--gray-50)}.chapter-description{font-size:.875rem;color:var(--gray-600);margin:1rem 0;padding-left:3rem;line-height:1.6}.curriculum-lessons ul{list-style:none;margin:0;padding:0;padding-top:1rem}.curriculum-lessons li{display:flex;align-items:center;gap:.75rem;padding:.75rem 0 .75rem 3rem;border-bottom:1px dashed var(--gray-200)}.curriculum-lessons li:last-child{border-bottom:none}.lesson-icon{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--white);border-radius:var(--radius-sm);flex-shrink:0}.lesson-icon svg{color:var(--gray-400)}.lesson-title{flex:1;font-size:.875rem;color:var(--gray-700)}.lesson-duration{font-size:.8125rem;color:var(--gray-400);flex-shrink:0}.training-detail-sidebar{position:sticky;top:100px}.training-detail-card{background:var(--white);border-radius:var(--radius-xl);padding:0;border:1px solid var(--gray-100);box-shadow:var(--shadow-lg);overflow:hidden;position:relative}.training-detail-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.training-detail-card-green:before{background:var(--gradient-green)}.training-detail-card-blue:before{background:var(--gradient-blue)}.training-detail-card-purple:before{background:var(--gradient-purple)}.training-detail-price{padding:1.5rem 1.5rem 1rem;text-align:center;border-bottom:1px solid var(--gray-100)}.training-detail-price .price-value{font-size:2rem;font-weight:700;color:var(--gray-900)}.training-detail-info{display:flex;flex-direction:column;gap:.875rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.training-detail-info .info-item{display:flex;align-items:center;gap:.875rem}.training-detail-info .info-item svg{flex-shrink:0;color:var(--gray-400)}.training-detail-info .info-item>div{display:flex;flex-direction:column;gap:.125rem}.training-detail-info .info-label{font-size:.6875rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.training-detail-info .info-value{font-size:.875rem;font-weight:600;color:var(--gray-900)}.training-detail-sessions{padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100)}.training-detail-sessions h3{font-size:.8125rem;font-weight:600;color:var(--gray-900);text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem}.sessions-list{display:flex;flex-direction:column;gap:1rem}.session-card{display:flex;flex-direction:column;background:linear-gradient(135deg,var(--gpe-green-50) 0%,var(--white) 100%);border:2px solid var(--gpe-green-200);border-radius:var(--radius-lg);padding:1.25rem;position:relative}.session-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.session-name{font-size:1.0625rem;font-weight:700;color:var(--gray-900);line-height:1.3}.session-status{display:inline-flex;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:700;padding:.375rem .625rem;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;width:fit-content}.session-status-open{background:var(--gpe-green);color:#fff}.session-status-open:before{content:"";width:6px;height:6px;background:#fff;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.session-status-in_progress{background:var(--gpe-blue);color:#fff}.session-status-closed{background:var(--gray-400);color:#fff}.session-info-grid{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.session-dates,.session-spots,.session-deadline{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--gray-600);margin-bottom:0}.session-dates svg,.session-spots svg,.session-deadline svg{color:var(--gray-400);flex-shrink:0;width:16px;height:16px}.session-spots{color:var(--gpe-green-700);font-weight:600}.session-spots svg{color:var(--gpe-green)}.session-deadline{color:var(--gpe-orange)}.session-deadline svg{color:var(--gpe-orange)}.btn-enroll{width:100%;margin-top:auto;justify-content:center;display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:.9375rem;font-weight:600;background:var(--gpe-green);border:none;color:#fff;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);box-shadow:0 2px 8px #10b98140}.btn-enroll:hover{background:var(--gpe-green-600);transform:translateY(-2px);box-shadow:0 4px 16px #10b98159}.btn-enroll:disabled{background:var(--gray-300);cursor:not-allowed;transform:none;box-shadow:none}.btn-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.btn-enroll.btn-access{background:linear-gradient(135deg,#3b82f6,#1a56db);box-shadow:0 2px 8px #3b82f640;animation:pulse-subtle 2s ease-in-out infinite}.btn-enroll.btn-access:hover{background:linear-gradient(135deg,#1a56db,#1e40af);box-shadow:0 4px 16px #3b82f659}@keyframes pulse-subtle{0%,to{box-shadow:0 2px 8px #3b82f640}50%{box-shadow:0 2px 16px #3b82f666}}.already-enrolled-badge{width:100%;margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;font-size:.8125rem;font-weight:500;color:var(--gray-500);background:var(--gray-100);border-radius:var(--radius)}.already-enrolled-badge svg{color:var(--gpe-green);flex-shrink:0}.no-sessions{text-align:center;padding:1.5rem 0}.no-sessions svg{color:var(--gray-300);margin-bottom:.75rem}.no-sessions p{font-size:.875rem;color:var(--gray-500);margin:0 0 1rem}.no-sessions .btn{width:100%}.training-detail-contact{padding:1.25rem 1.5rem;text-align:center}.training-detail-contact p{font-size:.8125rem;color:var(--gray-500);margin:0 0 .75rem}.btn-contact{width:100%;justify-content:center;display:flex;align-items:center;gap:.5rem}.training-detail-cta{background:var(--white)}.training-detail-cta .cta-card{background:var(--gradient-blue);border-radius:var(--radius-xl);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.training-detail-cta .cta-content h2{font-size:1.75rem;font-weight:700;color:var(--white);margin-bottom:.5rem}.training-detail-cta .cta-content p{font-size:1rem;color:#fffc;max-width:500px;margin:0}.training-detail-cta .cta-actions{flex-shrink:0}.training-detail-cta .cta-actions .btn-primary{background:var(--white);color:var(--gpe-blue);box-shadow:var(--shadow)}.training-detail-cta .cta-actions .btn-primary:hover{background:var(--gray-50);transform:translateY(-2px)}[data-theme=dark] .training-detail-loading p{color:var(--gray-400)}[data-theme=dark] .training-detail-error svg{color:var(--gray-600)}[data-theme=dark] .training-detail-error h2{color:var(--gray-100)}[data-theme=dark] .training-detail-error p{color:var(--gray-400)}[data-theme=dark] .training-detail-section{background:var(--gray-900)}[data-theme=dark] .training-detail-media{background:var(--gray-800)}[data-theme=dark] .training-detail-placeholder{background:linear-gradient(135deg,var(--gpe-blue-900) 0%,var(--gpe-blue-800) 100%);color:var(--gpe-blue-400)}[data-theme=dark] .training-detail-block{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .training-detail-block h2{color:var(--gray-100)}[data-theme=dark] .training-detail-block h2 svg{color:var(--gpe-blue-400)}[data-theme=dark] .training-detail-description,[data-theme=dark] .training-detail-list li{color:var(--gray-300)}[data-theme=dark] .curriculum-summary{color:var(--gray-400)}[data-theme=dark] .curriculum-chapter{border-color:var(--gray-700)}[data-theme=dark] .curriculum-chapter:hover,[data-theme=dark] .curriculum-chapter.expanded{border-color:var(--gpe-blue-600)}[data-theme=dark] .curriculum-chapter-header{background:var(--gray-800)}[data-theme=dark] .curriculum-chapter-header:hover{background:var(--gray-750)}[data-theme=dark] .chapter-number{background:var(--gpe-blue-900);color:var(--gpe-blue-400)}[data-theme=dark] .chapter-details h3{color:var(--gray-100)}[data-theme=dark] .chapter-meta{color:var(--gray-400)}[data-theme=dark] .chapter-toggle{color:var(--gray-500)}[data-theme=dark] .curriculum-lessons{border-color:var(--gray-700);background:var(--gray-850)}[data-theme=dark] .chapter-description{color:var(--gray-400)}[data-theme=dark] .curriculum-lessons li{border-color:var(--gray-700)}[data-theme=dark] .lesson-icon{background:var(--gray-800)}[data-theme=dark] .lesson-icon svg{color:var(--gray-500)}[data-theme=dark] .lesson-title{color:var(--gray-300)}[data-theme=dark] .lesson-duration{color:var(--gray-500)}[data-theme=dark] .training-detail-card{background:var(--gray-800);border-color:var(--gray-700)}[data-theme=dark] .training-detail-price{border-color:var(--gray-700)}[data-theme=dark] .training-detail-price .price-value{color:var(--gray-100)}[data-theme=dark] .training-detail-info{border-color:var(--gray-700)}[data-theme=dark] .training-detail-info .info-item svg{color:var(--gray-500)}[data-theme=dark] .training-detail-info .info-label{color:var(--gray-400)}[data-theme=dark] .training-detail-info .info-value{color:var(--gray-100)}[data-theme=dark] .training-detail-sessions{border-color:var(--gray-700)}[data-theme=dark] .training-detail-sessions h3{color:var(--gray-100)}[data-theme=dark] .session-card{background:var(--gray-750);border-color:var(--gray-700)}[data-theme=dark] .session-name{color:var(--gray-100)}[data-theme=dark] .session-dates,[data-theme=dark] .session-spots,[data-theme=dark] .session-deadline{color:var(--gray-400)}[data-theme=dark] .session-dates svg,[data-theme=dark] .session-spots svg,[data-theme=dark] .session-deadline svg{color:var(--gray-500)}[data-theme=dark] .session-spots{color:var(--gpe-green-400)}[data-theme=dark] .session-spots svg{color:var(--gpe-green-400)}[data-theme=dark] .session-deadline{color:var(--gpe-orange-400)}[data-theme=dark] .session-deadline svg{color:var(--gpe-orange-400)}[data-theme=dark] .no-sessions svg{color:var(--gray-600)}[data-theme=dark] .no-sessions p,[data-theme=dark] .training-detail-contact p{color:var(--gray-400)}[data-theme=dark] .training-detail-cta{background:var(--gray-900)}@media(max-width:1024px){.training-detail-grid{grid-template-columns:1fr}.training-detail-sidebar{position:static;order:-1}.training-detail-cta .cta-card{flex-direction:column;text-align:center}.training-detail-cta .cta-content p{max-width:100%}}@media(max-width:640px){.training-detail-block{padding:1.5rem}.training-detail-block h2{font-size:1.125rem}.curriculum-chapter-header{padding:.875rem 1rem}.chapter-info{gap:.75rem}.chapter-number{width:1.75rem;height:1.75rem;font-size:.8125rem}.chapter-details h3{font-size:.875rem}.curriculum-lessons{padding:0 1rem 1rem}.chapter-description{padding-left:2.5rem}.curriculum-lessons li{padding-left:2.5rem;gap:.5rem}.training-detail-price .price-value{font-size:1.75rem}.training-detail-cta .cta-card{padding:2rem 1.5rem}.training-detail-cta .cta-content h2{font-size:1.5rem}}.enrollment-wizard{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.enrollment-wizard-loading,.enrollment-wizard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.enrollment-wizard-loading .spinner{width:48px;height:48px;color:var(--gpe-blue, #1a56db);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.enrollment-wizard-error h2{font-size:1.5rem;color:#1f2937;margin-bottom:.5rem}.enrollment-wizard-error p{color:#6b7280;margin-bottom:1.5rem}.enrollment-wizard-header{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d}.enrollment-wizard-header .back-button{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background:transparent;border:1px solid #e5e7eb;border-radius:8px;color:#4b5563;font-size:.875rem;cursor:pointer;transition:all .2s}.enrollment-wizard-header .back-button:hover{background:#f3f4f6;color:#1f2937}.enrollment-wizard-header .header-title{display:flex;align-items:center;gap:1rem;flex:1}.enrollment-wizard-header .logo{height:32px}.enrollment-wizard-header h1{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.enrollment-progress{padding:1.5rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb}.progress-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.progress-step{display:flex;align-items:center;gap:.5rem}.progress-step .step-indicator{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#f3f4f6;color:#9ca3af;transition:all .3s}.progress-step.active .step-indicator{background:var(--gpe-blue, #1a56db);color:#fff}.progress-step.completed .step-indicator{background:var(--gpe-green, #059669);color:#fff}.progress-step .step-title{font-size:.875rem;font-weight:500;color:#6b7280}.progress-step.active .step-title{color:var(--gpe-blue, #1a56db);font-weight:600}.progress-step.completed .step-title{color:var(--gpe-green, #059669)}.progress-step .step-connector{width:40px;height:2px;background:#e5e7eb;margin:0 .5rem}.progress-step.completed+.progress-step .step-connector,.progress-step.completed .step-connector{background:var(--gpe-green, #059669)}.progress-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--gpe-blue, #1a56db);border-radius:2px;transition:width .3s ease}.enrollment-error-banner{padding:1rem 2rem;background:#fef2f2;border-bottom:1px solid #fecaca}.enrollment-error-banner p{margin:0;color:#dc2626;font-size:.875rem}.enrollment-wizard-content{max-width:800px;margin:0 auto;padding:2rem}.enrollment-step{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;overflow:hidden}.enrollment-step-header{padding:1.5rem 2rem;border-bottom:1px solid #e5e7eb}.enrollment-step-header h2{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.enrollment-step-header p{font-size:.875rem;color:#6b7280;margin:0}.enrollment-step-body{padding:2rem}.enrollment-step-footer{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:#f9fafb;border-top:1px solid #e5e7eb}.form-group label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.form-group label .required{color:#dc2626}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 3px #1a56db1a}.form-group input::placeholder{color:#9ca3af}.form-group .help-text{font-size:.75rem;color:#6b7280;margin-top:.25rem}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.checkbox-group{display:flex;align-items:flex-start;gap:.75rem}.checkbox-group input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer}.checkbox-group label{margin:0;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;min-height:48px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--gpe-blue, #1a56db);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:#1e40af}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#f3f4f6}.btn-success{background:var(--gpe-green, #059669);color:#fff;border:none}.btn-success:hover:not(:disabled){background:#047857}.social-login-buttons{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.social-login-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.social-login-btn:hover{background:#f9fafb;border-color:#9ca3af}.social-login-btn img{width:20px;height:20px}.divider{display:flex;align-items:center;gap:1rem;margin:1.5rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.divider span{color:#6b7280;font-size:.875rem}.session-card{display:flex;gap:1.5rem;padding:1.5rem;background:#f9fafb;border-radius:12px;margin-bottom:1.5rem}.session-card-image{width:120px;height:80px;border-radius:8px;object-fit:cover;background:#e5e7eb}.session-card-content{flex:1}.session-card-content h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.session-card-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem;color:#6b7280}.session-card-meta span{display:flex;align-items:center;gap:.25rem}.price-display{text-align:right}.price-display .amount{font-size:1.5rem;font-weight:700;color:var(--gpe-blue, #1a56db)}.price-display .currency{font-size:.875rem;color:#6b7280}.payment-options{display:flex;flex-direction:column;gap:1rem}.payment-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s}.payment-option:hover{border-color:#9ca3af}.payment-option.selected{border-color:var(--gpe-blue, #1a56db);background:#eff6ff}.payment-option input[type=radio]{width:20px;height:20px;margin-top:2px}.payment-option-content{flex:1}.payment-option-content h4{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.payment-option-content p{font-size:.875rem;color:#6b7280;margin:0}.bank-details-card{padding:1.5rem;background:#fefce8;border:1px solid #fef08a;border-radius:12px;margin-top:1.5rem}.bank-details-card h4{font-size:1rem;font-weight:600;color:#854d0e;margin:0 0 1rem}.bank-details-list{display:grid;gap:.75rem}.bank-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px dashed #fef08a}.bank-detail-row:last-child{border-bottom:none}.bank-detail-row .label{font-size:.875rem;color:#713f12}.bank-detail-row .value{font-family:monospace;font-size:.875rem;font-weight:600;color:#1f2937}.copy-btn{padding:.25rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;font-size:.75rem;cursor:pointer}.file-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;border:2px dashed #d1d5db;border-radius:12px;background:#f9fafb;text-align:center;cursor:pointer;transition:all .2s}.file-upload-zone:hover{border-color:var(--gpe-blue, #1a56db);background:#eff6ff}.file-upload-zone.has-file{border-color:var(--gpe-green, #059669);background:#ecfdf5}.file-upload-zone input[type=file]{display:none}.file-upload-zone .icon{width:48px;height:48px;color:#9ca3af;margin-bottom:1rem}.file-upload-zone.has-file .icon{color:var(--gpe-green, #059669)}.file-upload-zone p{margin:0;color:#6b7280;font-size:.875rem}.file-upload-zone .file-name{color:#1f2937;font-weight:500}.confirmation-success{text-align:center;padding:2rem 0}.confirmation-success .success-icon{width:80px;height:80px;margin:0 auto 1.5rem;color:var(--gpe-green, #059669)}.confirmation-success h2{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.confirmation-success p{color:#6b7280;margin:0}.confirmation-card{margin-top:2rem;padding:1.5rem;background:#f9fafb;border-radius:12px;text-align:left}.confirmation-card h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.confirmation-list{display:flex;flex-direction:column;gap:.75rem}.confirmation-list-item{display:flex;align-items:center;gap:.75rem}.confirmation-list-item .icon{width:20px;height:20px;color:var(--gpe-green, #059669)}.confirmation-list-item span{font-size:.875rem;color:#4b5563}.next-steps{margin-top:2rem;padding:1.5rem;background:#eff6ff;border-radius:12px}.next-steps h4{font-size:1rem;font-weight:600;color:#1e40af;margin:0 0 1rem}.next-steps ol{margin:0;padding-left:1.25rem}.next-steps li{font-size:.875rem;color:#1e40af;margin-bottom:.5rem}@media(max-width:768px){.enrollment-wizard-header{flex-direction:column;align-items:flex-start}.enrollment-wizard-header .header-title{margin-top:.5rem}.enrollment-wizard-header h1{font-size:1rem}.progress-steps{flex-wrap:wrap;gap:.25rem}.progress-step .step-title{display:none}.progress-step .step-connector{width:20px}.enrollment-wizard-content{padding:1rem}.enrollment-step-header,.enrollment-step-body,.enrollment-step-footer{padding:1rem 1.25rem}.form-row{grid-template-columns:1fr}.session-card{flex-direction:column}.session-card-image{width:100%;height:160px}.enrollment-step-footer{flex-direction:column;gap:1rem}.enrollment-step-footer .btn{width:100%}}.cert-sidebar-nav{display:flex;flex-direction:column;height:100%;padding:1.5rem 1rem;gap:1.5rem}.cert-nav-section{display:flex;flex-direction:column;gap:.5rem}.cert-nav-section-secondary{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.cert-nav-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary, #9ca3af);padding:0 .75rem;margin-bottom:.25rem}.cert-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.cert-nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:10px;color:var(--text-secondary, #6b7280);text-decoration:none;font-size:.9375rem;font-weight:500;transition:all .2s ease}.cert-nav-link:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937)}.cert-nav-link.active{background:linear-gradient(135deg,#1a56db1a,#7c3aed1a);color:var(--gpe-blue, #1a56db)}.cert-nav-link.active .cert-nav-icon{color:var(--gpe-blue, #1a56db)}.cert-nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cert-nav-text{flex:1}.cert-upgrade-card{margin-top:auto;padding:1.25rem;background:linear-gradient(135deg,#1a56db14,#7c3aed14);border:1px solid rgba(26,86,219,.15);border-radius:12px;text-align:center}.cert-upgrade-icon{width:48px;height:48px;margin:0 auto .75rem;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.cert-upgrade-card h4{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 .5rem}.cert-upgrade-card p{font-size:.8125rem;color:var(--text-secondary, #6b7280);margin:0 0 1rem;line-height:1.4}.cert-upgrade-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--gpe-blue, #1a56db);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease}.cert-upgrade-btn:hover{background:var(--gpe-blue-dark, #1e40af);transform:translateY(-1px)}:root.dark .cert-nav-label,[data-theme=dark] .cert-nav-label{color:#64748b}:root.dark .cert-nav-link,[data-theme=dark] .cert-nav-link{color:#94a3b8}:root.dark .cert-nav-link:hover,[data-theme=dark] .cert-nav-link:hover{background:#334155;color:#f8fafc}:root.dark .cert-nav-link.active,[data-theme=dark] .cert-nav-link.active{background:linear-gradient(135deg,#3b82f633,#8b5cf633);color:#60a5fa}:root.dark .cert-nav-link.active .cert-nav-icon,[data-theme=dark] .cert-nav-link.active .cert-nav-icon{color:#60a5fa}:root.dark .cert-upgrade-card,[data-theme=dark] .cert-upgrade-card{background:linear-gradient(135deg,#3b82f626,#8b5cf626);border-color:#3b82f640}:root.dark .cert-upgrade-card h4,[data-theme=dark] .cert-upgrade-card h4{color:#f8fafc}:root.dark .cert-upgrade-card p,[data-theme=dark] .cert-upgrade-card p{color:#94a3b8}:root.dark .cert-nav-section-secondary,[data-theme=dark] .cert-nav-section-secondary{border-color:#334155}:root{--cert-header-height: 64px;--cert-sidebar-width: 260px;--cert-sidebar-collapsed-width: 72px}.cert-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary, #f8fafc)}.cert-header{position:sticky;top:0;z-index:100;height:var(--cert-header-height);background:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-color, #e5e7eb);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;gap:1rem}.cert-header-left{display:flex;align-items:center;gap:1rem}.cert-menu-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.cert-menu-toggle:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937)}.cert-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.cert-logo-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-blue-dark, #1e40af));border-radius:10px;color:#fff}.cert-logo-text{font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-logo-text strong{font-weight:700;color:var(--gpe-blue, #1a56db)}.cert-header-right{display:flex;align-items:center;gap:.75rem}.cert-theme-toggle,.cert-header-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.cert-theme-toggle:hover,.cert-header-btn:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937)}.cert-browse-btn{width:auto;padding:0 1rem;gap:.5rem;font-size:.875rem;font-weight:500;text-decoration:none}.cert-browse-btn span{display:none}.cert-user-menu{display:flex;align-items:center;gap:.75rem;padding-left:.75rem;border-left:1px solid var(--border-color, #e5e7eb)}.cert-user-avatar{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;overflow:hidden}.cert-user-avatar img{width:100%;height:100%;object-fit:cover}.cert-user-info{display:flex;flex-direction:column;gap:.125rem}.cert-user-name{font-weight:600;font-size:.875rem;color:var(--text-primary, #1f2937)}.cert-user-role{font-size:.75rem;color:var(--text-tertiary, #9ca3af)}.cert-logout-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--text-tertiary, #9ca3af);cursor:pointer;transition:all .2s}.cert-logout-btn:hover{background:#fee2e2;color:#dc2626}.cert-container{flex:1;display:flex;min-height:calc(100vh - var(--cert-header-height))}.cert-sidebar{width:var(--cert-sidebar-width);background:var(--bg-primary, #ffffff);border-right:1px solid var(--border-color, #e5e7eb);flex-shrink:0;overflow-y:auto;position:sticky;top:var(--cert-header-height);height:calc(100vh - var(--cert-header-height))}.cert-main{flex:1;padding:2rem;overflow-y:auto;background:var(--bg-secondary, #f8fafc)}.cert-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:90}@media(max-width:1024px){.cert-browse-btn span{display:inline}}@media(max-width:768px){.cert-header{padding:0 1rem}.cert-menu-toggle{display:flex}.cert-logo-text,.cert-browse-btn span,.cert-user-info{display:none}.cert-sidebar{position:fixed;top:var(--cert-header-height);left:0;bottom:0;z-index:95;transform:translate(-100%);transition:transform .3s ease;box-shadow:4px 0 20px #0000001a}.cert-sidebar.mobile-open{transform:translate(0)}.cert-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .3s ease}.cert-sidebar.mobile-open+.cert-main+.cert-overlay,.cert-sidebar.mobile-open~.cert-overlay{opacity:1;pointer-events:auto}.cert-main{padding:1rem}}:root.dark .cert-layout,[data-theme=dark] .cert-layout{background:#0f172a}:root.dark .cert-header,[data-theme=dark] .cert-header{background:#1e293b;border-color:#334155}:root.dark .cert-logo-icon,[data-theme=dark] .cert-logo-icon{background:linear-gradient(135deg,#3b82f6,#8b5cf6)}:root.dark .cert-logo-text,[data-theme=dark] .cert-logo-text{color:#f8fafc}:root.dark .cert-logo-text strong,[data-theme=dark] .cert-logo-text strong{color:#60a5fa}:root.dark .cert-sidebar,[data-theme=dark] .cert-sidebar{background:#1e293b;border-color:#334155}:root.dark .cert-main,[data-theme=dark] .cert-main{background:#0f172a}:root.dark .cert-user-menu,[data-theme=dark] .cert-user-menu{border-color:#334155}:root.dark .cert-user-name,[data-theme=dark] .cert-user-name{color:#f8fafc}:root.dark .cert-user-role,[data-theme=dark] .cert-user-role{color:#64748b}:root.dark .cert-menu-toggle,:root.dark .cert-theme-toggle,:root.dark .cert-header-btn,[data-theme=dark] .cert-menu-toggle,[data-theme=dark] .cert-theme-toggle,[data-theme=dark] .cert-header-btn{color:#94a3b8}:root.dark .cert-menu-toggle:hover,:root.dark .cert-theme-toggle:hover,:root.dark .cert-header-btn:hover,[data-theme=dark] .cert-menu-toggle:hover,[data-theme=dark] .cert-theme-toggle:hover,[data-theme=dark] .cert-header-btn:hover{background:#334155;color:#f8fafc}:root.dark .cert-logout-btn,[data-theme=dark] .cert-logout-btn{color:#64748b}:root.dark .cert-logout-btn:hover,[data-theme=dark] .cert-logout-btn:hover{background:#ef444433;color:#f87171}:root.dark .cert-overlay,[data-theme=dark] .cert-overlay{background:#000000b3}.cert-dashboard{max-width:1200px;margin:0 auto}.cert-dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #6b7280)}.cert-welcome{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;gap:1rem}.cert-welcome h1{font-size:1.75rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.cert-welcome p{font-size:.9375rem;color:var(--text-secondary, #6b7280);margin:0}.cert-browse-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;color:var(--text-secondary, #6b7280);text-decoration:none;font-size:.875rem;font-weight:500;transition:all .2s;white-space:nowrap}.cert-browse-link:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db)}.cert-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.cert-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px}.cert-stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px}.cert-stat-icon-total{background:#dbeafe;color:#2563eb}.cert-stat-icon-progress{background:#fef3c7;color:#d97706}.cert-stat-icon-completed{background:#d1fae5;color:#059669}.cert-stat-icon-certified{background:#ede9fe;color:#7c3aed}.cert-stat-info{display:flex;flex-direction:column}.cert-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);line-height:1}.cert-stat-label{font-size:.8125rem;color:var(--text-secondary, #6b7280);margin-top:.25rem}.cert-content-grid{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;margin-bottom:2rem}.cert-content-main h2,.cert-content-sidebar h2{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 1rem}.cert-current-formation{display:flex;gap:1.5rem;padding:1.5rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px}.cert-formation-image{width:200px;height:130px;flex-shrink:0;border-radius:12px;overflow:hidden;background:var(--bg-tertiary, #f3f4f6)}.cert-formation-image img{width:100%;height:100%;object-fit:cover}.cert-formation-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.cert-formation-info h3{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0}.cert-formation-session{font-size:.875rem;color:var(--text-secondary, #6b7280);margin:0}.cert-formation-progress{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.cert-progress-bar{flex:1;height:8px;background:var(--bg-tertiary, #e5e7eb);border-radius:4px;overflow:hidden}.cert-progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));border-radius:4px;transition:width .3s ease}.cert-progress-text{font-size:.875rem;font-weight:600;color:var(--gpe-blue, #1a56db);white-space:nowrap}.cert-formation-chapter{font-size:.8125rem;color:var(--text-tertiary, #9ca3af);margin:0}.cert-formation-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:var(--gpe-blue, #1a56db);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;align-self:center;white-space:nowrap}.cert-formation-btn:hover{background:var(--gpe-blue-dark, #1e40af);transform:translate(2px)}.cert-no-current,.cert-no-formations{padding:2rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;text-align:center}.cert-no-formations{padding:3rem}.cert-empty-icon{width:80px;height:80px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #f3f4f6);border-radius:50%;color:var(--text-tertiary, #9ca3af)}.cert-no-formations h3{font-size:1.125rem;color:var(--text-primary, #1f2937);margin:0 0 .5rem}.cert-no-formations p,.cert-no-current p{color:var(--text-secondary, #6b7280);margin:0 0 1rem}.cert-events-list{display:flex;flex-direction:column;gap:.75rem}.cert-event-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;transition:all .2s}.cert-event-card:hover{border-color:var(--gpe-blue, #1a56db)}.cert-event-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.cert-event-webinar .cert-event-icon{background:#dbeafe;color:#2563eb}.cert-event-deadline .cert-event-icon{background:#fef3c7;color:#d97706}.cert-event-exam .cert-event-icon{background:#ede9fe;color:#7c3aed}.cert-event-session .cert-event-icon{background:#d1fae5;color:#059669}.cert-event-info{display:flex;flex-direction:column;gap:.125rem}.cert-event-date{font-size:.75rem;font-weight:600;color:var(--gpe-blue, #1a56db)}.cert-event-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937)}.cert-event-program{font-size:.75rem;color:var(--text-tertiary, #9ca3af)}.cert-no-events{padding:2rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;text-align:center}.cert-no-events p{color:var(--text-secondary, #6b7280);margin:0}.cert-view-all-link{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.75rem;color:var(--gpe-blue, #1a56db);font-size:.875rem;font-weight:500;text-decoration:none;border-radius:8px;transition:all .2s}.cert-view-all-link:hover{background:#1a56db1a}.cert-quick-actions h2{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 1rem}.cert-actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.cert-action-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.cert-action-card:hover{border-color:var(--gpe-blue, #1a56db);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.cert-action-thumb{width:100%;height:80px;border-radius:8px;overflow:hidden;background:var(--bg-tertiary, #f3f4f6)}.cert-action-thumb img{width:100%;height:100%;object-fit:cover}.cert-action-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--bg-tertiary, #f3f4f6),var(--bg-secondary, #e5e7eb))}.cert-action-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cert-action-progress{font-size:.75rem;font-weight:600;color:var(--gpe-blue, #1a56db)}@media(max-width:1024px){.cert-stats-grid{grid-template-columns:repeat(2,1fr)}.cert-content-grid{grid-template-columns:1fr}.cert-actions-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.cert-welcome{flex-direction:column;align-items:flex-start}.cert-welcome h1{font-size:1.5rem}.cert-browse-link{width:100%;justify-content:center}.cert-stats-grid{grid-template-columns:repeat(2,1fr)}.cert-current-formation{flex-direction:column}.cert-formation-image{width:100%;height:160px}.cert-formation-btn{width:100%;justify-content:center}.cert-actions-grid{grid-template-columns:1fr}}:root.dark .cert-dashboard,[data-theme=dark] .cert-dashboard{color:#e2e8f0}:root.dark .cert-welcome h1,[data-theme=dark] .cert-welcome h1{color:#f8fafc}:root.dark .cert-welcome p,[data-theme=dark] .cert-welcome p{color:#94a3b8}:root.dark .cert-browse-link,[data-theme=dark] .cert-browse-link{background:#1e293b;border-color:#334155;color:#94a3b8}:root.dark .cert-browse-link:hover,[data-theme=dark] .cert-browse-link:hover{background:#334155;color:#60a5fa;border-color:#60a5fa}:root.dark .cert-stat-card,[data-theme=dark] .cert-stat-card{background:#1e293b;border-color:#334155}:root.dark .cert-stat-value,[data-theme=dark] .cert-stat-value{color:#f8fafc}:root.dark .cert-stat-label,[data-theme=dark] .cert-stat-label{color:#94a3b8}:root.dark .cert-stat-icon-total,[data-theme=dark] .cert-stat-icon-total{background:#3b82f633;color:#60a5fa}:root.dark .cert-stat-icon-progress,[data-theme=dark] .cert-stat-icon-progress{background:#f59e0b33;color:#fbbf24}:root.dark .cert-stat-icon-completed,[data-theme=dark] .cert-stat-icon-completed{background:#10b98133;color:#34d399}:root.dark .cert-stat-icon-certified,[data-theme=dark] .cert-stat-icon-certified{background:#8b5cf633;color:#a78bfa}:root.dark .cert-content-main h2,:root.dark .cert-content-sidebar h2,:root.dark .cert-quick-actions h2,[data-theme=dark] .cert-content-main h2,[data-theme=dark] .cert-content-sidebar h2,[data-theme=dark] .cert-quick-actions h2{color:#f8fafc}:root.dark .cert-current-formation,[data-theme=dark] .cert-current-formation{background:#1e293b;border-color:#334155}:root.dark .cert-formation-image,[data-theme=dark] .cert-formation-image{background:#334155}:root.dark .cert-formation-placeholder,[data-theme=dark] .cert-formation-placeholder{color:#64748b}:root.dark .cert-formation-info h3,[data-theme=dark] .cert-formation-info h3{color:#f8fafc}:root.dark .cert-formation-session,[data-theme=dark] .cert-formation-session{color:#94a3b8}:root.dark .cert-progress-bar,[data-theme=dark] .cert-progress-bar{background:#334155}:root.dark .cert-progress-text,[data-theme=dark] .cert-progress-text{color:#60a5fa}:root.dark .cert-formation-chapter,[data-theme=dark] .cert-formation-chapter{color:#64748b}:root.dark .cert-no-formations,:root.dark .cert-no-current,:root.dark .cert-no-events,[data-theme=dark] .cert-no-formations,[data-theme=dark] .cert-no-current,[data-theme=dark] .cert-no-events{background:#1e293b;border-color:#334155}:root.dark .cert-empty-icon,[data-theme=dark] .cert-empty-icon{background:#334155;color:#64748b}:root.dark .cert-no-formations h3,[data-theme=dark] .cert-no-formations h3{color:#f8fafc}:root.dark .cert-no-formations p,:root.dark .cert-no-current p,:root.dark .cert-no-events p,[data-theme=dark] .cert-no-formations p,[data-theme=dark] .cert-no-current p,[data-theme=dark] .cert-no-events p{color:#94a3b8}:root.dark .cert-event-card,[data-theme=dark] .cert-event-card{background:#1e293b;border-color:#334155}:root.dark .cert-event-card:hover,[data-theme=dark] .cert-event-card:hover{border-color:#60a5fa}:root.dark .cert-event-webinar .cert-event-icon,[data-theme=dark] .cert-event-webinar .cert-event-icon{background:#3b82f633;color:#60a5fa}:root.dark .cert-event-deadline .cert-event-icon,[data-theme=dark] .cert-event-deadline .cert-event-icon{background:#f59e0b33;color:#fbbf24}:root.dark .cert-event-exam .cert-event-icon,[data-theme=dark] .cert-event-exam .cert-event-icon{background:#8b5cf633;color:#a78bfa}:root.dark .cert-event-session .cert-event-icon,[data-theme=dark] .cert-event-session .cert-event-icon{background:#10b98133;color:#34d399}:root.dark .cert-event-date,[data-theme=dark] .cert-event-date{color:#60a5fa}:root.dark .cert-event-title,[data-theme=dark] .cert-event-title{color:#f8fafc}:root.dark .cert-event-program,[data-theme=dark] .cert-event-program{color:#64748b}:root.dark .cert-view-all-link,[data-theme=dark] .cert-view-all-link{color:#60a5fa}:root.dark .cert-view-all-link:hover,[data-theme=dark] .cert-view-all-link:hover{background:#60a5fa1a}:root.dark .cert-action-card,[data-theme=dark] .cert-action-card{background:#1e293b;border-color:#334155}:root.dark .cert-action-card:hover,[data-theme=dark] .cert-action-card:hover{border-color:#60a5fa;box-shadow:0 4px 12px #0000004d}:root.dark .cert-action-thumb,[data-theme=dark] .cert-action-thumb{background:#334155}:root.dark .cert-action-placeholder,[data-theme=dark] .cert-action-placeholder{background:linear-gradient(135deg,#334155,#475569)}:root.dark .cert-action-title,[data-theme=dark] .cert-action-title{color:#f8fafc}:root.dark .cert-action-progress,[data-theme=dark] .cert-action-progress{color:#60a5fa}:root.dark .cert-dashboard-loading,[data-theme=dark] .cert-dashboard-loading{color:#94a3b8}.cert-formations{max-width:1000px;margin:0 auto}.cert-formations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #6b7280)}.cert-formations-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.cert-formations-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0}.cert-formations-header p{font-size:.875rem;color:var(--text-secondary, #6b7280);margin:.25rem 0 0}.cert-add-formation{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--gpe-blue, #1a56db);color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s}.cert-add-formation:hover{background:var(--gpe-blue-dark, #1e40af)}.cert-formations-filters{display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e7eb);overflow-x:auto}.cert-filter-btn{padding:.625rem 1rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s;white-space:nowrap}.cert-filter-btn:hover{border-color:var(--gpe-blue, #1a56db);color:var(--gpe-blue, #1a56db)}.cert-filter-btn.active{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff}.cert-formations-list{display:flex;flex-direction:column;gap:1rem}.cert-formation-card{display:flex;gap:1.25rem;padding:1.25rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;transition:all .2s}.cert-formation-card:hover{border-color:var(--gpe-blue, #1a56db);box-shadow:0 4px 12px #0000000d}.cert-formation-thumb{width:160px;height:100px;flex-shrink:0;position:relative;border-radius:12px;overflow:hidden;background:var(--bg-tertiary, #f3f4f6)}.cert-formation-thumb img{width:100%;height:100%;object-fit:cover}.cert-formation-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #9ca3af)}.cert-formation-status{position:absolute;top:.5rem;left:.5rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;border-radius:6px;text-transform:uppercase;letter-spacing:.3px}.cert-status-primary{background:#1a56dbe6;color:#fff}.cert-status-success{background:#059669e6;color:#fff}.cert-status-warning{background:#d97706e6;color:#fff}.cert-status-info{background:#3b82f6e6;color:#fff}.cert-status-purple{background:#7c3aede6;color:#fff}.cert-status-secondary{background:#6b7280e6;color:#fff}.cert-status-danger{background:#dc2626e6;color:#fff}.cert-formation-content{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}.cert-formation-content h3{font-size:1.0625rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0;line-height:1.3}.cert-formation-meta{display:flex;flex-wrap:wrap;gap:1rem}.cert-formation-meta span{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary, #6b7280)}.cert-formation-meta svg{color:var(--text-tertiary, #9ca3af)}.cert-formation-progress{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.cert-formation-progress .cert-progress-bar{flex:1;max-width:200px;height:6px;background:var(--bg-tertiary, #e5e7eb);border-radius:3px;overflow:hidden}.cert-formation-progress .cert-progress-fill{height:100%;background:linear-gradient(90deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));border-radius:3px}.cert-formation-progress span{font-size:.8125rem;font-weight:600;color:var(--gpe-blue, #1a56db)}.cert-download-link{display:inline-flex;align-items:center;gap:.375rem;margin-top:.25rem;font-size:.8125rem;font-weight:500;color:var(--gpe-purple, #7c3aed);text-decoration:none;transition:all .2s}.cert-download-link:hover{color:var(--gpe-blue, #1a56db);text-decoration:underline}.cert-formation-actions{display:flex;align-items:center;flex-shrink:0}.cert-formation-action{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.cert-action-continue{background:var(--gpe-blue, #1a56db);color:#fff}.cert-action-continue:hover{background:var(--gpe-blue-dark, #1e40af)}.cert-action-payment{background:#f59e0b;color:#fff}.cert-action-payment:hover{background:#d97706}.cert-action-review{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937)}.cert-action-review:hover{background:var(--bg-secondary, #e5e7eb)}.cert-action-waiting{background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary, #6b7280);cursor:default}.cert-formations-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;text-align:center}.cert-empty-icon{width:80px;height:80px;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #f3f4f6);border-radius:50%;color:var(--text-tertiary, #9ca3af)}.cert-formations-empty h3{font-size:1.125rem;color:var(--text-primary, #1f2937);margin:0 0 .5rem}.cert-formations-empty p{color:var(--text-secondary, #6b7280);margin:0 0 1.5rem}@media(max-width:768px){.cert-formations-header{flex-direction:column;align-items:flex-start}.cert-add-formation{width:100%;justify-content:center}.cert-formation-card{flex-direction:column}.cert-formation-thumb{width:100%;height:160px}.cert-formation-actions{width:100%}.cert-formation-action{width:100%;justify-content:center}}[data-theme=dark] .cert-formation-card,[data-theme=dark] .cert-formations-empty,[data-theme=dark] .cert-filter-btn{background:var(--bg-primary);border-color:var(--border-color)}[data-theme=dark] .cert-action-review,[data-theme=dark] .cert-action-waiting{background:var(--bg-tertiary)}.cert-payment{max-width:800px;margin:0 auto;padding:1rem}.cert-payment-loading,.cert-payment-error,.cert-payment-success{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;gap:1rem}.cert-payment-error svg,.cert-payment-success svg{color:var(--text-tertiary, #9ca3af)}.cert-payment-error h2,.cert-payment-success h2{margin:0;font-size:1.5rem;color:var(--text-primary, #1f2937)}.cert-payment-error p,.cert-payment-success p{margin:0;color:var(--text-secondary, #6b7280)}.cert-payment-success .success-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#22c55e1a,#22c55e33);display:flex;align-items:center;justify-content:center}.cert-payment-success .success-icon svg{color:#22c55e}.cert-payment-success .success-note{font-size:.875rem;padding:1rem;background:var(--bg-tertiary, #f3f4f6);border-radius:8px;max-width:400px}.success-actions{display:flex;gap:1rem;margin-top:1rem}.cert-payment-header{margin-bottom:2rem}.cert-payment-header .back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary, #6b7280);text-decoration:none;font-size:.875rem;margin-bottom:1rem;transition:color .2s}.cert-payment-header .back-link:hover{color:var(--gpe-blue, #1a56db)}.cert-payment-header h1{margin:0;font-size:1.75rem;color:var(--text-primary, #1f2937)}.cert-payment-formation{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;margin-bottom:1.5rem}.formation-thumb{width:80px;height:60px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary, #f3f4f6)}.formation-thumb img{width:100%;height:100%;object-fit:cover}.formation-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #9ca3af)}.formation-info h3{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.formation-info p{margin:0;font-size:.875rem;color:var(--text-secondary, #6b7280)}.cert-payment-bank{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.cert-payment-bank h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-payment-bank h2 svg{color:var(--gpe-blue, #1a56db)}.bank-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.bank-detail{display:flex;flex-direction:column;gap:.25rem}.bank-detail.full-width{grid-column:span 2}.bank-detail .label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary, #9ca3af)}.bank-detail .value{font-size:.9375rem;color:var(--text-primary, #1f2937);font-family:monospace}.bank-detail .value.reference{font-weight:600;color:var(--gpe-blue, #1a56db)}.value-with-copy{display:flex;align-items:center;gap:.5rem}.copy-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary, #f3f4f6);border:none;border-radius:6px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.copy-btn:hover{background:var(--gpe-blue, #1a56db);color:#fff}.bank-instructions{display:flex;align-items:flex-start;gap:.5rem;margin:1.25rem 0 0;padding:1rem;background:linear-gradient(135deg,#1a56db0d,#7c3aed0d);border-radius:8px;font-size:.875rem;color:var(--text-secondary, #6b7280)}.bank-instructions svg{flex-shrink:0;margin-top:.125rem;color:var(--gpe-blue, #1a56db)}.invoice-download{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.invoice-download .btn{display:inline-flex;align-items:center;gap:.5rem}.payment-reference{font-size:.8125rem;color:var(--text-tertiary, #9ca3af);margin-top:.25rem}.payment-reference strong{color:var(--gpe-blue, #1a56db);font-family:monospace}.cert-payment-form{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.cert-payment-form h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-payment-form h2 svg{color:var(--gpe-blue, #1a56db)}.form-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.file-upload-zone{border:2px dashed var(--border-color, #e5e7eb);border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-secondary, #f8fafc);margin-bottom:1.5rem}.file-upload-zone:hover{border-color:var(--gpe-blue, #1a56db);background:#1a56db05}.file-upload-zone.drag-active{border-color:var(--gpe-blue, #1a56db);background:#1a56db0d}.file-upload-zone.has-file{border-style:solid;background:var(--bg-primary, #ffffff)}.upload-icon{margin-bottom:1rem;color:var(--text-tertiary, #9ca3af)}.upload-text{margin:0 0 .5rem;color:var(--text-secondary, #6b7280)}.upload-text strong{color:var(--gpe-blue, #1a56db)}.upload-hint{margin:0;font-size:.8125rem;color:var(--text-tertiary, #9ca3af)}.file-preview{display:flex;align-items:center;gap:1rem;padding:.5rem;text-align:left}.file-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a56db1a,#7c3aed1a);border-radius:10px;color:var(--gpe-blue, #1a56db)}.file-info{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.file-name{font-weight:500;color:var(--text-primary, #1f2937);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.8125rem;color:var(--text-tertiary, #9ca3af)}.file-remove{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--text-tertiary, #9ca3af);cursor:pointer;transition:all .2s}.file-remove:hover{background:#fee2e2;color:#dc2626}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937);margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.9375rem;color:var(--text-primary, #1f2937);background:var(--bg-primary, #ffffff);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 3px #1a56db1a}.form-hint{display:block;margin-top:.5rem;font-size:.8125rem;color:var(--text-tertiary, #9ca3af)}.btn-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem}.btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.cert-payment-note{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:linear-gradient(135deg,#fbbf241a,#fbbf240d);border:1px solid rgba(251,191,36,.3);border-radius:12px}.cert-payment-note svg{flex-shrink:0;margin-top:.125rem;color:#f59e0b}.cert-payment-note p{margin:0;font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.5}.cert-payment-methods{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.cert-payment-methods h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-payment-methods h2 svg{color:var(--gpe-blue, #1a56db)}.payment-methods-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.payment-method-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1rem;background:var(--bg-secondary, #f8fafc);border:2px solid var(--border-color, #e5e7eb);border-radius:12px;cursor:pointer;transition:all .2s ease}.payment-method-card:hover{border-color:var(--gpe-blue, #1a56db);background:#1a56db05}.payment-method-card.selected{border-color:var(--gpe-blue, #1a56db);background:linear-gradient(135deg,#1a56db0d,#7c3aed0d)}.payment-method-card.selected:after{content:"";position:absolute;top:.75rem;right:.75rem;width:20px;height:20px;background:var(--gpe-blue, #1a56db);border-radius:50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:12px;background-position:center;background-repeat:no-repeat}.method-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, #ffffff);border-radius:12px;color:var(--text-secondary, #6b7280)}.payment-method-card.selected .method-icon{background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));color:#fff}.method-info{text-align:center}.method-info h4,.method-info .method-name{font-weight:600;font-size:.9375rem;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.method-info p,.method-info .method-desc{font-size:.8125rem;color:var(--text-tertiary, #9ca3af);margin:0 0 .25rem}.method-info .method-time{display:block;font-size:.75rem;color:var(--text-tertiary, #9ca3af);font-style:italic}.payment-method-card.selected .method-info h4,.payment-method-card.selected .method-info .method-name{color:var(--gpe-blue, #1a56db)}.method-check{display:none}.cert-payment-mobile{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.cert-payment-mobile h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-payment-mobile h2 svg{color:#f97316}.payment-logos{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem;background:var(--bg-secondary, #f8fafc);border-radius:10px}.payment-logos img{height:40px;width:auto;object-fit:contain}.payment-logo-placeholder{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary, #f3f4f6);border-radius:8px;font-weight:600;font-size:.875rem}.payment-logo-placeholder.mtn{background:#fc0;color:#000}.payment-logo-placeholder.orange{background:#f60;color:#fff}.phone-input{display:flex;align-items:stretch;gap:0;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;overflow:hidden;margin-bottom:1rem}.phone-input .phone-prefix{display:flex;align-items:center;padding:0 1rem;background:var(--bg-tertiary, #f3f4f6);font-weight:500;color:var(--text-secondary, #6b7280);border-right:1px solid var(--border-color, #e5e7eb)}.phone-input input{flex:1;padding:.75rem 1rem;border:none;font-size:.9375rem;color:var(--text-primary, #1f2937);background:var(--bg-primary, #ffffff)}.phone-input input:focus{outline:none}.phone-input:focus-within{border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 3px #1a56db1a}.mobile-payment-form{margin-bottom:1.5rem}.mobile-payment-info{padding:1rem;background:linear-gradient(135deg,#f973160d,#f973161a);border-radius:8px;margin-top:1.5rem}.mobile-payment-info h3{margin:0 0 .75rem;font-size:.9375rem;color:var(--text-primary, #1f2937)}.mobile-payment-info ol{margin:0;padding-left:1.25rem}.mobile-payment-info ol li{font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.8}.mobile-payment-info p{margin:0;font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.5}.cert-payment-online{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.cert-payment-online h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:1.125rem;color:var(--text-primary, #1f2937)}.cert-payment-online h2 svg{color:#6366f1}.online-payment-info{text-align:center;padding:2rem 1rem;background:linear-gradient(135deg,#6366f10d,#6366f11a);border-radius:10px;margin-bottom:1.25rem}.online-payment-info .payment-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:16px;color:#fff}.online-payment-info p{margin:0;color:var(--text-secondary, #6b7280);font-size:.9375rem;line-height:1.5}.online-payment-info p strong{color:var(--text-primary, #1f2937)}.online-payment-info .payment-logos{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.payment-logo{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.875rem}.payment-logo.paypal{background:#003087;color:#fff}.payment-logo.visa{background:#1a1f71;color:#fff}.payment-logo.mastercard{background:linear-gradient(135deg,#eb001b,#f79e1b);color:#fff}.security-note{display:flex;align-items:center;gap:.75rem;padding:1rem;background:linear-gradient(135deg,#22c55e0d,#22c55e1a);border-radius:8px;margin-bottom:1.25rem}.security-note svg{flex-shrink:0;color:#22c55e}.security-note p{margin:0;font-size:.875rem;color:var(--text-secondary, #6b7280)}.amount-display{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#1a56db0d,#7c3aed0d);border-radius:10px;margin-bottom:1.25rem}.amount-display .amount-label{font-size:.875rem;color:var(--text-secondary, #6b7280)}.amount-display .amount-value{font-size:1.5rem;font-weight:700;color:var(--gpe-blue, #1a56db)}@media(max-width:640px){.cert-payment{padding:.5rem}.cert-payment-header h1{font-size:1.5rem}.bank-details-grid{grid-template-columns:1fr}.bank-detail.full-width{grid-column:span 1}.payment-methods-grid{grid-template-columns:1fr}.payment-method-card{flex-direction:row;text-align:left;padding:1rem}.payment-method-card.selected:after{top:50%;transform:translateY(-50%)}.method-info{text-align:left}.payment-logos{flex-wrap:wrap;justify-content:center}.amount-display{flex-direction:column;gap:.5rem;text-align:center}.success-actions{flex-direction:column;width:100%}.success-actions .btn{width:100%}}:root.dark .cert-payment-formation,:root.dark .cert-payment-bank,:root.dark .cert-payment-form,[data-theme=dark] .cert-payment-formation,[data-theme=dark] .cert-payment-bank,[data-theme=dark] .cert-payment-form{background:#1e293b;border-color:#334155}:root.dark .cert-payment-header h1,:root.dark .cert-payment-bank h2,:root.dark .cert-payment-form h2,:root.dark .formation-info h3,:root.dark .bank-detail .value,:root.dark .file-name,:root.dark .form-group label,[data-theme=dark] .cert-payment-header h1,[data-theme=dark] .cert-payment-bank h2,[data-theme=dark] .cert-payment-form h2,[data-theme=dark] .formation-info h3,[data-theme=dark] .bank-detail .value,[data-theme=dark] .file-name,[data-theme=dark] .form-group label{color:#f8fafc}:root.dark .cert-payment-header .back-link,:root.dark .formation-info p,:root.dark .bank-instructions,:root.dark .upload-text,:root.dark .cert-payment-note p,[data-theme=dark] .cert-payment-header .back-link,[data-theme=dark] .formation-info p,[data-theme=dark] .bank-instructions,[data-theme=dark] .upload-text,[data-theme=dark] .cert-payment-note p{color:#94a3b8}:root.dark .bank-detail .label,:root.dark .upload-hint,:root.dark .file-size,:root.dark .form-hint,[data-theme=dark] .bank-detail .label,[data-theme=dark] .upload-hint,[data-theme=dark] .file-size,[data-theme=dark] .form-hint{color:#64748b}:root.dark .formation-thumb,:root.dark .formation-placeholder,[data-theme=dark] .formation-thumb,[data-theme=dark] .formation-placeholder{background:#334155}:root.dark .copy-btn,[data-theme=dark] .copy-btn{background:#334155;color:#94a3b8}:root.dark .copy-btn:hover,[data-theme=dark] .copy-btn:hover{background:#3b82f6;color:#fff}:root.dark .file-upload-zone,[data-theme=dark] .file-upload-zone{background:#0f172a;border-color:#334155}:root.dark .file-upload-zone:hover,:root.dark .file-upload-zone.drag-active,[data-theme=dark] .file-upload-zone:hover,[data-theme=dark] .file-upload-zone.drag-active{border-color:#3b82f6;background:#3b82f60d}:root.dark .file-upload-zone.has-file,[data-theme=dark] .file-upload-zone.has-file{background:#1e293b}:root.dark .form-group input,[data-theme=dark] .form-group input{background:#0f172a;border-color:#334155;color:#f8fafc}:root.dark .form-group input:focus,[data-theme=dark] .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}:root.dark .form-error,[data-theme=dark] .form-error{background:#ef44441a;border-color:#ef44444d;color:#f87171}:root.dark .file-remove:hover,[data-theme=dark] .file-remove:hover{background:#ef444433;color:#f87171}:root.dark .cert-payment-note,[data-theme=dark] .cert-payment-note{background:#fbbf241a;border-color:#fbbf2433}:root.dark .bank-instructions,[data-theme=dark] .bank-instructions{background:#3b82f61a}:root.dark .cert-payment-success .success-note,[data-theme=dark] .cert-payment-success .success-note{background:#334155}:root.dark .cert-payment-error h2,:root.dark .cert-payment-success h2,[data-theme=dark] .cert-payment-error h2,[data-theme=dark] .cert-payment-success h2{color:#f8fafc}:root.dark .cert-payment-error p,:root.dark .cert-payment-success p,[data-theme=dark] .cert-payment-error p,[data-theme=dark] .cert-payment-success p{color:#94a3b8}:root.dark .bank-detail .value.reference,[data-theme=dark] .bank-detail .value.reference{color:#60a5fa}:root.dark .invoice-download,[data-theme=dark] .invoice-download{border-color:#334155}:root.dark .payment-reference,[data-theme=dark] .payment-reference{color:#64748b}:root.dark .payment-reference strong,[data-theme=dark] .payment-reference strong{color:#60a5fa}:root.dark .cert-payment-methods,:root.dark .cert-payment-mobile,:root.dark .cert-payment-online,[data-theme=dark] .cert-payment-methods,[data-theme=dark] .cert-payment-mobile,[data-theme=dark] .cert-payment-online{background:#1e293b;border-color:#334155}:root.dark .cert-payment-methods h2,:root.dark .cert-payment-mobile h2,:root.dark .cert-payment-online h2,[data-theme=dark] .cert-payment-methods h2,[data-theme=dark] .cert-payment-mobile h2,[data-theme=dark] .cert-payment-online h2{color:#f8fafc}:root.dark .payment-method-card,[data-theme=dark] .payment-method-card{background:#0f172a;border-color:#334155}:root.dark .payment-method-card:hover,[data-theme=dark] .payment-method-card:hover{border-color:#3b82f6;background:#3b82f60d}:root.dark .payment-method-card.selected,[data-theme=dark] .payment-method-card.selected{border-color:#3b82f6;background:#3b82f61a}:root.dark .payment-method-card.selected:after,[data-theme=dark] .payment-method-card.selected:after{background-color:#3b82f6}:root.dark .method-icon,[data-theme=dark] .method-icon{background:#334155;color:#94a3b8}:root.dark .payment-method-card.selected .method-icon,[data-theme=dark] .payment-method-card.selected .method-icon{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff}:root.dark .method-info .method-name,[data-theme=dark] .method-info .method-name{color:#f8fafc}:root.dark .method-info .method-desc,[data-theme=dark] .method-info .method-desc{color:#64748b}:root.dark .payment-method-card.selected .method-info .method-name,[data-theme=dark] .payment-method-card.selected .method-info .method-name{color:#60a5fa}:root.dark .payment-logos,[data-theme=dark] .payment-logos{background:#0f172a}:root.dark .phone-input,[data-theme=dark] .phone-input{border-color:#334155}:root.dark .phone-input .phone-prefix,[data-theme=dark] .phone-input .phone-prefix{background:#334155;color:#94a3b8;border-color:#334155}:root.dark .phone-input input,[data-theme=dark] .phone-input input{background:#1e293b;color:#f8fafc}:root.dark .phone-input:focus-within,[data-theme=dark] .phone-input:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}:root.dark .mobile-payment-info,[data-theme=dark] .mobile-payment-info{background:#f973161a}:root.dark .mobile-payment-info p,:root.dark .mobile-payment-info ol li,:root.dark .security-note p,:root.dark .online-payment-info p,[data-theme=dark] .mobile-payment-info p,[data-theme=dark] .mobile-payment-info ol li,[data-theme=dark] .security-note p,[data-theme=dark] .online-payment-info p{color:#94a3b8}:root.dark .mobile-payment-info h3,[data-theme=dark] .mobile-payment-info h3{color:#f8fafc}:root.dark .method-info h4,:root.dark .method-info .method-name,[data-theme=dark] .method-info h4,[data-theme=dark] .method-info .method-name{color:#f8fafc}:root.dark .method-info p,:root.dark .method-info .method-desc,:root.dark .method-info .method-time,[data-theme=dark] .method-info p,[data-theme=dark] .method-info .method-desc,[data-theme=dark] .method-info .method-time{color:#64748b}:root.dark .payment-method-card.selected .method-info h4,[data-theme=dark] .payment-method-card.selected .method-info h4{color:#60a5fa}:root.dark .online-payment-info,[data-theme=dark] .online-payment-info{background:#6366f11a}:root.dark .online-payment-info p strong,[data-theme=dark] .online-payment-info p strong{color:#f8fafc}:root.dark .security-note,[data-theme=dark] .security-note{background:#22c55e1a}:root.dark .amount-display,[data-theme=dark] .amount-display{background:#3b82f61a}:root.dark .amount-display .amount-label,[data-theme=dark] .amount-display .amount-label{color:#94a3b8}:root.dark .amount-display .amount-value,[data-theme=dark] .amount-display .amount-value{color:#60a5fa}.cert-events{max-width:800px;margin:0 auto}.cert-events-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-secondary, #6b7280)}.cert-events-header{margin-bottom:1.5rem}.cert-events-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.cert-events-header p{font-size:.9375rem;color:var(--text-secondary, #6b7280);margin:0}.cert-events-filters{display:flex;gap:.5rem;margin-bottom:1.5rem}.cert-events .cert-filter-btn{padding:.625rem 1.25rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;font-weight:500;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.cert-events .cert-filter-btn:hover{border-color:var(--gpe-blue, #1a56db);color:var(--gpe-blue, #1a56db)}.cert-events .cert-filter-btn.active{background:var(--gpe-blue, #1a56db);border-color:var(--gpe-blue, #1a56db);color:#fff}.cert-events-list{display:flex;flex-direction:column;gap:1rem}.cert-event-card{display:flex;gap:1.25rem;padding:1.25rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;transition:all .2s}.cert-event-card:hover{border-color:var(--gpe-blue, #1a56db);box-shadow:0 4px 12px #0000000d}.cert-event-date{width:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem;background:var(--bg-tertiary, #f3f4f6);border-radius:12px;flex-shrink:0}.cert-event-day{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);line-height:1}.cert-event-month{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-secondary, #6b7280);margin-top:.25rem}.cert-event-content{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}.cert-event-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.cert-event-type{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:6px}.cert-type-webinar{background:#dbeafe;color:#2563eb}.cert-type-deadline{background:#fef3c7;color:#d97706}.cert-type-exam{background:#ede9fe;color:#7c3aed}.cert-type-live_session{background:#d1fae5;color:#059669}.cert-type-other{background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary, #6b7280)}.cert-event-time{font-size:.8125rem;color:var(--text-secondary, #6b7280)}.cert-event-content h3{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0}.cert-event-description{font-size:.875rem;color:var(--text-secondary, #6b7280);margin:0;line-height:1.5}.cert-event-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem}.cert-event-program,.cert-event-session{font-size:.75rem;color:var(--text-tertiary, #9ca3af)}.cert-event-program{font-weight:500}.cert-event-action{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--gpe-blue, #1a56db);color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s;align-self:center;flex-shrink:0}.cert-event-action:hover{background:var(--gpe-blue-dark, #1e40af)}.cert-events-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;text-align:center}.cert-events-empty .cert-empty-icon{width:80px;height:80px;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #f3f4f6);border-radius:50%;color:var(--text-tertiary, #9ca3af)}.cert-events-empty h3{font-size:1.125rem;color:var(--text-primary, #1f2937);margin:0 0 .5rem}.cert-events-empty p{color:var(--text-secondary, #6b7280);margin:0}@media(max-width:768px){.cert-event-card{flex-direction:column}.cert-event-date{flex-direction:row;width:auto;gap:.5rem}.cert-event-month{margin-top:0}.cert-event-action{width:100%;justify-content:center}}[data-theme=dark] .cert-event-card,[data-theme=dark] .cert-events-empty,[data-theme=dark] .cert-events .cert-filter-btn{background:var(--bg-primary);border-color:var(--border-color)}[data-theme=dark] .cert-event-date{background:var(--bg-tertiary)}.cert-profile{max-width:700px;margin:0 auto}.cert-profile-header{margin-bottom:1.5rem}.cert-profile-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.cert-profile-header p{font-size:.9375rem;color:var(--text-secondary, #6b7280);margin:0}.cert-profile-success,.cert-profile-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1.5rem;font-size:.9375rem;font-weight:500}.cert-profile-success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.cert-profile-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.cert-profile-card{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.cert-profile-avatar-section{display:flex;align-items:center;gap:1.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb);margin-bottom:1.5rem}.cert-profile-avatar{width:80px;height:80px;border-radius:16px;background:linear-gradient(135deg,var(--gpe-blue, #1a56db),var(--gpe-purple, #7c3aed));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;overflow:hidden}.cert-profile-avatar img{width:100%;height:100%;object-fit:cover}.cert-profile-avatar-info h2{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.cert-profile-role{font-size:.875rem;color:var(--text-secondary, #6b7280)}.cert-profile-form{display:flex;flex-direction:column;gap:1.5rem}.cert-form-section h3{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 1rem}.cert-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.cert-form-group{display:flex;flex-direction:column;gap:.5rem}.cert-form-group label{font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937)}.cert-form-group input{padding:.75rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:10px;font-size:.9375rem;color:var(--text-primary, #1f2937);background:var(--bg-primary, #fff);transition:all .2s}.cert-form-group input:focus{outline:none;border-color:var(--gpe-blue, #1a56db);box-shadow:0 0 0 3px #1a56db1a}.cert-form-group input:disabled{background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary, #6b7280);cursor:not-allowed}.cert-input-disabled{background:var(--bg-tertiary, #f3f4f6)!important}.cert-form-hint{font-size:.75rem;color:var(--text-tertiary, #9ca3af)}.cert-profile-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.cert-profile-actions .btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.cert-profile-actions .btn-primary{background:var(--gpe-blue, #1a56db);color:#fff;border:none}.cert-profile-actions .btn-primary:hover{background:var(--gpe-blue-dark, #1e40af)}.cert-profile-actions .btn-secondary{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937);border:none}.cert-profile-actions .btn-secondary:hover{background:var(--bg-secondary, #e5e7eb)}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cert-security-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:var(--bg-tertiary, #f9fafb);border-radius:12px}.cert-security-info h4{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.cert-security-info p{font-size:.8125rem;color:var(--text-secondary, #6b7280);margin:0}.cert-profile-info h3{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 1rem}.cert-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.cert-info-item{display:flex;flex-direction:column;gap:.25rem}.cert-info-label{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #9ca3af);text-transform:uppercase;letter-spacing:.3px}.cert-info-value{font-size:.9375rem;color:var(--text-primary, #1f2937)}@media(max-width:768px){.cert-form-row{grid-template-columns:1fr}.cert-profile-actions{flex-direction:column}.cert-profile-actions .btn{width:100%;justify-content:center}.cert-security-item{flex-direction:column;align-items:flex-start}.cert-security-item .btn{width:100%;justify-content:center}.cert-info-grid{grid-template-columns:1fr}}[data-theme=dark] .cert-profile-card,[data-theme=dark] .cert-form-group input{background:var(--bg-primary);border-color:var(--border-color)}[data-theme=dark] .cert-form-group input:disabled{background:var(--bg-tertiary)}[data-theme=dark] .cert-security-item{background:var(--bg-tertiary)}.not-found-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);position:relative;overflow:hidden;padding:2rem}.not-found-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}.not-found-circle{position:absolute;border-radius:50%;opacity:.5}.not-found-circle-1{width:600px;height:600px;background:radial-gradient(circle,rgba(5,150,105,.08) 0%,transparent 70%);top:-200px;right:-100px;animation:float 20s ease-in-out infinite}.not-found-circle-2{width:400px;height:400px;background:radial-gradient(circle,rgba(244,63,94,.06) 0%,transparent 70%);bottom:-100px;left:-50px;animation:float 15s ease-in-out infinite reverse}.not-found-circle-3{width:300px;height:300px;background:radial-gradient(circle,rgba(59,130,246,.05) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 10s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(30px,-30px)}}@keyframes pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.3}}.not-found-container{position:relative;z-index:1;text-align:center;max-width:600px;width:100%}.not-found-illustration{margin-bottom:2rem}.not-found-404{display:flex;align-items:center;justify-content:center;gap:.5rem}.digit{font-size:clamp(80px,15vw,150px);font-weight:800;line-height:1;background:linear-gradient(135deg,var(--gpe-green) 0%,#047857 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 10px 30px rgba(5,150,105,.2);animation:digitBounce 2s ease-in-out infinite}.digit-4-left{animation-delay:0s}.digit-4-right{animation-delay:.3s}@keyframes digitBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.compass-container{width:clamp(80px,12vw,120px);height:clamp(80px,12vw,120px);animation:compassFloat 3s ease-in-out infinite}.compass{width:100%;height:100%;color:var(--gray-600)}.compass-needle{transform-origin:50% 50%;animation:needleSpin 4s ease-in-out infinite}@keyframes compassFloat{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-5px) rotate(5deg)}75%{transform:translateY(5px) rotate(-5deg)}}@keyframes needleSpin{0%{transform:rotate(0)}20%{transform:rotate(45deg)}40%{transform:rotate(-30deg)}60%{transform:rotate(60deg)}80%{transform:rotate(-15deg)}to{transform:rotate(0)}}.not-found-content{background:#fff;border-radius:24px;padding:2.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a,0 20px 50px -12px #00000026;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.not-found-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.not-found-description{font-size:1rem;color:var(--gray-600);line-height:1.6;margin:0 0 1.5rem}.not-found-path{display:inline-block;margin-top:.5rem;padding:.25rem .75rem;background:var(--gray-100);border-radius:6px;font-family:SF Mono,Fira Code,monospace;font-size:.875rem;color:var(--gray-700);word-break:break-all}.not-found-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.not-found-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s ease;border:none}.not-found-btn-primary{background:var(--gpe-green);color:#fff}.not-found-btn-primary:hover{background:#047857;transform:translateY(-2px);box-shadow:0 8px 20px #0596694d}.not-found-btn-secondary{background:var(--gray-100);color:var(--gray-700)}.not-found-btn-secondary:hover{background:var(--gray-200);transform:translateY(-2px)}.not-found-btn:active{transform:translateY(0)}.not-found-suggestions{padding-top:1.5rem;border-top:1px solid var(--gray-200)}.not-found-suggestions-title{font-size:.875rem;color:var(--gray-500);margin:0 0 1rem}.not-found-suggestions-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.not-found-suggestion{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:9999px;font-size:.875rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .2s ease}.not-found-suggestion:hover{background:var(--gpe-green-50);border-color:var(--gpe-green);color:var(--gpe-green)}.not-found-suggestion svg{flex-shrink:0}.not-found-footer{margin-top:2rem;animation:fadeIn .6s ease-out .3s both}.not-found-footer p{font-size:.875rem;color:var(--gray-400);margin:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.not-found-page{padding:1rem}.not-found-content{padding:1.5rem;border-radius:16px}.not-found-title{font-size:1.5rem}.not-found-actions{flex-direction:column}.not-found-btn{width:100%;justify-content:center}}:root.dark .not-found-page,.dark .not-found-page{background:linear-gradient(135deg,#0f172a,#1e293b)}:root.dark .not-found-circle-1,.dark .not-found-circle-1{background:radial-gradient(circle,rgba(5,150,105,.15) 0%,transparent 70%)}:root.dark .not-found-circle-2,.dark .not-found-circle-2{background:radial-gradient(circle,rgba(244,63,94,.12) 0%,transparent 70%)}:root.dark .not-found-circle-3,.dark .not-found-circle-3{background:radial-gradient(circle,rgba(59,130,246,.1) 0%,transparent 70%)}:root.dark .not-found-content,.dark .not-found-content{background:#1e293b;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d,0 20px 50px -12px #00000080}:root.dark .not-found-title,.dark .not-found-title{color:#f1f5f9}:root.dark .not-found-description,.dark .not-found-description{color:#94a3b8}:root.dark .not-found-path,.dark .not-found-path{background:#334155;color:#cbd5e1}:root.dark .compass,.dark .compass{color:#94a3b8}:root.dark .not-found-btn-secondary,.dark .not-found-btn-secondary{background:#334155;color:#e2e8f0}:root.dark .not-found-btn-secondary:hover,.dark .not-found-btn-secondary:hover{background:#475569}:root.dark .not-found-suggestions,.dark .not-found-suggestions{border-top-color:#334155}:root.dark .not-found-suggestions-title,.dark .not-found-suggestions-title{color:#64748b}:root.dark .not-found-suggestion,.dark .not-found-suggestion{background:#0f172a;border-color:#334155;color:#94a3b8}:root.dark .not-found-suggestion:hover,.dark .not-found-suggestion:hover{background:#05966933;border-color:var(--gpe-green);color:#34d399}:root.dark .not-found-footer p,.dark .not-found-footer p{color:#475569}@media(prefers-reduced-motion:reduce){.not-found-circle,.digit,.compass-container,.compass-needle,.not-found-content{animation:none}.not-found-btn:hover{transform:none}}
