:root{--primary: #6366F1;--primary-light: #818CF8;--primary-dark: #4F46E5;--primary-bg: rgba(99, 102, 241, .08);--primary-color: var(--primary);--bg: #f4f7fc;--bg-primary: var(--bg);--bg-secondary: #eef2f7;--bg-card: #ffffff;--bg-sidebar: #eef4fc;--bg-header: rgba(249, 251, 255, .92);--surface: var(--bg-card);--surface-raised: #ffffff;--surface-muted: var(--bg-secondary);--surface-subtle: rgba(15, 23, 42, .04);--surface-overlay: rgba(255, 255, 255, .72);--surface-inset: #f8fafc;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-inverse: #ffffff;--border: #e2e8f0;--border-light: #f1f5f9;--hover-bg: #eaf1fb;--glass-bg: rgba(255, 255, 255, .72);--on-primary: #ffffff;--on-success: #ffffff;--on-danger: #ffffff;--on-warning: #111827;--success: #10B981;--success-bg: rgba(16, 185, 129, .08);--warning: #F59E0B;--warning-bg: rgba(245, 158, 11, .08);--danger: #EF4444;--danger-bg: rgba(239, 68, 68, .08);--info: #3B82F6;--info-bg: rgba(59, 130, 246, .08);--success-light: #34d399;--warning-light: #fbbf24;--danger-light: #f87171;--info-light: #60a5fa;--success-text: #047857;--warning-text: #b45309;--danger-text: #b91c1c;--info-text: #2563eb;--primary-text: #4f46e5;--muted-bg: rgba(100, 116, 139, .12);--muted-text: #64748b;--muted-border: rgba(100, 116, 139, .2);--success-border: rgba(16, 185, 129, .16);--warning-border: rgba(245, 158, 11, .16);--danger-border: rgba(239, 68, 68, .16);--primary-border: rgba(99, 102, 241, .16);--info-border: rgba(59, 130, 246, .16);--accent-purple-bg: rgba(139, 92, 246, .08);--accent-purple-border: rgba(139, 92, 246, .16);--accent-purple: #8B5CF6;--accent-pink: #EC4899;--accent-cyan: #06B6D4;--accent-orange: #F97316;--stat-blue: #EFF6FF;--stat-blue-accent: #3B82F6;--stat-green: #ECFDF5;--stat-green-accent: #10B981;--stat-orange: #FFF7ED;--stat-orange-accent: #F59E0B;--stat-indigo: #EEF2FF;--stat-indigo-accent: #6366f1;--stat-purple: #F5F3FF;--stat-purple-accent: #A855F7;--stat-pink: #FDF2F8;--stat-pink-accent: #EC4899;--stat-red-accent: #EF4444;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .03);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow: 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 2px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .08);--shadow-xl: 0 8px 28px rgba(0, 0, 0, .1);--shadow-glass: 0 4px 24px rgba(108, 99, 255, .06);--table-header-bg: #fafbfd;--radius-sm: 10px;--radius-md: 12px;--radius: 14px;--radius-lg: 18px;--radius-xl: 24px;--button-radius: 13px;--transition: .25s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 280px;--sidebar-collapsed-width: 90px;--header-height: 72px;--font-body: "Inter", "Noto Sans", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-heading: "Plus Jakarta Sans", "Inter", "Noto Sans", "Segoe UI", system-ui, sans-serif;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-lg: 1.1875rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--z-base: 1;--z-header: 50;--z-bottom-nav: 60;--z-sidebar: 100;--z-dropdown: 200;--z-modal: 500;--z-toast: 1000;--premium-zinc-50: #f8fafc;--premium-zinc-100: #f1f5f9;--premium-zinc-200: #e2e8f0;--premium-zinc-300: #cbd5e1;--premium-zinc-400: #94a3b8;--premium-zinc-500: #64748b;--premium-zinc-600: #475569;--premium-zinc-700: #334155;--premium-zinc-800: #1e293b;--premium-zinc-900: #0f172a;--premium-purple-500: #8b5cf6;--premium-purple-600: #7c3aed;--premium-indigo-50: #eef2ff;--premium-indigo-100: #e0e7ff;--premium-indigo-500: #6366f1;--premium-indigo-600: #4f46e5;--premium-indigo-700: #4338ca;--shadow-premium: 0 0 0 1px rgba(0, 0, 0, .05), 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-glow: 0 0 20px rgba(139, 92, 246, .15);--border-premium: 1px solid rgba(0, 0, 0, .08);--bg-tertiary: #f0f4f8;--glass-border: rgba(255, 255, 255, .1);--text-soft: #666666;--border-color: #e2e8f0;--star-color: #FFD700;--star-bg: rgba(255, 215, 0, .05);--game-primary: #58CC02;--game-primary-dark: #58A700;--game-secondary: #FFC800;--game-accent: #FF9600;--game-danger: #FF4B4B;--game-surface: #FFFFFF;--game-bg: #F7F7F7;--game-text: #3C3C3C;--game-text-secondary: #777777;--game-border: rgba(0, 0, 0, .08);--game-card-shadow: 0 1px 3px rgba(0, 0, 0, .03);--entity-student: var(--pastel-pink);--entity-student-accent: var(--pastel-pink-accent);--entity-teacher: var(--pastel-indigo);--entity-teacher-accent: var(--pastel-indigo-accent);--entity-class: var(--pastel-green);--entity-class-accent: var(--pastel-green-accent);--entity-transaction: var(--pastel-orange);--entity-transaction-accent: var(--pastel-orange-accent);--entity-finance: var(--pastel-orange);--entity-finance-accent: var(--pastel-orange-accent);--entity-attendance: var(--pastel-teal);--entity-attendance-accent: var(--pastel-teal-accent);--entity-exam: var(--pastel-purple);--entity-exam-accent: var(--pastel-purple-accent);--entity-warning: var(--pastel-yellow);--entity-warning-accent: var(--pastel-yellow-accent);--entity-refund: var(--pastel-rose);--entity-refund-accent: var(--pastel-rose-accent);--entity-danger: var(--pastel-rose);--entity-danger-accent: var(--pastel-rose-accent);--entity-dashboard: var(--pastel-blue);--entity-dashboard-accent: var(--pastel-blue-accent);--entity-settings: var(--pastel-gray);--entity-settings-accent: var(--pastel-gray-accent);--course-bg-gradient: radial-gradient(circle at top left, rgba(99, 102, 241, .1), transparent 32%), radial-gradient(circle at top right, rgba(6, 182, 212, .1), transparent 28%), linear-gradient(180deg, #f8fbff 0%, var(--bg) 58%);--course-hero-gradient: linear-gradient(135deg, var(--primary) 0%, var(--accent-purple) 58%, var(--accent-cyan) 100%);--course-card-shadow: 0 16px 40px rgba(15, 23, 42, .08);--course-card-border: 1px solid rgba(99, 102, 241, .14);--course-chip-bg: rgba(99, 102, 241, .1);--subject-indigo: #6366f1;--subject-indigo-bg: rgba(99, 102, 241, .12);--subject-cyan: #06b6d4;--subject-cyan-bg: rgba(6, 182, 212, .12);--subject-emerald: #10b981;--subject-emerald-bg: rgba(16, 185, 129, .12);--subject-amber: #f59e0b;--subject-amber-bg: rgba(245, 158, 11, .14);--subject-pink: #ec4899;--subject-pink-bg: rgba(236, 72, 153, .12);--subject-violet: #8b5cf6;--subject-violet-bg: rgba(139, 92, 246, .12);--tap-target: 44px;--mobile-card-radius: 20px;--control-height: 44px}[data-theme=dark]{--bg: #050c18;--bg-primary: var(--bg);--bg-secondary: #111827;--bg-card: #0f172a;--bg-sidebar: #0d1728;--bg-header: rgba(13, 23, 40, .88);--surface: var(--bg-card);--surface-raised: #111827;--surface-muted: var(--bg-secondary);--surface-subtle: rgba(148, 163, 184, .12);--surface-overlay: rgba(15, 23, 42, .72);--surface-inset: #0b1220;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--text-inverse: #020617;--border: #1e293b;--border-light: #0f172a;--table-header-bg: #111827;--hover-bg: #1a2740;--glass-bg: rgba(15, 23, 42, .72);--on-primary: #ffffff;--on-success: #ffffff;--on-danger: #ffffff;--on-warning: #111827;--success-text: #6ee7b7;--warning-text: #fcd34d;--danger-text: #fca5a5;--info-text: #93c5fd;--primary-text: #c7d2fe;--muted-bg: rgba(148, 163, 184, .14);--muted-text: #cbd5e1;--muted-border: rgba(148, 163, 184, .24);--shadow-premium: 0 0 0 1px rgba(255, 255, 255, .05), 0 4px 6px -1px rgba(0, 0, 0, .2), 0 2px 4px -1px rgba(255, 255, 255, .08);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .24);--border-premium: 1px solid rgba(255, 255, 255, .08);--premium-zinc-50: #0f172a;--premium-zinc-100: #1e293b;--premium-zinc-200: #334155;--premium-zinc-300: #475569;--premium-zinc-400: #64748b;--premium-zinc-500: #94a3b8;--premium-zinc-600: #cbd5e1;--premium-zinc-700: #e2e8f0;--premium-zinc-800: #f1f5f9;--premium-zinc-900: #f8fafc;--premium-indigo-50: rgba(99, 102, 241, .14);--premium-indigo-100: rgba(129, 140, 248, .24);--premium-indigo-500: #818cf8;--premium-indigo-600: #a5b4fc;--premium-indigo-700: #c7d2fe;--bg-tertiary: #18181b;--glass-border: rgba(255, 255, 255, .05);--text-soft: #a1a1aa;--border-color: #27272a;--game-primary: #58CC02;--game-primary-dark: #46A302;--game-secondary: #FFC800;--game-accent: #FF9600;--game-danger: #FF4B4B;--game-surface: #1E1E2E;--game-bg: #131323;--game-text: #E5E5E5;--game-text-secondary: #ABABAB;--game-border: rgba(255, 255, 255, .1);--game-card-shadow: 0 1px 3px rgba(0, 0, 0, .2);--entity-student: var(--pastel-pink);--entity-student-accent: var(--pastel-pink-accent);--entity-teacher: var(--pastel-indigo);--entity-teacher-accent: var(--pastel-indigo-accent);--entity-class: var(--pastel-green);--entity-class-accent: var(--pastel-green-accent);--entity-transaction: var(--pastel-orange);--entity-transaction-accent: var(--pastel-orange-accent);--entity-finance: var(--pastel-orange);--entity-finance-accent: var(--pastel-orange-accent);--entity-attendance: var(--pastel-teal);--entity-attendance-accent: var(--pastel-teal-accent);--entity-exam: var(--pastel-purple);--entity-exam-accent: var(--pastel-purple-accent);--entity-warning: var(--pastel-yellow);--entity-warning-accent: var(--pastel-yellow-accent);--entity-refund: var(--pastel-rose);--entity-refund-accent: var(--pastel-rose-accent);--entity-danger: var(--pastel-rose);--entity-danger-accent: var(--pastel-rose-accent);--entity-dashboard: var(--pastel-blue);--entity-dashboard-accent: var(--pastel-blue-accent);--entity-settings: var(--pastel-gray);--entity-settings-accent: var(--pastel-gray-accent);--success-light: #6ee7b7;--warning-light: #fcd34d;--danger-light: #fca5a5;--info-light: #93c5fd;--course-bg-gradient: radial-gradient(circle at top left, rgba(129, 140, 248, .16), transparent 34%), radial-gradient(circle at top right, rgba(34, 211, 238, .1), transparent 30%), linear-gradient(180deg, #08111f 0%, var(--bg) 62%);--course-hero-gradient: linear-gradient(135deg, #4f46e5 0%, #7c3aed 62%, #0891b2 100%);--course-card-shadow: 0 18px 44px rgba(0, 0, 0, .28);--course-card-border: 1px solid rgba(148, 163, 184, .16);--course-chip-bg: rgba(129, 140, 248, .16);--subject-indigo-bg: rgba(129, 140, 248, .18);--subject-cyan-bg: rgba(34, 211, 238, .16);--subject-emerald-bg: rgba(52, 211, 153, .15);--subject-amber-bg: rgba(251, 191, 36, .16);--subject-pink-bg: rgba(244, 114, 182, .16);--subject-violet-bg: rgba(167, 139, 250, .17)}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){:root{--s-1: 3px;--s-2: 6px;--s-3: 10px;--s-4: 14px;--s-5: 18px;--s-6: 20px;--s-8: 26px;--s-10: 32px;--s-12: 40px;--radius-sm: 9px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--sidebar-width: 252px;--sidebar-collapsed-width: 78px;--header-height: 64px;--text-xs: .75rem;--text-sm: .875rem;--text-base: .95rem;--text-lg: 1.0625rem;--text-xl: 1.22rem;--text-2xl: 1.52rem;--text-3xl: 1.95rem}}:root{--pastel-pink: #FDF2F8;--pastel-pink-accent: #EC4899;--pastel-blue: #EFF6FF;--pastel-blue-accent: #3B82F6;--pastel-green: #ECFDF5;--pastel-green-accent: #10B981;--pastel-yellow: #FEFCE8;--pastel-yellow-accent: #EAB308;--pastel-orange: #FFF7ED;--pastel-orange-accent: #F97316;--pastel-purple: #F5F3FF;--pastel-purple-accent: #A855F7;--pastel-teal: #F0FDFB;--pastel-teal-accent: #14B8A6;--pastel-indigo: #EEF2FF;--pastel-indigo-accent: #6366F1;--pastel-rose: #FFF1F2;--pastel-rose-accent: #F43F5E;--pastel-lime: #F7FEE7;--pastel-lime-accent: #84CC16;--pastel-gray: #F3F4F6;--pastel-gray-accent: #6B7280}[data-theme=dark]{--pastel-pink: color-mix(in srgb, var(--pastel-pink-accent) 15%, var(--bg-card));--pastel-blue: color-mix(in srgb, var(--pastel-blue-accent) 15%, var(--bg-card));--pastel-green: color-mix(in srgb, var(--pastel-green-accent) 15%, var(--bg-card));--pastel-yellow: color-mix(in srgb, var(--pastel-yellow-accent) 15%, var(--bg-card));--pastel-orange: color-mix(in srgb, var(--pastel-orange-accent) 15%, var(--bg-card));--pastel-purple: color-mix(in srgb, var(--pastel-purple-accent) 15%, var(--bg-card));--pastel-teal: color-mix(in srgb, var(--pastel-teal-accent) 15%, var(--bg-card));--pastel-indigo: color-mix(in srgb, var(--pastel-indigo-accent) 15%, var(--bg-card));--pastel-rose: color-mix(in srgb, var(--pastel-rose-accent) 15%, var(--bg-card));--pastel-lime: color-mix(in srgb, var(--pastel-lime-accent) 15%, var(--bg-card));--pastel-gray: color-mix(in srgb, var(--pastel-gray-accent) 15%, var(--bg-card))}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;height:100%}body{font-family:var(--font-body);background-color:var(--bg);background-image:var(--course-bg-gradient);background-attachment:fixed;color:var(--text-primary);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal;min-height:100%;min-height:100dvh}@media all and (display-mode:standalone){body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.3;letter-spacing:0}h1{font-size:var(--text-3xl);margin-bottom:var(--s-6)}h2{font-size:var(--text-2xl);margin-bottom:var(--s-4)}h3{font-size:var(--text-xl);margin-bottom:var(--s-3)}img{max-width:100%;display:block}button{font-family:inherit;border-radius:var(--button-radius)}.glass-effect{background:#ffffffb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3)}[data-theme=dark] .glass-effect{background:#121215b3;border:1px solid rgba(255,255,255,.05)}.glass-card{background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:var(--text-primary)}[data-theme=dark] .glass-card{background:#101622b3;border:1px solid rgba(255,255,255,.05)}.noise-bg{position:relative}.noise-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.card-hover-lift{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.card-hover-lift:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl),var(--shadow-glow)}.button-press-scale{transition:transform .1s ease}.button-press-scale:active{transform:scale(.95)}.p-1{padding:var(--s-1)}.p-2{padding:var(--s-2)}.p-3{padding:var(--s-3)}.p-4{padding:var(--s-4)}.p-5{padding:var(--s-5)}.m-1{margin:var(--s-1)}.m-2{margin:var(--s-2)}.m-3{margin:var(--s-3)}.m-4{margin:var(--s-4)}.m-5{margin:var(--s-5)}.gap-1{gap:var(--s-1)}.gap-2{gap:var(--s-2)}.gap-3{gap:var(--s-3)}.gap-4{gap:var(--s-4)}.h-full{height:100%}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.bg-primary{background:var(--primary)!important;color:var(--on-primary)}.bg-white,.bg-white\/50,.bg-white\/70{background:var(--surface-overlay)!important}.bg-slate-50,.bg-slate-50\/50,.bg-slate-100,.bg-slate-100\/50{background:var(--surface-muted)!important}.bg-slate-200{background:var(--hover-bg)!important}.bg-slate-800,.bg-slate-800\/30,.bg-slate-800\/50{background:var(--surface-muted)!important}.bg-slate-900,.bg-slate-900\/60,.bg-slate-900\/70{background:var(--surface-raised)!important}.text-slate-100,.text-slate-200,.text-slate-300,.text-slate-600,.text-slate-700,.text-slate-900{color:var(--text-primary)!important}.text-slate-400,.text-slate-500{color:var(--text-muted)!important}.border-slate-100,.border-slate-200,.border-slate-200\/50,.border-slate-300,.border-slate-600,.border-slate-700,.border-slate-700\/50,.border-slate-800{border-color:var(--border)!important}.divide-slate-100>:not([hidden])~:not([hidden]),.divide-slate-800>:not([hidden])~:not([hidden]){border-color:var(--border)!important}[data-theme=dark] .dark\:bg-background-dark,[data-theme=dark] .dark\:bg-background-dark\/50,[data-theme=dark] .dark\:bg-slate-700,[data-theme=dark] .dark\:bg-slate-800,[data-theme=dark] .dark\:bg-slate-800\/30,[data-theme=dark] .dark\:bg-slate-800\/50,[data-theme=dark] .dark\:bg-slate-900\/60,[data-theme=dark] .dark\:bg-slate-900\/70{background:var(--surface-muted)!important}[data-theme=dark] .dark\:text-slate-100,[data-theme=dark] .dark\:text-slate-200,[data-theme=dark] .dark\:text-slate-300{color:var(--text-primary)!important}[data-theme=dark] .dark\:text-slate-400,[data-theme=dark] .dark\:text-slate-500{color:var(--text-muted)!important}[data-theme=dark] .dark\:border-slate-600,[data-theme=dark] .dark\:border-slate-700,[data-theme=dark] .dark\:border-slate-700\/50,[data-theme=dark] .dark\:border-slate-800{border-color:var(--border)!important}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:var(--z-sidebar);transition:width var(--transition),transform var(--transition);overflow:hidden;background:linear-gradient(180deg,var(--bg-sidebar) 0%,color-mix(in srgb,var(--bg) 92%,var(--bg-card) 8%) 100%);color:var(--text-primary);font-family:var(--font-body)}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:calc(var(--z-sidebar) - 1);animation:fadeIn .2s ease}.sidebar-overlay.open{display:block}.sidebar-fixed-top{padding:var(--s-6) var(--s-6) var(--s-4);display:flex;align-items:center;justify-content:space-between;min-height:80px}.sidebar.collapsed .sidebar-fixed-top{padding:var(--s-6) 0 var(--s-4);flex-direction:column;gap:var(--s-2);justify-content:center;min-height:100px}.sidebar-brand{display:flex;align-items:center;gap:var(--s-3);transition:all var(--transition);text-decoration:none;color:inherit}.sidebar-brand-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--on-primary);display:flex;align-items:center;justify-content:center;border-radius:12px;font-weight:800;font-size:20px;box-shadow:0 4px 12px var(--primary-bg)}.sidebar-brand-logo{width:46px;height:46px;object-fit:cover;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-light, var(--border));padding:0;box-shadow:0 4px 12px #00000014;flex-shrink:0}.sidebar-brand-text{font-family:var(--font-heading);font-size:1.125rem;font-weight:800;letter-spacing:0;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:1;transition:opacity .2s ease}.sidebar.collapsed .sidebar-brand-text{opacity:0;width:0;pointer-events:none}.sidebar-scrollable-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:0 var(--s-4) var(--s-6);display:flex;flex-direction:column}.sidebar.collapsed .sidebar-scrollable-content{padding:0 var(--s-2) var(--s-6);align-items:center}.sidebar.collapsed .sidebar-nav,.sidebar.collapsed .sidebar-section{width:100%}.sidebar-nav{display:flex;flex-direction:column;gap:var(--s-6)}.sidebar-section{display:flex;flex-direction:column;gap:var(--s-1)}.sidebar-section-title{padding:0 var(--s-4) var(--s-2);font-size:.75rem;font-weight:700;text-transform:none;letter-spacing:.04em;line-height:1.4;color:var(--text-muted);transition:opacity .2s ease}.sidebar.collapsed .sidebar-section-title{opacity:0;height:0;margin:0;padding:0}.sidebar-link{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-3);border-radius:14px;color:var(--text-secondary);text-decoration:none;font-size:.95rem;font-weight:600;line-height:1.5;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;border:1px solid transparent}.sidebar-icon-wrapper{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--icon-color, var(--text-muted)),transparent 92%);color:var(--icon-color, var(--text-muted));transition:all .2s ease;flex-shrink:0}.sidebar-link:hover{background:var(--bg-card);border-color:var(--border-light);color:var(--text-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.sidebar-link:hover .sidebar-icon-wrapper{background:color-mix(in srgb,var(--icon-color),transparent 85%);transform:scale(1.05)}.sidebar-link.active{background:var(--pastel-section-bg, var(--primary-bg));border-left:4px solid var(--pastel-section-accent, var(--primary));color:var(--pastel-section-accent, var(--primary))}.sidebar-link.active .sidebar-icon-wrapper{background:var(--pastel-section-accent, var(--primary));color:var(--on-primary);box-shadow:0 4px 12px color-mix(in srgb,var(--pastel-section-accent, var(--primary)) 40%,transparent)}.sidebar-link.active .sidebar-label{font-weight:600;color:var(--text-primary)}.sidebar-label{white-space:nowrap;opacity:1;transition:opacity .2s ease;flex:1;line-height:1.45}.sidebar.collapsed .sidebar-label{opacity:0;width:0;pointer-events:none;position:absolute}.sidebar.collapsed .sidebar-link{justify-content:center;width:100%;padding-inline:0}.sidebar.collapsed .sidebar-link.active{border-left-width:1px}.sidebar.collapsed .sidebar-icon-wrapper{margin-inline:auto}.sidebar-collapse-btn-simple{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.sidebar-collapse-btn-simple:hover{background:var(--hover-bg);color:var(--pastel-section-accent, var(--primary));border-color:var(--pastel-section-accent, var(--primary))}.rotate-180{transform:rotate(180deg)}.sidebar-theme-toggle{margin-top:auto;display:flex;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:4px;gap:4px}.sidebar.collapsed .sidebar-theme-toggle{flex-direction:column;width:44px;padding:4px}.theme-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;border-radius:8px;color:var(--text-muted);font-size:.875rem;font-weight:600;line-height:1.4;cursor:pointer;transition:all .2s ease}.theme-option.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.sidebar.collapsed .theme-text{display:none}[data-theme=dark] .sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-sidebar) 96%,black 4%),color-mix(in srgb,var(--bg) 90%,var(--bg-card) 10%))}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.sidebar-fixed-top{min-height:70px;padding:var(--s-4) var(--s-4) var(--s-3)}.sidebar.collapsed .sidebar-fixed-top{min-height:86px;padding:var(--s-4) 0 var(--s-3)}.sidebar-brand-logo{width:40px;height:40px}.sidebar-brand-icon{width:36px;height:36px;border-radius:10px;font-size:17px}.sidebar-brand-text{font-size:1rem;line-height:1.25}.sidebar-scrollable-content{padding:0 var(--s-3) var(--s-4)}.sidebar.collapsed .sidebar-scrollable-content{padding:0 var(--s-2) var(--s-4)}.sidebar-nav{gap:var(--s-4)}.sidebar-section-title{font-size:.6875rem;letter-spacing:.04em;line-height:1.35;padding:0 var(--s-3) var(--s-2)}.sidebar-link{gap:var(--s-3);padding:6px 10px;font-size:.875rem;line-height:1.45;border-radius:12px}.sidebar-icon-wrapper{width:32px;height:32px;border-radius:9px}.sidebar-link.active{border-left-width:3px}.sidebar-collapse-btn-simple{width:26px;height:26px}.theme-option{gap:6px;padding:7px;font-size:12px}}@media(max-width:768px){.sidebar{transform:translate(calc(-100% - 20px));width:280px!important;max-width:calc(100vw - 44px);background:linear-gradient(180deg,var(--bg-sidebar) 0%,var(--bg) 100%)!important;border-right:none;box-shadow:none}.sidebar.open{transform:translate(0);border-right:1px solid var(--border);box-shadow:var(--shadow-xl)}.sidebar.collapsed{width:280px!important}.sidebar-overlay{background:#0f172a73;-webkit-backdrop-filter:none;backdrop-filter:none}.sidebar,.sidebar *{filter:none!important}.sidebar.collapsed .sidebar-brand-text,.sidebar.collapsed .sidebar-label,.sidebar.collapsed .sidebar-section-title{opacity:1;width:auto;position:relative;pointer-events:auto}.sidebar.collapsed .sidebar-fixed-top{flex-direction:row;padding:var(--s-6)}.sidebar.collapsed .theme-text{display:block}.sidebar.collapsed .sidebar-theme-toggle{flex-direction:row;width:auto}.sidebar-scrollable-content{overscroll-behavior-y:contain}}.header{height:var(--header-height);padding:0 var(--s-8);padding-top:env(safe-area-inset-top,0px);background:var(--bg-header);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;transition:all var(--transition)}.header-left,.header-right{display:flex;align-items:center;gap:var(--s-4)}.hamburger{display:none;background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;padding:var(--s-2);min-width:var(--tap-target);min-height:var(--tap-target);border-radius:10px;transition:all var(--transition);align-items:center;justify-content:center}.hamburger:hover{background:var(--hover-bg);border-color:var(--primary);color:var(--primary)}.header-user{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-1) var(--s-3);background:var(--bg-card);border-radius:14px;border:1px solid var(--border-light);transition:all var(--transition);cursor:pointer}.header-user:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary),transparent 95%);transform:translateY(-1px)}.header-avatar{width:32px;height:32px;border-radius:10px;object-fit:cover;border:1.5px solid var(--primary);box-shadow:0 2px 8px var(--primary-bg)}.header-user-info{display:flex;flex-direction:column;line-height:1.2}.header-username{font-size:13px;font-weight:700;color:var(--text-primary)}.header-role{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:capitalize}.logout-btn{width:var(--tap-target);height:var(--tap-target);border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.logout-btn:hover{background:color-mix(in srgb,var(--danger),transparent 92%);color:var(--danger);border-color:var(--danger-light);transform:scale(1.05)}@media(max-width:768px){.hamburger{display:flex}.header{padding:0 var(--s-4);padding-top:env(safe-area-inset-top,0px);height:calc(62px + env(safe-area-inset-top,0px));background:color-mix(in srgb,var(--bg-header) 88%,transparent)}.header-user-info{display:none}.header-user{padding:var(--s-1);border-radius:12px;min-width:var(--tap-target);min-height:var(--tap-target);justify-content:center}}[data-theme=dark] .header{background:#10121fcc}[data-theme=dark] .header-user,[data-theme=dark] .logout-btn{background:#ffffff08;border-color:#ffffff14}.user-badge{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm);background:var(--hover-bg);font-size:15px;font-weight:500}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;color:var(--on-primary);font-weight:700;font-size:15px}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.header{padding:0 var(--s-6)}.header-right{gap:var(--s-3)}.header-user{border-radius:12px;gap:10px;padding:3px 10px}.header-avatar{width:30px;height:30px}.header-username{font-size:12px}.header-role{font-size:10px}.logout-btn{width:34px;height:34px;border-radius:10px}}.notification-bell{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.notification-bell:hover{background:color-mix(in srgb,var(--primary),transparent 92%);color:var(--primary);border-color:color-mix(in srgb,var(--primary),transparent 80%);transform:scale(1.05)}.notification-bell.active{background:color-mix(in srgb,var(--primary),transparent 90%);color:var(--primary);border-color:color-mix(in srgb,var(--primary),transparent 70%)}.notification-bell.intense{box-shadow:0 0 #ef444480;animation:intense-bell-glow 1.6s ease infinite}@keyframes intense-bell-glow{0%{box-shadow:0 0 #ef44448c}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.notification-bell-icon{transition:transform .2s ease}.notification-bell:hover .notification-bell-icon{transform:rotate(12deg)}.notification-bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#ef4444;color:#fff;border-radius:20px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-header);box-shadow:0 2px 4px #ef44444d;animation:badge-pop .3s ease}@keyframes badge-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.notification-drawer .drawer-body{padding:0;display:flex;flex-direction:column;height:100%}.notification-filter-tabs{display:flex;gap:4px;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.notification-filter-tab{flex:1;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:6px}.notification-filter-tab:hover{background:var(--hover-bg);color:var(--text-primary)}.notification-filter-tab.active{background:var(--bg-card);color:var(--primary);box-shadow:0 1px 3px #0000001a}.notification-filter-badge{background:var(--primary);color:#fff;font-size:10px;padding:1px 6px;border-radius:10px}.notification-mark-all{padding:8px 16px;border-bottom:1px solid var(--border-light)}.notification-mark-all-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition)}.notification-mark-all-btn:hover{background:color-mix(in srgb,var(--primary),transparent 90%)}.notification-fetch-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 16px 0;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,#EF4444,transparent 75%);background:color-mix(in srgb,#EF4444,transparent 94%)}.notification-fetch-error-copy{min-width:0}.notification-fetch-error-title{margin:0;font-size:13px;font-weight:700;color:#b91c1c}.notification-fetch-error-text{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.notification-fetch-error-btn,.notification-retry-btn{border:none;border-radius:10px;background:color-mix(in srgb,var(--primary),transparent 88%);color:var(--primary);padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition)}.notification-fetch-error-btn:hover,.notification-retry-btn:hover{background:color-mix(in srgb,var(--primary),transparent 80%)}.notification-list{flex:1;overflow-y:auto;padding:16px}.notification-group{margin-bottom:24px}.notification-group:last-child{margin-bottom:0}.notification-group-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.notification-group-label{font-size:11px;font-weight:700;text-transform:none;letter-spacing:.1em;color:var(--text-muted);white-space:nowrap}.notification-group-divider{flex:1;height:1px;background:var(--border-light)}.notification-group-items{display:flex;flex-direction:column;gap:12px}.notification-card{position:relative;--notification-accent: var(--primary);background:var(--bg-card);border-radius:16px;border:1px solid var(--border-light);padding:16px;transition:all .2s ease;overflow:hidden}.notification-card:hover{box-shadow:0 12px 28px color-mix(in srgb,var(--notification-accent),transparent 88%);transform:translateY(-2px);border-color:color-mix(in srgb,var(--notification-accent),transparent 70%)}.notification-card-tone-danger{--notification-accent: #ef4444}.notification-card-tone-success{--notification-accent: #16a34a}.notification-card-tone-info{--notification-accent: #2563eb}.notification-card-tone-warning{--notification-accent: #f59e0b}.notification-card-tone-neutral{--notification-accent: #64748b}.notification-card.unread{background:color-mix(in srgb,var(--notification-accent),transparent 95%);border-left:3px solid var(--notification-accent)}.notification-card.unread:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:16px;pointer-events:none;background:linear-gradient(120deg,color-mix(in srgb,var(--notification-accent),transparent 84%),transparent 42%,color-mix(in srgb,var(--notification-accent),transparent 94%));opacity:.5}.notification-card.unread:hover:before{opacity:.75}.notification-unread-dot{position:absolute;top:18px;right:18px;width:8px;height:8px;background:var(--notification-accent);border-radius:50%;animation:pulse-dot 2s ease infinite;box-shadow:0 0 0 4px color-mix(in srgb,var(--bg-card),transparent 15%)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.notification-card-content{display:flex;gap:14px;align-items:flex-start}.notification-card-main{display:block;padding-right:74px;border-radius:12px;color:inherit;cursor:pointer;text-decoration:none}.notification-card-main:focus-visible{outline:2px solid color-mix(in srgb,var(--notification-accent),transparent 35%);outline-offset:4px}.notification-avatar-section{position:relative;flex-shrink:0}.notification-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;border:2px solid var(--bg-card);box-shadow:0 2px 8px #0000001a;background:linear-gradient(135deg,color-mix(in srgb,var(--primary),white 45%),color-mix(in srgb,var(--primary),#7c3aed 35%));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700;letter-spacing:.03em}.notification-avatar-image{width:100%;height:100%;object-fit:cover;display:block}.notification-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%}.notification-avatar.is-fallback{border-color:color-mix(in srgb,var(--bg-card),transparent 15%)}.notification-type-icon{position:absolute;bottom:-4px;right:-4px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-card);box-shadow:0 2px 4px #0000001a}.notification-type-icon-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.notification-type-icon-success{background:linear-gradient(135deg,#22c55e,#16a34a)}.notification-type-icon-info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.notification-type-icon-warning{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.notification-type-icon-neutral{background:linear-gradient(135deg,#94a3b8,#64748b)}.notification-content{flex:1;min-width:0}.notification-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.notification-header{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.notification-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.notification-top-actions{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;z-index:1}.notification-top-actions>button{flex-shrink:0}.notification-whatsapp-btn{width:24px;height:24px;border:none;border-radius:999px;background:#25d366;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #25d36659;transition:transform .15s ease,box-shadow .15s ease}.notification-whatsapp-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #25d36673}.notification-title{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.3;margin:0}.notification-title-danger{color:#b91c1c}.notification-title-success{color:#15803d}.notification-title-info{color:#1d4ed8}.notification-title-warning{color:#b45309}.notification-title-neutral{color:var(--text-primary)}.notification-type-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:none;border:1px solid transparent}.notification-type-badge-danger{background:color-mix(in srgb,#ef4444,white 88%);color:#b91c1c;border-color:color-mix(in srgb,#ef4444,transparent 78%)}.notification-type-badge-success{background:color-mix(in srgb,#16a34a,white 88%);color:#166534;border-color:color-mix(in srgb,#16a34a,transparent 78%)}.notification-type-badge-info{background:color-mix(in srgb,#2563eb,white 88%);color:#1d4ed8;border-color:color-mix(in srgb,#2563eb,transparent 78%)}.notification-type-badge-warning{background:color-mix(in srgb,#f59e0b,white 88%);color:#b45309;border-color:color-mix(in srgb,#f59e0b,transparent 78%)}.notification-type-badge-neutral{background:color-mix(in srgb,#64748b,white 88%);color:#475569;border-color:color-mix(in srgb,#64748b,transparent 78%)}.notification-time{font-size:11px;font-weight:500;color:var(--text-muted);line-height:1.2}.notification-time-relative{color:var(--text-secondary);font-weight:600}.notification-time-absolute{white-space:nowrap}.notification-time-separator{color:var(--border);font-size:10px}.notification-message{font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.5;margin:0 0 6px}.notification-card:hover .notification-type-badge,.notification-card:hover .notification-delete-btn,.notification-card:hover .notification-whatsapp-btn{transform:translateY(-1px)}.notification-subtitle{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0 0 8px}.notification-view-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--primary);text-decoration:none;transition:gap .2s ease}.notification-view-link:hover{gap:8px}.notification-delete-btn{width:30px;height:30px;border:1px solid color-mix(in srgb,var(--border-light),transparent 10%);border-radius:10px;background:color-mix(in srgb,var(--bg-card),var(--bg-secondary) 18%);color:var(--text-muted);cursor:pointer;opacity:.84;transition:all var(--transition);display:flex;align-items:center;justify-content:center}.notification-card:hover .notification-delete-btn,.notification-delete-btn:focus{opacity:1;transform:translateY(-1px);border-color:color-mix(in srgb,var(--danger),transparent 78%)}.notification-delete-btn:hover{background:var(--danger-bg);color:var(--danger)}[data-theme=dark] .notification-type-badge-danger{background:color-mix(in srgb,#ef4444,transparent 84%);color:#fca5a5}[data-theme=dark] .notification-type-badge-success{background:color-mix(in srgb,#16a34a,transparent 84%);color:#86efac}[data-theme=dark] .notification-type-badge-info{background:color-mix(in srgb,#2563eb,transparent 84%);color:#93c5fd}[data-theme=dark] .notification-type-badge-warning{background:color-mix(in srgb,#f59e0b,transparent 84%);color:#fcd34d}[data-theme=dark] .notification-type-badge-neutral{background:color-mix(in srgb,#64748b,transparent 84%);color:#cbd5e1}.notification-actions{display:flex;gap:8px;margin-top:12px;margin-left:62px;flex-wrap:wrap}.notification-action-btn{padding:6px 14px;border:none;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;transition:all var(--transition)}.notification-action-btn.primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px #ec5b134d}.notification-action-btn.primary:hover{background:color-mix(in srgb,var(--primary),black 15%);transform:translateY(-1px);box-shadow:0 4px 12px #ec5b1366}.notification-action-btn.secondary{background:var(--bg-secondary);color:var(--text-secondary)}.notification-action-btn.secondary:hover{background:var(--hover-bg);color:var(--text-primary)}.notification-action-btn.danger{background:var(--danger-bg);color:var(--danger)}.notification-action-btn.danger:hover{background:var(--danger);color:#fff}.notification-actions-more{font-size:11px;color:var(--text-muted);align-self:center}.notification-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.notification-empty-icon{width:64px;height:64px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--text-muted)}.notification-empty-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.notification-empty-description{font-size:13px;color:var(--text-muted)}.notification-error-state .notification-empty-icon,.notification-error-icon{background:color-mix(in srgb,#EF4444,transparent 90%);color:#dc2626}.notification-retry-btn{margin-top:12px}.notification-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding:16px;border-top:1px solid var(--border-light);background:var(--bg-secondary)}.notification-view-all{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:all var(--transition)}.notification-view-all:hover{color:var(--primary);gap:10px}.notification-settings-link{padding:8px;border-radius:8px;color:var(--text-muted);transition:all var(--transition)}.notification-settings-link:hover{background:var(--hover-bg);color:var(--primary)}.notification-skeleton-list{padding:16px;display:flex;flex-direction:column;gap:16px}.notification-skeleton-card{display:flex;gap:14px;padding:16px;background:var(--bg-card);border-radius:16px;border:1px solid var(--border-light)}.notification-skeleton-avatar{position:relative;flex-shrink:0}.notification-skeleton-icon{position:absolute;bottom:-4px;right:-4px;width:22px;height:22px;border-radius:50%;overflow:hidden}.notification-skeleton-content{flex:1}.notification-skeleton-header{display:flex;justify-content:space-between;margin-bottom:8px}.notification-skeleton-message{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.notification-skeleton-actions{display:flex;gap:8px}.skeleton-pulse{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--hover-bg) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease infinite}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-icon{width:22px;height:22px}.skeleton-title{width:60%;height:14px;border-radius:4px}.skeleton-time{width:60px;height:10px;border-radius:4px}.skeleton-text{height:12px;border-radius:4px}.skeleton-text-full{width:100%}.skeleton-text-70{width:70%}.skeleton-btn{width:80px;height:28px;border-radius:8px}[data-theme=dark] .notification-card{background:var(--bg-sidebar)}[data-theme=dark] .notification-card.unread{background:color-mix(in srgb,var(--primary),transparent 92%)}[data-theme=dark] .notification-card.unread:before{opacity:.42}[data-theme=dark] .notification-filter-tab.active,[data-theme=dark] .notification-skeleton-card{background:var(--bg-sidebar)}@media(max-width:480px){.notification-drawer{width:100%!important;max-width:100%!important}.notification-card{padding:12px}.notification-avatar{width:40px;height:40px}.notification-type-icon{width:18px;height:18px}.notification-action-btn{padding:5px 10px;font-size:10px}.notification-top-row{gap:10px}.notification-top-actions{gap:6px}.notification-meta-row{gap:4px}.notification-time-absolute{white-space:normal}}.notification-drawer{--notification-panel-surface: color-mix(in srgb, var(--bg-card) 94%, var(--bg-secondary) 6%);--notification-panel-muted: color-mix(in srgb, var(--bg-secondary) 82%, var(--bg-card) 18%);--notification-panel-line: color-mix(in srgb, var(--border-light) 74%, transparent);--notification-card-shadow: 0 12px 30px color-mix(in srgb, #0f172a 8%, transparent);--notification-card-hover-shadow: 0 18px 44px color-mix(in srgb, #0f172a 12%, transparent);--drawer-shadow: none;--notification-ease: .18s cubic-bezier(.2, .8, .2, 1)}.notification-drawer.side-drawer{background:radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--primary) 10%,transparent) 0,transparent 34%),linear-gradient(180deg,var(--notification-panel-surface) 0%,var(--bg-card) 44%,var(--notification-panel-muted) 100%);border-left-color:var(--notification-panel-line);border-top-color:color-mix(in srgb,var(--primary) 72%,transparent);box-shadow:none}.notification-drawer .drawer-header{min-height:62px;padding:14px 18px 12px;background:color-mix(in srgb,var(--bg-card) 82%,transparent);border-bottom-color:var(--notification-panel-line);box-shadow:0 1px color-mix(in srgb,white 36%,transparent) inset}.notification-drawer .drawer-title{font-size:1.05rem;font-weight:750;letter-spacing:-.025em}.notification-drawer .drawer-subtitle-inline{font-size:.78rem;font-weight:650;color:var(--text-secondary)}.notification-drawer .drawer-close-btn{width:32px;height:32px;border-radius:999px;background:color-mix(in srgb,var(--bg-secondary) 82%,transparent);box-shadow:none}.notification-drawer .drawer-body{gap:0;background:transparent}.notification-filter-tabs{position:sticky;top:0;z-index:4;gap:3px;padding:10px 14px 8px;background:color-mix(in srgb,var(--bg-card) 84%,transparent);border-bottom-color:transparent;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.notification-filter-tabs:before{content:"";position:absolute;inset:auto 14px 0;height:1px;background:var(--notification-panel-line)}.notification-filter-tab{min-height:34px;padding:7px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:-.01em}.notification-filter-tab:hover{background:color-mix(in srgb,var(--primary) 7%,transparent);color:var(--text-primary)}.notification-filter-tab.active{background:var(--bg-card);border-color:color-mix(in srgb,var(--primary) 18%,var(--notification-panel-line));box-shadow:0 8px 18px color-mix(in srgb,#0f172a 7%,transparent)}.notification-filter-tab:focus-visible,.notification-mark-all-btn:focus-visible,.notification-card:focus-visible,.notification-delete-btn:focus-visible,.notification-whatsapp-btn:focus-visible,.notification-action-btn:focus-visible,.notification-view-all:focus-visible,.notification-settings-link:focus-visible,.notification-fetch-error-btn:focus-visible,.notification-retry-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 65%,transparent);outline-offset:2px}.notification-filter-badge{min-width:18px;height:18px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 10px color-mix(in srgb,var(--primary) 25%,transparent)}.notification-mark-all{padding:8px 14px 4px;border-bottom:0;display:flex;justify-content:flex-end}.notification-mark-all-btn{min-height:32px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--primary) 7%,transparent);color:var(--primary);font-size:11.5px;font-weight:750;letter-spacing:-.01em}.notification-mark-all-btn:hover{background:color-mix(in srgb,var(--primary) 12%,transparent);border-color:color-mix(in srgb,var(--primary) 28%,transparent);transform:translateY(-1px)}.notification-fetch-error{margin:10px 14px 0;padding:10px 12px;border-radius:14px}.notification-list{padding:10px 14px 14px;scrollbar-gutter:stable}.notification-list::-webkit-scrollbar{width:5px}.notification-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 24%,transparent);border-radius:999px}.notification-group{margin-bottom:18px}.notification-group-header{gap:9px;margin:4px 2px 8px}.notification-group-label{margin:0;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb,var(--text-muted) 88%,var(--text-primary) 12%)}.notification-group-divider{background:linear-gradient(90deg,var(--notification-panel-line),transparent)}.notification-group-items{gap:8px}.notification-card{padding:11px 12px;border-radius:18px;border-color:color-mix(in srgb,var(--border-light) 72%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 98%,white 2%),var(--bg-card)),var(--bg-card);box-shadow:0 1px color-mix(in srgb,white 42%,transparent) inset,var(--notification-card-shadow);transition:transform var(--notification-ease),box-shadow var(--notification-ease),border-color var(--notification-ease),background var(--notification-ease);contain:content}.notification-card:hover,.notification-card:focus-visible{transform:translateY(-1px);box-shadow:0 1px color-mix(in srgb,white 42%,transparent) inset,var(--notification-card-hover-shadow);border-color:color-mix(in srgb,var(--notification-accent) 28%,var(--border-light))}.notification-card.unread{background:linear-gradient(135deg,color-mix(in srgb,var(--notification-accent) 8%,transparent),transparent 42%),var(--bg-card);border-left:1px solid color-mix(in srgb,var(--notification-accent) 34%,var(--border-light))}.notification-card.unread:before{inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--notification-accent),transparent 52%);opacity:.12;width:3px}.notification-unread-dot{top:13px;right:90px;width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb,var(--notification-accent) 12%,var(--bg-card))}.notification-card-content{gap:10px}.notification-avatar{width:42px;height:42px;border-width:1px;border-color:color-mix(in srgb,var(--bg-card) 70%,var(--border-light));box-shadow:0 8px 18px color-mix(in srgb,#0f172a 11%,transparent);font-size:13px}.notification-avatar-image{background:var(--notification-panel-muted)}.notification-avatar.is-fallback{background:radial-gradient(circle at 30% 22%,color-mix(in srgb,white 30%,transparent),transparent 35%),linear-gradient(135deg,color-mix(in srgb,var(--notification-accent) 72%,var(--primary)),color-mix(in srgb,var(--notification-accent) 52%,#0f172a))}.notification-type-icon{width:18px;height:18px;right:-2px;bottom:-2px;border-width:1.5px;box-shadow:0 4px 10px color-mix(in srgb,#0f172a 16%,transparent)}.notification-type-icon svg{width:10px;height:10px}.notification-top-row{gap:8px;margin-bottom:4px}.notification-header{gap:3px}.notification-title{font-size:13px;font-weight:750;letter-spacing:-.012em}.notification-meta-row{gap:5px}.notification-type-badge{min-height:18px;padding:0 7px;font-size:9.5px;letter-spacing:.03em}.notification-time{font-size:10.5px;line-height:1.25}.notification-time-relative{font-weight:700}.notification-message{margin:0 0 4px;font-size:12.5px;font-weight:600;line-height:1.42;letter-spacing:-.006em}.notification-subtitle{margin:0 0 6px;font-size:11.5px;line-height:1.38}.notification-top-actions{top:11px;right:12px;gap:5px}.notification-whatsapp-btn,.notification-delete-btn{width:28px;height:28px;min-width:28px;border-radius:999px}.notification-delete-btn{background:color-mix(in srgb,var(--bg-secondary) 58%,transparent);opacity:.78}.notification-delete-btn:hover{transform:translateY(-1px) scale(1.02)}.notification-view-link{margin-top:2px;font-size:11.5px;font-weight:750;pointer-events:none}.notification-actions{gap:6px;margin-top:8px}.notification-action-btn{min-height:30px;padding:6px 11px;border-radius:999px;font-size:10.5px;letter-spacing:-.005em}.notification-empty-state{min-height:360px;padding:54px 26px}.notification-empty-icon{width:58px;height:58px;background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 36%),color-mix(in srgb,var(--bg-secondary) 78%,var(--bg-card));box-shadow:0 16px 34px color-mix(in srgb,#0f172a 10%,transparent)}.notification-empty-title{margin:0 0 5px;font-size:14px;font-weight:750;letter-spacing:-.015em}.notification-empty-description{margin:0;font-size:12.5px;line-height:1.45}.notification-drawer-footer{padding:11px 14px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg-card) 86%,transparent);border-top-color:var(--notification-panel-line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.notification-view-all{min-height:34px;padding:0 11px;border:1px solid color-mix(in srgb,var(--border-light) 78%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg-secondary) 58%,transparent);font-size:12px;font-weight:750}.notification-view-all:hover{background:color-mix(in srgb,var(--primary) 8%,transparent);border-color:color-mix(in srgb,var(--primary) 22%,transparent)}.notification-settings-link{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.notification-skeleton-list{padding:14px;gap:8px}.notification-skeleton-card{padding:11px 12px;border-radius:18px}.skeleton-avatar{width:42px;height:42px}.skeleton-icon{width:18px;height:18px}[data-theme=dark] .notification-drawer{--notification-card-shadow: 0 12px 30px rgba(0, 0, 0, .26);--notification-card-hover-shadow: 0 18px 48px rgba(0, 0, 0, .34);--notification-panel-line: color-mix(in srgb, var(--border-light) 56%, transparent)}[data-theme=dark] .notification-drawer.side-drawer{background:radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--primary) 16%,transparent) 0,transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 84%,#020617 16%) 0%,var(--bg-card) 48%,color-mix(in srgb,var(--bg-secondary) 76%,#020617 24%) 100%)}[data-theme=dark] .notification-card{background:color-mix(in srgb,var(--bg-card) 82%,#020617 18%);box-shadow:0 1px #ffffff0a inset,var(--notification-card-shadow)}[data-theme=dark] .notification-card.unread{background:linear-gradient(135deg,color-mix(in srgb,var(--notification-accent) 14%,transparent),transparent 46%),color-mix(in srgb,var(--bg-card) 82%,#020617 18%)}[data-theme=dark] .notification-filter-tab.active,[data-theme=dark] .notification-view-all{background:color-mix(in srgb,var(--bg-card) 78%,#020617 22%)}@media(max-width:768px){.notification-drawer.side-drawer{height:min(88vh,760px);border-radius:22px 22px 0 0;border-top:1px solid var(--notification-panel-line);box-shadow:none}.notification-drawer .drawer-header{padding-top:18px}.notification-drawer .drawer-header:before{content:"";position:absolute;top:8px;left:50%;width:42px;height:4px;border-radius:999px;transform:translate(-50%);background:color-mix(in srgb,var(--text-muted) 28%,transparent)}.notification-filter-tabs{padding:9px 12px 8px}.notification-list{padding:9px 12px 12px}.notification-card{min-height:72px;padding:12px}.notification-whatsapp-btn,.notification-delete-btn{width:32px;height:32px;min-width:32px}.notification-action-btn{min-height:34px;padding-inline:13px}}@media(max-width:480px){.notification-drawer .drawer-title{font-size:1rem}.notification-card-content{gap:9px}.notification-avatar{width:38px;height:38px}.notification-type-icon{width:17px;height:17px}.notification-time-absolute,.notification-time-separator{display:none}.notification-drawer-footer{gap:8px}.notification-view-all{flex:1;justify-content:center}}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-base);background:var(--bg-card)}.data-table th{text-align:left;padding:16px 22px;font-weight:700;font-size:var(--text-xs);text-transform:none;letter-spacing:.08em;color:var(--text-muted);background:var(--table-header-bg);border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:0 22px;height:56px;border-bottom:1px solid var(--border-light);color:var(--text-primary);line-height:1.4;vertical-align:middle}.data-table tbody tr{transition:all .15s ease;cursor:pointer}.data-table tbody tr:nth-child(2n){background:var(--bg-secondary)}.data-table tbody tr:hover{background:var(--hover-bg)}.badge{display:inline-flex;align-items:center;padding:3px 11px;border-radius:99px;font-size:var(--text-sm);font-weight:600;letter-spacing:.01em}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-primary{background:var(--primary-bg);color:var(--primary)}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.data-table{font-size:var(--text-sm)}.data-table th{padding:11px 14px;font-size:10px;letter-spacing:.065em}.data-table td{padding:0 14px;height:48px;font-size:13px}.badge{padding:2px 9px;font-size:.74rem}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow .15s ease}.card:hover{box-shadow:var(--shadow-md)}.attendance-add-card{border-radius:16px;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;padding:20px;opacity:.5;transition:all .2s ease;cursor:pointer;background:transparent}.attendance-add-card:hover{opacity:1;border-color:var(--primary);background:var(--primary-bg)}.attendance-add-card span{font-size:12px;font-weight:700;color:var(--text-muted);letter-spacing:.05em;text-transform:none}.attendance-add-card:hover span{color:var(--primary)}.teacher-payouts-filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.teacher-payouts-quick-filters{display:flex;gap:8px;flex-wrap:wrap}.teacher-payout-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.teacher-payout-apple-card{background:linear-gradient(180deg,var(--bg-card) 0%,var(--bg-secondary) 100%);border-radius:18px;box-shadow:0 1px 2px #0f172a0a,0 12px 28px #0f172a14;border:1px solid rgba(148,163,184,.24);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:14px;display:flex;flex-direction:column;gap:12px;transition:all .2s cubic-bezier(.4,0,.2,1)}.teacher-payout-apple-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #0f172a0a,0 16px 32px #0f172a1f}.teacher-payout-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.teacher-payout-card-user{display:flex;align-items:center;gap:10px;min-width:0}.teacher-payout-avatar{width:44px;height:44px;border-radius:14px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:14px;font-weight:700;background:linear-gradient(160deg,#dbeafe,#c7d2fe);border:1px solid rgba(148,163,184,.3);box-shadow:inset 0 1px #fffc}.teacher-payout-avatar img{width:100%;height:100%;object-fit:cover}.teacher-payout-card-name{font-size:15px;line-height:1.25;font-weight:700;color:var(--text-primary)}.teacher-payout-card-meta{margin-top:4px;font-size:11px;color:var(--text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:5px}.teacher-payout-card-meta .sep{color:#d1d1d6}.teacher-payout-badge{font-size:10px;font-weight:700;padding:4px 8px;border-radius:9px;border:1px solid transparent;line-height:1}.teacher-payout-badge.pending{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.teacher-payout-badge.partial{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.teacher-payout-badge.paid{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.teacher-payout-card-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.teacher-payout-card-metric{background:var(--bg-card);border:1px solid rgba(148,163,184,.24);border-radius:10px;padding:8px 9px}.teacher-payout-card-metric .metric-label{font-size:10px;color:var(--text-muted);text-transform:none;letter-spacing:.02em;font-weight:700}.teacher-payout-card-metric .metric-value{margin-top:4px;font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.15}.teacher-payout-card-metric .metric-value.muted{color:var(--text-secondary)}.teacher-payout-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.teacher-payout-card-actions-main{display:flex;align-items:center;gap:8px}.teacher-payout-more-trigger{width:auto!important;height:34px!important;padding:0 12px!important;border-radius:11px!important;border:1px solid rgba(148,163,184,.36)!important;background:var(--bg-card)!important}.teacher-payout-more-label{font-size:12px;font-weight:700;color:var(--text-secondary)}.teacher-payout-card-actions .action-dropdown-menu{min-width:190px;border-radius:12px;border-color:#94a3b84d;box-shadow:0 10px 24px #0f172a24}.teacher-payout-card-actions .btn{border-radius:11px;font-weight:600}@media(max-width:768px){.teacher-payouts-filter-row{grid-template-columns:1fr}.teacher-payouts-quick-filters{width:100%}.teacher-payouts-quick-filters .btn{flex:1;justify-content:center}.teacher-payout-apple-card{padding:12px}.teacher-payout-card-body{grid-template-columns:1fr}.teacher-payout-card-actions{justify-content:stretch;flex-direction:column;align-items:stretch}.teacher-payout-card-actions-main{width:100%}.teacher-payout-card-actions .btn{flex:1;justify-content:center}.teacher-payout-more-trigger{width:100%!important;justify-content:center!important}}.card-header{padding:20px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-header h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.card-body{padding:24px 28px}.card-body--flush{padding:0}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(160px,auto);gap:var(--s-5);margin-bottom:var(--s-8)}@media(max-width:1200px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.bento-grid{grid-template-columns:1fr;gap:var(--s-4)}}.stats-container-mobile{display:flex;gap:var(--s-4);overflow-x:auto;padding:4px 4px 16px;margin:0 -4px;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;scroll-snap-type:x mandatory}.stats-container-mobile::-webkit-scrollbar{display:none}.premium-stat-card{min-width:180px;flex:1;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--s-5);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-4);transition:all var(--transition);position:relative;overflow:hidden;scroll-snap-align:start;-webkit-user-select:none;user-select:none}.premium-stat-card:active{transform:scale(.97);background:var(--hover-bg)}.premium-stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.premium-stat-card .stat-icon-wrapper{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:auto;transition:transform var(--transition)}.premium-stat-card:hover .stat-icon-wrapper{transform:rotate(-10deg) scale(1.1)}.premium-stat-content{display:flex;flex-direction:column}.premium-stat-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:none;letter-spacing:.05em;margin-bottom:4px}.premium-stat-value{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:800;color:var(--text-primary);line-height:1}.premium-stat-trend{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:600;margin-top:4px}.premium-stat-trend.up{color:var(--success)}.premium-stat-trend.down{color:var(--danger)}.premium-stat-card.blue .stat-icon-wrapper{background:var(--stat-blue-accent);color:var(--on-primary)}.premium-stat-card.green .stat-icon-wrapper{background:var(--stat-green-accent);color:var(--on-success)}.premium-stat-card.orange .stat-icon-wrapper{background:var(--stat-orange-accent);color:var(--on-primary)}.premium-stat-card.purple .stat-icon-wrapper{background:var(--stat-purple-accent);color:var(--on-primary)}.premium-stat-card.red .stat-icon-wrapper{background:var(--stat-red-accent);color:var(--on-danger)}.premium-stat-card.pink .stat-icon-wrapper{background:var(--stat-pink-accent);color:var(--on-primary)}.bento-chart-main,.bento-chart-side,.bento-list{grid-column:span 2;grid-row:span 2}@media(max-width:1200px){.bento-chart-main,.bento-chart-side,.bento-list{grid-column:span 2}}@media(max-width:768px){.bento-chart-main,.bento-chart-side,.bento-list{grid-column:span 1}.premium-stat-card{min-width:160px;padding:var(--s-4)}}.bento-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--s-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}[data-theme=dark] .bento-card{background:#18181b99;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:#ffffff0d}[data-theme=dark] .card,[data-theme=dark] .premium-stat-card,[data-theme=dark] .visual-tile,[data-theme=dark] .teacher-payout-apple-card,[data-theme=dark] .teacher-payout-card-metric{background:var(--bg-card);border-color:var(--border);color:var(--text-primary)}[data-theme=dark] .teacher-payout-avatar{background:linear-gradient(160deg,var(--bg-secondary),var(--bg-card));border-color:var(--border);box-shadow:none}.hero-card-premium{background:linear-gradient(135deg,#8b84ff,#6c63ff);color:var(--on-primary);border-radius:var(--radius-xl);padding:var(--s-8);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;grid-column:span 2;grid-row:span 2;box-shadow:0 20px 40px -10px #6c63ff4d}.hero-card-premium h2{font-size:var(--text-3xl);font-weight:800;margin-bottom:var(--s-4);line-height:1.1;max-width:70%}.hero-card-premium p{font-size:var(--text-sm);opacity:.9;max-width:60%}.hero-illustration{position:absolute;right:-20px;top:50%;transform:translateY(-50%);width:240px;height:240px;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(0,0,0,.1))}.bento-card.progress-card{background:var(--stat-orange, #FFAD7C);border:none;color:var(--warning-text, #331A0D);padding:var(--s-8);grid-column:span 2;grid-row:span 4}.progress-pills-container{display:flex;align-items:flex-end;justify-content:space-between;height:200px;margin-top:var(--s-8);gap:var(--s-4)}.progress-pill-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);flex:1}.progress-pill-bar{width:60px;height:100%;background:#0000000d;border-radius:30px;position:relative;overflow:hidden}.progress-pill-fill{position:absolute;bottom:0;left:0;width:100%;background:var(--warning-text, #4D2612);border-radius:30px;transition:height 1s cubic-bezier(.34,1.56,.64,1)}.progress-pill-fill.striped{background:repeating-linear-gradient(45deg,var(--warning-text, #4D2612),var(--warning-text, #4D2612) 10px,color-mix(in srgb,var(--warning-text, #4D2612),var(--warning) 18%) 10px,color-mix(in srgb,var(--warning-text, #4D2612),var(--warning) 18%) 20px)}.progress-pill-label{font-size:13px;font-weight:600;opacity:.7}.dark-highlight-card{background:#25282c;color:var(--on-primary);border-radius:var(--radius-xl);padding:var(--s-8);grid-column:span 2;grid-row:span 1;display:flex;align-items:center;justify-content:space-between}.visual-tile{background:var(--bg-card);border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border);transition:transform var(--transition);cursor:pointer}.visual-tile:hover{transform:translateY(-8px)}.visual-tile-img{width:100%;height:160px;object-fit:cover}.visual-tile-content{padding:var(--s-5)}.visual-tile-title{font-size:var(--text-base);font-weight:700;margin-bottom:4px}.subject-tag{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-card);border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #0000000a}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.card-header{padding:14px 18px}.card-body{padding:16px 18px}.bento-grid{gap:var(--s-4);margin-bottom:var(--s-6)}.bento-card{padding:var(--s-5);border-radius:var(--radius-lg)}.premium-stat-card{min-width:156px;border-radius:14px;padding:var(--s-4);gap:var(--s-3)}.premium-stat-card .stat-icon-wrapper{width:40px;height:40px;border-radius:12px}.premium-stat-label{font-size:.68rem}.premium-stat-value{font-size:var(--text-xl)}.teacher-payout-cards-grid{gap:10px}.teacher-payout-apple-card{border-radius:14px;padding:11px;gap:10px}.teacher-payout-avatar{width:40px;height:40px;border-radius:12px}.teacher-payout-card-name{font-size:14px}.teacher-payout-card-meta{font-size:10px}.teacher-payout-card-metric{border-radius:9px;padding:7px 8px}.teacher-payout-card-metric .metric-value{font-size:12px}}.pastel-stat-card{background:linear-gradient(135deg,var(--pastel-bg, var(--pastel-blue)) 0%,var(--bg-card) 100%);border-radius:18px;box-shadow:var(--shadow),0 0 20px var(--pastel-glow, transparent);position:relative;overflow:hidden}.pastel-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--pastel-accent, var(--primary)) 0%,var(--pastel-bg, var(--pastel-blue)) 100%)}.pastel-stat-icon{width:48px;height:48px;border-radius:50%;background:var(--pastel-bg, var(--pastel-blue));display:flex;align-items:center;justify-content:center;color:var(--pastel-accent, var(--primary))}.pastel-stat-icon svg{width:24px;height:24px}.pastel-data-card{background:var(--bg-card);border-radius:16px;border-left:4px solid var(--pastel-accent, var(--primary));box-shadow:var(--shadow-sm);transition:all .2s ease}.pastel-data-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-pastel-primary{background:linear-gradient(135deg,var(--pastel-accent, var(--primary)) 0%,var(--primary-dark, #5A52E0) 100%);color:#fff;border:none;border-radius:12px;padding:10px 20px;font-weight:600;transition:all .2s ease}.btn-pastel-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--pastel-accent, var(--primary)) 40%,transparent)}.btn-pastel-secondary{background:transparent;color:var(--pastel-accent, var(--primary));border:2px solid var(--pastel-accent, var(--primary));border-radius:12px;padding:8px 18px;font-weight:600;transition:all .2s ease}.btn-pastel-secondary:hover{background:var(--pastel-accent, var(--primary));color:#fff}.ph-main{display:flex;align-items:center;gap:16px;padding:14px 16px;background:var(--bg-card);border-radius:14px;box-shadow:var(--shadow-md);flex-wrap:wrap;transition:margin-bottom .2s ease}.ph-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.ph-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:0;line-height:1.2}.ph-count{padding:4px 12px;border-radius:100px;font-size:.9rem;font-weight:600;white-space:nowrap}.ph-divider{width:1px;height:28px;background:var(--border)}.ph-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.ph-stat-pill{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;padding:4px 10px;border-radius:8px;max-width:100%;overflow:hidden}.ph-stat-pill.is-clickable{padding:6px 12px;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent}.ph-stat-pill.is-clickable:hover{background:var(--bg);border-color:var(--border)}.ph-stat-pill.is-active{background:var(--ph-stat-bg)}.ph-stat-pill.is-active .ph-stat-icon,.ph-stat-pill.is-active .ph-stat-label,.ph-stat-pill.is-active .ph-stat-value{color:var(--ph-stat-color)}.ph-stat-icon,.ph-stat-label{color:var(--text-muted)}.ph-stat-label{overflow:hidden;text-overflow:ellipsis;max-width:120px}.ph-stat-value{flex-shrink:0}.ph-spacer{flex:1}.ph-search{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:10px;border:1px solid var(--border);padding:0 12px;height:38px;min-width:200px;max-width:320px;flex:1 1 240px}.ph-search-input{border:none;background:transparent;width:100%;font-size:.9rem;outline:none;color:var(--text-primary)}.ph-filter-btn,.ph-add-btn,.ph-reset-btn{height:38px;padding:0 16px;border-radius:10px;border:1px solid var(--border);font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.ph-filter-btn{background:var(--bg);color:var(--text-primary)}.ph-filter-btn:hover{background:var(--hover-bg);border-color:var(--border)}.ph-add-btn{padding:0 20px;border-radius:100px;background:var(--primary);color:var(--on-primary);border:none;box-shadow:0 2px 8px #6c63ff4d}.ph-filters-panel{display:flex;gap:10px;padding:12px;background:var(--bg-card);border-radius:0 0 14px 14px;margin-bottom:16px;box-shadow:var(--shadow-sm);flex-wrap:wrap;animation:slideDown .2s ease}.ph-filter-select{height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);font-size:.85rem;min-width:120px;color:var(--text-primary);cursor:pointer}.ph-reset-btn{height:36px;background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.2)}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.ph-main{gap:12px;padding:10px 12px;border-radius:12px}.ph-title{font-size:1.25rem}.ph-count{font-size:.8rem;padding:3px 10px}.ph-divider{height:24px}.ph-stats{gap:6px}.ph-stat-pill{font-size:.78rem;padding:3px 8px;gap:4px}.ph-stat-label{max-width:90px}.ph-stat-pill.is-clickable{padding:5px 10px;border-radius:7px}.ph-search,.ph-filter-btn,.ph-add-btn,.ph-reset-btn{height:34px}.ph-search{min-width:180px;max-width:280px;padding:0 10px}.ph-search-input,.ph-filter-btn,.ph-add-btn,.ph-reset-btn,.ph-filter-select{font-size:.82rem}.ph-filter-btn,.ph-reset-btn{padding:0 12px}.ph-add-btn{padding:0 16px}.ph-filters-panel{gap:8px;padding:10px;margin-bottom:12px}.ph-filter-select{min-width:108px;height:34px}}@media(max-width:900px){.ph-main{gap:10px;padding:12px}.ph-divider,.ph-spacer{display:none}.ph-title{font-size:1.2rem}.ph-title-wrap,.ph-stats,.ph-search,.ph-custom-actions,.ph-filter-btn,.ph-add-btn{width:100%}.ph-stats{justify-content:flex-start}.ph-stat-pill{padding:3px 8px;gap:4px}.ph-stat-label{max-width:80px}.ph-search{max-width:none;min-width:0}.ph-filter-btn,.ph-add-btn{justify-content:center}.ph-filters-panel{padding:10px}.ph-filter-select,.ph-reset-btn{width:100%}}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;min-height:var(--control-height, 42px);border-radius:var(--button-radius);font-size:var(--text-base);font-weight:600;cursor:pointer;border:1px solid transparent;transition:all var(--transition);text-decoration:none;line-height:1.4;box-shadow:0 8px 18px #0f172a0f}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--on-primary)!important;border-color:color-mix(in srgb,var(--primary-dark) 28%,transparent);box-shadow:0 10px 22px #6366f12e}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-dark),color-mix(in srgb,var(--primary-dark) 88%,black 12%));box-shadow:0 14px 26px #4f46e53d}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);box-shadow:0 1px 3px #0f172a0a}.btn-secondary:hover{background:var(--hover-bg);border-color:var(--border);box-shadow:0 2px 6px #0f172a0f}.btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);color:var(--on-success)!important;border-color:#16a34a59;box-shadow:0 8px 18px #22c55e2e}.btn-success:hover{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 10px 22px #16a34a3d}.btn-ghost{background:transparent;border:none;box-shadow:none;color:var(--text-secondary)}.btn-ghost:hover{background:var(--hover-bg);color:var(--text-primary)}.btn-icon{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%}.btn-sm{padding:6px 12px;min-height:32px;font-size:var(--text-xs)}.form-group{margin-bottom:var(--s-4)}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--s-1)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-card);transition:border-color var(--transition),box-shadow var(--transition);outline:none}.field-shell{display:flex;align-items:center;gap:var(--s-2);min-height:var(--control-height);padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface-overlay);box-shadow:0 1px 2px #0f172a0a;color:var(--text-muted)}.field-shell:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.field-shell .form-input,.field-shell .form-select{min-height:calc(var(--control-height) - 2px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.course-card{position:relative;overflow:hidden;background:var(--bg-card);border:var(--course-card-border);border-radius:var(--mobile-card-radius);box-shadow:var(--course-card-shadow)}.course-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.course-icon-bubble{width:44px;height:44px;min-width:44px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:var(--course-chip-bg)}.course-chip{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:var(--course-chip-bg);color:var(--primary-text);font-size:var(--text-xs);font-weight:800;line-height:1.2}.course-chip-success{color:var(--success-text);background:var(--success-bg);border-color:var(--success-border)}.course-chip-warning{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.course-chip-danger{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}.course-chip-primary{color:var(--primary-text);background:var(--primary-bg);border-color:var(--primary-border)}.course-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);color:var(--text-muted);font-size:var(--text-sm)}.course-primary-action{min-height:var(--tap-target);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);border:0;border-radius:14px;padding:10px 18px;background:var(--course-hero-gradient);color:var(--on-primary);font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 12px 24px #6366f138}.course-progress-track{height:10px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.course-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--accent-cyan))}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted);opacity:.72}button:disabled,.btn:disabled{opacity:.62;cursor:not-allowed}.form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;cursor:pointer;background-image:linear-gradient(180deg,#ffffffd9,#f8fafceb),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:center,right 14px center;background-size:auto,14px;box-shadow:0 1px 2px #0f172a0a}[data-theme=dark] .form-select{background-image:linear-gradient(180deg,#18181bfa,#121215fa),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}.form-select:hover{border-color:color-mix(in srgb,var(--primary) 20%,var(--border));box-shadow:0 6px 16px #0f172a0f}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.app-date-input{position:relative;width:100%;min-width:0}.app-date-input__field{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-height:42px;padding:10px 14px;cursor:text;overflow:hidden}.app-date-input__segment{-moz-appearance:none;appearance:none;-webkit-appearance:none;min-width:0;border:0!important;outline:none;background:transparent!important;box-shadow:none!important;color:var(--text-primary)!important;caret-color:currentColor;font:inherit;line-height:1.2;text-align:center;padding:0;margin:0;border-radius:6px}.app-date-input__segment::placeholder{color:var(--text-muted);opacity:.9}.app-date-input__segment:focus{background:color-mix(in srgb,var(--primary-bg) 55%,transparent)!important}.app-date-input__segment--day,.app-date-input__segment--month{width:2.6ch;flex:0 0 2.6ch}.app-date-input__segment--year{width:4.8ch;flex:0 0 4.8ch}.app-date-input__separator{color:var(--text-muted);font-weight:700;-webkit-user-select:none;user-select:none;line-height:1;flex:0 0 auto}.app-date-input__field:has(.app-date-input__segment:disabled){cursor:not-allowed}.app-date-input__field .app-date-input__segment:disabled{cursor:not-allowed;opacity:.7}.app-date-input__error{margin-top:6px;color:#dc2626;font-size:.78rem;font-weight:600;line-height:1.2}.app-date-input:focus-within .app-date-input__field{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.app-phone-input{position:relative;width:100%;min-width:0}.app-phone-input__wrapper{display:flex;align-items:center;gap:4px;min-height:42px;padding:10px 14px;cursor:text;overflow:hidden;width:100%}.app-phone-input__prefix{color:var(--text-secondary);font-weight:600;font-size:var(--text-base);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:0 0 auto}.app-phone-input__input{flex:1 1 auto;min-width:0;border:0;outline:none;background:transparent;box-shadow:none;color:var(--text-primary);caret-color:currentColor;font:inherit;line-height:1.2;text-align:left;padding:0;margin:0}.app-phone-input__input::placeholder{color:var(--text-muted)}.app-phone-input__wrapper:has(.app-phone-input__input:disabled){cursor:not-allowed}.app-phone-input__wrapper .app-phone-input__input:disabled{cursor:not-allowed;opacity:.7}.app-phone-input__error{margin-top:6px;color:#dc2626;font-size:.78rem;font-weight:600;line-height:1.2}.app-phone-input:focus-within .app-phone-input__wrapper{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.form-select:disabled{cursor:not-allowed;opacity:.68;box-shadow:none}.form-select option{color:var(--text-primary);background:var(--bg-card)}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.btn{gap:5px;padding:7px 14px;min-height:38px;border-radius:11px;font-size:var(--text-sm);line-height:1.32}.btn-sm{padding:5px 10px;font-size:.78rem}.btn-icon{width:30px;height:30px}.form-group{margin-bottom:var(--s-3)}.form-label{font-size:.82rem}.form-input,.form-select,.form-textarea{padding:8px 11px;border-radius:9px;font-size:var(--text-sm)}.form-select{padding-right:36px;background-position:center,right 11px center;background-size:auto,12px}.form-checkbox{gap:6px;padding:6px 10px;font-size:.78rem}}@media(max-width:768px){.btn,.btn-sm,.btn-icon,.form-input,.form-select,.app-date-input__field,.app-phone-input__wrapper{min-height:var(--tap-target)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease;padding:20px}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:560px;max-height:85vh;overflow-y:auto;animation:scaleIn .2s ease}.modal-lg{max-width:900px}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;gap:16px}.modal-header h2{margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:var(--s-3)}.confirm-dialog{display:flex;flex-direction:column;gap:16px}.confirm-dialog-icon-wrap{display:flex;align-items:flex-start;gap:16px}.confirm-dialog-icon{width:52px;height:52px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 10px 25px #0f172a14}.confirm-dialog-danger .confirm-dialog-icon{color:var(--danger-text);background:var(--danger-bg);border:1px solid var(--danger-border)}.confirm-dialog-info .confirm-dialog-icon{color:var(--info-text);background:var(--info-bg);border:1px solid var(--info-border)}.confirm-dialog-text{min-width:0;display:flex;flex-direction:column;gap:8px}.confirm-dialog-message{font-size:1rem;font-weight:700;line-height:1.5;color:var(--text-primary)}.confirm-dialog-details{font-size:.92rem;line-height:1.6;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:14px;padding:12px 14px}.confirm-dialog-danger .confirm-dialog-details{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}.student-status-reason-field{margin-top:2px;padding:14px;border-radius:14px;background:var(--bg-secondary);border:1px solid var(--border-light)}.student-status-reason-field__hint{margin-top:6px;color:var(--text-secondary);font-size:.78rem;line-height:1.45}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.modal-backdrop{align-items:center;padding:10px;background:#00000080}.modal,.modal-lg{width:calc(100% - 4px);max-width:100%;max-height:92vh;border-radius:16px;box-shadow:0 14px 30px #00000038;animation:slideUpIn .22s ease;display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:14px 16px;position:sticky;top:0;z-index:2;background:var(--bg-card);flex-shrink:0}.modal-header h2{font-size:1rem;line-height:1.3;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-body{padding:14px 16px;overflow-y:auto;flex:1 1 auto;min-height:0}.confirm-dialog-icon-wrap{gap:12px}.confirm-dialog-icon{width:46px;height:46px;border-radius:14px}.confirm-dialog-message{font-size:.95rem}.confirm-dialog-details{font-size:.88rem;padding:10px 12px}.modal-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:sticky;bottom:0;background:var(--bg-card);z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;flex-shrink:0}.modal-footer .btn{width:100%;min-height:42px;justify-content:center}}@media(max-width:420px){.modal-footer{grid-template-columns:1fr}}@keyframes slideUpIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;transition:margin-left var(--transition)}.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}.main-content.exam-player-layout{margin-left:0}.page-content{flex:1;padding:var(--s-8) var(--s-10);max-width:1600px}.page-content.exam-player-content{max-width:none;padding:0}.search-box{position:relative;max-width:320px}.search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px}.search-box .form-input{padding-left:38px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-6);flex-wrap:wrap;gap:var(--s-4)}.page-header h1{font-size:var(--text-3xl);font-weight:700;color:var(--text-primary);letter-spacing:0}.tabs{display:flex;gap:4px;padding:4px;background:var(--hover-bg);border-radius:var(--radius);margin-bottom:var(--s-5);overflow-x:auto}.tab{padding:8px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}.tab.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm);font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-5)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-5)}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.page-content{padding:var(--s-6) var(--s-8);max-width:1440px}.page-header{margin-bottom:var(--s-5);gap:var(--s-3)}.page-header h1{font-size:var(--text-2xl)}.tabs{margin-bottom:var(--s-4);padding:3px}.tab{padding:7px 12px}.grid-2,.grid-3,.grid-4{gap:var(--s-4)}.grid-4{grid-template-columns:repeat(3,minmax(0,1fr))}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden;padding:20px}.login-bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float 20s ease-in-out infinite;pointer-events:none}.login-bg-orb:nth-child(1){width:400px;height:400px;background:linear-gradient(135deg,var(--primary),var(--primary-light));top:-150px;left:-100px;animation-delay:0s}.login-bg-orb:nth-child(2){width:300px;height:300px;background:linear-gradient(135deg,var(--premium-purple-500),var(--premium-indigo-500));bottom:-100px;right:-50px;animation-delay:-7s}.login-bg-orb:nth-child(3){width:250px;height:250px;background:linear-gradient(135deg,var(--success),var(--info));top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-14s;opacity:.3}@keyframes 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(-30px,-20px) scale(1.02)}}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(108,99,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(108,99,255,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.login-card{width:100%;max-width:440px;background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-xl);padding:48px 40px;box-shadow:0 0 0 1px #00000005,0 4px 6px -1px #00000005,0 10px 40px -10px #6c63ff26;position:relative;z-index:10;animation:cardAppear .6s cubic-bezier(.16,1,.3,1)}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}[data-theme=dark] .login-card{background:#121215d9;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 1px #ffffff08,0 4px 6px -1px #0003,0 10px 40px -10px #6c63ff33}.login-card-header{text-align:center;margin-bottom:36px}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;background:linear-gradient(135deg,var(--primary),var(--primary-light));border-radius:20px;margin-bottom:20px;box-shadow:0 4px 12px #6c63ff4d,inset 0 1px #ffffff4d;animation:logoFloat 3s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.login-logo svg{width:36px;height:36px;color:#fff}.login-logo-image{width:100%;height:100%;object-fit:cover;border-radius:20px}.login-card h1{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin:0 0 8px;letter-spacing:0}.login-card p{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.login-error{background:var(--danger-bg);border:1px solid rgba(239,68,68,.2);color:var(--danger);padding:14px 18px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;margin-bottom:24px;display:flex;align-items:center;gap:10px;animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-error svg{flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form .form-label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:0}.login-form .form-input{width:100%;height:52px;padding:0 18px;font-size:var(--text-base);font-family:var(--font-body);color:var(--text-primary);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);transition:all var(--transition);box-shadow:inset 0 1px 2px #00000005}.login-form .form-input:hover{border-color:var(--primary-light);background:var(--hover-bg)}.login-form .form-input:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 1px 2px #00000005,0 0 0 4px #6c63ff1a}.login-form .form-input::placeholder{color:var(--text-muted);opacity:.7}.login-submit-btn{width:100%;height:54px;padding:0 24px;font-size:var(--text-base);font-weight:600;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;position:relative;overflow:hidden;letter-spacing:0}.login-submit-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s ease}.login-submit-btn:hover:not(:disabled):before{transform:translate(100%)}.login-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #6c63ff59}.login-submit-btn:active:not(:disabled){transform:translateY(0)}.login-submit-btn:disabled{opacity:.7;cursor:not-allowed;background:var(--premium-zinc-400)}.login-submit-btn .spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin:0}.login-footer{margin-top:28px;text-align:center;display:flex;flex-direction:column;gap:12px}.login-forgot{font-size:var(--text-sm);color:var(--text-muted)}.login-forgot a{color:var(--primary);text-decoration:none;font-weight:600;transition:color var(--transition)}.login-forgot a:hover{color:var(--primary-dark);text-decoration:underline}.login-back{font-size:var(--text-sm);color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:6px}.login-back a{color:var(--primary);text-decoration:none;font-weight:600;transition:color var(--transition)}.login-back a:hover{color:var(--primary-dark)}.login-input-wrapper{position:relative}.login-input-wrapper .form-input{padding-left:48px}.login-input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;transition:color var(--transition)}.login-input-wrapper:focus-within .login-input-icon{color:var(--primary)}.login-password-toggle{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color var(--transition)}.login-password-toggle:hover{color:var(--primary)}.login-remember{display:flex;align-items:center;gap:10px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.login-remember input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}@media(max-width:520px){.login-page{padding:40px 16px 16px;align-items:flex-start}.login-card{padding:36px 24px;border-radius:var(--radius-lg);max-width:100%}.login-logo{width:64px;height:64px;border-radius:18px}.login-logo svg{width:30px;height:30px}.login-card h1{font-size:var(--text-xl)}.login-form .form-input,.login-submit-btn{height:50px;font-size:var(--text-sm)}}.login-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;border-radius:inherit;z-index:20}[data-theme=dark] .login-loading-overlay{background:#121215cc}.login-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--text-muted);font-size:var(--text-sm)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.pwa-install-sheet{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:calc(var(--z-toast) + 10);display:grid;gap:14px;padding:18px;border:1px solid rgba(99,102,241,.2);border-radius:26px;color:var(--text-primary);background:radial-gradient(circle at 12% 0%,rgba(99,102,241,.18),transparent 32%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 96%,white 4%),var(--bg-card));box-shadow:0 22px 60px #0f172a3d;animation:pwaInstallSheetIn .26s ease-out}.pwa-install-sheet__handle{width:44px;height:4px;margin:-6px auto 0;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 32%,transparent)}.pwa-install-sheet__close{position:absolute;top:14px;right:14px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-light);border-radius:999px;color:var(--text-secondary);background:color-mix(in srgb,var(--bg-card) 86%,transparent);cursor:pointer}.pwa-install-sheet__icon{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;border-radius:18px;color:var(--on-primary);background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 14px 28px #6366f147}.pwa-install-sheet__icon--notifications{background:linear-gradient(135deg,#06b6d4,#2563eb);box-shadow:0 14px 28px #2563eb3d}.pwa-install-sheet__content{display:grid;gap:6px;padding-right:28px}.pwa-install-sheet__eyebrow{margin:0;color:var(--primary-text);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pwa-install-sheet h2{margin:0;font-size:1.18rem;line-height:1.25;font-weight:800;letter-spacing:-.02em}.pwa-install-sheet p{margin:0;color:var(--text-secondary);font-size:.94rem;line-height:1.5}.pwa-install-sheet__error{padding:10px 12px;border:1px solid var(--warning-border);border-radius:14px;color:var(--warning-text)!important;background:var(--warning-bg);font-weight:700}.pwa-install-sheet__spinner{animation:pwaInstallSpinner .8s linear infinite}.pwa-install-sheet__primary,.pwa-install-sheet__secondary{width:100%;justify-content:center}.pwa-install-sheet__secondary{min-height:38px;padding:8px 12px;box-shadow:none}.pwa-install-sheet__ios-steps{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid var(--primary-border);border-radius:18px;color:var(--text-primary);background:var(--primary-bg);font-weight:700}.pwa-install-sheet__ios-steps span{display:flex;align-items:center;gap:8px}@media(min-width:769px){.pwa-install-sheet{display:none}}@keyframes pwaInstallSheetIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pwaInstallSpinner{to{transform:rotate(360deg)}}.tier-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:capitalize}.tier-common{background:#94a3b833;color:var(--text-muted)}.tier-rare{background:#3b82f626;color:#2563eb}.tier-epic{background:#8b5cf626;color:#7c3aed}.tier-legendary{background:#f59e0b26;color:#d97706}.category-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;background:#6366f11a;color:#6366f1;text-transform:capitalize}.badge-name-cell{display:flex;flex-direction:column;gap:2px}.badge-name{font-weight:600;color:var(--text-primary)}.badge-desc{font-size:12px;color:var(--text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-key{font-family:monospace;font-size:12px;background:var(--bg-secondary);padding:2px 6px;border-radius:4px;color:var(--text-secondary)}.empty-row{text-align:center;color:var(--text-muted);padding:32px!important}.badge-mini-preview{margin:0 auto;font-size:14px;color:var(--text-muted)}.badge-illustration{display:block;overflow:visible}.badge-preview-icon.badge-illustration{transform:translateY(-1px);filter:drop-shadow(0 6px 10px rgba(15,23,42,.16))}.badge-animation{display:flex;align-items:center;justify-content:center;overflow:visible}.badge-preview-animation,.premium-badge-animation{filter:drop-shadow(0 6px 10px rgba(15,23,42,.16))}.badge-animation-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.badge-animation-links a{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#6366f11a;color:#4f46e5;font-size:11px;font-weight:700;text-decoration:none}.badge-animation-links a:hover{background:#6366f12e}.badge-status-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all .2s}.badge-status-btn.active{background:#22c55e1a;color:#16a34a}.badge-status-btn.active:hover{background:#22c55e33}.badge-status-btn.inactive{background:#6b72801a;color:var(--text-muted)}.badge-status-btn.inactive:hover{background:#6b728033}.badge-form{padding:8px 0}.badge-form-layout{display:grid;grid-template-columns:1fr 240px;gap:24px}@media(max-width:800px){.badge-form-layout{grid-template-columns:1fr}.badge-form-preview{order:-1;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:16px}}.badge-form-fields{display:flex;flex-direction:column;gap:16px}.form-section{background:var(--bg-secondary);border-radius:8px;padding:16px}.form-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:none;letter-spacing:.5px}.badge-ai-panel{position:relative;overflow:hidden;background:radial-gradient(circle at top left,rgba(245,158,11,.16),transparent 30%),linear-gradient(135deg,#6366f114,#0ea5e90f);border:1px solid rgba(99,102,241,.18);border-radius:14px;padding:16px;box-shadow:0 1px 3px #0f172a0a}.badge-ai-panel:after{content:"";position:absolute;inset:auto -30px -60px auto;width:140px;height:140px;border-radius:50%;background:#6366f114;pointer-events:none}.badge-ai-header{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.badge-ai-header .form-section-title{margin-bottom:4px;color:var(--text-primary)}.badge-ai-header p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.5}.badge-ai-draft-pill{flex:0 0 auto;padding:4px 9px;border-radius:999px;background:#0f172a14;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.badge-ai-textarea{position:relative;z-index:1;width:100%;min-height:84px;resize:vertical;border:1px solid rgba(99,102,241,.24);border-radius:12px;background:var(--bg-card);color:var(--text-primary);padding:12px 14px;font:inherit;line-height:1.5;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.badge-ai-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11f}.badge-ai-actions{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-top:12px}.badge-ai-actions .form-hint{margin-top:0}.badge-ai-examples{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.badge-ai-chip{border:1px solid rgba(99,102,241,.18);border-radius:999px;background:#ffffffb8;color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:600;padding:6px 10px;transition:transform .16s ease,background .16s ease,border-color .16s ease}.badge-ai-chip:hover:not(:disabled){transform:translateY(-1px);background:var(--bg-card);border-color:#6366f16b}.badge-ai-chip:disabled,.badge-ai-textarea:disabled{cursor:not-allowed;opacity:.65}.badge-ai-message{position:relative;z-index:1;margin-top:12px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.5;border:1px solid rgba(99,102,241,.16);background:#6366f114;color:var(--text-secondary)}.badge-ai-message.success{border-color:#22c55e38;background:#22c55e1a;color:#15803d}.badge-ai-message.warning{border-color:#f59e0b47;background:#f59e0b1f;color:#a16207}.badge-ai-message.error{border-color:#ef44443d;background:#ef44441a;color:#b91c1c}.badge-ai-supported-list{position:relative;z-index:1;margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#ffffff8a;color:var(--text-muted);font-size:11px;line-height:1.5}.badge-ai-supported-list span{display:block;color:var(--text-secondary);font-weight:700;margin-bottom:3px}.badge-ai-supported-list p{margin:0}ul.badge-ai-supported-list{padding-left:26px}.badge-ai-notes li+li{margin-top:4px}@media(max-width:800px){.badge-ai-header,.badge-ai-actions{flex-direction:column;align-items:stretch}}.form-hint{font-size:11px;color:var(--text-muted);margin-top:4px;display:block}.form-tip-box{margin:4px 0 14px;padding:12px 14px;border-radius:10px;border:1px solid rgba(99,102,241,.14);background:linear-gradient(135deg,#6366f10f,#a855f70f)}.form-tip-box-title{display:block;font-size:12px;font-weight:700;color:var(--primary);margin-bottom:4px}.form-tip-box p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}.form-tip-box small{display:block;margin-top:6px;color:var(--text-muted);line-height:1.45}.form-error{font-size:11px;color:#ef4444;margin-top:4px;display:block}.input-error{border-color:#ef4444!important}.color-input-wrapper{display:flex;gap:8px;align-items:center}.form-color-input{width:44px;height:38px;padding:2px;border:1px solid var(--border);border-radius:6px;cursor:pointer;background:var(--bg-card)}.color-text-input{flex:1}.form-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text-secondary)}.form-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1}.badge-form-preview{position:sticky;top:16px;background:var(--bg-secondary);border-radius:8px;padding:20px;text-align:center;height:fit-content}.badge-preview-container{padding:16px 0}.badge-preview-meta{display:flex;justify-content:center;gap:8px;margin-top:12px}.badge-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.badge-rule-builder{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:12px}.rule-builder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.rule-logic-toggle{display:flex;align-items:center;gap:8px}.logic-label{font-size:11px;color:var(--text-muted);font-weight:500}.logic-label.active{color:#6366f1;font-weight:600}.rule-logic-btn{background:var(--bg-secondary);border:1px solid var(--border);padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center}.rule-logic-btn.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.rule-empty{text-align:center;padding:20px;color:#9ca3af;font-size:13px}.rule-builder-intro{margin-bottom:10px;color:#6b7280;font-size:12px;line-height:1.5}.rule-conditions{display:flex;flex-direction:column;gap:8px}.rule-condition-block{display:flex;flex-direction:column;gap:6px}.rule-condition-row{display:grid;grid-template-columns:1fr 120px 80px 32px;gap:8px;align-items:center}.rule-condition-hint{padding:0 4px;color:#6b7280;font-size:11px;line-height:1.45}.btn-delete{color:#ef4444}.btn-delete:hover{background:#ef44441a}.rule-hint{margin-top:12px;color:#9ca3af;font-size:11px;text-align:right}.badge-full-preview{display:flex;flex-direction:column;gap:24px;padding:8px 0}.badge-preview-large{display:flex;justify-content:center;padding:20px;background:#f9fafb;border-radius:8px}.badge-preview-details{display:flex;flex-direction:column;gap:12px}.detail-row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid #f3f4f6}.detail-label{font-weight:600;color:#6b7280;min-width:100px;font-size:13px}.detail-value{color:#1f2937;font-size:13px;display:flex;align-items:center;gap:6px}.detail-value--multiline{white-space:pre-wrap;align-items:flex-start;line-height:1.5}.badge-page-hint{margin:-8px 0 14px;color:#6b7280;font-size:13px;line-height:1.5}.btn-action-preview{background:#6366f11a;color:#6366f1;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:4px;font-size:12px}.btn-action-preview:hover{background:#6366f133}.premium-badge{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.premium-badge-small{gap:4px}.premium-badge-large,.premium-badge-xlarge{gap:8px}.premium-badge-depth-layer{display:none}.premium-badge-circle{position:relative;border-radius:50%;border:3px solid var(--badge-border);box-shadow:0 1px 3px #00000014;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:1;transform:var(--depth-transform, none);transition:transform .2s ease,box-shadow .2s ease}.premium-badge-animated:hover .premium-badge-circle{transform:var(--depth-transform, none) translateY(-2px);box-shadow:0 2px 6px #0000001a}.premium-badge-inner-ring{position:absolute;top:6px;left:6px;right:6px;bottom:6px;border-radius:50%;border:1px solid;opacity:.4;pointer-events:none}.premium-badge-bg{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;pointer-events:none}.premium-badge-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.premium-badge-image{width:75%;height:75%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}.premium-badge-icon{filter:drop-shadow(0 5px 8px rgba(0,0,0,.2));transform:translateY(-1px)}.premium-badge-lock-icon{filter:grayscale(.3) drop-shadow(0 3px 5px rgba(15,23,42,.2))}.premium-badge-shimmer{position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.35) 50%,transparent 100%);transform:skew(-20deg);animation:premium-badge-shimmer 3s ease-in-out infinite;pointer-events:none;z-index:3}@keyframes premium-badge-shimmer{0%,to{left:-100%}50%{left:150%}}.premium-badge-locked{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#ffffff80;border-radius:50%;z-index:4}[data-theme=dark] .premium-badge-locked{background:#0f172a94}.premium-badge-label{font-weight:600;color:var(--text-primary, #374151);text-align:center;line-height:1.2;display:flex;flex-direction:column;gap:2px}.premium-badge-tier-label{font-size:.85em;font-weight:700;text-transform:none;letter-spacing:.5px}@media(prefers-reduced-motion:reduce){.premium-badge-shimmer{animation:none}.premium-badge-animated:hover .premium-badge-circle{transform:var(--depth-transform, none)}}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:16px;padding:8px 0}.badges-grid .premium-badge{padding:8px;border-radius:12px;transition:background .2s ease}.badges-grid .premium-badge:hover{background:#6366f10d}.stat-icon.badge-icon{position:relative}.stat-icon.badge-icon:after{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--badge-glow, rgba(129, 140, 248, .5));border-radius:50%;animation:stat-pulse 2s ease-in-out infinite}@keyframes stat-pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.2);opacity:1}}.notification-card-tone-warning.badge-unlock{background:linear-gradient(135deg,#f59e0b14,#8b5cf60d);border-left:3px solid;border-image:linear-gradient(180deg,#f59e0b,#8b5cf6) 1}.notification-card-tone-warning.badge-unlock .notification-type-icon{background:linear-gradient(135deg,#f59e0b,#8b5cf6)!important;box-shadow:0 0 12px #f59e0b66}@keyframes badge-unlock-celebrate{0%{transform:scale(0) rotate(-10deg);opacity:0}50%{transform:scale(1.15) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}.badge-unlock-badge-preview{animation:badge-unlock-celebrate .6s cubic-bezier(.175,.885,.32,1.275) forwards}.badge-unlock-mini-preview{display:flex;align-items:center;gap:10px;padding:8px 12px;background:linear-gradient(135deg,#f59e0b1a,#8b5cf614);border-radius:10px;margin-top:8px}.badge-unlock-mini-preview .premium-badge-circle{width:48px!important;height:48px!important;border-width:2px!important}.badge-unlock-details{display:flex;flex-direction:column;gap:2px}.badge-unlock-title{font-weight:700;font-size:13px;color:var(--text-primary, #1f2937)}.badge-unlock-tier{font-size:11px;font-weight:600;text-transform:none;letter-spacing:.5px}.badge-unlock-tier.legendary{color:#f59e0b}.badge-unlock-tier.epic{color:#8b5cf6}.badge-unlock-tier.rare{color:#3b82f6}.badge-unlock-tier.common{color:#94a3b8}.badge-unlock-xp{font-size:11px;color:var(--text-muted, #6b7280)}.badge-unlock-toast{--antd-wave-shadow-color: #f59e0b !important}.badge-unlock-toast .ant-notification-notice{background:linear-gradient(135deg,var(--warning-bg) 0%,var(--accent-purple-bg) 100%)!important;border:1px solid var(--warning-border)!important;box-shadow:0 4px 12px #f59e0b26,0 0 30px #f59e0b1a!important}.badge-unlock-toast-icon{animation:toast-badge-bounce .8s cubic-bezier(.175,.885,.32,1.275) forwards}.badge-unlock-toast-preview{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center}@keyframes toast-badge-bounce{0%{transform:scale(0) rotate(-15deg)}60%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0)}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}.sparkle-particle{position:absolute;width:6px;height:6px;background:#f59e0b;border-radius:50%;pointer-events:none;animation:sparkle 1.5s ease-in-out infinite}.sparkle-particle:nth-child(1){top:-5px;left:50%;animation-delay:0s}.sparkle-particle:nth-child(2){top:20%;right:-5px;animation-delay:.3s}.sparkle-particle:nth-child(3){bottom:-5px;left:50%;animation-delay:.6s}.sparkle-particle:nth-child(4){top:20%;left:-5px;animation-delay:.9s}.btn-auto-generate{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid rgba(139,92,246,.3);border-radius:10px;background:linear-gradient(135deg,#8b5cf61f,#f59e0b1a);color:#7c3aed;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-auto-generate:hover{border-color:#8b5cf680;background:linear-gradient(135deg,#8b5cf62e,#f59e0b24);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf626}.auto-gen-container{min-height:200px}.auto-gen-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center}.auto-gen-loading p{margin:0;color:var(--text-primary);font-size:15px;font-weight:700}.auto-gen-loading span{color:var(--text-muted);font-size:12px}@keyframes auto-gen-spin{to{transform:rotate(360deg)}}.auto-gen-spinner{animation:auto-gen-spin 1s linear infinite;color:#7c3aed}.auto-gen-hint{margin:0 0 12px;color:var(--text-secondary);font-size:13px;font-weight:600}.auto-gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:16px}.auto-gen-card{position:relative;display:flex;gap:12px;padding:14px;border:2px solid rgba(139,92,246,.2);border-radius:14px;background:#fffffff5;cursor:pointer;transition:all .18s ease;-webkit-user-select:none;user-select:none}.auto-gen-card.selected{border-color:#8b5cf666;background:linear-gradient(135deg,#8b5cf60f,#f59e0b0a)}.auto-gen-card.selected:hover{border-color:#8b5cf68c;box-shadow:0 4px 16px #8b5cf61f}.auto-gen-card.deselected{border-color:#94a3b833;background:#f8fafccc;opacity:.55}.auto-gen-card.deselected:hover{opacity:.75}.auto-gen-card-check{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px}.auto-gen-card.selected .auto-gen-card-check{background:#22c55e24;color:#16a34a}.auto-gen-card.deselected .auto-gen-card-check{background:#94a3b824;color:var(--text-muted)}.auto-gen-card-badge{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:52px;height:52px}.auto-gen-card-badge .premium-badge{width:52px;height:52px;gap:0}.auto-gen-card-badge .premium-badge-circle{width:46px!important;height:46px!important;border-width:2px}.auto-gen-card-badge .premium-badge-animation,.auto-gen-card-badge .premium-badge-icon,.auto-gen-card-badge .premium-badge-image{width:34px!important;height:34px!important}.auto-gen-card-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}.auto-gen-card-info h4{margin:0;font-size:13px;font-weight:800;color:var(--text-primary);line-height:1.2;padding-right:20px}.auto-gen-card-info .tier-badge{width:fit-content;font-size:10px}.auto-gen-card-info p{margin:2px 0 0;font-size:11px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.auto-gen-card-meta{display:flex;gap:8px;margin-top:4px}.auto-gen-card-meta span{font-size:10px;font-weight:700;color:var(--text-muted);padding:2px 6px;border-radius:999px;background:#94a3b81a}.auto-gen-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid var(--border)}.auto-gen-actions .btn{display:inline-flex;align-items:center;gap:6px}[data-theme=dark] .btn-auto-generate{border-color:#a78bfa4d;background:linear-gradient(135deg,#a78bfa26,#fbbf241a);color:#a78bfa}[data-theme=dark] .btn-auto-generate:hover{border-color:#a78bfa80;background:linear-gradient(135deg,#a78bfa38,#fbbf2424)}[data-theme=dark] .auto-gen-card{border-color:#a78bfa2e;background:#0f172ae6}[data-theme=dark] .auto-gen-card.selected{border-color:#a78bfa59;background:linear-gradient(135deg,#a78bfa1a,#fbbf240f)}[data-theme=dark] .auto-gen-card.deselected{border-color:#94a3b824;background:#0f172ab3}@media(max-width:600px){.auto-gen-grid{grid-template-columns:1fr}}.game-card{padding:var(--s-4);border:1px solid var(--game-border);border-radius:20px;background:var(--game-surface);box-shadow:var(--game-card-shadow);transition:transform .25s ease,box-shadow .25s ease}.game-card:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000000f}@media(hover:none){.game-card:hover{transform:none;box-shadow:var(--game-card-shadow)}}.luno-mascot{display:inline-flex;flex-shrink:0;animation:lunoBounceIn .5s ease-out both}.luno-wing--left,.luno-wing--right{transform-origin:center;transition:transform .3s ease}.luno-mascot:hover .luno-wing--left{transform:rotate(-15deg)}.luno-mascot:hover .luno-wing--right{transform:rotate(15deg)}.luno-mascot--excited .luno-wing--left{animation:lunoWingWave .6s ease-in-out infinite alternate}.luno-mascot--excited .luno-wing--right{animation:lunoWingWave .6s ease-in-out infinite alternate-reverse}.luno-star{animation:lunoStarPulse 1s ease-in-out infinite}.luno-star--delay{animation-delay:.3s}.motivation-message{margin:var(--s-2) 0 0;color:var(--game-text-secondary);font-size:var(--text-sm);font-weight:700;line-height:1.5;animation:gameFadeSlideUp .4s ease-out .8s both}.xp-counter-card{text-align:center}.xp-counter-header{display:flex;align-items:center;justify-content:center;gap:var(--s-2);margin-bottom:var(--s-2)}.xp-counter-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#ffc80033,#ffc80059);color:var(--game-secondary);box-shadow:none}.xp-counter-label{color:var(--game-text-secondary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.xp-counter-value{display:block;color:var(--game-text);font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.8rem);font-weight:900;letter-spacing:-.04em;line-height:1}.xp-counter-today{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin:var(--s-2) auto 0;padding:4px 10px;border-radius:999px;background:#58cc021f;color:var(--game-primary-dark);font-size:.72rem;font-weight:900;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:gamePulse 2s ease-in-out infinite}.streak-panel{text-align:center}.streak-panel-header{display:flex;align-items:center;justify-content:center;gap:var(--s-2);flex-wrap:wrap}.streak-fire{display:inline-flex;color:var(--game-accent);animation:fireFlicker .3s ease-in-out infinite alternate}.streak-fire--dead{color:var(--game-text-secondary);opacity:.4;animation:none}.streak-fire--big{transform:scale(1.3)}.streak-fire--blue{color:#4da6ff;filter:drop-shadow(0 0 6px rgba(77,166,255,.5));transform:scale(1.4)}.streak-panel-value{color:var(--game-text);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:900;letter-spacing:-.03em}.streak-panel-label{color:var(--game-text-secondary);font-size:.72rem;font-weight:800}.streak-freeze-badge{display:inline-flex;padding:3px 6px;border-radius:8px;background:#3b82f61f;color:#3b82f6}.streak-week-grid{display:flex;justify-content:center;gap:var(--s-2);margin-top:var(--s-3)}.streak-day{display:flex;flex-direction:column;align-items:center;gap:4px}.streak-day-label{color:var(--game-text-secondary);font-size:.65rem;font-weight:800}.streak-day-dot{width:14px;height:14px;border-radius:50%;background:#94a3b833;transition:background .3s ease,box-shadow .3s ease}.streak-day--active .streak-day-dot{background:var(--game-primary);box-shadow:0 1px 4px #58cc0233}.streak-day--today .streak-day-dot{box-shadow:0 0 0 3px #58cc0233}.badge-carousel-header{display:flex;align-items:center;gap:var(--s-2);min-width:0;color:var(--game-text-secondary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.badge-carousel-header span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-carousel-header svg{color:var(--game-secondary)}.badge-carousel-header strong{margin-left:auto;padding:2px 8px;border-radius:999px;background:#ffc8001f;color:var(--game-accent)}.badge-carousel-progress{margin-top:var(--s-2)}.badge-carousel-progress-track{height:6px;border-radius:999px;background:#94a3b829;overflow:hidden}.badge-carousel-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--game-primary),var(--game-secondary));transition:width .6s ease}.badge-carousel-scroll{display:flex;gap:var(--s-2);max-width:100%;margin-top:var(--s-3);padding-bottom:var(--s-2);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.badge-carousel-scroll::-webkit-scrollbar{display:none}.badge-carousel-item{flex:0 0 auto;scroll-snap-align:start}.badge-carousel-empty{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:var(--s-3);border:1px dashed var(--game-border);border-radius:14px;color:var(--game-text-secondary);font-size:var(--text-xs);font-weight:800}.badge-carousel-link{display:inline-flex;align-items:center;gap:3px;margin-top:var(--s-2);color:var(--game-primary-dark);font-size:.72rem;font-weight:900;text-decoration:none}.badge-carousel-link:hover{text-decoration:underline}.mini-leaderboard-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);color:var(--game-text-secondary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.mini-leaderboard-header svg{color:var(--game-secondary)}.mini-leaderboard-list{display:flex;flex-direction:column;gap:var(--s-2)}.mini-leaderboard-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--s-2);min-width:0;padding:6px var(--s-2);border-radius:12px;transition:background .2s ease}.mini-leaderboard-row:hover{background:#00000008}.mini-leaderboard-row--me{background:#58cc0214;border:1px solid rgba(88,204,2,.2)}.mini-leaderboard-medal{font-size:var(--text-sm);font-weight:900;text-align:center}.mini-leaderboard-name{overflow:hidden;color:var(--game-text);font-size:var(--text-sm);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.mini-leaderboard-xp{color:var(--game-text-secondary);font-size:.72rem;font-weight:900;white-space:nowrap}.mini-leaderboard-divider{height:1px;margin:var(--s-1) 0;background:var(--game-border)}.mini-leaderboard-link{display:inline-flex;align-items:center;gap:3px;margin-top:var(--s-2);color:var(--game-primary-dark);font-size:.72rem;font-weight:900;text-decoration:none}.mini-leaderboard-link:hover{text-decoration:underline}.mini-schedule-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);color:var(--game-text-secondary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.mini-schedule-header svg{color:var(--game-primary)}.mini-schedule-list{display:flex;flex-direction:column;gap:6px}.mini-schedule-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;border-radius:12px;border:1px solid transparent;transition:background .15s ease}.mini-schedule-row--today{background:#58cc020f;border-color:#58cc0226}.mini-schedule-day{display:flex;align-items:center;justify-content:center;height:28px;border-radius:8px;background:#0000000a;color:var(--game-text-secondary);font-size:.68rem;font-weight:900;letter-spacing:.02em}.mini-schedule-row--today .mini-schedule-day{background:var(--game-primary);color:#fff}.mini-schedule-detail{display:flex;flex-direction:column;gap:2px;min-width:0}.mini-schedule-detail strong{color:var(--game-text);font-size:.8rem;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-schedule-time{display:inline-flex;align-items:center;gap:4px;color:var(--game-text-secondary);font-size:.72rem;font-weight:800}.mini-schedule-time svg{flex-shrink:0}.mini-schedule-teacher{color:var(--game-text-secondary);font-size:.68rem;font-weight:700;opacity:.8}.mini-schedule-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-3);color:var(--game-text-secondary);font-size:var(--text-sm);font-weight:800}[data-theme=dark] .mini-schedule-day{background:#ffffff0f}[data-theme=dark] .mini-schedule-row--today{background:#58cc0214;border-color:#58cc022e}.game-sidebar{position:sticky;top:calc(var(--header-height, 72px) + 20px);display:flex;flex-direction:column;gap:var(--s-4);min-width:0;max-width:100%;max-height:calc(100vh - var(--header-height, 72px) - 40px);overflow-y:auto;scrollbar-width:thin}@keyframes lunoBounceIn{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.1)}to{transform:scale(1)}}@keyframes lunoWingWave{0%{transform:rotate(0)}to{transform:rotate(-20deg)}}@keyframes lunoStarPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}@keyframes fireFlicker{0%{opacity:.8;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}@keyframes gamePulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes gameFadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes gameSlideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes gameSlideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes gameFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .game-card:hover{box-shadow:0 2px 6px #0000004d}[data-theme=dark] .mini-leaderboard-row:hover{background:#ffffff0a}[data-theme=dark] .mini-leaderboard-row--me{background:#58cc021a;border-color:#58cc023d}[data-theme=dark] .streak-fire--blue{filter:drop-shadow(0 0 10px rgba(77,166,255,.6))}@media(prefers-reduced-motion:reduce){.luno-mascot,.luno-wing--left,.luno-wing--right,.luno-star,.streak-fire,.xp-counter-today,.motivation-message,.game-card{animation:none!important;transition:none!important}}@media(max-width:860px){.game-sidebar{position:static;max-height:none;overflow-y:visible}.luno-mascot{animation:none}}@media(max-width:560px){.game-card{padding:var(--s-3);border-radius:16px}.streak-week-grid{justify-content:space-between;gap:4px;max-width:100%}.streak-day{flex:1;min-width:0}}.skeleton{background:linear-gradient(90deg,var(--skeleton-base, #e2e8f0) 25%,var(--skeleton-highlight, #f1f5f9) 50%,var(--skeleton-base, #e2e8f0) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] .skeleton{--skeleton-base: #334155;--skeleton-highlight: #475569}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--skeleton-base, #e2e8f0)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-8) var(--s-4);gap:var(--s-3)}.empty-state-icon-wrapper{width:72px;height:72px;border-radius:50%;background:var(--primary-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s-2)}.empty-state-title{font-size:var(--text-base);font-weight:700;color:var(--text-primary);margin:0}.empty-state-desc{font-size:var(--text-sm);color:var(--text-muted);margin:0;max-width:280px;line-height:1.5}.empty-state-action{margin-top:var(--s-2)}@media(max-width:768px){.empty-state{padding:var(--s-6) var(--s-3)}.empty-state-icon-wrapper{width:56px;height:56px}.empty-state-icon-wrapper svg{width:28px;height:28px}.empty-state-title{font-size:var(--text-sm)}.empty-state-desc{font-size:var(--text-xs)}}:root{--drawer-width: 640px;--drawer-overlay: rgba(15, 23, 42, .28);--drawer-surface: var(--bg-card, #ffffff);--drawer-surface-muted: color-mix(in srgb, var(--bg-sidebar, #f7f9fc) 82%, var(--bg, #f8fafc) 18%);--drawer-border: var(--border, #e2e8f0);--drawer-title: var(--text-primary, #0f172a);--drawer-subtitle: var(--text-muted, #64748b);--drawer-shadow: 0 20px 40px rgba(15, 23, 42, .08);--drawer-radius: 0;--drawer-transition: .32s cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--drawer-overlay: rgba(2, 6, 23, .62);--drawer-shadow: 0 18px 38px rgba(0, 0, 0, .36)}.side-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:var(--drawer-overlay);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}.side-drawer-overlay.open{opacity:1;visibility:visible}.side-drawer{position:fixed;inset:0 0 0 auto;width:100%;max-width:var(--drawer-width);background:linear-gradient(180deg,color-mix(in srgb,var(--drawer-surface) 96%,var(--bg, #f8fafc) 4%) 0%,var(--drawer-surface) 100%);border-left:1px solid var(--drawer-border);border-top:4px solid var(--entity-color, var(--primary));z-index:9999;transform:translate(100%);transition:transform var(--drawer-transition);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--drawer-radius);font-family:var(--font-body);color:var(--drawer-title)}.side-drawer.open{transform:translate(0);box-shadow:var(--drawer-shadow)}.drawer-content{height:100%;display:flex;flex-direction:column}.drawer-header{position:sticky;top:0;z-index:5;padding:12px 22px;border-bottom:1px solid var(--drawer-border);background:color-mix(in srgb,var(--entity-color, var(--primary)) 6%,var(--drawer-surface) 94%);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;flex-wrap:nowrap}.drawer-header-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.drawer-title-group{flex:1;min-width:0;max-width:calc(100% - 50px);overflow:hidden;display:flex;align-items:center}.drawer-title{margin:0;font-size:1rem;font-weight:700;line-height:1.35;color:var(--drawer-title);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.drawer-title-separator{color:var(--drawer-border);font-weight:400}.drawer-subtitle-inline{color:var(--drawer-subtitle);font-size:.8125rem;font-weight:500;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.drawer-header-actions{display:flex;align-items:center;gap:8px}.drawer-close-btn{width:34px;height:34px;border:0;border-radius:10px;background:var(--drawer-surface-muted);color:var(--drawer-subtitle);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;box-shadow:0 1px 3px #00000014;flex-shrink:0}.drawer-close-btn:hover{background:var(--hover-bg, #eef2f7);color:#ef4444;transform:scale(1.05);box-shadow:0 2px 6px #0000001f}.drawer-body{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:20px;line-height:1.6}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-thumb{background:var(--drawer-border);border-radius:999px}.drawer-footer{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;justify-content:flex-end;padding:16px 22px 20px;border-top:1px solid var(--drawer-border);background:color-mix(in srgb,var(--drawer-surface) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.drawer-section{display:flex;flex-direction:column;gap:14px}.section-title{margin:4px 2px 0;font-size:.8125rem;line-height:1.35;text-transform:none;letter-spacing:.04em;color:var(--drawer-subtitle);font-weight:700;display:inline-flex;align-items:center;gap:8px}.side-drawer .form-group,.side-drawer .form-row,.side-drawer .drawer-section>.credentials-box,.side-drawer .drawer-section>.rating-summary-box,.side-drawer .drawer-section>.feedback-card,.side-drawer .drawer-section>.student-info-popup,.side-drawer .drawer-section>.tab-content{margin:0}.side-drawer .form-label{font-size:.875rem;font-weight:600;line-height:1.4}.side-drawer .form-input,.side-drawer .form-select,.side-drawer .form-textarea{border-radius:12px;border:1px solid transparent;background:var(--drawer-surface-muted);box-shadow:none}.side-drawer .form-input:focus,.side-drawer .form-select:focus,.side-drawer .form-textarea:focus{border-color:color-mix(in srgb,var(--primary, #137fec) 35%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary, #137fec) 15%,transparent)}.drawer-empty-state{border:1px dashed var(--drawer-border);border-radius:16px;padding:42px 24px;text-align:center}.drawer-empty-state-icon{width:60px;height:60px;border-radius:16px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;background:var(--drawer-surface-muted)}.credentials-box{background:var(--drawer-surface-muted);border:1px solid var(--drawer-border);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.credentials-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.credentials-label{font-size:.8125rem;text-transform:none;letter-spacing:.04em;line-height:1.4;color:var(--drawer-subtitle);font-weight:700}.credentials-value{font-size:1rem;font-weight:700;line-height:1.4;color:var(--drawer-title)}.credentials-hint{margin:2px 0 0;padding-top:10px;border-top:1px dashed var(--drawer-border);color:var(--drawer-subtitle);font-size:.8rem}.drawer-section-pastel{background:var(--pastel-section-bg, var(--bg-tertiary));border:1px solid var(--pastel-section-border, var(--border-color));border-radius:16px;padding:16px;margin-bottom:12px}.drawer-section-pastel:last-child{margin-bottom:0}.drawer-empty-state-icon,.drawer-close-btn:hover{background:var(--pastel-section-bg, var(--bg-tertiary))}.pastel-data-row{border-radius:12px;transition:background .15s ease}.pastel-data-row:nth-child(odd){background:color-mix(in srgb,var(--pastel-section-bg, var(--bg-tertiary)) 50%,transparent)}.pastel-data-row:hover{background:var(--pastel-section-bg, var(--bg-tertiary))}@media(max-width:768px){.side-drawer{inset:auto 0 0 0;max-width:100%!important;height:min(92vh,820px);border-left:0;border-top:1px solid var(--drawer-border);border-radius:16px 16px 0 0;transform:translateY(100%)}.side-drawer.open{transform:translateY(0)}.drawer-header,.drawer-body,.drawer-footer{padding-left:16px;padding-right:16px}.drawer-footer{flex-direction:column-reverse;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.drawer-footer .btn{width:100%;justify-content:center}}.bottom-nav{display:none;position:fixed;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:12px;right:12px;min-height:68px;background:color-mix(in srgb,var(--bg-card) 88%,transparent);border:1px solid var(--border);border-radius:24px;z-index:var(--z-bottom-nav);padding:7px;box-shadow:0 18px 40px #0f172a29;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);text-decoration:none;font-size:10px;font-weight:600;transition:color .2s ease,background .2s ease,transform .2s ease;min-height:var(--tap-target);border-radius:18px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.bottom-nav-item.active{color:var(--primary);background:var(--primary-bg);transform:translateY(-2px)}.bottom-nav-item:active{opacity:.7}.bottom-nav-label{font-size:10px;letter-spacing:.02em}@media(max-width:768px){.bottom-nav{display:flex}.page-content.page-content--with-bottom-nav{padding-bottom:calc(106px + env(safe-area-inset-bottom,0px))}}[data-theme=dark] .bottom-nav{background:color-mix(in srgb,var(--bg-card) 86%,transparent);border-top-color:var(--border);box-shadow:0 18px 44px #00000061}.scope-multiselect{position:relative;display:flex;flex-direction:column;gap:6px}.scope-multiselect-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--border);background:var(--bg-card);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.scope-multiselect-trigger:hover{border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f114}.scope-multiselect-trigger:active{transform:scale(.995)}.scope-multiselect-trigger-content{display:flex;align-items:center;gap:8px;min-width:0}.scope-multiselect-label{font-weight:850;font-size:.84rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-multiselect-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;color:#fff;font-size:.7rem;font-weight:800;line-height:1;white-space:nowrap}.scope-multiselect-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}.scope-multiselect-pills{display:flex;flex-wrap:wrap;gap:4px;padding:0 2px}.scope-multiselect-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 6px 3px 8px;border-radius:8px;border:1px solid;font-size:.72rem;font-weight:700;line-height:1.3;max-width:160px;transition:all .15s ease}.scope-multiselect-pill:hover{box-shadow:0 2px 8px #0000000f}.scope-multiselect-pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.scope-multiselect-pill-remove{display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;cursor:pointer;border-radius:4px;opacity:.6;transition:opacity .15s;flex-shrink:0}.scope-multiselect-pill-remove:hover{opacity:1}.scope-multiselect-pill-more{padding:3px 8px;font-weight:800}.scope-multiselect-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;border-radius:14px;border:1.5px solid var(--border);background:var(--bg-card);box-shadow:0 12px 40px #0000001f,0 4px 12px #0000000f;display:flex;flex-direction:column;overflow:hidden;animation:scopeDropdownIn .15s ease;min-width:240px}@keyframes scopeDropdownIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.scope-multiselect-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-light)}.scope-multiselect-search-icon{color:var(--text-muted);flex-shrink:0}.scope-multiselect-search-input{flex:1;border:none;outline:none;background:none;color:var(--text-primary);font-size:.82rem;font-weight:500;padding:0;min-width:0}.scope-multiselect-search-input::placeholder{color:var(--text-muted);opacity:.7}.scope-multiselect-search-clear{display:flex;align-items:center;justify-content:center;padding:2px;border:none;background:var(--bg-secondary);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}.scope-multiselect-search-clear:hover{background:var(--border);color:var(--text-primary)}.scope-multiselect-toggle-all{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:var(--bg-secondary);color:var(--text-primary);font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s;text-align:left;border-bottom:1px solid var(--border-light)}.scope-multiselect-toggle-all:hover{background:var(--hover-bg)}.scope-multiselect-toggle-all-check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border);background:var(--bg-card);color:var(--primary-color);flex-shrink:0}.scope-multiselect-toggle-all-count{margin-left:auto;color:var(--text-muted);font-size:.72rem;font-weight:600}.scope-multiselect-list{max-height:220px;overflow-y:auto;overflow-x:hidden;padding:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.scope-multiselect-list::-webkit-scrollbar{width:5px}.scope-multiselect-list::-webkit-scrollbar-track{background:transparent}.scope-multiselect-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.scope-multiselect-item{display:flex;align-items:flex-start;gap:9px;width:100%;padding:8px;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;color:var(--text-primary);transition:all .12s ease}.scope-multiselect-item:hover{background:var(--hover-bg)}.scope-multiselect-item--selected{background:color-mix(in srgb,var(--accent, var(--primary-color)) 6%,transparent)}.scope-multiselect-item--selected:hover{background:color-mix(in srgb,var(--accent, var(--primary-color)) 10%,transparent)}.scope-multiselect-item-check{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border);background:var(--bg-card);flex-shrink:0;margin-top:1px;transition:all .15s ease}.scope-multiselect-item-check--checked{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.scope-multiselect-item-content{display:flex;flex-direction:column;gap:1px;min-width:0}.scope-multiselect-item-name{font-size:.82rem;font-weight:800;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-multiselect-item-subtitle{font-size:.7rem;color:var(--text-muted);font-weight:500;line-height:1.3}.scope-multiselect-empty{padding:20px 12px;text-align:center;color:var(--text-muted);font-size:.8rem;font-weight:600}.scope-multiselect-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 12px;color:var(--text-muted);font-size:.8rem;font-weight:600}.scope-multiselect-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--primary-color);border-radius:50%;animation:scopeSpin .6s linear infinite}@keyframes scopeSpin{to{transform:rotate(360deg)}}@media(max-width:480px){.scope-multiselect-dropdown{min-width:200px}.scope-multiselect-pill{max-width:120px}}.scope-multiselect--disabled .scope-multiselect-trigger{opacity:.55;cursor:not-allowed;background:var(--bg-secondary)}.scope-multiselect--disabled .scope-multiselect-trigger:hover{border-color:var(--border);box-shadow:none}.scope-multiselect-hint{font-size:.72rem;color:var(--text-muted);font-weight:600;padding:2px 4px;line-height:1.4}.dashboard-page{padding:var(--s-6);background:var(--bg);min-height:calc(100vh - var(--header-height))}.elite-dashboard-container{max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:var(--s-8)}.elite-header-minimal{margin-bottom:var(--s-2);display:flex;justify-content:space-between;align-items:center}.elite-welcome-title{font-size:var(--text-3xl);font-weight:800;color:var(--text-primary);margin-bottom:4px;font-family:var(--font-heading)}.elite-welcome-sub{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.header-actions{display:flex;gap:var(--s-3)}.glass-btn{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.glass-btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:var(--primary);color:var(--on-primary);box-shadow:0 10px 22px #6366f12e}.glass-btn.primary:hover{background:linear-gradient(135deg,var(--primary-dark),var(--primary));border-color:var(--primary-dark);color:var(--on-primary)}.glass-btn:hover{background:var(--hover-bg);border-color:var(--primary-light);transform:translateY(-1px)}.elite-grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-6)}.elite-stat-card{background:var(--bg-card);padding:var(--s-6);border-radius:var(--radius-xl);border:var(--border-premium);box-shadow:var(--shadow-sm);transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;gap:var(--s-4)}.elite-stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.elite-stat-header{display:flex;justify-content:space-between;align-items:center}.elite-stat-heading{display:flex;align-items:center;gap:var(--s-3);min-width:0}.elite-stat-icon-wrapper{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;background:var(--bg)}.elite-stat-avatars{display:flex;align-items:center}.elite-stat-avatars img{width:32px;height:32px;border-radius:50%;border:2px solid var(--bg-card);margin-left:-10px}.elite-stat-avatars img:first-child{margin-left:0}.avatar-more{width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid var(--bg-card);margin-left:-10px}.elite-stat-badge{padding:4px 10px;border-radius:99px;font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;gap:2px}.elite-stat-badge.positive{background:var(--success-bg);color:var(--success)}.elite-stat-badge.negative{background:var(--danger-bg);color:var(--danger)}.elite-stat-title{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);text-transform:none;letter-spacing:.05em}.elite-stat-title-inline{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.elite-stat-value-row{display:flex;align-items:baseline;gap:var(--s-3);margin-top:4px}.elite-stat-value{font-size:var(--text-3xl);font-weight:800;color:var(--text-primary);margin:0}.elite-stat-trend-mini{font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;gap:2px}.elite-stat-trend-mini.positive{color:var(--success)}.elite-stat-trend-mini.negative{color:var(--danger)}.charts-stack{display:flex;flex-direction:column;gap:var(--s-8)}.elite-grid-charts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6)}.elite-chart-card{background:var(--bg-card);padding:var(--s-6);border-radius:var(--radius-xl);border:var(--border-premium);box-shadow:var(--shadow-sm)}.elite-chart-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:var(--s-4);font-family:var(--font-heading)}.risk-center{display:flex;flex-direction:column;gap:var(--s-6)}.risk-widget{background:var(--bg-card);padding:var(--s-6);border-radius:var(--radius-xl);border:var(--border-premium);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s-4);position:relative;overflow:hidden}.risk-widget.warning{border-top:4px solid var(--warning)}.risk-header{display:flex;justify-content:space-between;align-items:center}.risk-title{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-base);font-weight:700;color:var(--text-primary);margin:0}.reception-dashboard{gap:var(--s-8)}.reception-dashboard__welcome{display:flex;flex-direction:column;gap:4px}.reception-dashboard__quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s-3);width:100%}.reception-compact-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.reception-compact-stat-card{gap:var(--s-3);padding:var(--s-4)}.reception-compact-stat-head{display:flex;align-items:center;gap:var(--s-2)}.reception-compact-stat-icon{width:32px;height:32px;flex-shrink:0}.reception-compact-stat-icon svg{width:18px;height:18px}.reception-compact-stat-title{font-size:var(--text-xs);font-weight:700;color:var(--text-primary);line-height:1.3}.reception-compact-stat-body{display:flex;flex-direction:column;gap:4px}.reception-compact-stat-value{font-size:var(--text-xl)}.reception-compact-stat-subtitle{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.glass-btn.reception-quick-action,.glass-btn.reception-quick-action.ant-btn,.reception-dashboard .ant-btn.glass-btn.reception-quick-action{height:42px;padding:var(--s-2) var(--s-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);box-shadow:none;transition:all var(--transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.glass-btn.reception-quick-action>span{overflow:hidden;text-overflow:ellipsis}.glass-btn.reception-quick-action:hover,.glass-btn.reception-quick-action.ant-btn:hover{transform:translateY(-1px);background:var(--hover-bg)}.glass-btn.reception-quick-action:disabled,.glass-btn.reception-quick-action.ant-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.reception-quick-action--search:hover{border-color:var(--info)!important;color:var(--info)!important}.reception-quick-action--payment:hover{border-color:var(--success)!important;color:var(--success)!important}.reception-quick-action--attendance:hover{border-color:var(--warning)!important;color:var(--warning)!important}.reception-quick-action--whatsapp:hover{border-color:var(--primary)!important;color:var(--primary)!important}.reception-grid-main{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.reception-grid-charts,.reception-risk-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6)}.reception-surface{display:flex;flex-direction:column;gap:var(--s-5)}.reception-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap}.reception-panel-title-wrap{display:flex;align-items:flex-start;gap:var(--s-3)}.reception-panel-icon{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border-light);flex-shrink:0}.reception-panel-icon--primary{color:var(--stat-indigo-accent)}.reception-panel-icon--warning{color:var(--stat-orange-accent)}.reception-panel-icon--danger{color:var(--danger)}.reception-panel-icon--info{color:var(--stat-purple-accent)}.reception-panel-icon--success{color:var(--stat-green-accent)}.reception-panel-title{margin:0!important}.reception-panel-subtitle{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.reception-panel-toolbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.reception-panel-toolbar .ant-segmented{padding:4px;border-radius:14px;background:linear-gradient(135deg,var(--bg),var(--hover-bg));border:1px solid var(--border-light);box-shadow:inset 0 1px #ffffff59}.reception-panel-toolbar .ant-segmented .ant-segmented-item{border-radius:10px;color:var(--text-secondary);font-weight:600;transition:all var(--transition)}.reception-panel-toolbar .ant-segmented .ant-segmented-item-selected{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.reception-attendance-meta{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:var(--s-3);padding-top:var(--s-1)}.reception-scroll-region{min-height:0;overflow:auto;flex:1;padding-right:4px}.reception-scroll-region--attendance{max-height:clamp(420px,62vh,680px)}.reception-list-stack{display:flex;flex-direction:column;gap:var(--s-3)}.reception-teacher-item{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition)}.reception-teacher-item:hover{box-shadow:var(--shadow-md)}.reception-teacher-item.expanded{border-color:var(--primary-light);box-shadow:var(--shadow-glow)}.reception-teacher-trigger{width:100%;background:transparent;border:none;padding:var(--s-4);display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);cursor:pointer;text-align:left}.reception-teacher-trigger:hover{background:var(--hover-bg)}.reception-teacher-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.reception-teacher-meta{display:flex;align-items:center;gap:var(--s-3);min-width:0}.reception-person-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;min-width:44px;font-weight:800;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:50%}.reception-person-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.reception-person-avatar--teacher{background:linear-gradient(135deg,var(--stat-indigo-accent),var(--stat-purple-accent));color:var(--on-primary)}.reception-person-avatar--student{background:linear-gradient(135deg,var(--danger),#fb7185);color:var(--on-danger)}.reception-teacher-text{display:flex;flex-direction:column;gap:4px;min-width:0}.reception-teacher-stats{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--text-xs);color:var(--text-muted)}.reception-class-list{display:flex;flex-direction:column;gap:var(--s-2);padding:0 var(--s-4) var(--s-4)}.reception-class-button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--radius);border:1px solid var(--border-light);background:var(--bg-card);cursor:pointer;transition:all var(--transition);text-align:left}.reception-class-button:hover{background:var(--hover-bg);transform:translate(2px)}.reception-class-button.missing{background:var(--danger-bg)}.reception-class-meta,.reception-class-info{display:flex;flex-direction:column;gap:4px}.reception-class-meta{align-items:flex-end}.reception-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.reception-metric-grid--stacked{grid-template-columns:1fr}.reception-panel-stack{display:flex;flex-direction:column;gap:var(--s-3)}.reception-panel-stack--scrollable{max-height:clamp(320px,55vh,720px);overflow:auto;padding-right:4px}.reception-panel-stack-item{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4);border-radius:var(--radius-lg);background:var(--bg);border:1px solid var(--border-light);transition:all var(--transition)}.reception-panel-stack-item:hover{background:var(--hover-bg);box-shadow:var(--shadow-sm)}.reception-panel-stack-item--accent{background:linear-gradient(135deg,var(--primary-bg),var(--bg));border-color:var(--primary-light)}.reception-panel-stack-item--danger{background:linear-gradient(135deg,var(--danger-bg),var(--bg));border-color:color-mix(in srgb,var(--danger),transparent 70%)}.reception-panel-stack-main{display:flex;flex-direction:column;gap:4px;min-width:0}.reception-panel-person{display:flex;align-items:center;gap:var(--s-3);min-width:0}.reception-panel-stack-label{font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.reception-panel-stack-sub{font-size:var(--text-xs);color:var(--text-muted);line-height:1.45}.reception-panel-stack-trailing{display:flex;align-items:center;gap:var(--s-2);flex-shrink:0}.reception-trial-detail-item{align-items:flex-start}.reception-trial-detail-meta{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);color:var(--text-muted);line-height:1.45}.reception-trial-detail-meta strong{color:var(--text-primary);font-weight:700}.reception-panel-stack-trailing--trial{align-items:flex-start;align-self:flex-start}.reception-panel-stack-value{font-size:var(--text-lg);font-weight:800;color:var(--text-primary)}.reception-panel-stack-value--danger{color:var(--danger)}.reception-metric-item{display:flex;flex-direction:column;gap:6px;padding:var(--s-4);border-radius:var(--radius-lg);background:var(--bg);border:1px solid var(--border-light)}.reception-metric-item--accent{background:linear-gradient(135deg,var(--primary-bg),var(--bg));border-color:var(--primary-light)}.reception-metric-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:none;letter-spacing:.05em;font-weight:700}.reception-metric-value{font-size:var(--text-xl);font-weight:800;color:var(--text-primary)}.reception-inline-link.ant-btn-link{color:var(--text-secondary);padding-inline:0}.reception-inline-link.ant-btn-link:hover{color:var(--primary)}.reception-inline-icon.ant-btn,.reception-inline-icon.ant-btn-text{color:var(--text-secondary)}.reception-inline-icon.ant-btn:hover,.reception-inline-icon.ant-btn-text:hover{color:var(--primary);background:var(--hover-bg)}.reception-risk-list .risk-item{border:1px solid var(--border-light)}.reception-risk-item{gap:var(--s-4)}.reception-risk-item--stacked{align-items:flex-start}.reception-risk-actions{display:flex;align-items:center;gap:var(--s-2);flex-shrink:0}.reception-empty-block{padding:var(--s-8) 0}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleFade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.reception-dashboard>*{animation:slideUpFade .5s ease-out both}.reception-dashboard>*:nth-child(1){animation-delay:.05s}.reception-dashboard>*:nth-child(2){animation-delay:.1s}.reception-dashboard>*:nth-child(3){animation-delay:.15s}.reception-dashboard>*:nth-child(4){animation-delay:.2s}.reception-dashboard>*:nth-child(5){animation-delay:.25s}.reception-dashboard>*:nth-child(6){animation-delay:.3s}.reception-teacher-item,.reception-class-button{animation:slideUpFade .3s ease-out both}.reception-card .ant-btn-text:focus-visible,.reception-dashboard .ant-btn-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.elite-grid-main{display:grid;grid-template-columns:2fr 1fr;gap:var(--s-8);align-items:start}.side-panel{display:flex;flex-direction:column;gap:var(--s-6);min-width:0}@media(max-width:1280px){.elite-grid-main,.reception-grid-main{grid-template-columns:1fr}}@media(max-width:640px){.side-panel{gap:var(--s-4)}}.elite-activity-card{background:var(--bg-card);padding:var(--s-6);border-radius:var(--radius-xl);border:var(--border-premium);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s-6);height:100%}.activity-header{display:flex;justify-content:space-between;align-items:center}.activity-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0;font-family:var(--font-heading)}.activity-list{display:flex;flex-direction:column;gap:var(--s-6)}.activity-list--expanded{max-height:640px;overflow-y:auto;padding-right:var(--s-2)}.activity-item{display:flex;gap:var(--s-4);position:relative}.activity-item:not(:last-child):after{content:"";position:absolute;left:20px;top:48px;bottom:-24px;width:2px;background:var(--border-light)}.activity-user{position:relative;z-index:1}.activity-avatar{width:40px;height:40px;border-radius:12px;border:2px solid var(--bg-card);object-fit:cover}.activity-icon-badge{position:absolute;bottom:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.activity-content{display:flex;flex-direction:column;gap:4px}.activity-text{font-size:var(--text-sm);line-height:1.5;color:var(--text-secondary)}.activity-username{font-weight:700;color:var(--text-primary)}.activity-action{font-weight:600}.activity-entity{color:var(--primary);font-weight:600}.activity-meta{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.meta-dot{opacity:.5}.clickable{cursor:pointer;transition:color var(--transition)}.clickable:hover{color:var(--primary)}.activity-empty{text-align:center;padding:var(--s-8) 0;color:var(--text-muted);font-size:var(--text-sm)}.activity-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3);padding-top:var(--s-2)}.activity-more-btn{justify-content:center}.activity-more-btn:disabled{cursor:not-allowed;opacity:.65}.activity-load-error{color:var(--danger);font-size:var(--text-xs);font-weight:600}.transaction-card{background:var(--bg-card);border-radius:var(--radius-xl);border:var(--border-premium);box-shadow:var(--shadow-sm);padding:0!important;overflow:hidden}.elite-card-header{padding:var(--s-6);display:flex;justify-content:space-between;align-items:center}.elite-btn-view-all{background:transparent;border:1px solid var(--border);padding:var(--s-2) var(--s-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:var(--s-2);cursor:pointer;transition:all var(--transition)}.elite-btn-view-all:hover{background:var(--hover-bg);border-color:var(--primary-light)}.elite-table-wrapper{overflow-x:auto}.elite-table{width:100%;border-collapse:collapse}.elite-table th{text-align:left;padding:16px 24px;font-size:var(--text-xs);font-weight:700;color:var(--text-muted);background:var(--table-header-bg);border-bottom:1px solid var(--border-light);text-transform:none;letter-spacing:.05em}.elite-table td{padding:16px 24px;border-bottom:1px solid var(--border-light);vertical-align:middle}.td-customer{display:flex;align-items:center;gap:12px}.td-avatar{width:40px;height:40px;border-radius:12px}.td-info{display:flex;flex-direction:column}.td-name{font-weight:700;color:var(--text-primary);font-size:var(--text-sm)}.td-sub{font-size:var(--text-xs);color:var(--text-muted)}.td-price{font-weight:700;color:var(--text-primary)}.td-payment{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-secondary);font-weight:600}.td-payment img{height:18px}.elite-badge{padding:4px 12px;border-radius:8px;font-size:var(--text-xs);font-weight:700;display:inline-block}.tx-status-success{background:var(--success-bg);color:var(--success)}.tx-status-cancel{background:var(--danger-bg);color:var(--danger)}.tx-status-pending{background:var(--warning-bg);color:var(--warning)}.td-actions{display:flex;gap:8px}.action-btn{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:all .2s}.action-btn.view{background:var(--info-bg);color:var(--info)}.action-btn.edit{background:var(--success-bg);color:var(--success)}.action-btn.delete{background:var(--danger-bg);color:var(--danger)}.action-btn:hover{transform:scale(1.1)}.risk-list{display:flex;flex-direction:column;gap:var(--s-3)}.risk-item{display:flex;justify-content:space-between;align-items:center;padding:var(--s-3) var(--s-4);background:var(--bg);border-radius:var(--radius);transition:all var(--transition)}.risk-item:hover{background:var(--hover-bg)}.risk-info{display:flex;flex-direction:column}.risk-name{font-weight:700;font-size:var(--text-sm);color:var(--text-primary)}.risk-sub{font-size:var(--text-xs);color:var(--text-muted)}.risk-value{font-weight:700;font-size:var(--text-sm)}.risk-value.danger{color:var(--danger)}.follow-up-btn{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--primary-bg);color:var(--primary);border:none;cursor:pointer;transition:all var(--transition)}.follow-up-btn:hover{background:var(--primary);color:var(--on-primary)}@media(max-width:1024px){.elite-grid-charts,.reception-grid-charts,.reception-risk-row,.reception-metric-grid--stacked{grid-template-columns:1fr}.reception-scroll-region--attendance{max-height:clamp(360px,56vh,600px)}}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.dashboard-page{padding:var(--s-4)}.elite-dashboard-container{gap:var(--s-6)}.elite-header-minimal{margin-bottom:var(--s-1)}.elite-welcome-sub{font-size:.82rem}.elite-grid-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-4)}.elite-stat-card,.elite-chart-card,.risk-widget,.elite-activity-card{padding:var(--s-5);border-radius:var(--radius-lg)}.elite-stat-card{gap:var(--s-3)}.elite-stat-icon-wrapper{width:40px;height:40px}.elite-stat-avatars img,.avatar-more{width:28px;height:28px}.elite-stat-badge{padding:3px 8px;font-size:10px}.elite-grid-charts{gap:var(--s-4)}.elite-chart-title,.activity-title{margin-bottom:var(--s-3)}.risk-list{gap:var(--s-2)}.elite-grid-main{gap:var(--s-6)}.activity-list{gap:var(--s-4)}.activity-item{gap:var(--s-3)}.activity-item:not(:last-child):after{left:17px;top:42px;bottom:-18px}.activity-avatar{width:34px;height:34px;border-radius:10px}.activity-icon-badge{width:16px;height:16px}}@media(max-width:640px){.dashboard-page{padding:var(--s-3)}.elite-header-minimal{flex-direction:column;align-items:stretch;gap:var(--s-3)}.header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.reception-dashboard__header{flex-direction:column;align-items:stretch}.reception-dashboard__quick-actions .reception-quick-action{justify-content:center;width:100%}.reception-scroll-region,.reception-scroll-region--attendance{overflow:visible;max-height:none}.reception-panel-header,.reception-panel-toolbar,.reception-class-button,.reception-panel-stack-item{flex-direction:column;align-items:stretch}.reception-metric-grid,.reception-metric-grid--stacked{grid-template-columns:1fr}.reception-class-meta{align-items:flex-start}.reception-panel-stack-trailing{justify-content:space-between}.reception-compact-stats{grid-template-columns:repeat(2,1fr);gap:var(--s-3)}.reception-compact-stat-card{padding:var(--s-3);gap:8px}.reception-compact-stat-head{gap:8px}.reception-compact-stat-icon{width:28px;height:28px}.reception-compact-stat-icon svg{width:16px;height:16px}.reception-compact-stat-title{font-size:var(--text-xs);line-height:1.2}.reception-compact-stat-value{font-size:var(--text-xl)}.reception-compact-stat-subtitle{font-size:10px;line-height:1.2}.reception-teacher-trigger{min-width:0;flex-wrap:wrap}.reception-teacher-text{overflow:hidden;min-width:0}.reception-teacher-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.reception-teacher-stats{flex-wrap:wrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reception-class-button{min-width:0}.reception-class-info{min-width:0;overflow:hidden}.reception-class-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.reception-class-meta{align-items:flex-start;min-width:0}}@media(prefers-reduced-motion:reduce){.reception-dashboard>*,.reception-teacher-item,.reception-class-button{animation:none!important}.reception-teacher-item,.reception-class-button,.glass-btn.reception-quick-action{transition:none!important}.reception-class-button:hover,.glass-btn.reception-quick-action:hover{transform:none!important}}.reception-compact-stat-card--clickable{cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.reception-compact-stat-card--clickable:hover{border-color:var(--primary-light);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.reception-compact-stat-card--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.reception-filter-loading{font-size:var(--text-xs);color:var(--text-muted);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}[data-theme=dark] .reception-teacher-item{border-color:var(--border)}[data-theme=dark] .reception-class-button.missing{background:#ef44441f}[data-theme=dark] .reception-class-button.missing:hover{background:#ef444433}[data-theme=dark] .elite-stat-card,[data-theme=dark] .elite-chart-card,[data-theme=dark] .risk-widget,[data-theme=dark] .elite-activity-card,[data-theme=dark] .transaction-card{background:var(--bg-card);border-color:var(--border)}[data-theme=dark] .risk-item,[data-theme=dark] .reception-teacher-item,[data-theme=dark] .reception-panel-stack-item,[data-theme=dark] .reception-metric-item{background:var(--bg-secondary);border-color:var(--border)}[data-theme=dark] .glass-btn,[data-theme=dark] .elite-btn-view-all{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border)}[data-theme=dark] .glass-btn:hover,[data-theme=dark] .elite-btn-view-all:hover{background:var(--hover-bg);color:var(--text-primary)}[data-theme=dark] .glass-btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--on-primary);border-color:var(--primary-border)}[data-theme=dark] .reception-metric-item,[data-theme=dark] .reception-panel-stack-item,[data-theme=dark] .reception-risk-list .risk-item{border-color:var(--border)}.package-history-page{display:grid;gap:14px;padding-bottom:24px}.package-history-page--error{gap:16px}.package-history-panel,.package-history-stat{border:1px solid rgba(148,163,184,.16);background:#fffffff5;box-shadow:0 10px 24px #0f172a0d}.package-history-stat__content,.package-history-event__body,.package-history-mini-card,.package-history-summary-fact{display:grid;gap:8px}.package-history-panel__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:none;letter-spacing:.08em;color:var(--premium-indigo-600)}.package-history-stat__note,.package-history-event__subtitle,.package-history-event__description,.package-history-empty__description{margin:0;font-size:13px;line-height:1.5;color:var(--premium-zinc-600)}.package-history-source-group,.package-history-event__labels,.package-history-panel__actions,.package-history-pagination,.package-history-pagination__pages,.package-history-event__meta{display:flex;flex-wrap:wrap;gap:8px}.package-history-pill,.package-history-source-chip,.package-history-metric,.package-history-event__event-key,.package-history-status-badge,.package-history-page-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.01em;border:1px solid transparent}.package-history-pill--violet,.package-history-source-chip--violet,.package-history-metric--violet,.package-history-page-chip--active{color:#6d28d9;background:#8b5cf61f}.package-history-pill--sky,.package-history-source-chip--sky,.package-history-metric--sky{color:#0369a1;background:#38bdf81f}.package-history-pill--emerald,.package-history-source-chip--emerald,.package-history-metric--emerald{color:#047857;background:#10b9811f}.package-history-pill--amber,.package-history-source-chip--amber,.package-history-metric--amber{color:#b45309;background:#f59e0b24}.package-history-source-chip--slate,.package-history-metric--slate,.package-history-event__event-key,.package-history-page-chip{color:#475569;background:#94a3b81f}.package-history-metric--rose{color:#be123c;background:#f43f5e1f}.package-history-stat__label,.package-history-field__label,.package-history-summary-fact span,.package-history-list-head span{font-size:12px;font-weight:700;text-transform:none;letter-spacing:.07em;color:var(--premium-zinc-500)}.package-history-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.package-history-stat{display:grid;gap:8px;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.12);border-left-width:4px;transition:transform var(--transition),box-shadow var(--transition)}.package-history-stat:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0f172a0f}.package-history-stat__top{display:flex;align-items:center;gap:10px}.package-history-stat__numbers{display:flex;flex-direction:column;gap:1px;min-width:0}.package-history-stat__icon,.package-history-event__icon,.package-history-empty__icon{display:inline-flex;align-items:center;justify-content:center;border-radius:14px}.package-history-stat__icon{width:32px;height:32px;flex-shrink:0}.package-history-stat__value,.package-history-event__title,.package-history-kv__row strong,.package-history-mini-card strong{color:var(--premium-zinc-900)}.package-history-stat__value{font-size:22px;font-weight:800;line-height:1.15;letter-spacing:0}.package-history-stat__chips{display:flex;flex-wrap:wrap;gap:4px}.package-history-stat__chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.01em}.package-history-stat--emerald{border-left-color:#059669;background:linear-gradient(135deg,#10b9810f,#fffffff2)}.package-history-stat--emerald .package-history-stat__icon,.package-history-event__icon--emerald{color:#047857;background:#10b98124}.package-history-stat--emerald .package-history-stat__chip{color:#047857;background:#10b9811f}.package-history-stat--rose{border-left-color:#e11d48;background:linear-gradient(135deg,#f43f5e0f,#fffffff2)}.package-history-stat--rose .package-history-stat__icon,.package-history-event__icon--rose{color:#be123c;background:#f43f5e24}.package-history-stat--rose .package-history-stat__chip{color:#be123c;background:#f43f5e1f}.package-history-stat--amber{border-left-color:#d97706;background:linear-gradient(135deg,#f59e0b0f,#fffffff2)}.package-history-stat--amber .package-history-stat__icon,.package-history-event__icon--amber{color:#b45309;background:#f59e0b24}.package-history-stat--amber .package-history-stat__chip{color:#b45309;background:#f59e0b1f}.package-history-stat--violet{border-left-color:#7c3aed;background:linear-gradient(135deg,#8b5cf60f,#fffffff2)}.package-history-stat--violet .package-history-stat__icon,.package-history-event__icon--violet{color:#6d28d9;background:#8b5cf624}.package-history-stat--violet .package-history-stat__chip{color:#6d28d9;background:#8b5cf61f}.package-history-stat--sky{border-left-color:#0284c7;background:linear-gradient(135deg,#38bdf80f,#fffffff2)}.package-history-stat--sky .package-history-stat__icon,.package-history-event__icon--sky{color:#0369a1;background:#38bdf824}.package-history-stat--sky .package-history-stat__chip{color:#0369a1;background:#38bdf81f}.package-history-event__icon--slate{color:#475569;background:#94a3b824}.package-history-panel{display:grid;gap:14px;padding:16px;border-radius:18px}.package-history-panel__header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.package-history-panel__header--compact{align-items:center}.package-history-panel__title{margin:4px 0 0;font-size:18px;line-height:1.25;letter-spacing:0;color:var(--premium-zinc-900)}.package-history-summary-bar,.package-history-timeline,.package-history-mini-grid{display:grid;gap:12px}.package-history-summary-bar{display:flex;flex-wrap:wrap;gap:8px}.package-history-filters-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.package-history-filters-row .package-history-panel__eyebrow{display:inline-flex;align-items:center;white-space:nowrap;padding-bottom:10px}.package-history-primary-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.package-history-field{display:flex;flex-direction:column;gap:4px;flex:1 1 150px;min-width:0}.package-history-field--search{flex:2 1 200px;min-width:0}.package-history-filters-row .package-history-field__label{display:none}.package-history-filters-row .package-history-filter-reset{align-self:flex-end;min-height:42px;flex-shrink:0}.package-history-search,.package-history-input-wrap,.package-history-input,.package-history-select{width:100%;min-height:42px;border-radius:14px;border:1px solid rgba(148,163,184,.22);background:#fff;color:var(--premium-zinc-900);transition:border-color var(--transition),box-shadow var(--transition)}.package-history-search,.package-history-input-wrap{display:flex;align-items:center;gap:10px;padding:0 12px}.package-history-input,.package-history-select{padding:0 12px;font:inherit}.package-history-search svg,.package-history-input-wrap svg{color:var(--premium-zinc-400);flex-shrink:0}.package-history-search .package-history-input,.package-history-input-wrap .package-history-input{min-height:40px;padding:0;border:none;box-shadow:none;background:transparent}.package-history-search:focus-within,.package-history-input-wrap:focus-within,.package-history-input:focus,.package-history-select:focus,.package-history-page-chip:focus{outline:none;border-color:#6366f16b;box-shadow:0 0 0 4px #6366f11a}.package-history-panel--summary{gap:12px}.package-history-summary__back{flex-shrink:0}.package-history-summary-fact{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;border:1px solid rgba(148,163,184,.12);border-left-width:3px;min-width:0;flex:1 1 150px}.package-history-summary-fact__icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;flex-shrink:0}.package-history-summary-fact__text{display:flex;flex-direction:column;gap:1px;min-width:0}.package-history-summary-fact strong{font-size:13px;font-weight:800;line-height:1.35;color:var(--premium-zinc-900);overflow-wrap:anywhere}.package-history-summary-fact--indigo{border-left-color:#6366f1;background:linear-gradient(135deg,#6366f10f,#fffffff2)}.package-history-summary-fact--indigo .package-history-summary-fact__icon{color:#4f46e5;background:#6366f11f}.package-history-summary-fact--violet{border-left-color:#7c3aed;background:linear-gradient(135deg,#8b5cf60f,#fffffff2)}.package-history-summary-fact--violet .package-history-summary-fact__icon{color:#6d28d9;background:#8b5cf61f}.package-history-summary-fact--sky{border-left-color:#0284c7;background:linear-gradient(135deg,#38bdf80f,#fffffff2)}.package-history-summary-fact--sky .package-history-summary-fact__icon{color:#0369a1;background:#38bdf81f}.package-history-summary-fact--amber{border-left-color:#d97706;background:linear-gradient(135deg,#f59e0b0f,#fffffff2)}.package-history-summary-fact--amber .package-history-summary-fact__icon{color:#b45309;background:#f59e0b1f}.package-history-summary-fact--emerald{border-left-color:#059669;background:linear-gradient(135deg,#10b9810f,#fffffff2)}.package-history-summary-fact--emerald .package-history-summary-fact__icon{color:#047857;background:#10b9811f}.package-history-summary-fact--rose{border-left-color:#e11d48;background:linear-gradient(135deg,#f43f5e0f,#fffffff2)}.package-history-summary-fact--rose .package-history-summary-fact__icon{color:#be123c;background:#f43f5e1f}.package-history-kv{display:grid;gap:8px}.package-history-kv--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.package-history-panel--timeline{gap:10px}.package-history-timeline-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.package-history-pagination-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--premium-zinc-600)}.package-history-timeline{display:grid;gap:10px}.package-history-timeline--table{gap:8px}.package-history-list-head{display:grid;grid-template-columns:130px 150px 160px minmax(0,1.25fr) 140px 110px;gap:10px;padding:0 12px}.package-history-event{display:block;padding:10px 12px;border-radius:14px;border:1px solid rgba(148,163,184,.12);border-left-width:3px;box-shadow:0 4px 12px #0f172a08;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.package-history-event:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0f172a0f}.package-history-event--emerald{border-left-color:#059669;background:linear-gradient(135deg,#10b9810d,#fffffff7)}.package-history-event--rose{border-left-color:#e11d48;background:linear-gradient(135deg,#f43f5e0d,#fffffff7)}.package-history-event--amber{border-left-color:#d97706;background:linear-gradient(135deg,#f59e0b0d,#fffffff7)}.package-history-event--violet{border-left-color:#7c3aed;background:linear-gradient(135deg,#8b5cf60d,#fffffff7)}.package-history-event--sky{border-left-color:#0284c7;background:linear-gradient(135deg,#38bdf80d,#fffffff7)}.package-history-event--slate{border-left-color:#64748b;background:linear-gradient(135deg,#94a3b80d,#fffffff7)}.package-history-event__icon{width:38px;height:38px;flex-shrink:0}.package-history-event__icon--inline{width:32px;height:32px;border-radius:12px}.package-history-event__row{display:grid;grid-template-columns:130px 150px 160px minmax(0,1.25fr) 140px 110px;gap:10px;align-items:start}.package-history-event__main{display:grid;gap:6px;min-width:0}.package-history-event__cell{min-width:0}.package-history-event__cell--event,.package-history-event__cell--teacher,.package-history-event__cell--class{display:grid;align-content:start;gap:6px}.package-history-event__labels--event-inline{align-items:center;flex-wrap:nowrap}.package-history-event__value{display:block;min-height:30px;font-size:13px;font-weight:700;line-height:1.45;color:var(--premium-zinc-700)}.package-history-event__title{margin:0;font-size:14px;font-weight:800;line-height:1.35}.package-history-event__subtitle{font-size:12px;font-weight:700;line-height:1.45;color:var(--premium-zinc-700)}.package-history-event__time{display:block;font-size:12px;font-weight:700;color:var(--premium-zinc-700)}.package-history-event__date-label{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:var(--premium-zinc-500)}.package-history-event__labels--stacked{display:grid;gap:8px;justify-items:start}.package-history-event__event-key{min-height:24px;padding:4px 8px;font-size:11px;font-weight:700;letter-spacing:.03em}.package-history-event__meta{gap:6px}.package-history-event__meta-item{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.14);background:#f8fafce6;font-size:11px;font-weight:700;color:var(--premium-zinc-600)}.package-history-event__cell--date,.package-history-event__cell--status,.package-history-event__cell--amount{display:grid;align-content:start;gap:6px}.package-history-event__cell--amount{justify-items:end}.package-history-status-badge--emerald{color:#047857;background:#10b98124}.package-history-status-badge--rose{color:#be123c;background:#f43f5e1f}.package-history-status-badge--amber{color:#b45309;background:#f59e0b24}.package-history-status-badge--violet{color:#6d28d9;background:#8b5cf61f}.package-history-status-badge--sky{color:#0369a1;background:#38bdf81f}.package-history-status-badge--slate{color:#475569;background:#94a3b824}.package-history-empty{display:grid;gap:10px;justify-items:center;padding:36px 18px;border-radius:20px;border:1px dashed rgba(148,163,184,.24);background:#f8fafcd1;text-align:center}.package-history-empty__icon{width:52px;height:52px;color:#6d28d9;background:#8b5cf61f}.package-history-empty__title{margin:0;font-size:20px;color:var(--premium-zinc-900)}.package-history-pagination{justify-content:space-between;align-items:center}.package-history-pagination__button{display:inline-flex;align-items:center;gap:8px}.package-history-page-chip{min-width:34px;cursor:pointer}@media(max-width:1280px){.package-history-stats,.package-history-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.package-history-list-head,.package-history-event__row{grid-template-columns:120px 130px 140px minmax(0,1.1fr) 120px 100px}}@media(max-width:1024px){.package-history-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.package-history-filters-row{flex-wrap:wrap}.package-history-filters-row .package-history-field{flex:1 1 45%}.package-history-filters-row .package-history-field--search{flex:1 1 100%}.package-history-list-head{display:none}.package-history-event__row{grid-template-columns:1fr;align-items:flex-start}.package-history-event__cell--amount{justify-items:start}}@media(max-width:768px){.package-history-page{gap:14px}.package-history-panel,.package-history-event{padding:14px;border-radius:16px}.package-history-stat{padding:10px;border-radius:12px}.package-history-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.package-history-mini-grid{grid-template-columns:1fr}.package-history-filters-row{flex-direction:column;align-items:stretch}.package-history-filters-row .package-history-field{flex:1 1 100%}.package-history-event__time{white-space:normal}.package-history-event{grid-template-columns:1fr}.package-history-event__meta{gap:6px}}.teacher-dashboard{display:flex;flex-direction:column;gap:var(--s-8)}.teacher-dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.teacher-dashboard-stats{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-left:auto}.teacher-stat-card{min-width:122px;max-width:150px;padding:10px 12px;gap:6px;border-radius:14px;box-shadow:var(--shadow-xs, 0 4px 12px rgba(15, 23, 42, .05))}.teacher-stat-card .elite-stat-header{align-items:center;gap:6px}.teacher-stat-card .elite-stat-heading{gap:8px;flex:1}.teacher-stat-card .elite-stat-icon-wrapper{width:28px;height:28px;flex-shrink:0}.teacher-stat-card .elite-stat-title-inline{font-size:10px;line-height:1.2;letter-spacing:.04em}.teacher-stat-card .elite-stat-value-row{margin-top:0}.teacher-stat-card .elite-stat-body{display:flex;flex-direction:column;gap:2px}.teacher-stat-card .elite-stat-value{font-size:1.1rem;line-height:1.1}.teacher-stat-card .elite-stat-description{margin:0;font-size:10px;line-height:1.25}.teacher-grid-top{display:grid;grid-template-columns:3fr 1fr;gap:var(--s-6);align-items:start}.class-card{background:var(--bg-card);padding:var(--s-5);border-radius:var(--radius-lg);border:var(--border-premium);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition);display:flex;flex-direction:column;gap:var(--s-2);position:relative;overflow:hidden}.class-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.class-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-light)}.class-card.marked{border-color:#22c55e47}.class-card.unmarked{border-color:#f8717147;box-shadow:0 8px 20px #ef44440f;background:linear-gradient(135deg,var(--bg-card) 0%,var(--danger-bg) 100%)}.class-card.unmarked:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 999px 999px 0;background:linear-gradient(180deg,#f87171f2,#ef4444b3);box-shadow:0 0 12px #ef444433}.class-card.unmarked:hover{border-color:#ef444457;box-shadow:0 12px 24px #ef444414}.class-card.active{border-color:var(--primary);background:var(--primary-bg)}.class-card h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0}.class-attendance-indicator{display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;min-width:78px;padding:8px 10px;border-radius:12px;border:1px solid transparent;font-size:var(--text-xs);line-height:1.1;flex-shrink:0}.class-attendance-indicator strong{font-size:var(--text-sm)}.class-attendance-label{opacity:.9}.class-attendance-indicator.marked{background:#22c55e1a;border-color:#22c55e33;color:#15803d}.class-attendance-indicator.unmarked{background:var(--bg-card);border-color:#f871712e;color:#dc2626;box-shadow:0 4px 12px #ef444414}.class-subject{font-size:var(--text-sm);color:var(--text-muted);display:flex;align-items:center;gap:var(--s-1)}.class-meta{display:flex;gap:var(--s-4);margin-top:var(--s-2);font-size:var(--text-sm);color:var(--text-secondary)}.class-meta span{display:flex;align-items:center;gap:var(--s-1)}.homework-widget{background:var(--bg-card);border-radius:var(--radius-lg);border:var(--border-premium);box-shadow:var(--shadow-sm);overflow:hidden}.homework-header{padding:var(--s-4) var(--s-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-light)}.homework-header h3{font-size:var(--text-base);font-weight:700;margin:0}.homework-list{padding:0 var(--s-4)}.homework-item{padding:var(--s-3) 0;border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:4px}.homework-item:last-child{border-bottom:none}.homework-title{font-weight:700;font-size:var(--text-sm);color:var(--text-primary)}.homework-meta{font-size:var(--text-xs);color:var(--text-muted)}.attendance-section{margin-top:var(--s-6)}.teacher-calendar-header{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3)}.teacher-calendar-nav{display:flex;align-items:center;gap:8px}.teacher-calendar-title{min-width:150px;text-align:center;font-size:var(--text-sm)}.teacher-calendar-shell{border:1px solid var(--glass-border);border-radius:12px;overflow:hidden}.teacher-calendar-weekdays,.teacher-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.teacher-calendar-weekdays{background:var(--bg-secondary);border-bottom:1px solid var(--glass-border)}.teacher-calendar-weekdays>div{padding:8px 10px;font-size:11px;font-weight:700;color:var(--text-muted)}.teacher-calendar-cell{min-height:108px;padding:8px;border-right:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);background:var(--bg-card)}.teacher-calendar-cell.muted{background:var(--bg-secondary)}.teacher-calendar-date{font-size:11px;font-weight:700;margin-bottom:6px}.teacher-calendar-cell.muted .teacher-calendar-date{color:var(--text-muted)}.teacher-calendar-events{display:flex;flex-direction:column;gap:4px}.teacher-calendar-event{background:#eef2ff;border:1px solid #c7d2fe;border-radius:7px;padding:4px 6px;font-size:10px}.teacher-calendar-more{font-size:10px;color:var(--text-muted);font-weight:600}.teacher-calendar-view-toggle,.teacher-calendar-agenda{display:none}.teacher-calendar-week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0 10px}.teacher-calendar-week-nav strong{font-size:13px;font-weight:800;color:var(--text-primary)}.teacher-calendar-empty{padding:var(--s-5);border:1px dashed var(--glass-border);border-radius:12px;color:var(--text-muted);text-align:center;font-size:var(--text-sm);background:var(--bg-card)}.teacher-agenda-day{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-bottom:1px solid var(--border-light)}.teacher-agenda-day.today{position:relative}.teacher-agenda-day.today:before{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:3px;border-radius:999px;background:linear-gradient(180deg,var(--primary) 0%,rgba(99,102,241,.45) 100%)}.teacher-agenda-day:last-child{border-bottom:none}.teacher-agenda-day-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.teacher-agenda-day-titles{display:flex;flex-direction:column;gap:1px}.teacher-agenda-weekday{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:none;color:var(--primary)}.teacher-agenda-date{font-size:14px;font-weight:800;color:var(--text-primary);line-height:1.2}.teacher-agenda-count{display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:4px 8px;border-radius:999px;background:#6366f11f;color:var(--primary);font-size:10px;font-weight:800;white-space:nowrap}.teacher-agenda-count.empty{background:#94a3b81f;color:var(--text-muted)}.teacher-agenda-events{display:flex;flex-direction:column;gap:8px}.teacher-agenda-event{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:linear-gradient(180deg,var(--bg-card) 0%,var(--bg-secondary) 100%);border:1px solid rgba(99,102,241,.16);border-radius:12px;padding:10px 12px;box-shadow:0 6px 14px #0f172a0d}.teacher-agenda-event-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.teacher-agenda-time-range{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#6366f11a;color:var(--primary);font-size:12px;font-weight:800;white-space:nowrap}.teacher-agenda-event-main{min-width:0}.teacher-agenda-name{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.35}.teacher-agenda-label{flex-shrink:0;padding:3px 8px;border-radius:999px;background:#94a3b81f;font-size:10px;color:var(--text-muted);font-weight:700}.teacher-agenda-empty-day{padding:10px 12px;border:1px dashed var(--glass-border);border-radius:12px;background:var(--bg-card);color:var(--text-muted);font-size:12px;font-weight:600}[data-theme=dark] .teacher-stat-card,[data-theme=dark] .homework-widget,[data-theme=dark] .teacher-calendar-empty{background:var(--bg-card);border-color:var(--border)}[data-theme=dark] .class-card.unmarked{background:linear-gradient(135deg,var(--bg-card) 0%,color-mix(in srgb,var(--danger) 10%,var(--bg-card)) 100%);border-color:#f8717157;box-shadow:0 8px 20px #ef44441f}[data-theme=dark] .class-card.active{background:color-mix(in srgb,var(--primary) 14%,var(--bg-card))}[data-theme=dark] .class-attendance-indicator.marked{background:#22c55e24;border-color:#22c55e42;color:var(--success-light)}[data-theme=dark] .class-attendance-indicator.unmarked{background:#ef44441f;border-color:#f8717142;color:var(--danger-light)}[data-theme=dark] .teacher-calendar-shell,[data-theme=dark] .teacher-calendar-cell,[data-theme=dark] .teacher-calendar-agenda,[data-theme=dark] .teacher-agenda-event,[data-theme=dark] .teacher-agenda-empty-day{border-color:var(--border)}[data-theme=dark] .teacher-calendar-cell{background:var(--bg-card)}[data-theme=dark] .teacher-calendar-event{background:#6366f129;border-color:#818cf852;color:#c7d2fe}[data-theme=dark] .teacher-agenda-event{background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 8%,var(--bg-card)) 0%,var(--bg-card) 100%);box-shadow:0 6px 14px #0000003d}[data-theme=dark] .teacher-agenda-empty-day{background:var(--bg-card)}@media(max-width:1024px){.teacher-dashboard-header{flex-direction:column;align-items:stretch}.teacher-dashboard-stats{justify-content:flex-start;margin-left:0}.teacher-grid-top{grid-template-columns:1fr}}@media(max-width:768px){.teacher-dashboard{gap:var(--s-6)}.teacher-dashboard-header{gap:var(--s-3)}.teacher-dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.teacher-stat-card{min-width:0;max-width:none;width:100%;padding:9px 10px;border-radius:12px}.teacher-stat-card .elite-stat-heading{gap:6px}.teacher-stat-card .elite-stat-icon-wrapper{width:24px;height:24px}.teacher-stat-card .elite-stat-title-inline{font-size:9px}.teacher-stat-card .elite-stat-value{font-size:1rem}.teacher-stat-card .elite-stat-description{font-size:9px}.teacher-calendar-header{flex-direction:column;align-items:stretch}.teacher-calendar-nav{justify-content:space-between}.teacher-calendar-title{min-width:0;flex:1;font-size:13px}.teacher-calendar-weekdays>div{padding:7px 4px;font-size:10px;text-align:center}.teacher-calendar-cell{min-height:92px;padding:6px}.teacher-calendar-event{padding:4px;font-size:9px}.teacher-calendar-view-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.teacher-calendar-toggle-btn{border:1px solid var(--glass-border);background:var(--bg-card);color:var(--text-primary);padding:10px 12px;border-radius:10px;font-size:13px;font-weight:700}.teacher-calendar-toggle-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.teacher-calendar-agenda{display:block;border:1px solid var(--glass-border);border-radius:12px;background:var(--bg-secondary);padding:0 10px}.teacher-calendar-week-nav strong{font-size:12px}.teacher-agenda-day.today:before{left:-8px}.teacher-agenda-day-header{align-items:flex-start}.teacher-agenda-event-topline{flex-wrap:wrap;align-items:flex-start}.teacher-agenda-label{font-size:9px}}.game-dashboard{position:relative;display:flex;flex-direction:column;gap:var(--s-5);width:100%;max-width:1440px;margin-inline:auto;color:var(--game-text);overflow-x:hidden}.game-hero{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-5);border-radius:24px;background:linear-gradient(135deg,#58cc0214,#ffc8000f);border:1px solid rgba(88,204,2,.15);min-width:0}.game-hero-avatar{flex-shrink:0;border-radius:50%;overflow:hidden}.game-hero-avatar--framed{padding:2px;transition:box-shadow .3s,border-color .3s}.game-hero-copy{min-width:0;flex:1}.game-hero-greeting{margin:0;color:var(--game-text);font-family:var(--font-heading);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;word-break:break-word;overflow-wrap:break-word}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:var(--s-5);align-items:start;min-width:0}.game-main{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.game-mission-tile{border-left:5px solid var(--game-accent);background:linear-gradient(135deg,rgba(255,150,0,.06),var(--game-surface))}.game-mission-tile--done{border-left-color:var(--game-primary);background:linear-gradient(135deg,rgba(88,204,2,.06),var(--game-surface))}.game-mission-header{display:flex;align-items:center;gap:var(--s-3)}.game-mission-header h2{margin:4px 0 0;color:var(--game-text);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:950;letter-spacing:-.03em}.game-mission-kicker{display:inline-block;padding:3px 8px;border-radius:999px;background:#ff96001a;color:var(--game-accent);font-size:.68rem;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.game-mission-tile--done .game-mission-kicker{background:#58cc021a;color:var(--game-primary-dark)}.game-mission-progress{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--game-border);border-radius:16px;background:#00000005}.game-mission-bar-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-2)}.game-mission-bar-head span{color:var(--game-text-secondary);font-size:.72rem;font-weight:800}.game-mission-bar-head strong{color:var(--game-text);font-size:var(--text-sm);font-weight:950}.game-mission-bar{height:10px;border-radius:999px;background:#94a3b829;overflow:hidden}.game-mission-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--game-accent),var(--game-secondary));transition:width .6s ease}.game-mission-tile--done .game-mission-bar span{background:linear-gradient(90deg,var(--game-primary-dark),var(--game-primary))}.game-mission-stats{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.game-mission-stats span{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#0000000a;color:var(--game-text-secondary);font-size:.72rem;font-weight:900}.game-mission-stats svg{color:var(--game-accent)}.game-stories-desc{font-size:14px;color:var(--text-muted, #6b7280);margin:6px 0 0}.game-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--s-3);min-height:46px;padding:12px 24px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--game-primary-dark),var(--game-primary));color:#fff;font-size:var(--text-sm);font-weight:950;text-decoration:none;box-shadow:0 1px 4px #58cc0226;transition:transform .2s ease,box-shadow .2s ease}.game-cta-button:hover{transform:translateY(-1px);box-shadow:0 2px 8px #58cc0233}.game-progress-section h2{margin:0 0 var(--s-3);color:var(--game-text);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:900}.game-progress-section{min-width:0}.game-progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-3);max-width:100%}.game-progress-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-4);border:1px solid var(--game-border);border-radius:20px;background:var(--game-surface);box-shadow:var(--game-card-shadow);text-align:center;transition:transform .25s ease,box-shadow .25s ease;animation:gameFadeIn .4s ease-out both}.game-progress-card:nth-child(2){animation-delay:.1s}.game-progress-card:nth-child(3){animation-delay:.2s}.game-progress-card:nth-child(4){animation-delay:.3s}.game-progress-card:nth-child(5){animation-delay:.4s}.game-progress-card:nth-child(6){animation-delay:.5s}.game-progress-card:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000000f}.game-progress-card .progress-ring{display:block}.game-progress-percent{position:absolute;top:calc(var(--s-4) + 28px);color:var(--game-text);font-size:.85rem;font-weight:950}.game-progress-card h3{margin:0;max-width:100%;overflow:hidden;color:var(--game-text);font-size:var(--text-sm);font-weight:900;text-overflow:ellipsis;white-space:nowrap}.game-level-badge{padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--card-accent) 12%,transparent);color:var(--card-accent);font-size:.66rem;font-weight:900}.game-xp-label{color:var(--game-text-secondary);font-size:.72rem;font-weight:800}.game-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}.student-dashboard .game-card{min-width:0;max-width:100%}.student-dashboard .game-main>.game-card,.student-dashboard .game-bottom-grid>.game-card{overflow:hidden}.game-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-3);min-width:0}.game-card-head>div{min-width:0}.game-card-head h2{margin:2px 0 0;color:var(--game-text);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-card-count{color:var(--game-text-secondary);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.game-card-link{display:inline-flex;align-items:center;gap:3px;padding:6px 10px;border:1px solid rgba(88,204,2,.18);border-radius:999px;background:#58cc0214;color:var(--game-primary-dark);font-size:.72rem;font-weight:900;text-decoration:none;transition:background .2s ease}.game-card-link:hover{background:#58cc0224}.game-card-list{display:flex;flex-direction:column;gap:var(--s-2)}.game-list-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--game-border);border-radius:14px;color:var(--game-text);text-decoration:none;transition:transform .2s ease,border-color .2s ease;min-width:0}.game-list-item:hover{transform:translateY(-2px);border-color:var(--game-primary)}.game-list-dot{width:10px;height:10px;border-radius:50%;background:var(--game-primary)}.game-list-item--soon .game-list-dot{background:var(--game-accent)}.game-list-item--overdue .game-list-dot{background:var(--game-danger)}.game-list-dot--exam{background:#3b82f6}.game-list-content{display:flex;flex-direction:column;gap:3px;min-width:0}.game-list-content strong{overflow:hidden;font-size:var(--text-sm);font-weight:900;text-overflow:ellipsis;white-space:nowrap}.game-list-content span{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;color:var(--game-text-secondary);font-size:.72rem;font-weight:750}.game-list-content em{font-style:normal;font-weight:900;color:var(--game-text-secondary)}.game-cta-pill{padding:5px 12px;border-radius:999px;background:linear-gradient(135deg,var(--game-primary-dark),var(--game-primary));color:#fff;font-size:.72rem;font-weight:950}.game-card-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-4);border:1px dashed var(--game-border);border-radius:16px;color:var(--game-text-secondary);font-size:var(--text-sm);font-weight:800}.game-empty-compact{padding:var(--s-3)}.game-dashboard .pull-indicator{position:absolute;top:0;right:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;pointer-events:none}.game-dashboard .pull-spinner{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#58cc021f;color:var(--game-primary);transition:transform .2s ease,background .2s ease}.game-dashboard .pull-spinner.ready{background:linear-gradient(135deg,var(--game-primary-dark),var(--game-primary));color:#fff;transform:scale(1.1)}.game-dashboard .pull-spinner.spinning{animation:spin .7s linear infinite}.game-dashboard .pull-text{color:var(--game-text-secondary);font-size:12px;font-weight:800}[data-theme=dark] .game-hero{background:linear-gradient(135deg,#58cc020f,#ffc8000a);border-color:#58cc021f}[data-theme=dark] .game-mission-tile{background:linear-gradient(135deg,rgba(255,150,0,.04),var(--game-surface))}[data-theme=dark] .game-mission-tile--done{background:linear-gradient(135deg,rgba(88,204,2,.04),var(--game-surface))}[data-theme=dark] .game-mission-progress{background:#ffffff08}[data-theme=dark] .game-mission-stats span{background:#ffffff0d}[data-theme=dark] .game-progress-card{box-shadow:0 1px 3px #0003}[data-theme=dark] .game-progress-card:hover{box-shadow:0 2px 6px #0000004d}[data-theme=dark] .game-list-item:hover{background:#ffffff08}[data-theme=dark] .game-card-empty{border-color:#ffffff14}@media(max-width:1240px){.game-layout{grid-template-columns:minmax(0,1fr) minmax(0,300px)}}@media(max-width:860px){.game-layout{grid-template-columns:1fr;gap:var(--s-4)}.game-hero .luno-mascot{width:48px!important;height:48px!important}.game-progress-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.game-progress-grid::-webkit-scrollbar{display:none}.game-progress-card{flex:0 0 160px;scroll-snap-align:start}.game-bottom-grid{grid-template-columns:1fr}}@media(max-width:560px){.game-dashboard{gap:var(--s-4)}.game-hero{padding:var(--s-4);border-radius:20px}.game-cta-button{width:100%}.game-list-item{grid-template-columns:8px minmax(0,1fr) auto;gap:var(--s-2);padding:var(--s-2) var(--s-3)}.game-card-head h2,.game-mission-header h2{font-size:var(--text-sm)}.game-progress-card{flex:0 0 140px;padding:var(--s-3)}}@media(max-width:360px){.game-hero{padding:var(--s-3);gap:var(--s-3);flex-direction:column;text-align:center}.game-hero-coins{justify-content:center}.game-mission-tile,.game-card,.daily-challenges-widget,.checkin-widget{padding:var(--s-3)}.checkin-day{width:28px}.checkin-day-num{width:22px;height:22px;font-size:.6rem}.game-progress-card{flex:0 0 120px}}@media(hover:none){.game-progress-card:hover,.game-list-item:hover,.game-cta-button:hover{transform:none}}@media(prefers-reduced-motion:reduce){.game-progress-card,.game-cta-button,.game-list-item,.game-mission-bar span{animation:none!important;transition:none!important}}.game-dashboard .skeleton{max-width:100%}.game-hero-coins{display:flex;align-items:center;gap:8px;margin-top:6px}.coin-balance-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-weight:700;font-size:.9rem}.coin-icon{font-size:1.1em}.shop-link-btn{padding:4px 12px;border-radius:20px;background:var(--surface);border:1.5px solid var(--border-light);color:var(--text-secondary);font-size:.8rem;font-weight:600;text-decoration:none;transition:all .15s ease}.shop-link-btn:hover{border-color:var(--primary);color:var(--primary)}.checkin-widget{display:flex;align-items:center;gap:16px;min-width:0;max-width:100%;padding:16px 20px;border-radius:16px;background:var(--surface);border:2px solid var(--border-light);margin-bottom:16px;transition:all .3s ease}.checkin-widget:not(.claimed){border-color:#fbbf24;background:linear-gradient(135deg,#fbbf240d,#f59e0b0d)}.checkin-widget.opening{animation:checkin-shake .6s ease}@keyframes checkin-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.checkin-gift-box{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.checkin-gift-icon{font-size:2rem;animation:gift-pulse 2s ease-in-out infinite}@keyframes gift-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.claimed .checkin-gift-icon{animation:none;opacity:.4}.checkin-done-icon{width:40px;height:40px;border-radius:50%;background:#22c55e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700}.checkin-coin-fly{position:absolute;top:-10px;color:#f59e0b;font-weight:800;font-size:1.2rem;animation:coin-fly-up 1.5s ease-out forwards}@keyframes coin-fly-up{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-40px) scale(1.3)}}.checkin-info{flex:1;min-width:0}.checkin-title{margin:0 0 4px;font-size:1rem;font-weight:700;color:var(--text-primary)}.checkin-streak{margin:0;font-size:.85rem;color:var(--text-secondary)}.checkin-claim-btn{padding:8px 20px;border:none;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.checkin-claim-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 6px #f59e0b33}.checkin-claim-btn:disabled{opacity:.6;cursor:not-allowed}.checkin-cycle{display:flex;gap:6px;min-width:0;max-width:100%}.checkin-day{display:flex;flex-direction:column;align-items:center;gap:2px;width:32px}.checkin-day-num{width:24px;height:24px;border-radius:50%;border:2px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--text-secondary);transition:all .2s ease}.checkin-day.filled .checkin-day-num{background:#fbbf24;border-color:#fbbf24;color:#fff}.checkin-day.current .checkin-day-num{border-color:#f59e0b;color:#f59e0b;animation:current-day-pulse 1.5s ease-in-out infinite}@keyframes current-day-pulse{0%,to{box-shadow:0 0 #f59e0b4d}50%{box-shadow:0 0 0 4px #f59e0b1a}}.checkin-day-reward{font-size:.6rem;color:var(--text-tertiary)}@media(max-width:760px){.checkin-widget{flex-wrap:wrap}.checkin-info{flex:1 1 calc(100% - 64px)}.checkin-cycle{width:100%;justify-content:space-between;margin-top:8px}.checkin-day{width:auto;flex:1;min-width:0}}.daily-challenges-widget{min-width:0;max-width:100%;background:var(--game-surface);border:1px solid var(--border-light);border-radius:20px;padding:var(--s-4);border-left:5px solid var(--game-accent)}.dc-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-width:0;margin-bottom:var(--s-3)}.dc-header>div:first-child{min-width:0}.dc-kicker{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--game-accent)}.dc-progress-text{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.dc-list{display:flex;flex-direction:column;gap:8px}.dc-item{display:flex;align-items:center;gap:var(--s-3);min-width:0;padding:10px 14px;border-radius:14px;background:var(--bg-elevated);transition:background .15s,transform .15s}.dc-item:hover{transform:translateY(-1px)}.dc-item--completed{opacity:.7;background:#58cc020f}.dc-icon{font-size:1.3rem;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--game-surface)}.dc-item-info{flex:1;min-width:0}.dc-item-info strong{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dc-reward{display:flex;align-items:center;gap:4px;min-width:0;font-size:.75rem;color:var(--text-secondary);margin-top:2px}.dc-start-btn{flex-shrink:0;padding:6px 14px;border:none;border-radius:10px;background:var(--game-accent);color:#fff;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .15s,transform .1s}.dc-start-btn:hover{background:var(--game-accent-hover, #e68a00);transform:scale(1.04)}.dc-start-btn:active{transform:scale(.97)}.dc-done-badge{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--game-primary);color:#fff;font-weight:700;font-size:.9rem}.dc-bonus-banner{margin-top:var(--s-3);padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#58cc021a,#ffc8001a);text-align:center;font-size:.85rem;font-weight:700;color:var(--game-primary)}@media(max-width:640px){.daily-challenges-widget{padding:var(--s-3);border-radius:16px}.dc-item{padding:8px 10px;gap:var(--s-2)}.dc-icon{width:30px;height:30px;font-size:1.1rem}.dc-start-btn{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:420px){.dc-item{align-items:flex-start;flex-wrap:wrap}.dc-item-info{flex:1 1 calc(100% - 40px)}.dc-start-btn,.dc-done-badge{margin-left:calc(30px + var(--s-2))}}.leaderboard-widget{padding:var(--s-4);border:1px solid var(--game-border);border-radius:20px;background:var(--game-surface);box-shadow:var(--game-card-shadow)}.leaderboard-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-width:0;margin-bottom:var(--s-3)}.leaderboard-header .risk-title{display:flex;align-items:center;gap:6px;min-width:0;margin:0;font-size:1rem;font-weight:800;color:var(--game-text)}.leaderboard-scope{flex-shrink:0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--game-border);padding:2px 8px;border-radius:6px}.leaderboard-mini-list{display:flex;flex-direction:column;gap:6px}.leaderboard-mini-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;transition:background .2s}.leaderboard-mini-item:hover{background:#00000008}.rank-badge{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;font-size:.75rem;font-weight:800;flex-shrink:0}.rank-badge--0{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 6px #f59e0b59}.rank-badge--1{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;box-shadow:0 2px 6px #94a3b84d}.rank-badge--2{background:linear-gradient(135deg,#cd7f32,sienna);color:#fff;box-shadow:0 2px 6px #cd7f324d}.rank-badge--default{background:var(--game-border);color:var(--text-muted)}.avatar-mini{width:34px;height:34px;border-radius:50%;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:var(--game-border);border:2px solid var(--border-light, var(--game-border));color:var(--text-muted)}.avatar-mini img{width:100%;height:100%;object-fit:cover;display:block}.avatar-mini--framed{border:none;padding:2px;transition:box-shadow .3s,border-color .3s}.leaderboard-info{flex:1;min-width:0}.leaderboard-name{font-size:.85rem;font-weight:700;color:var(--game-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-xp{font-size:.72rem;font-weight:600;color:var(--text-muted)}.leaderboard-medal{flex-shrink:0}.leaderboard-medal--0{color:#f59e0b}.leaderboard-medal--1{color:#94a3b8}.leaderboard-medal--2{color:#cd7f32}.empty-state-mini{text-align:center;padding:var(--s-4);font-size:.85rem;color:var(--text-muted)}[data-theme=dark] .leaderboard-mini-item:hover{background:#ffffff0a}.student-badges-page{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:var(--s-3);width:100%;max-width:1440px;margin-inline:auto;color:var(--text-primary)}.student-badges-page:before{content:"";position:fixed;inset:var(--header-height, 72px) 0 0 var(--sidebar-width, 280px);z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 2%,rgba(245,158,11,.14),transparent 28%),radial-gradient(circle at 92% 4%,rgba(139,92,246,.12),transparent 30%),linear-gradient(180deg,rgba(255,251,235,.56) 0%,rgba(248,250,252,.3) 58%,transparent 100%)}.student-badges-hero,.student-badges-collection{border:1px solid rgba(148,163,184,.16);background:#ffffffdb;box-shadow:0 18px 45px #0f172a12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-badges-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:var(--s-3);align-items:stretch;overflow:hidden;padding:clamp(14px,2vw,22px);border-radius:24px;background:radial-gradient(circle at 90% 8%,rgba(245,158,11,.18),transparent 27%),radial-gradient(circle at 4% 6%,rgba(139,92,246,.15),transparent 34%),linear-gradient(135deg,#fffffff5,#fffbebc7)}.student-badges-hero:before,.student-badges-hero:after{content:"";position:absolute;pointer-events:none;border-radius:999px}.student-badges-hero:before{right:-68px;top:-82px;width:190px;height:190px;border:18px solid rgba(245,158,11,.08);background:#f59e0b14}.student-badges-hero:after{left:42%;bottom:-70px;width:120px;height:120px;border:14px solid rgba(139,92,246,.07);background:#8b5cf612}.student-badges-hero-copy,.student-badges-progress-card{position:relative;z-index:1}.student-badges-hero-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}.student-badges-back-link,.student-badges-eyebrow{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;font-size:var(--text-xs);font-weight:950;text-decoration:none}.student-badges-back-link{gap:5px;min-height:26px;margin-bottom:var(--s-2);padding:4px 9px;border:1px solid rgba(37,99,235,.14);background:#2563eb14;color:var(--primary-text);transition:transform var(--transition),background var(--transition),border-color var(--transition)}.student-badges-back-link:hover{border-color:#2563eb42;background:#2563eb1f;transform:translateY(-1px)}.student-badges-eyebrow{gap:5px;min-height:26px;padding:4px 10px;border:1px solid rgba(245,158,11,.22);background:#f59e0b1f;color:#b45309;letter-spacing:.02em}.student-badges-hero h1{max-width:560px;margin:var(--s-2) 0 0;color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(1.55rem,2.7vw,2.4rem);font-weight:900;letter-spacing:-.05em;line-height:1}.student-badges-hero p{max-width:520px;margin:6px 0 0;color:var(--text-secondary);font-size:.82rem;font-weight:700;line-height:1.45}.student-badges-progress-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;align-content:center;gap:10px;min-width:0;padding:var(--s-3);border:1px solid rgba(255,255,255,.76);border-radius:20px;background:#ffffffbd;box-shadow:inset 0 1px #ffffffe0,0 12px 28px #0f172a12}.student-badges-progress-ring{position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:999px;background:conic-gradient(#f59e0b var(--badge-progress, 0%),rgba(148,163,184,.2) 0);box-shadow:0 10px 22px #f59e0b2e}.student-badges-progress-ring:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:inherit;background:#fffffff2}.student-badges-progress-ring span{position:relative;color:#b45309;font-family:var(--font-heading);font-size:.83rem;font-weight:950;letter-spacing:-.04em}.student-badges-progress-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.student-badges-progress-copy strong{color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(1.1rem,1.7vw,1.45rem);font-weight:950;letter-spacing:-.045em;line-height:1}.student-badges-progress-copy span,.student-badges-latest{color:var(--text-muted);font-size:.68rem;font-weight:900}.student-badges-progress-track{grid-column:1 / -1;overflow:hidden;height:6px;border-radius:999px;background:#f59e0b24}.student-badges-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d97706,#fbbf24);transition:width .6s ease}.student-badges-stat-row{display:flex;flex-wrap:wrap;grid-column:1 / -1;gap:6px}.student-badges-stat-row span{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:3px 7px;border-radius:999px;background:#f59e0b1a;color:#b45309;font-size:.66rem;font-weight:950}.student-badges-latest{grid-column:1 / -1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-badges-latest strong{color:var(--text-primary)}.student-badges-alert{margin:0}.student-badges-collection{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:18px}.student-badges-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding-inline:2px}.student-badges-section-head span{display:block;color:var(--text-muted);font-size:.67rem;font-weight:950;text-transform:uppercase;letter-spacing:.045em}.student-badges-section-head h2{margin:2px 0 0;color:var(--text-primary);font-family:var(--font-heading);font-size:1rem;font-weight:950;letter-spacing:-.035em;line-height:1.1}.student-badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(120px,100%),1fr));gap:10px;align-items:stretch}.student-badge-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;gap:8px;overflow:hidden;padding:18px 10px 14px;border:1px solid color-mix(in srgb,var(--badge-card-accent, #f59e0b) 18%,rgba(148,163,184,.14));border-radius:16px;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--badge-card-accent, #f59e0b) 8%,transparent),transparent 70%),linear-gradient(180deg,#fffffffa,#ffffffe6);box-shadow:0 2px 8px #0f172a0a;outline:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.student-badge-card:before{display:none}.student-badge-card:after{display:none}.student-badge-card.is-earned:hover,.student-badge-card.is-earned:focus-visible{border-color:color-mix(in srgb,var(--badge-card-accent, #f59e0b) 38%,rgba(148,163,184,.18));box-shadow:0 8px 24px #0f172a14,0 0 0 1px color-mix(in srgb,var(--badge-card-accent, #f59e0b) 10%,transparent),0 0 20px color-mix(in srgb,var(--badge-card-accent, #f59e0b) 12%,transparent);transform:translateY(-3px) scale(1.02)}.student-badge-card.is-locked{border-color:#94a3b829;background:linear-gradient(180deg,#f8fafcf2,#f1f5f9e0);box-shadow:0 2px 6px #0f172a08}.student-badge-card.is-locked .premium-badge{filter:grayscale(.5) saturate(.7) opacity(.7)}.student-badge-card.is-locked .student-badge-copy h3{opacity:.55}.student-badge-visual{position:relative;z-index:1;display:grid;width:64px;height:64px;min-width:0;min-height:0;place-items:center;padding:0}.student-badge-visual .premium-badge{width:64px;height:64px;gap:0}.student-badge-visual .premium-badge-circle{width:58px!important;height:58px!important;border-width:2.5px;box-shadow:0 0 0 1px #0f172a0f,0 4px 12px #0f172a1f,0 0 18px var(--badge-glow),inset 0 1px 3px #ffffff4d,inset 0 -1px 2px #0f172a14}.student-badge-visual .premium-badge-depth-layer{width:48px;height:48px;opacity:.46;filter:blur(5px)!important}.student-badge-visual .premium-badge-inner-ring{top:5px;right:5px;bottom:5px;left:5px}.student-badge-visual .premium-badge-animation,.student-badge-visual .premium-badge-icon,.student-badge-visual .premium-badge-image{width:42px!important;height:42px!important;filter:drop-shadow(0 3px 6px rgba(15,23,42,.18))}.student-badge-visual .premium-badge-lock-icon{width:24px!important;height:24px!important}.student-badge-copy{position:relative;z-index:1;display:flex;min-width:0;width:100%;flex-direction:column;align-items:center;gap:4px;text-align:center}.student-badge-copy h3{display:-webkit-box;margin:0;overflow:hidden;color:var(--text-primary);font-family:var(--font-heading);font-size:.74rem;font-weight:900;letter-spacing:-.02em;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-badge-locked-note{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#94a3b81f;color:var(--text-muted)}.student-badge-xp{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:999px;border:1px solid rgba(245,158,11,.18);background:#f59e0b14;color:#b45309;font-size:.58rem;font-weight:900;line-height:1}.student-badges-empty.empty-state{min-height:150px;border:1px dashed rgba(148,163,184,.24);border-radius:14px;background:#f8fafc9e}@media(max-width:1024px){.student-badges-page:before{left:0}}@media(max-width:860px){.student-badges-hero{grid-template-columns:1fr}.student-badges-progress-card{grid-template-columns:auto minmax(0,1fr);align-items:center}.student-badges-progress-track,.student-badges-stat-row,.student-badges-latest{grid-column:1 / -1}}@media(max-width:560px){.student-badges-page{gap:10px}.student-badges-hero,.student-badges-collection{padding:12px;border-radius:18px}.student-badges-collection{gap:8px;padding:10px}.student-badges-grid{grid-template-columns:repeat(auto-fill,minmax(min(100px,100%),1fr));gap:8px}.student-badge-card{gap:6px;padding:14px 8px 12px;border-radius:14px}.student-badges-hero h1{font-size:clamp(1.45rem,9vw,2rem)}.student-badges-progress-card{grid-template-columns:auto minmax(0,1fr)}.student-badges-progress-ring{width:52px;height:52px}.student-badge-visual,.student-badge-visual .premium-badge{width:54px;height:54px}.student-badge-visual .premium-badge-circle{width:48px!important;height:48px!important}.student-badge-visual .premium-badge-animation,.student-badge-visual .premium-badge-icon,.student-badge-visual .premium-badge-image{width:36px!important;height:36px!important}.student-badge-visual .premium-badge-lock-icon{width:20px!important;height:20px!important}.student-badge-copy h3{font-size:.68rem}.student-badge-xp{font-size:.52rem;padding:1px 5px}}[data-theme=dark] .student-badges-page:before{background:radial-gradient(circle at 12% 2%,rgba(251,191,36,.11),transparent 28%),radial-gradient(circle at 92% 4%,rgba(167,139,250,.1),transparent 30%),linear-gradient(180deg,rgba(8,17,31,.82) 0%,transparent 72%)}[data-theme=dark] .student-badges-hero,[data-theme=dark] .student-badges-collection,[data-theme=dark] .student-badge-card,[data-theme=dark] .student-badges-empty.empty-state{border-color:#94a3b829;background-color:#0f172ad6;box-shadow:0 18px 48px #00000042}[data-theme=dark] .student-badges-hero{background:radial-gradient(circle at 90% 8%,rgba(251,191,36,.13),transparent 27%),radial-gradient(circle at 4% 6%,rgba(167,139,250,.12),transparent 34%),linear-gradient(135deg,#0f172af5,#18130bd6)}[data-theme=dark] .student-badges-progress-card{border-color:#94a3b82e;background:#0f172ab8}[data-theme=dark] .student-badges-progress-ring:before{background:#0f172af0}[data-theme=dark] .student-badges-collection{background:#0f172acc}[data-theme=dark] .student-badge-card{border-color:color-mix(in srgb,var(--badge-card-accent, #f59e0b) 22%,rgba(148,163,184,.16));background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--badge-card-accent, #f59e0b) 10%,transparent),transparent 70%),linear-gradient(180deg,#0f172af0,#0f172adb);box-shadow:0 2px 8px #00000029}[data-theme=dark] .student-badge-card.is-locked{border-color:#94a3b824;background:linear-gradient(180deg,#0f172ae6,#0f172acc)}[data-theme=dark] .student-badge-card.is-earned:hover,[data-theme=dark] .student-badge-card.is-earned:focus-visible{box-shadow:0 8px 24px #0000004d,0 0 0 1px color-mix(in srgb,var(--badge-card-accent, #f59e0b) 18%,transparent),0 0 24px color-mix(in srgb,var(--badge-card-accent, #f59e0b) 14%,transparent)}[data-theme=dark] .student-badge-locked-note{background:#94a3b814}[data-theme=dark] .student-badge-xp{border-color:#fbbf2433;background:#fbbf241a;color:#fbbf24}@media(hover:none){.student-badge-card.is-earned:hover,.student-badge-card.is-earned:focus-visible,.student-badges-back-link:hover{transform:none}}.student-badges-page :focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:3px}.student-badges-back-link:focus-visible{border-radius:999px}.student-badge-card:focus-visible{outline-offset:2px}@media(prefers-reduced-motion:reduce){.student-badges-page *,.student-badges-page *:before,.student-badges-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.uc-page{display:flex;flex-direction:column;gap:20px}.uc-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.uc-title-row{display:flex;align-items:center;gap:14px}.uc-title-icon{color:#ef4444;flex-shrink:0}.uc-title{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.uc-subtitle{font-size:14px;color:var(--text-muted);margin:2px 0 0}.uc-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--transition)}.uc-btn-primary:hover:not(:disabled){background:var(--primary-dark, #4F46E5);transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.uc-btn-primary:disabled{opacity:.6;cursor:not-allowed}.uc-btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all var(--transition)}.uc-btn-ghost:hover{background:var(--hover-bg);color:var(--text-primary)}.uc-btn-danger{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;background:#ef4444;color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--transition)}.uc-btn-danger:hover{background:#dc2626;transform:translateY(-1px)}.uc-stats{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.uc-stat-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:99px;font-size:13px;font-weight:500;transition:all var(--transition)}.uc-stat-total{background:var(--bg-tertiary, var(--hover-bg));color:var(--text-secondary);border:1px solid var(--border)}.uc-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.uc-search-wrap{position:relative;flex:1;min-width:200px;max-width:380px}.uc-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.uc-search{width:100%;padding:9px 36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-family:var(--font-body);outline:none;box-sizing:border-box;transition:border-color var(--transition)}.uc-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.uc-search::placeholder{color:var(--text-muted)}.uc-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:4px;display:flex;align-items:center}.uc-search-clear:hover{color:var(--text-primary)}.uc-select-wrap{position:relative;display:inline-flex;align-items:center}.uc-select-icon{position:absolute;right:10px;pointer-events:none;color:var(--text-muted)}.uc-select{padding:9px 32px 9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-family:var(--font-body);outline:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color var(--transition)}.uc-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.uc-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.uc-table{width:100%;border-collapse:collapse}.uc-table thead th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:none;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-secondary, var(--hover-bg));border-bottom:1px solid var(--border)}.uc-table tbody td{padding:13px 16px;border-bottom:1px solid var(--border-light, var(--border));font-size:14px;color:var(--text-primary);vertical-align:middle}.uc-table tbody tr:last-child td{border-bottom:none}.uc-table tbody tr{transition:background var(--transition)}.uc-table tbody tr:hover{background:var(--hover-bg)}.uc-row-disabled td{opacity:.45}.uc-user-cell{display:flex;align-items:center;gap:10px}.uc-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--border-light, var(--border))}.uc-fullname{font-weight:600}.uc-username{font-size:13px;color:var(--text-muted);background:var(--hover-bg);padding:2px 7px;border-radius:6px}.uc-contact{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--text-muted)}.uc-contact span{display:flex;align-items:center;gap:5px}.uc-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600}.uc-status-active{background:#10b9811f;color:#10b981}.uc-status-inactive{background:#ef44441a;color:#ef4444}.uc-actions{display:flex;gap:6px;align-items:center}.uc-action-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);cursor:pointer;transition:all var(--transition);color:var(--text-muted)}.uc-action-btn:disabled{opacity:.3;cursor:not-allowed}.uc-action-edit:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-bg, rgba(99,102,241,.08))}.uc-action-disable:hover{color:#ef4444;border-color:#ef4444;background:#ef444414}.uc-action-enable:hover{color:#10b981;border-color:#10b981;background:#10b98114}.uc-loading{display:flex;align-items:center;justify-content:center;min-height:200px}.uc-error{padding:12px 16px;background:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius);color:#ef4444;font-size:14px}.uc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease}.uc-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;animation:slideUp .2s ease;max-height:90vh;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.uc-modal-title{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;color:var(--text-primary)}.uc-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:6px;display:flex;align-items:center;transition:all var(--transition)}.uc-modal-close:hover{color:var(--text-primary);background:var(--hover-bg)}.uc-modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.uc-modal-footer{padding:16px 24px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.uc-field{display:flex;flex-direction:column;gap:5px}.uc-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.uc-label{font-size:13px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center}.uc-input{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary, var(--hover-bg));color:var(--text-primary);font-size:14px;font-family:var(--font-body);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--transition)}.uc-input:focus{border-color:var(--primary);background:var(--bg-card);box-shadow:0 0 0 3px #6366f11a}.uc-input::placeholder{color:var(--text-muted)}.uc-form-error{padding:10px 14px;background:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius);color:#ef4444;font-size:13px}.uc-confirm-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:28px;box-shadow:0 20px 60px #0003;animation:slideUp .2s ease}.uc-confirm-modal h3{margin:0 0 12px;font-size:18px;font-weight:700;color:var(--text-primary)}.uc-confirm-modal p{margin:0 0 24px;font-size:14px;color:var(--text-secondary);line-height:1.6}.uc-confirm-actions{display:flex;gap:10px;justify-content:flex-end}@media(max-width:768px){.uc-header{flex-direction:column;align-items:flex-start}.uc-filters{flex-direction:column;align-items:stretch}.uc-search-wrap{max-width:100%}.uc-field-row{grid-template-columns:1fr}.uc-table thead{display:none}.uc-table tbody td{display:block;padding:6px 16px}.uc-table tbody td:before{content:attr(data-label);font-weight:600;font-size:11px;text-transform:none;color:var(--text-muted);display:block;margin-bottom:2px}.uc-table tbody tr{display:block;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:8px 0}}.package-students-page{display:grid;gap:14px}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.package-students-page{gap:10px}.package-students-shell,.package-students-table-card{padding:12px;border-radius:14px}.package-students-title{font-size:clamp(20px,2.2vw,24px)}.package-students-description{font-size:12px;line-height:1.4}.package-students-chip{padding:5px 9px;font-size:11px}.package-students-stat-card{padding:10px}.package-students-stat-value{margin-top:7px;font-size:18px}.package-students-stat-meta{font-size:11px}.package-students-table-header h2{font-size:18px}.package-students-table-header p{font-size:12px}.package-students-count-pill{font-size:11px;padding:6px 10px}.package-students-search-wrap{width:min(100%,300px)}.package-students-datalist .datalist-table th{padding:9px 12px;font-size:10px}.package-students-datalist .datalist-table td{padding:0 12px;height:46px;font-size:12px}.package-students-datalist .datalist-entity-cell{gap:8px}.package-students-table-metric{font-size:12px}}@media(max-width:1200px){.package-students-overview-grid{grid-template-columns:1fr}}.package-students-shell{padding:16px;border-radius:18px;border:1px solid rgba(148,163,184,.2);background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 2px 12px #0f172a0d}.package-students-shell-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.package-students-back-btn{border-radius:999px;padding-inline:12px}.package-students-status-badge{font-size:11px;padding:5px 10px}.package-students-overview-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px;align-items:stretch}.package-students-overview-card{border-radius:14px;border:1px solid rgba(148,163,184,.22);background:#ffffffb3;padding:14px}.package-students-eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.07em;color:var(--text-muted);text-transform:none}.package-students-title{margin:6px 0 0;font-size:clamp(22px,2.6vw,28px);line-height:1.1;letter-spacing:0}.package-students-description{margin:8px 0 0;color:var(--text-muted);font-size:13px;line-height:1.45;max-width:72ch}.package-students-chip-row{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.package-students-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--text-secondary);background:#0f172a0a;border:1px solid rgba(148,163,184,.22)}.package-students-chip.is-active{color:#047857;background:#10b9811a;border-color:#10b98147}.package-students-chip.is-archived{color:#64748b;background:#64748b1f;border-color:#64748b38}.package-students-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.package-students-stat-card{border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#ffffffe6;padding:11px}.package-students-stat-card-primary{background:linear-gradient(180deg,#eff6ffcc,#f8fafcf2)}.package-students-stat-card-info{background:linear-gradient(180deg,#e0f2fea8,#f8fafcf2)}.package-students-stat-card-success{background:linear-gradient(180deg,#dcfce7ad,#f8fafcf2)}.package-students-stat-card-muted{background:linear-gradient(180deg,#f1f5f9cc,#f8fafcf2)}.package-students-stat-head{display:flex;align-items:center;gap:8px}.package-students-stat-icon{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#ffffffd9;border:1px solid rgba(148,163,184,.24);color:var(--text-secondary)}.package-students-stat-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:none;letter-spacing:.04em}.package-students-stat-value{margin-top:9px;font-size:20px;line-height:1.2;font-weight:800;color:var(--text-primary)}.package-students-stat-meta{margin-top:4px;font-size:12px;color:var(--text-muted)}.package-students-table-card{padding:12px;border-radius:16px}.package-students-table-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding:2px 2px 4px}.package-students-table-header h2{margin:0;font-size:20px;line-height:1.15}.package-students-table-header p{margin:4px 0 0;font-size:13px}.package-students-table-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.package-students-count-pill{border-radius:999px;border:1px solid rgba(148,163,184,.24);background:#0f172a0a;color:var(--text-secondary);font-size:12px;font-weight:600;padding:7px 11px;line-height:1}.package-students-search-wrap{position:relative;width:min(100%,340px)}.package-students-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.package-students-search-input{border-radius:999px;padding-left:38px;background:var(--bg-secondary, var(--hover-bg))}.package-students-datalist{border:1px solid var(--border);border-radius:14px;overflow:hidden}.package-students-datalist .datalist-table th{padding:10px 14px;font-size:10.5px;letter-spacing:.075em}.package-students-datalist .datalist-table td{padding:0 14px;height:50px;font-size:13px}.package-students-datalist .datalist-table-actions{padding:6px 10px!important}.package-students-datalist .datalist-entity-cell{gap:10px}.package-students-datalist .datalist-entity-subtitle{font-size:11px}.package-students-datalist .datalist-card{padding:12px}.package-students-datalist .datalist-card-body{gap:8px}.package-students-open-btn{border-radius:999px;min-height:30px;padding:0 10px;font-size:12px}.package-students-table-metric{font-weight:700;font-size:13px;color:var(--text-primary)}@media(max-width:1080px){.package-students-overview-grid{grid-template-columns:1fr}}@media(max-width:768px){.package-students-page{gap:10px}.package-students-shell,.package-students-table-card{padding:12px;border-radius:14px}.package-students-title{font-size:21px}.package-students-description{font-size:12px}.package-students-stats-grid{grid-template-columns:1fr}.package-students-table-header h2{font-size:18px}.package-students-table-controls{width:100%;justify-content:stretch;gap:8px}.package-students-count-pill{width:100%;text-align:center}.package-students-search-wrap{width:100%}.package-students-datalist .datalist-card{padding:10px;border-radius:12px}.package-students-datalist .datalist-card-label{font-size:10px}.package-students-datalist .datalist-card-value{font-size:12px}.package-students-datalist .datalist-card-field{padding:6px 0}.package-students-open-btn{min-height:28px;font-size:11px}}@media(min-width:681px)and (max-width:768px){.package-students-datalist .datalist-table-wrapper{display:block}.package-students-datalist .datalist-cards{display:none}}[data-theme=dark] .package-students-shell{border-color:#94a3b833;background:linear-gradient(180deg,#0f172ae0,#0f172ab8)}[data-theme=dark] .package-students-overview-card,[data-theme=dark] .package-students-stat-card{background:#02061770;border-color:#94a3b83d}[data-theme=dark] .package-students-chip,[data-theme=dark] .package-students-count-pill{background:#94a3b824;border-color:#94a3b83d}[data-theme=dark] .package-students-stat-icon{background:#0f172aa6;border-color:#94a3b84d}[data-theme=dark] .package-students-datalist{border-color:#94a3b833}.class-calendar-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.class-calendar-nav-label{display:flex;flex-direction:column;gap:2px;min-width:160px;padding:0 6px}.class-calendar-nav-label strong{font-size:14px;font-weight:800;color:var(--text-primary);line-height:1.2}.class-calendar-nav-label span{font-size:11px;color:var(--text-muted)}.class-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.class-calendar-main{min-width:0}.class-calendar-weekboard-shell{border:1px solid rgba(148,163,184,.22);border-radius:24px;overflow:hidden;background:radial-gradient(circle at top left,var(--surface-overlay),transparent 30%),linear-gradient(180deg,var(--bg-card),var(--bg-secondary));box-shadow:0 18px 45px #0f172a14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.class-calendar-shell-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(148,163,184,.16);background:var(--surface-overlay)}.class-calendar-shell-title{font-size:15px;font-weight:800;color:var(--text-primary);line-height:1.2}.class-calendar-shell-subtitle{margin-top:4px;font-size:12px;line-height:1.4;color:var(--text-muted)}.class-calendar-shell-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.class-calendar-meta-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:#0f172a0d;color:var(--text-primary);border:1px solid rgba(148,163,184,.14);padding:5px 10px}.class-calendar-weekboard{display:grid;grid-template-columns:repeat(7,minmax(210px,1fr));min-width:1470px;width:100%;overflow-x:auto;overflow-y:hidden}.class-calendar-weekday-column{min-width:0;border-right:1px solid rgba(148,163,184,.16);background:var(--glass-bg)}.class-calendar-weekday-column:last-child{border-right:none}.class-calendar-weekday-header{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;padding:12px 12px 10px;border-bottom:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,var(--bg-secondary),var(--bg-card))}.class-calendar-weekday-label{display:inline-flex;flex-direction:column;gap:2px;padding:4px 10px 5px;border-radius:14px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.class-calendar-weekday-label.is-today{background:#22c55e29;border:1px solid rgba(34,197,94,.24);box-shadow:inset 0 1px #ffffffa6}.class-calendar-weekday-header strong{display:block;font-size:13px;font-weight:900;color:var(--text-primary);line-height:1.2}.class-calendar-weekday-header strong.is-today{color:#15803d;font-size:14px;letter-spacing:0}.class-calendar-weekday-header span{display:block;margin-top:3px;font-size:11px;color:var(--text-muted)}.class-calendar-weekday-header span.is-today{color:#15803d;font-weight:700}.class-calendar-weekday-list{display:flex;flex-direction:column;gap:8px;padding:10px;min-height:100%}.class-calendar-event{position:relative;display:flex;flex-direction:column;width:100%;min-height:108px;border-radius:18px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,var(--bg-card),var(--bg-secondary));padding:11px 12px;box-shadow:0 10px 25px #0f172a0f;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.class-calendar-event:hover{transform:translateY(-1px);border-color:#94a3b84d;box-shadow:0 14px 28px #0f172a14}.class-calendar-event-header{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;margin-bottom:6px}.class-calendar-teacher-row{display:flex;align-items:center;gap:8px;min-width:0}.class-calendar-teacher-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:linear-gradient(180deg,#e2e8f0,#cbd5e1);border:1px solid rgba(148,163,184,.22);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffffb3}.class-calendar-teacher-avatar img{width:100%;height:100%;object-fit:cover}.class-calendar-teacher-avatar span{font-size:12px;font-weight:900;color:var(--text-primary)}[data-theme=dark] .class-calendar-weekboard-shell,[data-theme=dark] .class-calendar-event,[data-theme=dark] .class-calendar-weekday-column{border-color:var(--border)}.class-calendar-teacher-copy{min-width:0;display:flex;flex-direction:column;gap:1px}.class-calendar-teacher-name{font-size:12px;font-weight:800;color:var(--text-primary);line-height:1.15;white-space:normal;overflow-wrap:anywhere}.class-calendar-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap;background:#0f172a0d;color:var(--text-muted);border:1px solid rgba(148,163,184,.14)}.class-calendar-status.is-recurring{color:#1d4ed8;background:#2563eb1a;border-color:#2563eb29}.class-calendar-status.muted{opacity:.85}.class-calendar-time{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--text-muted);margin-top:2px}.class-calendar-card-meta{margin-top:6px;padding-top:0}.class-calendar-name{margin-top:0;font-size:13px;font-weight:800;color:var(--text-primary);line-height:1.25;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}.class-calendar-meta-line{display:flex;flex-wrap:wrap;gap:6px;font-size:10px;color:var(--text-muted);line-height:1.2}.class-calendar-meta-line span{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#94a3b814;border:1px solid rgba(148,163,184,.12)}.class-calendar-empty-state{color:var(--text-muted);font-size:12px;padding:8px 0 2px}.class-calendar-empty-state.large{padding:18px 4px;text-align:center}@media(max-width:1200px){.class-calendar-weekboard{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.class-calendar-weekboard{grid-template-columns:repeat(2,minmax(0,1fr))}.class-calendar-weekday-column{border-bottom:1px solid rgba(148,163,184,.16)}.class-calendar-weekday-column:nth-child(2n){border-right:none}}@media(max-width:768px){.class-calendar-nav{width:100%;justify-content:space-between;flex-wrap:wrap;row-gap:8px}.class-calendar-nav-label{min-width:0;flex:1 1 100%;order:3;padding:0}.class-calendar-shell-header{padding:14px 14px 12px;flex-direction:column}.class-calendar-shell-meta{justify-content:flex-start}.class-calendar-weekboard{grid-template-columns:1fr}.class-calendar-weekday-column{border-right:none;border-bottom:1px solid rgba(148,163,184,.16)}.class-calendar-weekday-header{padding:12px 12px 10px}.class-calendar-weekday-list{padding:10px}.class-calendar-event{border-radius:18px;padding:12px}.class-calendar-teacher-avatar{width:38px;height:38px}}.notification-tabs{display:flex;gap:var(--s-2);padding:var(--s-2);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--s-6);overflow-x:auto;-webkit-overflow-scrolling:touch}.notification-tab{display:inline-flex;align-items:center;gap:6px;padding:var(--s-3) var(--s-4);border-radius:var(--radius);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}.notification-tab:hover{background:var(--hover-bg);color:var(--text-primary)}.notification-tab.active{background:var(--primary-bg);color:var(--primary);font-weight:600}.notification-category{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--s-4)}.notification-category__header{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);background:var(--bg-card);cursor:pointer;transition:background var(--transition);border:none;width:100%;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.notification-category__header:hover{background:var(--hover-bg)}.notification-category__count{font-size:var(--text-xs);color:var(--text-secondary);background:var(--hover-bg);padding:2px var(--s-2);border-radius:9999px;font-weight:500}.notification-category__content{border-top:1px solid var(--border)}.notification-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5);transition:background var(--transition)}.notification-item:hover{background:var(--hover-bg)}.notification-item+.notification-item{border-top:1px solid var(--border)}.notification-item__info{display:flex;align-items:flex-start;gap:var(--s-3);flex:1;min-width:0}.notification-item__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);flex-shrink:0}.notification-item__icon--blue{background:var(--pastel-blue);color:var(--pastel-blue-accent)}.notification-item__icon--green{background:var(--pastel-green);color:var(--pastel-green-accent)}.notification-item__icon--red{background:var(--pastel-rose);color:var(--pastel-rose-accent)}.notification-item__icon--amber{background:var(--pastel-yellow);color:var(--pastel-yellow-accent)}.notification-item__icon--purple{background:var(--pastel-purple);color:var(--pastel-purple-accent)}.notification-item__icon--cyan{background:var(--pastel-teal);color:var(--pastel-teal-accent)}.notification-item__icon--indigo{background:var(--pastel-indigo);color:var(--pastel-indigo-accent)}.notification-item__icon--orange{background:var(--pastel-orange);color:var(--pastel-orange-accent)}.notification-item__icon--primary{background:var(--primary-bg);color:var(--primary)}.notification-item__icon--slate{background:var(--hover-bg);color:var(--text-secondary)}.notification-item__label{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.notification-item__desc{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px}.notification-item__badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;margin-left:var(--s-2)}.notification-item__badge--system{background:var(--info-bg);color:var(--info)}.notification-toggle{position:relative;width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;transition:background var(--transition);flex-shrink:0}.notification-toggle--off{background:var(--border)}.notification-toggle--on{background:var(--success)}.notification-toggle__thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--transition)}.notification-toggle--on .notification-toggle__thumb{transform:translate(20px)}.notification-threshold{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2)}.notification-threshold__label{font-size:var(--text-xs);color:var(--text-secondary)}.notification-threshold__btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--hover-bg);border:none;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:all var(--transition)}.notification-threshold__btn:hover{background:var(--border);color:var(--text-primary)}.notification-threshold__btn:disabled{opacity:.5;cursor:not-allowed}.notification-threshold__input{width:48px;height:24px;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:var(--text-xs);font-weight:600;color:var(--text-primary);outline:none}.notification-threshold__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.notification-threshold__hint{font-size:.6875rem;color:var(--text-secondary);display:flex;align-items:center;gap:4px}.notification-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s-5)}.notification-role-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.notification-role-card__header{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);background:var(--hover-bg);border-bottom:1px solid var(--border)}.notification-role-card__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);background:var(--primary-bg);color:var(--primary)}.notification-role-card__title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);text-transform:capitalize}.notification-role-card__content{max-height:400px;overflow-y:auto}.notification-role-item{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-5);transition:background var(--transition)}.notification-role-item:hover{background:var(--hover-bg)}.notification-role-item+.notification-role-item{border-top:1px solid var(--border)}.notification-role-item__label{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.notification-table{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.notification-table__header{display:grid;grid-template-columns:1fr 100px 100px 80px;gap:var(--s-2);padding:var(--s-3) var(--s-5);background:var(--hover-bg);border-bottom:1px solid var(--border);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:none;letter-spacing:.05em}.notification-table__row{display:grid;grid-template-columns:1fr 100px 100px 80px;gap:var(--s-2);padding:var(--s-3) var(--s-5);align-items:center;transition:background var(--transition)}.notification-table__row:hover{background:var(--hover-bg)}.notification-table__row+.notification-table__row{border-top:1px solid var(--border)}.notification-badge{display:inline-flex;align-items:center;padding:2px var(--s-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600}.notification-badge--success{background:var(--success-bg);color:var(--success)}.notification-badge--danger{background:var(--danger-bg);color:var(--danger)}.notification-badge--warning{background:var(--warning-bg);color:var(--warning)}.notification-badge--info{background:var(--info-bg);color:var(--info)}.notification-badge--purple{background:var(--pastel-purple);color:var(--pastel-purple-accent)}.notification-override-btn{padding:var(--s-1) var(--s-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;border:none;cursor:pointer;transition:all var(--transition)}.notification-override-btn--inherit{background:var(--hover-bg);color:var(--text-secondary)}.notification-override-btn--inherit:hover{background:var(--border)}.notification-override-btn--on{background:var(--success-bg);color:var(--success)}.notification-override-btn--on:hover{background:var(--success);color:#fff}.notification-override-btn--off{background:var(--danger-bg);color:var(--danger)}.notification-override-btn--off:hover{background:var(--danger);color:#fff}.notification-hint{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-4);background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info) 20%,transparent);border-radius:var(--radius-lg);margin-top:var(--s-6)}.notification-hint__icon{color:var(--info);flex-shrink:0}.notification-hint__content{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.6}.notification-hint__content strong{color:var(--text-primary)}.notification-search{position:relative;width:100%}.notification-search__icon{position:absolute;left:var(--s-3);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.notification-search__input{width:100%;padding:var(--s-3) var(--s-4) var(--s-3) var(--s-10);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);font-size:var(--text-sm);color:var(--text-primary);transition:all var(--transition)}.notification-search__input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.notification-search__spinner{position:absolute;right:var(--s-3);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--text-secondary)}.notification-search-results{margin-top:var(--s-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow-lg);overflow:hidden;max-height:192px;overflow-y:auto}.notification-search-results__item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);width:100%;text-align:left;background:none;border:none;cursor:pointer;transition:background var(--transition);color:var(--text-primary)}.notification-search-results__item:hover{background:var(--hover-bg)}.notification-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-5)}.notification-form__title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--s-4)}.notification-form__group{margin-bottom:var(--s-4)}.notification-form__label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);margin-bottom:var(--s-1)}.notification-form__label--required:after{content:" *";color:var(--danger)}.notification-form__hint{font-size:.6875rem;color:var(--text-secondary);display:flex;align-items:center;gap:4px;margin-top:var(--s-1)}.notification-user-banner{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--primary-bg);border:1px solid color-mix(in srgb,var(--primary) 15%,transparent);border-radius:var(--radius);margin-bottom:var(--s-4)}.notification-user-banner__name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.notification-user-banner__role{font-size:var(--text-xs);padding:2px var(--s-2);border-radius:9999px;background:var(--primary-bg);color:var(--primary);text-transform:capitalize}.notification-empty{text-align:center;padding:var(--s-12) var(--s-6);color:var(--text-secondary)}.notification-empty__icon{opacity:.3;margin-bottom:var(--s-3)}.notification-empty__title{font-size:var(--text-sm);color:var(--text-secondary)}.notification-empty__desc{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--s-1)}.notification-rule-card{padding:var(--s-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:background var(--transition)}.notification-rule-card:hover{background:var(--hover-bg)}.notification-rule-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.notification-rule-card__body{flex:1;min-width:0}.notification-rule-card__name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.notification-rule-card__desc{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px}.notification-rule-card__tags{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.notification-rule-card__tag{padding:2px var(--s-2);border-radius:9999px;font-size:.6875rem;font-weight:500}.notification-rule-card__tag--trigger{background:var(--info-bg);color:var(--info)}.notification-rule-card__tag--condition{background:var(--warning-bg);color:var(--warning)}.notification-rule-card__tag--role{background:var(--pastel-purple);color:var(--pastel-purple-accent)}.notification-rule-card__template{font-size:.6875rem;color:var(--text-secondary);font-style:italic;margin-top:var(--s-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-rule-card__actions{display:flex;align-items:center;gap:var(--s-2);flex-shrink:0}.notification-recipient-modes{display:flex;gap:var(--s-2);margin-bottom:var(--s-3)}.notification-recipient-mode{padding:var(--s-2) var(--s-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:500;border:none;cursor:pointer;transition:all var(--transition)}.notification-recipient-mode--active{background:var(--primary);color:#fff}.notification-recipient-mode--inactive{background:var(--hover-bg);color:var(--text-secondary)}.notification-recipient-mode--inactive:hover{background:var(--border)}.notification-role-toggles{display:flex;flex-wrap:wrap;gap:var(--s-2)}.notification-role-toggle{padding:var(--s-2) var(--s-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:500;border:1px solid var(--border);cursor:pointer;transition:all var(--transition);text-transform:capitalize}.notification-role-toggle--active{background:var(--primary-bg);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 20%,transparent)}.notification-role-toggle--inactive{background:var(--hover-bg);color:var(--text-secondary)}.notification-role-toggle--inactive:hover{background:var(--border)}.notification-preview{padding:var(--s-3);background:var(--hover-bg);border:1px solid var(--border);border-radius:var(--radius)}.notification-preview__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);background:var(--primary-bg);color:var(--primary);flex-shrink:0}.notification-result{padding:var(--s-3);border-radius:var(--radius);font-size:var(--text-xs)}.notification-result--success{background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.notification-result--error{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.notification-user-chips{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:var(--s-2)}.notification-user-chip{display:inline-flex;align-items:center;gap:4px;padding:2px var(--s-2);border-radius:9999px;background:var(--primary-bg);color:var(--primary);font-size:var(--text-xs)}.notification-user-chip__remove{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font-size:var(--text-xs);transition:color var(--transition)}.notification-user-chip__remove:hover{color:var(--danger)}.notification-threshold-reset{font-size:.5625rem;color:var(--danger);background:none;border:none;cursor:pointer;padding:0;margin-left:4px;transition:color var(--transition)}.notification-threshold-reset:hover{color:var(--danger-light)}.notification-saving{animation:spin 1s linear infinite;color:var(--primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.notification-tabs{flex-wrap:wrap}.notification-tab{flex:1;justify-content:center;padding:var(--s-2) var(--s-3)}.notification-role-grid{grid-template-columns:1fr}.notification-table__header,.notification-table__row{grid-template-columns:1fr 80px 80px 60px;font-size:.75rem}.notification-item{flex-direction:column;gap:var(--s-3)}}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.notification-tab{padding:var(--s-2) var(--s-3);font-size:var(--text-xs)}.notification-item,.notification-role-card__header{padding:var(--s-3) var(--s-4)}.notification-role-item{padding:var(--s-2) var(--s-4)}.notification-form{padding:var(--s-4)}.notification-toggle{width:40px;height:22px}.notification-toggle__thumb{width:18px;height:18px}.notification-toggle--on .notification-toggle__thumb{transform:translate(18px)}}.attendance-page{padding-bottom:40px;box-sizing:border-box}.attendance-date-nav{display:flex;align-items:center;background:var(--bg-card);border-radius:var(--radius-lg);border:var(--border-premium);padding:6px;box-shadow:var(--shadow-sm)}.attendance-date-nav-btn{border:none;background:transparent;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:var(--transition)}.attendance-date-nav-btn:disabled{cursor:default;color:var(--border)}.attendance-date-nav-btn:not(:disabled):hover{background:var(--hover-bg)}.attendance-date-nav-today{border:none;background:var(--primary-bg);padding:8px 16px;cursor:pointer;color:var(--primary);font-weight:600;font-size:13px;border-radius:var(--radius-sm);margin:0 8px;transition:var(--transition)}.attendance-date-nav-today:hover{background:var(--primary);color:#fff}.attendance-date-nav-picker{display:flex;align-items:center;gap:8px;padding:0 8px;border-left:1px solid var(--border-light);border-right:1px solid var(--border-light)}.attendance-date-nav-picker input{border:none;background:transparent;font-size:14px;font-weight:600;color:var(--text-primary);outline:none;cursor:pointer;padding:0;width:96px}.attendance-date-nav-picker input:disabled{cursor:default}.attendance-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:20px}.attendance-detail-left{display:flex;align-items:center;gap:16px}.attendance-detail-back-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-radius:12px;padding:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:var(--transition)}.attendance-detail-back-btn:hover{background:var(--hover-bg)}.attendance-detail-teacher-avatar{width:48px;height:48px;border-radius:14px;object-fit:cover;flex-shrink:0}.attendance-detail-teacher-initials{width:48px;height:48px;border-radius:14px;background:var(--primary-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.attendance-detail-class-name{font-size:22px;font-weight:700;color:var(--text-primary);margin:0;font-family:var(--font-heading)}.attendance-detail-teacher-name{color:var(--text-muted);font-size:14px;font-weight:500;margin:0}.attendance-save-top{padding:12px 24px;border-radius:var(--radius-lg);font-size:15px;font-weight:600;color:#fff;border:none;display:flex;align-items:center;gap:10px;transition:var(--transition);cursor:pointer;box-shadow:var(--shadow-md)}.attendance-save-top:disabled{cursor:not-allowed;opacity:.6}.attendance-save-top--unsaved{background:var(--primary)}.attendance-save-top--saved{background:var(--success)}.attendance-save-top-icon{animation:attendanceTopIconFloat 1.6s ease-in-out infinite}.attendance-fab-save{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:none;color:#fff;display:none;align-items:center;justify-content:center;z-index:var(--z-modal);transition:var(--transition)}.attendance-fab-save--unsaved{background:var(--primary);box-shadow:0 10px 24px #6366f159}.attendance-fab-save--saved{background:var(--success);box-shadow:0 10px 24px #10b98159}.attendance-fab-save:disabled{background:var(--premium-zinc-400);box-shadow:none;cursor:not-allowed;opacity:.6}.attendance-fab-icon{animation:attendanceFabPulse 1.8s ease-in-out infinite}.attendance-fab-spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:spin .8s linear infinite}.attendance-save-toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(86px + env(safe-area-inset-bottom));background:var(--success);color:#fff;font-weight:700;border-radius:12px;padding:10px 14px;z-index:calc(var(--z-modal) + 1);box-shadow:0 8px 20px #0003}.attendance-alert{padding:12px 16px;border-radius:var(--radius-lg);margin-bottom:20px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px}.attendance-alert--warning{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.attendance-alert--info{background:var(--primary-bg);color:var(--primary);border:1px solid var(--primary-border)}.attendance-alert--success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.attendance-alert--danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.attendance-message{padding:16px 20px;border-radius:var(--radius-lg);margin-bottom:24px;font-size:14px;font-weight:500;display:flex;align-items:center;animation:fadeIn .3s ease}.attendance-message--success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.attendance-message--danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.attendance-overview-card{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.16);background:radial-gradient(circle at top right,rgba(16,185,129,.1),transparent 24%),radial-gradient(circle at left center,rgba(99,102,241,.06),transparent 18%),linear-gradient(180deg,#fffffffc,#f8fafcf5);padding:20px}.attendance-overview-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.34),transparent 34%,transparent 68%,rgba(255,255,255,.12))}.attendance-overview-card>*{position:relative;z-index:1}.attendance-class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,420px));gap:24px;min-width:0}.attendance-card-apple{background:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-sm);border:var(--border-premium);transition:all .2s cubic-bezier(.4,0,.2,1);padding:16px;display:flex;align-items:center;gap:16px;cursor:pointer}.attendance-card-apple:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.attendance-card-avatar{width:56px;height:56px;border-radius:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--bg-card);box-shadow:inset 0 0 0 1px #0000000d}.attendance-card-avatar img{width:100%;height:100%;object-fit:cover}.attendance-card-avatar.initials{background:var(--premium-zinc-50);color:var(--text-primary);font-weight:700;font-size:18px}.attendance-card-info{flex:1;min-width:0}.attendance-card-title-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.attendance-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.attendance-status-dot.pending{background:var(--warning)}.attendance-status-dot.completed{background:var(--success)}.attendance-status-dot.ongoing{background:var(--accent-purple)}.attendance-status-dot.scheduled{background:var(--info)}.attendance-status-dot.low{background:var(--danger)}.attendance-card-title{font-size:14px;font-weight:700;color:var(--text-primary);white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25}.attendance-card-meta{font-size:12px;color:var(--text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:6px}.attendance-card-meta .separator{color:var(--border)}.attendance-card-status-section{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.attendance-status-badge{font-size:11px;font-weight:700;text-transform:none;padding:4px 10px;border-radius:8px;letter-spacing:.02em;transform:translateY(-2px)}.attendance-status-badge.pending{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.attendance-status-badge.completed{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.attendance-status-badge.ongoing{background:var(--accent-purple-bg);color:var(--accent-purple);border:1px solid var(--accent-purple-border)}.attendance-status-badge.scheduled{background:var(--info-bg);color:var(--info);border:1px solid var(--info-border)}.attendance-status-badge.low{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.attendance-progress-count{font-size:10px;font-weight:700;color:var(--text-muted);line-height:1}.attendance-progress-mini{width:64px;height:4px;background:var(--premium-zinc-100);border-radius:10px;overflow:hidden}.attendance-progress-mini-fill{height:100%;border-radius:10px;transition:width .3s ease}.attendance-progress-mini-fill.pending{background:var(--warning)}.attendance-progress-mini-fill.completed{background:var(--success)}.attendance-progress-mini-fill.ongoing{background:var(--accent-purple)}.attendance-progress-mini-fill.scheduled{background:var(--info)}.attendance-progress-mini-fill.low{background:var(--danger)}.attendance-desktop-table{border-radius:var(--radius-xl);border:var(--border-premium);overflow:hidden;box-shadow:var(--shadow-lg)}.attendance-table-wrapper{overflow-x:auto}.attendance-table{width:100%;border-collapse:collapse;text-align:left}.attendance-table thead tr{background:var(--table-header-bg);border-bottom:1px solid var(--border)}.attendance-table th{padding:18px 24px;font-weight:600;color:var(--text-muted);font-size:13px;text-transform:uppercase;letter-spacing:.05em}.attendance-table td{padding:20px 24px}.attendance-table tbody tr{border-bottom:1px solid var(--border-light);transition:var(--transition)}.attendance-table tbody tr:last-child{border-bottom:none}.attendance-student-cell{display:flex;align-items:center;gap:12px}.attendance-student-avatar{width:36px;height:36px;border-radius:12px;object-fit:cover;background:var(--premium-zinc-100);flex-shrink:0}.attendance-student-name{font-size:15px;color:var(--text-primary);font-weight:600}.attendance-student-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;align-items:center}.attendance-badge-historical{font-size:11px;color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:999px;padding:2px 8px;font-weight:700;letter-spacing:.02em}.attendance-badge-paused{font-size:11px;color:var(--accent-purple);background:var(--accent-purple-bg);border:1px solid var(--accent-purple-border);border-radius:999px;padding:2px 8px;font-weight:700;letter-spacing:.02em}.attendance-badge-pause-deadline{font-size:11px;color:var(--text-muted);font-weight:500}.attendance-badge-enrollment{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.attendance-lesson-balance{color:var(--text-secondary);background:var(--premium-zinc-50);padding:4px 10px;border-radius:8px;font-weight:700;font-size:13px;border:1px solid var(--border);display:inline-block}.attendance-lesson-balance--low{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.attendance-status-buttons{display:flex;gap:10px}.attendance-status-btn{padding:8px 16px;border-radius:12px;border:1.5px solid var(--border);background:transparent;color:var(--text-secondary);font-weight:700;font-size:13px;cursor:pointer;transition:all .2s ease;min-width:90px;font-family:var(--font-body)}.attendance-status-btn:disabled{cursor:not-allowed}.attendance-status-btn:disabled:not(.active){opacity:.5}.attendance-status-btn.join.active{background:var(--success-bg);border-color:var(--success);color:var(--success)}.attendance-status-btn.absence.active{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.attendance-status-btn.excuse.active{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.attendance-mobile-list{display:none}.attendance-mobile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--shadow-sm)}.attendance-mobile-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.attendance-mobile-card-left{display:flex;align-items:center;gap:12px}.attendance-mobile-avatar{width:40px;height:40px;border-radius:12px;object-fit:cover;background:var(--premium-zinc-100);flex-shrink:0}.attendance-mobile-name{font-weight:700;color:var(--text-primary)}.attendance-mobile-balance{color:var(--text-secondary);background:var(--premium-zinc-50);padding:4px 10px;border-radius:8px;font-weight:700;font-size:13px;border:1px solid var(--border);white-space:nowrap;display:inline-block}.attendance-mobile-balance--low{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.attendance-mobile-actions{display:flex}.attendance-mobile-status-buttons{display:flex;gap:8px;width:100%}.attendance-mobile-status-buttons .attendance-pill{flex:1;min-width:0}.attendance-pill{border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:12px;min-height:42px;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-body);transition:all .2s ease}.attendance-pill:disabled{cursor:not-allowed}.attendance-pill:disabled:not(.active){opacity:.5}.attendance-pill.join.active{background:var(--success-bg);border-color:var(--success);color:var(--success)}.attendance-pill.absence.active{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.attendance-pill.excuse.active{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.attendance-empty-state{background:var(--bg-card);border-radius:var(--radius-xl);padding:80px 20px;text-align:center;border:var(--border-premium);box-shadow:var(--shadow-sm)}.attendance-empty-state-icon{width:80px;height:80px;border-radius:24px;background:var(--premium-zinc-50);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:var(--text-muted)}.attendance-empty-state-title{font-size:20px;color:var(--text-primary);font-weight:700;margin-bottom:8px}.attendance-empty-state-text{color:var(--text-muted);font-size:15px}.attendance-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.attendance-modal-overlay--danger{background:#0009}.attendance-modal{background:var(--bg-card);padding:32px;border-radius:var(--radius-xl);text-align:center;max-width:360px;width:90%;box-shadow:var(--shadow-xl);border:1px solid var(--border);animation:slideUp .3s ease}.attendance-modal--danger{border-color:var(--danger-border);box-shadow:var(--shadow-xl)}.attendance-modal-icon{width:64px;height:64px;border-radius:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.attendance-modal-icon--success{background:var(--success-bg);color:var(--success)}.attendance-modal-icon--error{background:var(--danger-bg);color:var(--danger)}.attendance-modal-icon--warning{width:56px;height:56px;border-radius:18px;background:var(--warning-bg);color:var(--warning)}.attendance-modal-title{font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.attendance-modal-title--sm{font-size:18px;margin-bottom:12px}.attendance-modal-body{color:var(--text-muted);font-size:15px;margin-bottom:24px;line-height:1.5}.attendance-modal-body--sm{font-size:14px;margin-bottom:28px;line-height:1.6}.attendance-modal-btn{width:100%;padding:14px;color:#fff;border:none;border-radius:14px;font-size:15px;font-weight:700;cursor:pointer;transition:var(--transition);font-family:var(--font-body)}.attendance-modal-btn--success{background:var(--success);box-shadow:0 4px 12px var(--success-bg)}.attendance-modal-btn--danger{background:var(--danger);box-shadow:0 4px 12px var(--danger-bg)}.attendance-modal-btn--muted{flex:1;padding:12px;background:var(--premium-zinc-100);color:var(--text-primary);border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:var(--transition)}.attendance-modal-btn--danger-outline{flex:1;padding:12px;background:var(--danger);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:var(--transition)}.attendance-modal-actions{display:flex;gap:12px}.attendance-modal-warning-box{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-lg);padding:12px 16px;margin-bottom:20px;text-align:left}.attendance-modal-warning-title{color:var(--warning);font-size:13px;font-weight:600;margin-bottom:6px}.attendance-modal-warning-body{color:var(--text-secondary);font-size:12px;line-height:1.4}@keyframes attendanceFabPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes attendanceTopIconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@media(prefers-reduced-motion:reduce){.attendance-fab-icon,.attendance-save-top-icon{animation:none}.attendance-card-apple,.attendance-status-btn,.attendance-pill,.attendance-modal,.attendance-modal-overlay{animation:none;transition:none}}@media(max-width:768px){.attendance-page{padding-bottom:90px;padding-left:10px;padding-right:10px}.attendance-overview-card{padding:12px}.attendance-detail-header{flex-direction:column;align-items:stretch}.attendance-date-nav{width:100%;overflow:hidden;flex-wrap:wrap;gap:6px;justify-content:center}.attendance-save-top{display:none}.attendance-fab-save{display:inline-flex}.attendance-desktop-table{display:none}.attendance-mobile-list{display:grid;gap:10px;width:100%;max-width:100%;overflow:hidden}.attendance-mobile-card{width:100%;max-width:100%;margin:0}.attendance-mobile-status-buttons .attendance-pill{padding:8px 4px;font-size:12px}.attendance-class-grid{grid-template-columns:1fr;gap:12px}.attendance-card-apple{border-radius:14px;padding:12px;gap:12px}.attendance-card-avatar{width:48px;height:48px;border-radius:14px}.attendance-card-title{font-size:13px}.attendance-card-meta{font-size:11px}.attendance-page input[type=date]{min-width:0;width:100%}}@media(max-width:420px){.attendance-mobile-status-buttons .attendance-pill{font-size:11px;padding:6px 2px}}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.attendance-card-apple{border-radius:14px;padding:12px;gap:12px}.attendance-card-avatar{width:48px;height:48px;border-radius:14px}.attendance-card-title{font-size:13px}.attendance-card-meta{font-size:11px}.attendance-overview-card{padding:14px}}[data-theme=dark] .attendance-overview-card{border-color:#94a3b829;background:radial-gradient(circle at top right,rgba(16,185,129,.14),transparent 24%),radial-gradient(circle at left center,rgba(99,102,241,.1),transparent 18%),linear-gradient(180deg,#0f172aeb,#0f172ad6)}[data-theme=dark] .attendance-card-apple{background:#18181b99;border-color:#ffffff0f}[data-theme=dark] .attendance-card-title{color:#e2e8f0}[data-theme=dark] .attendance-card-meta{color:#94a3b8}[data-theme=dark] .attendance-card-avatar.initials{background:#27272acc;color:#e2e8f0}[data-theme=dark] .attendance-desktop-table{background:#18181b99;border-color:#ffffff0f}[data-theme=dark] .attendance-table thead tr{background:#27272a80}[data-theme=dark] .attendance-table th{color:#94a3b8}[data-theme=dark] .attendance-table tbody tr{border-bottom-color:#ffffff0f}[data-theme=dark] .attendance-student-name{color:#e2e8f0}[data-theme=dark] .attendance-mobile-card{background:#18181b99;border-color:#ffffff0f}[data-theme=dark] .attendance-mobile-name{color:#e2e8f0}[data-theme=dark] .attendance-empty-state{background:#18181b99;border-color:#ffffff0f}[data-theme=dark] .attendance-empty-state-title{color:#e2e8f0}[data-theme=dark] .attendance-empty-state-text{color:#94a3b8}[data-theme=dark] .attendance-detail-header,[data-theme=dark] .attendance-detail-class-name{color:#e2e8f0}[data-theme=dark] .attendance-detail-teacher-name{color:#94a3b8}[data-theme=dark] .attendance-detail-back-btn{background:#27272a99;border-color:#ffffff14;color:#e2e8f0}[data-theme=dark] .attendance-lesson-balance,[data-theme=dark] .attendance-mobile-balance{background:#27272a80;border-color:#ffffff14;color:#94a3b8}[data-theme=dark] .attendance-status-btn{border-color:#ffffff1a;color:#94a3b8}[data-theme=dark] .attendance-pill{border-color:#ffffff1a;color:#94a3b8;background:#18181b99}.lb-page{--gold: #f59e0b;--gold-bg: rgba(245, 158, 11, .12);--silver: #94a3b8;--silver-bg: rgba(148, 163, 184, .12);--bronze: #cd7f32;--bronze-bg: rgba(205, 127, 50, .12);--cyan: #06b6d4;--cyan-bg: rgba(6, 182, 212, .1);--r: 16px;padding:6px 0 calc(72px + env(safe-area-inset-bottom));min-height:100dvh;position:relative;isolation:isolate}.lb-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 55% 38% at 18% 0%,rgba(245,158,11,.14),transparent),radial-gradient(ellipse 45% 32% at 88% 8%,rgba(99,102,241,.09),transparent)}.lb-hdr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0 14px}.lb-hdr__left{display:flex;align-items:center;gap:10px;min-width:0}.lb-hdr__ico{width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;background:linear-gradient(135deg,var(--gold),#d97706);color:#fff;box-shadow:0 3px 10px #f59e0b4d}.lb-hdr__t{margin:0;font-size:1.25rem;font-weight:900;letter-spacing:-.03em;color:var(--text-primary);line-height:1.15}.lb-hdr__s{margin:1px 0 0;font-size:.72rem;color:var(--text-muted);font-weight:600}.lb-subj{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);font-size:.78rem;font-weight:700;color:var(--text-primary);box-shadow:0 1px 4px #0000000a;flex-shrink:0;max-width:52vw}.lb-subj svg:first-child{color:var(--primary);flex-shrink:0}.lb-subj select{border:0;outline:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;color:inherit;font:inherit;cursor:pointer;max-width:110px;min-width:0}.lb-subj select option{color:var(--text-primary);background:var(--bg-card)}.lb-subj__chev{color:var(--text-muted);flex-shrink:0}.lb-subj--solo{cursor:default}.lb-pod{display:flex;align-items:flex-end;justify-content:center;gap:6px;padding:32px 4px 0}.lb-pod__slot{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;flex:0 1 120px;opacity:0;animation:lb-podIn .55s cubic-bezier(.16,1,.3,1) forwards}.lb-pod--p1{order:2;z-index:2}.lb-pod--p2{order:1}.lb-pod--p3{order:3}.lb-pod__ava-wrap{position:relative;display:flex;justify-content:center}.lb-pod__crown{position:absolute;top:-18px;left:50%;transform:translate(-50%);color:var(--gold);filter:drop-shadow(0 2px 6px rgba(245,158,11,.4));animation:lb-crownFloat 2.4s ease-in-out infinite;z-index:3}.lb-pod__name{font-size:.78rem;font-weight:800;color:var(--text-primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.2}.lb-pod__xp{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;font-weight:800;color:var(--primary)}.lb-pod__lvl{font-size:.64rem;font-weight:700;color:var(--text-muted);padding:2px 7px;border-radius:999px;background:var(--bg-secondary)}.lb-pod__pillar{width:100%;border-radius:12px 12px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;margin-top:3px;position:relative;overflow:hidden;transform-origin:bottom center;transform:scaleY(0);animation:lb-pillarRise .7s cubic-bezier(.34,1.4,.64,1) forwards}.lb-pod--p2 .lb-pod__pillar{animation-delay:.2s}.lb-pod--p1 .lb-pod__pillar{animation-delay:.45s}.lb-pod--p3 .lb-pod__pillar{animation-delay:.35s}.lb-pod__pillar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,transparent 45%);pointer-events:none}.lb-pod__num{font-size:1.5rem;font-weight:900;color:#ffffffeb;text-shadow:0 1px 4px rgba(0,0,0,.15);position:relative;z-index:1}.lb-pod--p1 .lb-pod__pillar{background:linear-gradient(180deg,#f59e0b,#d97706,#b45309);box-shadow:0 -4px 18px #f59e0b47}.lb-pod--p2 .lb-pod__pillar{background:linear-gradient(180deg,#94a3b8,#64748b,#475569);box-shadow:0 -4px 14px #94a3b838}.lb-pod--p3 .lb-pod__pillar{background:linear-gradient(180deg,#cd7f32,sienna,#7a3e1a);box-shadow:0 -4px 14px #cd7f3238}.lb-av{border-radius:50%;overflow:hidden;border:3px solid var(--bg-card);background:linear-gradient(135deg,var(--bg-secondary),var(--bg-card));box-shadow:0 3px 10px #00000014;flex-shrink:0;display:grid;place-items:center}.lb-av--frame{border-width:3px;box-shadow:0 3px 14px #0000001f,0 0 0 1.5px #6366f12e}.lb-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.lb-av__fb{display:grid;place-items:center;width:100%;height:100%;font-weight:900;color:var(--text-muted);border-radius:50%}.lb-list{display:flex;flex-direction:column;gap:8px;padding-top:18px}.lb-list--ctx{padding-top:0}.lb-row{display:grid;grid-template-columns:36px 40px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--border),transparent 8%);background:var(--bg-card);box-shadow:0 1px 4px #00000008;opacity:0;transform:translateY(10px);animation:lb-rowIn .38s cubic-bezier(.16,1,.3,1) forwards;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.lb-row--me{border-color:var(--cyan-bg);border-color:#06b6d459;background:linear-gradient(135deg,var(--cyan-bg),var(--bg-card) 70%);box-shadow:0 3px 14px #06b6d414}.lb-rk{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:.72rem;font-weight:900;flex-shrink:0}.lb-rk--g{background:var(--gold-bg);color:var(--gold)}.lb-rk--s{background:var(--silver-bg);color:var(--silver)}.lb-rk--b{background:var(--bronze-bg);color:var(--bronze)}.lb-rk--d{background:var(--bg-secondary);color:var(--text-muted)}.lb-row__info{min-width:0}.lb-row__top{display:flex;align-items:center;gap:6px;min-width:0}.lb-row__name{font-size:.88rem;font-weight:800;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row__me{flex-shrink:0;padding:1px 6px;border-radius:999px;background:var(--cyan-bg);color:var(--cyan);font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;line-height:1.5}.lb-row__lvl{display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);margin-top:1px}.lb-row__xp{display:inline-flex;align-items:center;gap:3px;color:var(--primary);font-size:.78rem;white-space:nowrap}.lb-row__xp strong{font-weight:900}.lb-gap{display:flex;align-items:center;gap:10px;padding:12px 0}.lb-gap__ln{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent)}.lb-gap__dot{font-size:.7rem;font-weight:800;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;animation:lb-gapPulse 2s ease-in-out infinite}.lb-mybar{position:sticky;bottom:calc(56px + env(safe-area-inset-bottom));z-index:10;padding-top:10px}.lb-mybar__in{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:999px;background:linear-gradient(135deg,#0f172aed,#1e293bf5);color:#cbd5e1;font-size:.8rem;font-weight:700;box-shadow:0 6px 20px #00000038;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);animation:lb-barIn .45s cubic-bezier(.16,1,.3,1) forwards}.lb-mybar__pos{color:#fff;font-weight:900;font-size:.88rem}.lb-mybar__sep{color:#ffffff40}.lb-mybar__xp{display:inline-flex;align-items:center;gap:3px;color:var(--gold);font-weight:800;margin-left:6px}.lb-footer{display:flex;justify-content:center;padding:18px 0 6px}.lb-footer__count{font-size:.82rem;font-weight:600;color:var(--text-muted)}.lb-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;text-align:center}.lb-empty svg{color:var(--gold);opacity:.5}.lb-empty h2{margin:0;font-size:1.05rem;color:var(--text-primary)}.lb-empty p{margin:0;font-size:.84rem;color:var(--text-muted)}.lb-skel{padding-top:28px}.lb-skel__pods{display:flex;align-items:flex-end;justify-content:center;gap:6px;padding-bottom:20px}.lb-skel__pill{width:100px;border-radius:12px 12px 0 0;background:linear-gradient(90deg,var(--bg-secondary),var(--bg-card),var(--bg-secondary));background-size:200% 100%;animation:lb-shimmer 1.2s ease-in-out infinite}.lb-skel__row{height:58px;margin-bottom:8px;border-radius:var(--r);background:linear-gradient(90deg,var(--bg-card),var(--bg-secondary),var(--bg-card));background-size:200% 100%;animation:lb-shimmer 1.2s ease-in-out infinite}@media(hover:hover){.lb-row:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0000000f;border-color:color-mix(in srgb,var(--primary),var(--border) 50%)}.lb-row--me:hover{box-shadow:0 4px 18px #06b6d41f}}.lb-row:active{transform:scale(.988)}@media(min-width:769px){.lb-page{padding:0 0 36px;max-width:720px;margin:0 auto}.lb-hdr{padding:6px 0 18px}.lb-hdr__ico{width:44px;height:44px;border-radius:13px}.lb-hdr__t{font-size:1.45rem}.lb-pod{gap:10px;padding-top:40px}.lb-pod__slot{flex:0 1 160px}.lb-pod--p1 .lb-pod__pillar{height:130px}.lb-pod--p2 .lb-pod__pillar{height:96px}.lb-pod--p3 .lb-pod__pillar{height:76px}.lb-pod__name{font-size:.88rem}.lb-pod__xp{font-size:.78rem}.lb-pod__num{font-size:1.7rem}.lb-row{grid-template-columns:40px 44px 1fr auto;gap:14px;padding:11px 16px}.lb-rk{width:38px;height:38px;border-radius:11px}.lb-row__name{font-size:.92rem}.lb-mybar{bottom:16px}}@media(max-width:380px){.lb-hdr__t{font-size:1.1rem}.lb-hdr__ico{width:32px;height:32px;border-radius:9px}.lb-hdr__ico svg{width:16px;height:16px}.lb-subj{padding:5px 8px;font-size:.72rem;max-width:46vw}.lb-subj select{max-width:80px}.lb-pod{gap:4px;padding-top:24px}.lb-pod__slot{flex:0 1 100px}.lb-pod__name{font-size:.7rem}.lb-pod__xp{font-size:.64rem}.lb-pod__crown{width:20px;height:20px;top:-14px}.lb-pod__num{font-size:1.2rem}.lb-row{grid-template-columns:30px 36px 1fr auto;gap:7px;padding:8px 10px}.lb-rk{width:30px;height:30px;border-radius:8px;font-size:.66rem}.lb-row__name{font-size:.8rem}.lb-row__xp{font-size:.72rem}.lb-mybar__in{font-size:.74rem;padding:8px 14px}}[data-theme=dark] .lb-row{box-shadow:0 1px 6px #00000029}[data-theme=dark] .lb-row--me{background:linear-gradient(135deg,#06b6d414,#0f172ae6)}[data-theme=dark] .lb-av{border-color:#1e293b}[data-theme=dark] .lb-pod__pillar{box-shadow:0 -4px 20px #0000004d}[data-theme=dark] .lb-mybar__in{background:linear-gradient(135deg,#0f172af7,#1e293bfa);box-shadow:0 6px 24px #0006}@media(prefers-reduced-motion:reduce){.lb-pod__slot,.lb-pod__pillar,.lb-row,.lb-mybar__in,.lb-pod__crown,.lb-gap__dot{animation:none!important;opacity:1!important;transform:none!important}.lb-row{transition:none!important}}@keyframes lb-podIn{0%{opacity:0;transform:translateY(20px) scale(.93)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes lb-crownFloat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}@keyframes lb-rowIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes lb-barIn{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes lb-gapPulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes lb-pillarRise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes lb-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.audit-page{display:flex;flex-direction:column;gap:18px}.audit-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:22px;border-radius:24px;background:linear-gradient(135deg,#6366f129,#0ea5e91a),var(--bg-card);border:var(--border-premium);box-shadow:var(--shadow-sm)}.audit-hero__icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;color:#4f46e5;background:#6366f124}.audit-hero h1{margin:0 0 6px;font-size:clamp(24px,3vw,34px);color:var(--text-primary)}.audit-hero p{margin:0;color:var(--text-secondary)}.audit-hero__stats{min-width:150px;padding:14px 16px;border-radius:18px;background:#ffffff9e;border:1px solid var(--border-light);text-align:right}.audit-hero__stats span{display:block;font-size:28px;font-weight:800;color:var(--text-primary)}.audit-hero__stats small{color:var(--text-muted);font-weight:600}.audit-filter-card,.audit-timeline-card{padding:18px;border-radius:22px;background:var(--bg-card);border:var(--border-premium);box-shadow:var(--shadow-sm)}.audit-search-box{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border-light);border-radius:16px;background:var(--bg-secondary);color:var(--text-muted)}.audit-search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit}.audit-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;align-items:end;margin-top:14px}.audit-filter-grid label{display:flex;flex-direction:column;gap:7px}.audit-filter-grid label>span{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px;font-weight:700}.audit-filter-grid select{min-height:42px;border:1px solid var(--border-light);border-radius:13px;padding:0 12px;background:var(--bg-card);color:var(--text-primary)}.audit-reset-btn{min-height:42px;border:0;border-radius:13px;padding:0 14px;background:#ef44441a;color:#dc2626;font-weight:700;cursor:pointer}.audit-timeline{display:flex;flex-direction:column;gap:14px}.audit-result-summary{margin-bottom:14px;color:var(--text-muted);font-size:13px;font-weight:700}.audit-timeline-item{display:grid;grid-template-columns:16px 1fr;gap:14px;position:relative}.audit-timeline-item:not(:last-child):before{content:"";position:absolute;top:22px;bottom:-18px;left:7px;width:2px;background:var(--border-light)}.audit-action-dot{width:16px;height:16px;margin-top:16px;border-radius:999px;border:3px solid var(--bg-card);box-shadow:0 0 0 1px var(--border-light);z-index:1}.audit-action-dot--success{background:#22c55e}.audit-action-dot--danger{background:#ef4444}.audit-action-dot--info{background:#0ea5e9}.audit-action-dot--indigo{background:#6366f1}.audit-action-dot--muted{background:#94a3b8}.audit-item-main{padding:14px 16px;border:1px solid var(--border-light);border-radius:18px;background:var(--bg-secondary)}.audit-item-topline{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.audit-item-topline strong{color:var(--text-primary)}.audit-action-text{margin-left:8px;color:var(--text-secondary);font-weight:700}.audit-target-summary{margin-top:10px;padding:10px 12px;border-radius:14px;background:#6366f11a;color:var(--text-primary);font-weight:800}.audit-target-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.audit-target-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border-light)}.audit-target-chip span{color:var(--text-muted);font-size:12px;font-weight:700}.audit-target-chip strong{color:var(--text-primary);font-size:12px;font-weight:800}.audit-entity-pill{display:inline-flex;margin-left:8px;padding:3px 8px;border-radius:999px;background:#6366f11f;color:#4f46e5;font-size:12px;font-weight:800}.audit-item-topline time,.audit-item-meta{color:var(--text-muted);font-size:12px;font-weight:600}.audit-item-main p{margin:8px 0 10px;color:var(--text-secondary);line-height:1.55;word-break:break-word}.audit-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:10px 0 12px}.audit-detail-row{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-light)}.audit-detail-row span{color:var(--text-muted);font-size:12px;font-weight:700}.audit-detail-row strong{color:var(--text-primary);font-size:14px;font-weight:750;line-height:1.35;word-break:break-word}.audit-detail-row em{color:var(--text-muted);font-style:normal;text-decoration:line-through;text-decoration-thickness:1px}.audit-item-meta{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:980px){.audit-filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:640px){.audit-hero{grid-template-columns:1fr}.audit-hero__stats{text-align:left}.audit-filter-grid{grid-template-columns:1fr}.audit-item-topline{flex-direction:column}}[data-theme=dark] .audit-hero__stats{background:#0f172a94}.page-container .reports-content{display:flex;flex-direction:column;gap:var(--s-6)}.reports-filter-bar{display:flex;flex-direction:row;align-items:center;gap:12px;flex-wrap:wrap;padding:var(--s-4);background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.reports-filter-bar input,.reports-filter-bar select,.reports-filter-bar .form-input,.reports-filter-bar .form-select{flex:1;min-width:140px}.reports-filter-bar button,.reports-filter-bar .btn{white-space:nowrap}.reports-date-filter{justify-content:flex-end;margin-bottom:var(--s-6)}.report-filter-field{display:flex;flex:0 1 180px;flex-direction:column;gap:4px}.report-filter-field label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.reports-filter-bar .report-filter-field input,.reports-filter-bar .report-filter-field select{width:100%;min-width:0}.reports-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-4)}.report-stat-card{padding:24px;border-radius:16px;border:1px solid var(--border);background:var(--bg-card);display:flex;flex-direction:column;gap:var(--s-2);transition:transform var(--transition),box-shadow var(--transition)}.report-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.report-stat-card .stat-value{font-size:32px;font-weight:700;line-height:1.2}.report-stat-card .stat-label{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.report-stat-card.green{background:#ecfdf5;border-color:#a7f3d0}.report-stat-card.green .stat-label{color:#065f46}.report-stat-card.green .stat-value{color:#059669}.report-stat-card.red{background:#fef2f2;border-color:#fecaca}.report-stat-card.red .stat-label{color:#7f1d1d}.report-stat-card.red .stat-value{color:#dc2626}.report-stat-card.blue{background:#eff6ff;border-color:#bfdbfe}.report-stat-card.blue .stat-label{color:#1e3a5f}.report-stat-card.blue .stat-value{color:#2563eb}.report-stat-card.orange{background:#fff7ed;border-color:#fed7aa}.report-stat-card.orange .stat-label{color:#7c2d12}.report-stat-card.orange .stat-value{color:#ea580c}.report-stat-card.purple{background:#f5f3ff;border-color:#ddd6fe}.report-stat-card.purple .stat-label{color:#3b0764}.report-stat-card.purple .stat-value{color:#7c3aed}.stat-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600}.stat-trend.up{color:#059669}.stat-trend.down{color:#dc2626}.reports-charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-6)}.reports-charts-grid.full-width{grid-template-columns:1fr}.report-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:var(--s-4)}.report-chart-card .chart-container{width:100%;height:300px}.report-chart-card h3,.report-chart-card .chart-title{font-size:var(--text-base);font-weight:700;color:var(--text-primary);margin:0}.report-table-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;overflow:hidden}.report-table-card h3,.report-table-card .table-title{font-size:var(--text-base);font-weight:700;color:var(--text-primary);margin:0 0 var(--s-4) 0}.report-table{width:100%;border-collapse:collapse}.report-table th{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.report-table td{padding:12px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-light)}.report-table tbody tr:last-child td{border-bottom:none}.report-table tbody tr:hover{background:var(--hover-bg)}.report-progress-bar{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.report-progress-bar .fill{height:100%;border-radius:3px;background:var(--primary);transition:width .4s ease}.report-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}.report-pill.success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.report-pill.warning{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.report-pill.danger{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border)}.report-pill.muted{background:var(--muted-bg);color:var(--muted-text);border:1px solid var(--muted-border)}.report-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--s-4) 0}.report-pagination button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition)}.report-pagination button:hover:not(.active):not(:disabled){background:var(--hover-bg);border-color:var(--primary-light)}.report-pagination button.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.report-pagination button:disabled{opacity:.4;cursor:not-allowed}.report-radial-grid{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--s-6)}.report-radial-item{display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}.report-radial-item .radial-name{font-size:13px;font-weight:500;color:var(--text-secondary)}.report-radial-item .radial-value{font-size:18px;font-weight:700;color:var(--text-primary)}@media(max-width:1199px){.reports-stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media(max-width:768px){.page-container .reports-content{gap:var(--s-4)}.reports-charts-grid{grid-template-columns:1fr}.reports-stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--s-3)}.reports-filter-bar{flex-direction:column;align-items:stretch}.reports-filter-bar input,.reports-filter-bar select,.reports-filter-bar .form-input,.reports-filter-bar .form-select{min-width:0;width:100%}.report-filter-field{flex-basis:auto;width:100%}.report-stat-card .stat-value{font-size:24px}.report-stat-card{padding:var(--s-4)}.report-table-card{padding:var(--s-4);overflow-x:auto}.report-table{min-width:500px}.report-chart-card{padding:var(--s-4)}.report-chart-card .chart-container{height:220px}}.statistika-page{--statistika-accent: #7c3aed}.statistika-toolbar{justify-content:space-between;margin-bottom:var(--s-4)}.statistika-range-group{display:flex;flex-wrap:wrap;gap:8px}.statistika-range-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer;transition:all var(--transition)}.statistika-range-btn:hover,.statistika-range-btn.active{border-color:var(--statistika-accent);background:#7c3aed1a;color:var(--statistika-accent)}.statistika-refresh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.spin{animation:statistika-spin .9s linear infinite}@keyframes statistika-spin{to{transform:rotate(360deg)}}.statistika-command-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:var(--s-4)}.statistika-command-item{display:flex;align-items:center;gap:10px;min-width:0;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#7c3aed14,#ffffffe6);color:var(--text-secondary)}.statistika-command-item svg{color:var(--statistika-accent);flex:0 0 auto}.statistika-command-item strong{color:var(--text-primary);font-size:18px;white-space:nowrap}.statistika-command-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.statistika-command-item.online{background:linear-gradient(135deg,#10b9811f,#ffffffe6)}.statistika-command-item.online svg{color:#059669}.statistika-command-item.danger{background:linear-gradient(135deg,#ef44441f,#ffffffe6)}.statistika-command-item.danger svg{color:#dc2626}.statistika-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;margin-bottom:var(--s-4);scrollbar-width:thin}.statistika-tabs button{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);padding:10px 14px;font-weight:700;cursor:pointer;transition:all var(--transition)}.statistika-tabs button:hover,.statistika-tabs button.active{border-color:var(--statistika-accent);background:var(--statistika-accent);color:#fff;box-shadow:0 10px 24px #7c3aed33}.statistika-content{gap:var(--s-6)}.statistika-stat-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.statistika-stat-card-header svg{opacity:.75}.statistika-stat-meta{color:var(--text-secondary);font-size:13px;line-height:1.35}.statistika-section-card{min-width:0}.statistika-live-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.statistika-live-strip>div{display:grid;gap:4px;padding:18px;border-radius:16px;border:1px solid #c4b5fd;background:#f5f3ff}.statistika-live-strip strong{font-size:28px;color:#7c3aed}.statistika-live-strip span{color:#5b21b6;font-weight:700}.statistika-alert-list{display:flex;flex-direction:column;gap:10px}.statistika-alert{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:12px;border:1px solid var(--border)}.statistika-alert strong,.statistika-alert span{display:block}.statistika-alert strong{color:var(--text-primary);margin-bottom:2px}.statistika-alert span{color:var(--text-secondary);font-size:13px}.statistika-alert.info{background:#eff6ff;border-color:#bfdbfe}.statistika-alert.info svg{color:#2563eb}.statistika-alert.warning{background:#fff7ed;border-color:#fed7aa}.statistika-alert.warning svg{color:#ea580c}.statistika-alert.danger{background:#fef2f2;border-color:#fecaca}.statistika-alert.danger svg{color:#dc2626}.statistika-table-scroll{overflow-x:auto}.statistika-table{min-width:560px}.statistika-table td{vertical-align:top}.statistika-empty-state{min-height:120px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:14px;color:var(--text-muted)}.statistika-error-card{display:inline-flex;align-items:center;gap:10px;color:#dc2626;background:#fef2f2;border-color:#fecaca}@media(max-width:1100px){.statistika-command-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:768px){.statistika-toolbar{align-items:stretch}.statistika-range-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.statistika-range-btn,.statistika-refresh-btn{width:100%}.statistika-command-strip{grid-template-columns:1fr}.statistika-tabs{margin-left:calc(var(--s-4) * -1);margin-right:calc(var(--s-4) * -1);padding-left:var(--s-4);padding-right:var(--s-4)}.statistika-live-strip{grid-template-columns:1fr}}.contract-standalone-screen{min-height:100vh;padding:24px 16px 40px;background:linear-gradient(180deg,#f8fafc,#eef2ff)}.contract-print-page{width:min(210mm,100%);margin:0 auto;padding:0;display:flex;flex-direction:column;align-items:center;gap:14px}.contract-print-toolbar{width:100%;max-width:none;display:flex;justify-content:space-between;gap:10px}.contract-a4-sheet{width:100%;min-height:297mm;background:#fff;color:#111827;box-shadow:0 18px 40px #0f172a24;border:1px solid #cbd5e1;border-radius:4px;padding:12mm 11mm 10mm;box-sizing:border-box;display:flex;flex-direction:column;gap:9px}.contract-header{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(210px,1fr) minmax(0,.75fr);align-items:start;gap:12px;border-bottom:2px solid #111827;padding-bottom:10px}.contract-brand{display:flex;align-items:center;gap:10px;min-width:0}.contract-brand-mark{width:58px;height:58px;border-radius:16px;overflow:hidden;flex:0 0 auto;border:1px solid #dbe3f1;background:linear-gradient(135deg,#eef4ff,#dbeafe);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #fffc}.contract-brand-mark img{width:100%;height:100%;object-fit:cover}.contract-brand-fallback{font-size:20px;font-weight:800;letter-spacing:.1em;color:#1d4ed8}.contract-brand-copy{min-width:0;display:grid;gap:2px}.contract-brand-label{font-size:10px;text-transform:none;letter-spacing:.18em;color:#64748b}.contract-brand-copy h2{margin:0;font-size:18px;line-height:1.15}.contract-brand-copy p{margin:0;font-size:12px;color:#475569}.contract-brand-copy strong{color:#0f172a}.contract-title-block{text-align:center;display:grid;gap:2px}.contract-title-overline{font-size:10px;text-transform:none;letter-spacing:.18em;color:#64748b}.contract-title-block h1{margin:0;font-size:28px;font-weight:800;letter-spacing:.16em}.contract-title-block p{margin:0;font-size:12px;font-weight:600;color:#334155}.contract-header-meta{display:grid;gap:6px}.contract-document-meta{display:grid;gap:4px;justify-self:end;min-width:150px;padding-top:4px;font-size:12px;line-height:1.35;color:#0f172a}.contract-document-meta p{margin:0;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #cbd5e1;padding-bottom:2px}.contract-document-meta span{color:#475569}.contract-document-meta strong{font-weight:700;text-align:right}.contract-meta-pill{padding:8px 10px;border-radius:12px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fbfdff,#f8fafc);display:grid;gap:2px}.contract-meta-pill span{font-size:10px;text-transform:none;letter-spacing:.12em;color:#64748b}.contract-meta-pill strong{font-size:13px;color:#0f172a}.contract-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.contract-summary-item{padding:8px 10px;border-radius:12px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;gap:3px}.contract-summary-item span{font-size:10px;text-transform:none;letter-spacing:.12em;color:#64748b}.contract-summary-item strong{font-size:12.5px;line-height:1.3;color:#0f172a;word-break:break-word}.contract-compact-section{display:grid;gap:8px}.contract-summary-item--span-2{grid-column:span 2}.contract-panel,.contract-section{padding:9px 10px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 1px 2px #0f172a08;page-break-inside:avoid}.contract-panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.contract-panel-index{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}.contract-panel-header h2{margin:0;font-size:13px;letter-spacing:.04em;text-transform:none}.contract-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}.contract-field{display:grid;gap:1px;min-width:0}.contract-field span{font-size:10px;text-transform:none;letter-spacing:.08em;color:#64748b}.contract-field strong{font-size:12px;line-height:1.35;font-weight:600;color:#0f172a;word-break:break-word}.contract-rules-list{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14px;line-height:1.5}.contract-rules-html{font-size:11.25px;line-height:1.4;color:#0f172a}.contract-rules-html p{margin:0 0 6px}.contract-rules-html h1,.contract-rules-html h2,.contract-rules-html h3{margin:0 0 8px;color:#0f172a;line-height:1.25}.contract-rules-html h1{font-size:16px}.contract-rules-html h2{font-size:14px}.contract-rules-html h3{font-size:12.5px}.contract-rules-html ul,.contract-rules-html ol{margin:0 0 6px;padding-left:16px}.contract-rules-html li{margin:0 0 3px}.contract-rules-html a{color:#2563eb;text-decoration:underline}.contract-rules-html blockquote{margin:0 0 8px;padding:8px 10px;border-left:3px solid #bfdbfe;background:#f8fbff;color:#334155}.contract-rules-html .ql-align-center{text-align:center}.contract-rules-html .ql-align-right{text-align:right}.contract-rules-html .ql-align-justify{text-align:justify}.contract-rules-html .ql-size-small{font-size:.875em}.contract-rules-html .ql-size-large{font-size:1.35em}.contract-rules-html .ql-size-huge{font-size:1.75em}.contract-editor-modal-body{display:grid;gap:10px}.contract-editor-quill .ql-toolbar{border-top-left-radius:10px;border-top-right-radius:10px}.contract-editor-quill .ql-editor{min-height:240px;font-size:14px}.contract-editor-quill .ql-container{min-height:300px;border-bottom-left-radius:10px;border-bottom-right-radius:10px}.contract-empty-rules{margin:0;font-size:11.5px;color:#64748b}.contract-signatures{margin-top:auto;padding-top:10px;border-top:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;page-break-inside:avoid}.contract-sign-block{display:grid;gap:6px;font-size:11px;color:#475569}.contract-sign-line{width:100%;border-bottom:1px solid #0f172a;height:28px}.contract-print-page--compact .contract-a4-sheet{padding:9mm 9mm 8mm;gap:7px}.contract-print-page--compact .contract-header{gap:10px;padding-bottom:8px}.contract-print-page--compact .contract-brand-mark{width:50px;height:50px;border-radius:14px}.contract-print-page--compact .contract-brand-copy h2{font-size:16px}.contract-print-page--compact .contract-brand-copy p,.contract-print-page--compact .contract-title-block p,.contract-print-page--compact .contract-meta-pill strong,.contract-print-page--compact .contract-summary-item strong,.contract-print-page--compact .contract-rules-html,.contract-print-page--compact .contract-sign-block{font-size:11px}.contract-print-page--compact .contract-title-block h1{font-size:24px}.contract-print-page--compact .contract-summary-strip{gap:6px}.contract-print-page--compact .contract-summary-item,.contract-print-page--compact .contract-panel,.contract-print-page--compact .contract-section{padding:7px 8px}.contract-print-page--compact .contract-summary-item span,.contract-print-page--compact .contract-brand-label,.contract-print-page--compact .contract-title-overline,.contract-print-page--compact .contract-meta-pill span,.contract-print-page--compact .contract-panel-header h2,.contract-print-page--compact .contract-panel-index{font-size:9px}.contract-print-page--compact .contract-panel-header{margin-bottom:6px}.contract-print-page--compact .contract-panel-index{width:22px;height:22px}.contract-print-page--compact .contract-rules-html{line-height:1.3}.contract-print-page--compact .contract-rules-html p,.contract-print-page--compact .contract-rules-html ul,.contract-print-page--compact .contract-rules-html ol,.contract-print-page--compact .contract-rules-html blockquote{margin-bottom:4px}.contract-print-page--compact .contract-rules-html ul,.contract-print-page--compact .contract-rules-html ol{padding-left:14px}.contract-print-page--compact .contract-signatures{padding-top:8px;gap:12px}.contract-print-page--compact .contract-sign-line{height:20px}@media screen and (max-width:900px){.contract-a4-sheet,.contract-print-toolbar{width:100%}.contract-header,.contract-summary-strip,.contract-grid,.contract-signatures{grid-template-columns:1fr}.contract-summary-item--span-2{grid-column:span 1}.contract-header,.contract-title-block{text-align:left}}@media print{@page{size:A4;margin:0}html,body{margin:0!important;padding:0!important;width:210mm;min-height:297mm;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body{overflow:visible!important}.no-print,.header,.sidebar,.main-content>.header{display:none!important}body>*{visibility:hidden}.contract-standalone-screen,.contract-standalone-screen *{visibility:visible}.contract-standalone-screen{position:absolute;top:0;right:0;bottom:0;left:0;min-height:auto!important}.app-layout,.main-content,.page-content,.contract-standalone-screen,.contract-print-page{display:block!important;margin:0!important;padding:0!important;background:#fff!important}.contract-print-page{width:210mm!important;margin:0 auto!important;gap:0!important;display:block!important}.contract-a4-sheet,.contract-panel,.contract-section,.contract-summary-item,.contract-meta-pill{box-shadow:none!important}.contract-a4-sheet{width:210mm!important;min-height:297mm!important;margin:0!important;padding:12mm 11mm 10mm!important;box-shadow:none!important;background:linear-gradient(180deg,#fff,#fcfdff)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.contract-header{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(180px,1fr) minmax(0,.9fr)!important;align-items:center!important;gap:12px!important;text-align:initial!important}.contract-title-block{text-align:center!important}.contract-summary-strip{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}.contract-summary-item--span-2{grid-column:span 2!important}.contract-signatures{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}.contract-header,.contract-summary-strip,.contract-compact-section,.contract-signatures{break-inside:avoid-page;page-break-inside:avoid}.contract-section--rules,.contract-section--rules .contract-rules-html,.contract-section--rules .contract-rules-html>*{break-inside:auto!important;page-break-inside:auto!important}}.profile-role{font-size:13px;color:var(--text-muted);text-transform:capitalize}.chart-container{width:100%;height:300px}.warning-list{display:flex;flex-direction:column;gap:8px}.warning-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-sm);font-size:14px}.warning-item.debt{background:var(--danger-bg);border:1px solid rgba(239,68,68,.2)}.warning-item.lesson{background:var(--warning-bg);border:1px solid rgba(245,158,11,.2)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}.pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px}.weekday-picker{display:flex;gap:6px}.weekday-btn{width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition);font-family:var(--font-body)}.weekday-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pipeline-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.pipeline-btn{padding:6px 14px;border-radius:99px;font-size:14px;font-weight:500;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);font-family:var(--font-body)}.pipeline-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pipeline-btn:hover:not(.active){background:var(--hover-bg)}@media(max-width:768px){.sidebar{transform:translate(calc(-100% - 20px));background:linear-gradient(180deg,var(--bg-sidebar) 0%,var(--bg) 100%)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-xl)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:90}.sidebar-overlay.open{display:block;animation:fadeIn .2s ease}.main-content{margin-left:0}.hamburger{display:flex;align-items:center;justify-content:center}.header{padding:0 20px;height:64px}.header-title{font-size:18px}.page-content{padding:20px}.stats-grid{grid-template-columns:1fr;gap:16px}.grid-2,.grid-3,.grid-4,.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.toolbar{flex-direction:column;align-items:stretch;width:100%}.modal{max-height:95vh;margin:16px;width:calc(100% - 32px)}.login-card{padding:28px 20px;margin:16px}}@media(max-width:480px){.attendance-row{flex-direction:column;gap:8px;align-items:stretch}.attendance-actions{justify-content:stretch}.attendance-btn{flex:1;text-align:center}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.text-center{text-align:center}.text-right{text-align:right}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)!important}.text-white{color:var(--on-primary)!important}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.gap-1{gap:8px}.gap-2{gap:16px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.w-full{width:100%}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn-icon{width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition)}.btn-icon:hover{background:var(--hover-bg);color:var(--text-primary)}.btn-sm{padding:6px 12px;font-size:var(--text-sm)}.form-checkbox{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition)}.form-checkbox:has(input:checked){background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.form-checkbox input[type=checkbox]{margin:0}.actions-row{display:flex;align-items:center;gap:6px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:99px;background:var(--primary-bg);color:var(--primary);font-size:14px;font-weight:600;margin-left:8px;vertical-align:middle}.btn[title]{position:relative}.btn[title]:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 10px;border-radius:6px;background:var(--text-primary);color:var(--bg-card);font-size:13px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:200;opacity:0;animation:tooltipIn .15s ease forwards}.btn-danger{background:var(--danger);color:var(--on-danger)!important;border-color:var(--danger)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 86%,black 14%);border-color:color-mix(in srgb,var(--danger) 86%,black 14%)}@keyframes tooltipIn{to{opacity:1}}.modern-list{display:flex;flex-direction:column;gap:16px}.modern-list-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:20px 28px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition);cursor:pointer}.modern-list-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary-light)}.modern-list-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--bg-tertiary, #f0f4f8);border:2px solid var(--border-light);box-shadow:var(--shadow-sm)}.modern-list-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;align-items:center}.modern-list-info{display:flex;flex-direction:column;gap:4px}.modern-list-name{font-family:var(--font-heading);font-size:19px;font-weight:700;color:var(--text-primary)}.modern-list-badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.modern-list-actions{display:flex;gap:10px}@media(max-width:768px){.modern-list-item{grid-template-columns:1fr;padding:24px;gap:16px;text-align:center}.modern-list-avatar{margin:0 auto;width:80px;height:80px}.modern-list-content{grid-template-columns:1fr;gap:16px}.modern-list-badge-row{justify-content:center}.modern-list-actions{justify-content:center;border-top:1px solid var(--border-light);padding-top:16px;width:100%}}.card-2025{background:var(--bg-card);border-radius:20px;box-shadow:0 4px 20px -5px #0000000d,inset 0 1px #ffffffb3;border:1px solid var(--border);transition:all .3s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}[data-theme=dark] .card-2025{background:var(--bg-card);border-color:var(--border);box-shadow:0 10px 40px -10px #0000004d,inset 0 1px #ffffff0d}.card-2025:hover{transform:translateY(-4px);box-shadow:0 12px 30px -8px #0000001a,inset 0 1px #ffffffb3;border-color:#6366f180}[data-theme=dark] .card-2025:hover{box-shadow:0 20px 50px -10px #0006,inset 0 1px #ffffff1a;border-color:#6366f166}.glass-icon-wrapper{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f11a,#6366f105);border:1px solid rgba(99,102,241,.2);box-shadow:inset 0 1px #ffffff80,0 4px 10px -2px #6366f126;color:var(--primary);flex-shrink:0}[data-theme=dark] .glass-icon-wrapper{background:linear-gradient(135deg,#6366f133,#6366f10d);box-shadow:inset 0 1px #ffffff1a,0 4px 10px -2px #6366f14d}.floating-filters{position:sticky;top:60px;z-index:40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border-radius:16px;border:1px solid var(--border);box-shadow:0 8px 30px -10px #0000000f;padding:16px;margin-bottom:24px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}[data-theme=dark] .floating-filters{background:#141622bf}.floating-filters .form-input,.floating-filters .form-select{border-radius:12px;background:var(--bg-card);box-shadow:inset 0 1px 2px #00000005}.capacity-progress-bg{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:6px;position:relative;box-shadow:inset 0 1px 2px #0000000d}.capacity-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-light),var(--primary));border-radius:3px;transition:width .5s ease-out}.capacity-progress-fill.full{background:linear-gradient(90deg,var(--warning),var(--danger))}.floating-actions-group{opacity:0;transform:translate(10px);transition:all .2s ease;display:flex;gap:4px}.card-2025:hover .floating-actions-group{opacity:1;transform:translate(0)}@media(max-width:768px){.floating-actions-group{opacity:1;transform:none}}.subjects-alert{margin:0 16px 12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(239,68,68,.25);background:#ef444414;color:#b91c1c;font-weight:500;font-size:14px}.subjects-mobile-list{display:none}.subjects-overview-card{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.16);background:radial-gradient(circle at top right,rgba(168,85,247,.12),transparent 24%),radial-gradient(circle at left center,rgba(59,130,246,.08),transparent 18%),linear-gradient(180deg,#fffffffc,#f8fafcf5)}.subjects-overview-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.34),transparent 34%,transparent 68%,rgba(255,255,255,.12))}.subjects-overview-card>*{position:relative;z-index:1}.subjects-table .subjects-table__row td{vertical-align:middle}.subjects-name-cell{display:flex;align-items:center;gap:14px;min-width:220px}.subjects-avatar{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;color:#fff;background:var(--subject-gradient, linear-gradient(135deg, #6366f1, #ec4899));box-shadow:0 16px 28px color-mix(in srgb,var(--subject-accent, #6366f1),transparent 74%)}.subjects-avatar:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.28),transparent 60%)}.subjects-avatar svg{position:relative;z-index:1}.subjects-name-title,.subjects-mobile-card__title{font-size:15px;font-weight:700;color:#0f172a}.subjects-description-cell,.subjects-mobile-card__desc{font-size:13px;line-height:1.55;color:#64748b}.subjects-description-cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:46ch}.subjects-mobile-card--enhanced{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--subject-border, rgba(129, 140, 248, .24));background:var(--subject-soft, linear-gradient(135deg, rgba(99, 102, 241, .08), rgba(236, 72, 153, .12)));box-shadow:0 18px 34px #0f172a0f}.subjects-mobile-card--enhanced:before{content:"";position:absolute;right:-26px;bottom:-34px;width:120px;height:120px;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--subject-accent, #6366f1),transparent 76%),transparent 70%)}.subjects-mobile-card__identity{display:flex;align-items:center;gap:12px;min-width:0}.subjects-mobile-card__title{font-size:16px}.subjects-mobile-card__desc{margin-bottom:12px}.subjects-mobile-card--enhanced .subjects-mobile-actions{padding-top:12px;border-top:1px solid rgba(255,255,255,.44)}.subjects-mobile-card{border:1px solid var(--border);border-radius:16px;background:var(--bg-card);padding:14px;box-shadow:var(--shadow-sm)}.subjects-mobile-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.subjects-mobile-desc{font-size:14px;line-height:1.5;margin-bottom:12px}.subjects-mobile-actions{display:flex;gap:8px}.subjects-mobile-actions .btn{flex:1;justify-content:center}@media(max-width:768px){.subjects-table-desktop{display:none}.subjects-name-cell{min-width:0}.subjects-mobile-list{display:grid;gap:10px;padding:12px}}[data-theme=dark] .subjects-overview-card{border-color:#94a3b829;background:radial-gradient(circle at top right,rgba(168,85,247,.16),transparent 24%),radial-gradient(circle at left center,rgba(59,130,246,.12),transparent 18%),linear-gradient(180deg,#0f172aeb,#0f172ad6)}[data-theme=dark] .subjects-name-title,[data-theme=dark] .subjects-mobile-card__title{color:#e2e8f0}[data-theme=dark] .subjects-description-cell,[data-theme=dark] .subjects-mobile-card__desc{color:#94a3b8}[data-theme=dark] .subjects-mobile-card--enhanced{box-shadow:0 18px 34px #02061757}[data-theme=dark] .subjects-mobile-card--enhanced .subjects-mobile-actions{border-top-color:#94a3b829}.teachers-list-item{border-radius:18px}.teachers-actions{flex-wrap:wrap}@media(max-width:768px){.teachers-list-item{padding:14px;gap:12px;border-radius:16px}.teachers-list-item .modern-list-content{gap:10px;text-align:left}.teachers-list-item .modern-list-name{font-size:17px}.teachers-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--border-light);padding-top:10px}.teachers-actions .btn{width:100%;justify-content:center;min-height:40px}}@media(max-width:420px){.teachers-actions{grid-template-columns:1fr}}@media(max-width:768px){.classes-grid{grid-template-columns:1fr!important;gap:10px!important}.classes-card{border-radius:14px!important;padding:10px!important}.classes-card-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:6px!important}.classes-card-actions .btn{min-height:36px;font-size:.8rem!important;padding:6px!important}.classes-schedule-row{flex-wrap:wrap;gap:8px!important}.classes-schedule-row>div:first-child{width:100%!important}.classes-schedule-row .form-input{flex:1;min-width:120px}}@media(max-width:420px){.classes-card-actions{grid-template-columns:1fr}}.packages-overview-card{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.16);background:radial-gradient(circle at top right,rgba(129,140,248,.12),transparent 24%),radial-gradient(circle at left center,rgba(6,182,212,.08),transparent 18%),linear-gradient(180deg,#fffffffc,#f8fafcf5)}.packages-overview-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.34),transparent 34%,transparent 68%,rgba(255,255,255,.12))}.packages-overview-card>*{position:relative;z-index:1}.packages-table .packages-table__row td{vertical-align:middle}.packages-name-cell{display:flex;align-items:center;gap:14px;min-width:240px}.packages-avatar{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;color:#fff;background:var(--package-gradient, linear-gradient(135deg, #6366f1, #ec4899));box-shadow:0 16px 28px color-mix(in srgb,var(--package-accent, #6366f1),transparent 74%)}.packages-avatar:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.28),transparent 60%)}.packages-avatar svg{position:relative;z-index:1}.packages-name-copy{min-width:0}.packages-name-title,.packages-mobile-card__title{font-size:15px;font-weight:700;color:#0f172a}.packages-inline-chip-row{display:flex;flex-wrap:wrap;gap:8px}.packages-inline-chip,.packages-metric-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.packages-inline-chip{color:var(--package-accent, #4f46e5);border:1px solid color-mix(in srgb,var(--package-accent, #6366f1),transparent 74%);background:color-mix(in srgb,var(--package-accent, #6366f1),transparent 91%)}.packages-inline-chip--muted{color:#475569;border-color:#94a3b838;background:#94a3b81a}.packages-metric-pill{justify-content:center;border:1px solid rgba(148,163,184,.18);background:#f8fafce0;color:#0f172a}.packages-metric-pill svg{flex-shrink:0}.packages-metric-pill--lessons{color:#4338ca;border-color:#818cf83d;background:linear-gradient(135deg,#eef2ffeb,#f5f3fffa)}.packages-metric-pill--price{color:#047857;border-color:#10b9813d;background:linear-gradient(135deg,#ecfdf5eb,#f0fdfafa)}.packages-metric-pill--duration{color:#b45309;border-color:#f59e0b3d;background:linear-gradient(135deg,#fff7edf0,#fffbebfa)}.packages-mobile-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--package-border, rgba(129, 140, 248, .24));background:var(--package-soft, linear-gradient(135deg, rgba(99, 102, 241, .08), rgba(236, 72, 153, .12)));box-shadow:0 18px 34px #0f172a0f}.packages-mobile-card:before{content:"";position:absolute;right:-26px;bottom:-34px;width:120px;height:120px;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--package-accent, #6366f1),transparent 76%),transparent 70%)}.packages-mobile-card .packages-avatar{width:46px;height:46px;border-radius:16px}.packages-mobile-card__identity{display:flex;align-items:center;gap:12px;min-width:0}.packages-mobile-card__meta{min-width:0}.packages-mobile-card__title{font-size:16px}.packages-mobile-card__metrics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.packages-mobile-card .subjects-mobile-actions{padding-top:12px;border-top:1px solid rgba(255,255,255,.44)}.packages-mobile-list{display:none}@media(max-width:768px){.packages-table-desktop{display:none}.packages-mobile-list{display:grid;gap:10px;padding:12px}.packages-name-cell{min-width:0}.packages-mobile-card__metrics .packages-metric-pill{width:calc(50% - 4px)}.packages-mobile-card__metrics .packages-metric-pill--price{width:100%}}@media(max-width:420px){.packages-mobile-card .subjects-mobile-actions{display:grid;grid-template-columns:1fr}.packages-mobile-card__metrics .packages-metric-pill{width:100%}}[data-theme=dark] .packages-overview-card{border-color:#94a3b829;background:radial-gradient(circle at top right,rgba(99,102,241,.16),transparent 24%),radial-gradient(circle at left center,rgba(6,182,212,.12),transparent 18%),linear-gradient(180deg,#0f172aeb,#0f172ad6)}[data-theme=dark] .packages-name-title,[data-theme=dark] .packages-mobile-card__title{color:#e2e8f0}[data-theme=dark] .packages-inline-chip--muted{color:#cbd5e1;border-color:#94a3b82e;background:#94a3b81f}[data-theme=dark] .packages-metric-pill{color:#e2e8f0;border-color:#94a3b82e;background:#0f172a9e}[data-theme=dark] .packages-metric-pill--lessons{color:#c4b5fd}[data-theme=dark] .packages-metric-pill--price{color:#6ee7b7}[data-theme=dark] .packages-metric-pill--duration{color:#fbbf24}[data-theme=dark] .packages-mobile-card{box-shadow:0 18px 34px #02061757}[data-theme=dark] .packages-mobile-card .subjects-mobile-actions{border-top-color:#94a3b829}@media(min-width:769px)and (max-width:1366px),(min-width:769px)and (max-height:800px){.subjects-mobile-list,.packages-mobile-list{gap:8px;padding:10px}.subjects-mobile-card,.subjects-mobile-card--enhanced,.packages-mobile-card{border-radius:14px;padding:12px}.subjects-mobile-card__title,.packages-mobile-card__title,.subjects-name-title,.packages-name-title,.teachers-list-item .modern-list-name{font-size:14px}.subjects-mobile-card__desc,.subjects-description-cell,.teachers-list-item .modern-list-sub{font-size:12px;line-height:1.4}.packages-inline-chip,.packages-metric-pill,.subjects-mobile-actions .btn,.teachers-actions .btn{min-height:34px;font-size:12px}}.enrollments-list-item{border-radius:18px}.enrollments-actions{flex-wrap:wrap}.enrollments-drawer-content,.side-drawer .tab-content{margin:0 24px;width:calc(100% - 48px);max-width:100%;box-sizing:border-box}.side-drawer .table-wrapper-sm{width:100%;overflow-x:auto;min-width:0}.side-drawer .data-table{width:100%;min-width:0;border-collapse:collapse}.side-drawer .data-table th,.side-drawer .data-table td{padding:10px 12px;text-align:left;white-space:nowrap}.side-drawer .data-table th:first-child,.side-drawer .data-table td:first-child{padding-left:0}.side-drawer .data-table th:last-child,.side-drawer .data-table td:last-child{padding-right:0}.side-drawer .mb-6{margin-bottom:24px}.side-drawer .mb-3{margin-bottom:12px}.side-drawer h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.side-drawer .flex{display:flex}.side-drawer .items-center{align-items:center}.side-drawer .gap-2{gap:8px}@media(max-width:768px){.enrollments-list-item{padding:14px;gap:12px;border-radius:16px}.enrollments-list-item .modern-list-content{grid-template-columns:1fr;gap:10px}.enrollments-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--border-light);padding-top:10px}.enrollments-actions .btn{width:100%;min-height:40px;justify-content:center;font-size:.84rem}.enrollments-actions .btn svg{width:14px;height:14px}.enrollments-drawer-content,.side-drawer .tab-content{margin:0 20px;width:calc(100% - 40px)}.side-drawer .data-table th,.side-drawer .data-table td{padding:8px 10px;font-size:.875rem}}@media(max-width:420px){.enrollments-actions{grid-template-columns:1fr}.enrollments-drawer-content,.side-drawer .tab-content{margin:0 16px;width:calc(100% - 32px)}.side-drawer .data-table th,.side-drawer .data-table td{padding:6px 8px;font-size:.8rem}}@media(max-width:768px){.hierarchy-page-v2 .page-header-premium{flex-direction:column;align-items:flex-start;gap:10px}.hierarchy-page-v2 .header-actions{width:100%;display:grid!important;grid-template-columns:1fr;gap:8px}.hierarchy-page-v2 .main-layout{display:block!important}.hierarchy-page-v2 .subject-sidebar{width:100%!important;margin-bottom:10px;max-height:220px;overflow:auto}.hierarchy-page-v2 .levels-grid{grid-template-columns:1fr!important;gap:10px!important}.hierarchy-page-v2 .level-card,.hierarchy-page-v2 .unit-card,.hierarchy-page-v2 .topic-item{border-radius:14px!important}.ai-modal-container{width:calc(100% - 16px)!important;margin:8px!important;max-height:94vh!important;border-radius:14px!important}}@media(max-width:768px){.ai-modal-overlay{align-items:center!important;padding:10px!important}.ai-modal-container{width:100%!important;max-width:100%!important;max-height:92vh!important;border-radius:16px!important;margin:0!important}.side-drawer{width:100%!important;max-width:100%!important;border-radius:16px 16px 0 0}.side-drawer .drawer-header{padding:12px 14px!important}.side-drawer .drawer-body{padding:14px 0!important}.side-drawer .drawer-info-bar,.side-drawer .drawer-section>.description-content,.side-drawer .drawer-section>.resources-grid,.side-drawer .drawer-section>h3:not(.discussion-section-wrapper h3){margin:0 14px!important}}.teacher-payouts-mobile-list{display:none}@media(max-width:768px){.teacher-payouts-table-desktop{display:none}.teacher-payouts-mobile-list{display:grid;gap:10px}}.teachers-table th{position:sticky;top:0;background:var(--table-header-bg);z-index:10;box-shadow:0 2px 4px #0000000a}.teachers-table td{vertical-align:middle}.teachers-table tbody tr{cursor:pointer;transition:all .15s ease}.teachers-table tbody tr:nth-child(2n){background:#fafbfd}[data-theme=dark] .teachers-table tbody tr:nth-child(2n){background:#ffffff04}.teachers-table tbody tr:hover{background:#f4f5fa}[data-theme=dark] .teachers-table tbody tr:hover{background:#6c63ff0a}.action-dropdown-container{position:relative;display:inline-block}.action-dropdown-trigger{width:36px;height:36px;padding:0;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center}.action-dropdown-trigger:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.action-dropdown-trigger:focus{outline:none;box-shadow:0 0 0 3px var(--primary-bg)}.action-dropdown-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000001f;padding:6px;z-index:1000;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.action-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;color:var(--text-primary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s ease;border-radius:var(--radius-sm);text-align:left}.action-dropdown-item:hover{background:var(--hover-bg)}.action-dropdown-item-default:hover{background:var(--primary-bg);color:var(--primary)}.action-dropdown-item-danger{color:var(--danger)}.action-dropdown-item-danger:hover{background:var(--danger-bg)}.action-dropdown-item-success{color:var(--success)}.action-dropdown-item-success:hover{background:var(--success-bg)}.action-dropdown-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.action-dropdown-label{flex:1;white-space:nowrap}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-card);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.pagination-info{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.pagination{display:flex;gap:6px;align-items:center}.pagination-btn{min-width:36px;height:36px;padding:0 12px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled){background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}@media(max-width:1024px){.teachers-table th:nth-child(3),.teachers-table td:nth-child(3){display:none}}@media(max-width:768px){.pagination-container{flex-direction:column;gap:12px;padding:12px 16px}.pagination-info{text-align:center;font-size:12px}.pagination{width:100%;justify-content:center}.pagination-btn{min-width:32px;height:32px;padding:0 8px;font-size:12px}.teachers-table th,.teachers-table td{padding:10px 12px}.teachers-table th:nth-child(5),.teachers-table td:nth-child(5),.teachers-table th:nth-child(4),.teachers-table td:nth-child(4){display:none}.teachers-table td:first-child img{width:32px;height:32px}.action-dropdown-menu{right:-10px}}@media(max-width:480px){.teachers-table th:nth-child(2),.teachers-table td:nth-child(2){display:none}.action-dropdown-trigger{width:32px;height:32px}.action-dropdown-menu{min-width:160px}.action-dropdown-item{padding:8px 10px;font-size:13px}.pagination-btn:first-child,.pagination-btn:last-child{padding:0 16px}}
