.ai-status-led{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border-radius:var(--radius-md, 8px);font-size:.75rem;font-weight:600;line-height:1;background:var(--color-surface, #fff);color:var(--color-neutral-800, #1f2937);border:1px solid var(--color-border, #e5e7eb);-webkit-user-select:none;user-select:none}.ai-status-led__dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;flex-shrink:0}.ai-status-led__label{letter-spacing:.04em;text-transform:uppercase;color:inherit}.ai-status-led--connected{color:#0f5132;background:#d1e7dd;border-color:#a3cfbb}.ai-status-led--connected .ai-status-led__dot{background:#198754;box-shadow:0 0 6px 1px #19875473}.ai-status-led--checking{color:#664d03;background:#fff3cd;border-color:#ffecb5}.ai-status-led--checking .ai-status-led__dot{background:#ffc107;animation:ai-status-pulse 1.4s ease-in-out infinite}.ai-status-led--down{color:#842029;background:#f8d7da;border-color:#f5c2c7}.ai-status-led--down .ai-status-led__dot{background:#dc3545;animation:ai-status-pulse 1s ease-in-out infinite}@keyframes ai-status-pulse{0%,to{opacity:1;box-shadow:0 0 0 0 currentColor}50%{opacity:.55;box-shadow:0 0 8px 2px currentColor}}@media (prefers-reduced-motion: reduce){.ai-status-led__dot{animation:none!important}}.sidebar-collapsed .ai-status-led{padding:.35rem;background:transparent;border-color:transparent}.sidebar-collapsed .ai-status-led__label{display:none}.login-ai-status .ai-status-led{box-shadow:0 2px 8px #0000002e}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:linear-gradient(180deg,#1e293b,#0f172a);color:var(--color-neutral-100);display:flex;flex-direction:column;transition:transform var(--transition-base);z-index:var(--z-fixed);border-right:1px solid rgba(255,255,255,.06);transform:translate(-100%)}.mobile-menu-open .sidebar{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:1px solid var(--color-neutral-800)}.logo{display:flex;align-items:center;gap:var(--spacing-2);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}.logo-icon{font-size:1.5rem}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;color:var(--color-neutral-300);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.sidebar-toggle:hover{background-color:var(--color-neutral-800);color:var(--color-neutral-100)}.sidebar-toggle svg{width:20px;height:20px}.sidebar-nav{flex:1;padding:var(--spacing-4) var(--spacing-2);display:flex;flex-direction:column;gap:var(--spacing-1);overflow-y:auto}.sidebar-ai-status{padding:var(--spacing-2) var(--spacing-4);border-top:1px solid var(--color-neutral-800);display:flex;justify-content:flex-start;align-items:center}.nav-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);min-height:44px;color:var(--color-neutral-300);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);font-weight:var(--font-weight-medium)}.nav-item:hover{background-color:var(--color-neutral-800);color:var(--color-neutral-100)}.nav-item.active{background-color:var(--color-primary-600);color:#fff}.nav-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-footer{padding:var(--spacing-4);border-top:1px solid var(--color-neutral-800);display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:wrap}.user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--color-primary-600);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0}.user-info{display:flex;flex-direction:column;overflow:hidden}.user-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-neutral-100);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--font-size-xs);color:#cbd5e1}.logout-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--color-neutral-400);cursor:pointer;border-radius:var(--radius-md);margin-left:auto}.logout-btn:hover{background-color:var(--color-neutral-800);color:var(--color-neutral-100)}.logout-btn svg{width:20px;height:20px}.main-content{flex:1;margin-left:0;display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-background-secondary);transition:margin-left var(--transition-base)}.header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:var(--z-sticky)}.header-left{display:flex;align-items:center;gap:var(--spacing-3)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight)}.header-right{display:flex;align-items:center;gap:var(--spacing-2)}.header-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-button:hover{background-color:var(--color-neutral-100);color:var(--color-text-primary)}.header-button svg{width:20px;height:20px}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md)}.mobile-menu-btn svg{width:24px;height:24px}.content{flex:1;padding:var(--spacing-4);overflow-y:auto}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:calc(var(--z-fixed) - 1);opacity:0;transition:opacity var(--transition-base);pointer-events:none}.sidebar-overlay.visible{opacity:1;pointer-events:auto}@media (min-width: 769px){.sidebar{transform:translate(0);transition:width var(--transition-base)}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width)}.sidebar-collapsed .logo-text,.sidebar-collapsed .nav-item span{display:none}.sidebar-collapsed .nav-item{justify-content:center;padding:var(--spacing-3)}.sidebar-collapsed .user-info,.sidebar-collapsed .logout-btn{display:none}.main-content{margin-left:var(--sidebar-width)}.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-width)}.header{padding:var(--spacing-4) var(--spacing-6)}.content{padding:var(--spacing-6)}.sidebar-footer{flex-wrap:nowrap}.mobile-menu-btn,.sidebar-overlay{display:none}}.access-denied-container{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-8)}.access-denied-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--spacing-10);max-width:480px;width:100%;text-align:center}.access-denied-icon{width:80px;height:80px;margin:0 auto var(--spacing-6);background:linear-gradient(135deg,var(--color-error-100),var(--color-error-50));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.access-denied-icon svg{width:40px;height:40px;color:var(--color-error-500)}.access-denied-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-3)}.access-denied-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-8)}.access-denied-actions{display:flex;gap:var(--spacing-4);justify-content:center}.access-denied-btn{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.access-denied-btn.primary{background:var(--color-primary-500);color:#fff}.access-denied-btn.primary:hover{background:var(--color-primary-600);transform:translateY(-1px)}.access-denied-btn.secondary{background:var(--color-neutral-100);color:var(--color-text-primary)}.access-denied-btn.secondary:hover{background:var(--color-neutral-200)}@media (max-width: 480px){.access-denied-actions{flex-direction:column}.access-denied-btn{width:100%}}.spinner{display:inline-flex;align-items:center;justify-content:center}.spinner-small{width:16px;height:16px}.spinner-medium{width:24px;height:24px}.spinner-large{width:48px;height:48px}.spinner-circle{width:100%;height:100%;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-small .spinner-circle{border-width:2px}.spinner-large .spinner-circle{border-width:4px}.loading-overlay{position:relative;min-height:200px}.loading-overlay-content{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#fffc;z-index:10}:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-secondary-50: #f5f3ff;--color-secondary-100: #ede9fe;--color-secondary-200: #ddd6fe;--color-secondary-300: #c4b5fd;--color-secondary-400: #a78bfa;--color-secondary-500: #8b5cf6;--color-secondary-600: #7c3aed;--color-secondary-700: #6d28d9;--color-secondary-800: #5b21b6;--color-secondary-900: #4c1d95;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-300: #fcd34d;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-warning-800: #92400e;--color-warning-900: #78350f;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-neutral-0: #ffffff;--color-neutral-50: #f9fafb;--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-background: #f8fafc;--color-background-secondary: #f1f5f9;--color-background-tertiary: #e2e8f0;--color-surface: var(--color-neutral-0);--color-surface-raised: var(--color-neutral-0);--color-surface-overlay: rgba(0, 0, 0, .5);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-500);--color-text-disabled: var(--color-neutral-400);--color-text-inverse: var(--color-neutral-0);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-border-focus: var(--color-primary-500);--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Fira Code", "JetBrains Mono", Consolas, Monaco, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--radius-none: 0;--radius-sm: .25rem;--radius-base: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-base: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--transition-slower: .5s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--header-height: 64px;--footer-height: 48px;--content-max-width: 1440px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--spacing-xs: var(--spacing-1);--spacing-sm: var(--spacing-2);--spacing-md: var(--spacing-4);--spacing-lg: var(--spacing-6);--spacing-xl: var(--spacing-8);--spacing-2xl: var(--spacing-12);--spacing-3xl: var(--spacing-16);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--color-text-muted: var(--color-text-secondary);--color-primary: var(--color-primary-600);--color-primary-dark: var(--color-primary-800);--color-primary-light: var(--color-primary-100);--color-bg-secondary: var(--color-background-secondary);--color-bg-tertiary: var(--color-background-tertiary);--color-danger: var(--color-error-600);--color-danger-light: var(--color-error-100);--color-success: var(--color-success-600);--color-success-light: var(--color-success-100);--color-warning: var(--color-warning-500);--color-warning-light: var(--color-warning-100)}[data-theme=dark]{--color-background: var(--color-neutral-900);--color-background-secondary: var(--color-neutral-800);--color-background-tertiary: var(--color-neutral-700);--color-surface: var(--color-neutral-800);--color-surface-raised: var(--color-neutral-700);--color-text-primary: var(--color-neutral-50);--color-text-secondary: var(--color-neutral-300);--color-text-tertiary: var(--color-neutral-400);--color-text-disabled: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-900);--color-border: var(--color-neutral-700);--color-border-strong: var(--color-neutral-600)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background)}#root{min-height:100vh;display:flex;flex-direction:column}:focus{outline:none}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background-secondary)}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}::selection{background-color:var(--color-primary-200);color:var(--color-primary-900)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:fixed;top:var(--spacing-2);left:-9999px;z-index:var(--z-toast);padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary-600);color:var(--color-neutral-0);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);text-decoration:none;transition:left var(--transition-fast)}.skip-link:focus,.skip-link:focus-visible{left:var(--spacing-2);outline:2px solid var(--color-neutral-0);outline-offset:2px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container{width:100%;max-width:var(--content-max-width);margin-left:auto;margin-right:auto;padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.page-loader{display:flex;align-items:center;justify-content:center;min-height:400px;width:100%}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%}.placeholder-page{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary);font-size:var(--font-size-lg)}@media (min-width: 768px){.container{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}}@media (min-width: 1024px){.container{padding-left:var(--spacing-8);padding-right:var(--spacing-8)}}:root{--color-on-background: #0f172a;--color-on-surface: #0f172a;--color-on-surface-muted: #334155;--color-on-primary: #ffffff;--color-on-secondary: #ffffff;--color-input-bg: #ffffff;--color-input-fg: #0f172a;--color-input-placeholder: #64748b;--color-input-border: #94a3b8;--color-btn-outline-bg: #ffffff;--color-btn-outline-fg: #0f172a;--color-text-secondary: var(--color-neutral-700, #334155);--color-text-tertiary: var(--color-neutral-600, #475569);--text-secondary: var(--color-text-secondary);--a11y-focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-primary-500, #3b82f6) 35%, transparent);--a11y-min-touch: 44px}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea,select,.classroom-select,.language-select{color:var(--color-input-fg, #0f172a)!important;background-color:var(--color-input-bg, #ffffff)!important;border-color:var(--color-input-border, #94a3b8);caret-color:var(--color-input-fg, #0f172a)}input::placeholder,textarea::placeholder{color:var(--color-input-placeholder, #64748b)!important;opacity:1}label,.input-label,.form-group label{color:var(--color-on-surface, var(--color-text-primary, #0f172a))}.sidebar .user-name{color:#f8fafc}.sidebar .user-role{color:#cbd5e1}:focus-visible{outline:2px solid var(--color-border-focus, var(--color-primary-500, #3b82f6))!important;outline-offset:2px!important}a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{box-shadow:var(--a11y-focus-ring)}.input:focus-visible,.select-trigger:focus-visible,.form-group input:focus-visible,.form-group textarea:focus-visible,.form-group select:focus-visible,.classroom-select:focus-visible,.sd-search-input:focus-visible,.sd-select:focus-visible,.chat-input-area textarea:focus-visible,.message-input-form input:focus-visible,.search-box input:focus-visible,.search-container input:focus-visible,.fill-blank-input:focus-visible,.short-answer-input:focus-visible,.language-select:focus-visible{outline:2px solid var(--color-primary-500, #3b82f6)!important;outline-offset:2px!important}.sidebar-toggle,.mobile-menu-btn,.header-button,.logout-btn,.modal-close{min-width:var(--a11y-min-touch);min-height:var(--a11y-min-touch)}.btn-sm,.btn-xs{min-height:36px;min-width:36px}@media (pointer: coarse){.btn-sm,.btn-xs,.tab-btn,.period-toggle button,.language-btn{min-height:var(--a11y-min-touch)}}#main-content:focus{outline:none}#main-content:focus-visible{outline:2px solid var(--color-primary-500, #3b82f6)!important;outline-offset:4px!important}[role=alert],.login-error{scroll-margin-top:1rem}@media (prefers-reduced-motion: reduce){.btn:active:not(:disabled):not(.btn-loading){transform:none}}@media (prefers-contrast: more){:root{--color-border: var(--color-neutral-500);--color-border-strong: var(--color-neutral-700);--color-text-secondary: var(--color-neutral-800)}:focus-visible{outline-width:3px!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-family-sans, Inter, -apple-system, sans-serif);font-weight:600;line-height:1.25;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap;min-height:44px;padding:.625rem 1.25rem}.btn:focus-visible{outline:2px solid var(--color-primary-500, #3b82f6);outline-offset:2px}.btn:active:not(:disabled):not(.btn-loading){transform:scale(.97)}.btn-disabled,.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-loading{cursor:wait;pointer-events:none}.btn-xs{padding:.25rem .5rem;font-size:.75rem;height:28px;min-height:28px}.btn-sm{padding:var(--spacing-1.5) var(--spacing-3);font-size:var(--font-size-sm);height:32px}.btn-md{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);height:40px}.btn-lg{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base);height:48px}.btn-primary{background-color:var(--color-primary-600);color:var(--color-on-primary, #ffffff);border-color:var(--color-primary-600)}.btn-primary:hover:not(:disabled):not(.btn-loading){background-color:var(--color-primary-700);border-color:var(--color-primary-700);color:var(--color-on-primary, #ffffff)}.btn-secondary{background-color:var(--color-btn-outline-bg, var(--color-surface, #ffffff));color:var(--color-btn-outline-fg, var(--color-on-surface, #0f172a));border-color:var(--color-btn-outline-fg, var(--color-border-strong, #64748b));border-width:2px}.btn-secondary:hover:not(:disabled):not(.btn-loading){background-color:var(--color-background-secondary, #f1f5f9);border-color:var(--color-btn-outline-fg, var(--color-neutral-700));color:var(--color-btn-outline-fg, var(--color-on-surface, #0f172a))}.btn-outline{background-color:var(--color-btn-outline-bg, var(--color-surface, #ffffff));color:var(--color-btn-outline-fg, var(--color-on-surface, #0f172a));border-color:var(--color-btn-outline-fg, var(--color-primary-700, #1d4ed8));border-width:2px}.btn-outline:hover:not(:disabled):not(.btn-loading){background-color:var(--color-primary-50, #eff6ff);color:var(--color-on-surface, #0f172a)}.btn-ghost{background-color:transparent;color:var(--color-on-surface, var(--color-text-primary, #0f172a));border-color:transparent}.btn-ghost:hover:not(:disabled):not(.btn-loading){background-color:var(--color-neutral-100);color:var(--color-on-surface, #0f172a)}.btn-danger{background-color:var(--color-error-600);color:#fff;border-color:var(--color-error-600)}.btn-danger:hover:not(:disabled):not(.btn-loading){background-color:var(--color-error-700);border-color:var(--color-error-700)}.btn-full-width{width:100%}.btn-icon-left,.btn-icon-right{display:inline-flex;align-items:center;justify-content:center}.btn-icon-left svg,.btn-icon-right svg{width:1em;height:1em}.btn-text{display:inline-flex;align-items:center}.btn-spinner{display:inline-flex;align-items:center;justify-content:center}.spinner-icon{width:1em;height:1em;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-icon{padding:var(--spacing-2);width:40px;height:40px}.btn-icon.btn-sm{width:32px;height:32px;padding:var(--spacing-1.5)}.btn-icon.btn-lg{width:48px;height:48px;padding:var(--spacing-3)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}.card-default{background-color:var(--color-surface)}.card-elevated{background-color:var(--color-surface-raised);box-shadow:var(--shadow-base)}.card-outlined{border:1px solid var(--color-border)}.card-padding-none{padding:0}.card-padding-sm{padding:var(--spacing-3)}.card-padding-md{padding:var(--spacing-4)}.card-padding-lg{padding:var(--spacing-6)}.card-header{display:flex;flex-direction:column;gap:var(--spacing-1);padding-bottom:var(--spacing-4)}.card:not(.card-padding-none) .card-header{margin-bottom:var(--spacing-2)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.card-content{flex:1}.card-footer{display:flex;align-items:center;gap:var(--spacing-2);padding-top:var(--spacing-4);margin-top:var(--spacing-4);border-top:1px solid var(--color-border)}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-1.5)}.input-full-width{width:100%}.input-container{position:relative;display:flex;align-items:center}.input{width:100%;font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--color-input-fg, var(--color-on-surface, #0f172a));background-color:var(--color-input-bg, var(--color-surface, #ffffff));border:1px solid var(--color-input-border, var(--color-border-strong, #cbd5e1));border-radius:var(--radius-md);transition:all var(--transition-fast);caret-color:var(--color-input-fg, #0f172a)}.input::placeholder{color:var(--color-input-placeholder, var(--color-text-tertiary, #64748b));opacity:1}.input:hover:not(:disabled):not(:focus){border-color:var(--color-neutral-400)}.input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.input:disabled{background-color:var(--color-background-secondary);color:var(--color-text-disabled);cursor:not-allowed}.input-error .input{border-color:var(--color-error-500)}.input-error .input:focus{box-shadow:0 0 0 3px var(--color-error-100)}.input-focused .input{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.input-sm{padding:var(--spacing-1.5) var(--spacing-2.5);height:32px;font-size:var(--font-size-sm)}.input-md{padding:var(--spacing-2) var(--spacing-3);height:40px;font-size:var(--font-size-sm)}.input-lg{padding:var(--spacing-3) var(--spacing-4);height:48px;font-size:var(--font-size-base)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.input-label:first-letter{text-transform:uppercase}.input-with-left-icon .input{padding-left:var(--spacing-10)}.input-with-right-icon .input{padding-right:var(--spacing-10)}.input-icon{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);pointer-events:none}.input-icon svg{width:18px;height:18px}.input-icon-left{left:var(--spacing-3)}.input-icon-right{right:var(--spacing-3)}.input-helper{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.input-error-text{color:var(--color-error-600)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal{background:var(--color-bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-small{width:400px}.modal-medium{width:600px;max-width:90vw}.modal-large{width:800px;max-width:95vw}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.modal-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:24px;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.modal-close:hover{color:var(--color-text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-md)}.modal-footer-content{display:flex;gap:var(--spacing-md)}.table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table-header{background:var(--color-bg-secondary)}.table-head{padding:var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap}.table-align-left{text-align:left}.table-align-center{text-align:center}.table-align-right{text-align:right}.table-body{background:var(--color-bg-primary)}.table-row{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.table-row:last-child{border-bottom:none}.table-row-clickable{cursor:pointer}.table-row-clickable:hover{background:var(--color-bg-hover)}.table-cell{padding:var(--spacing-md);color:var(--color-text-primary)}.table-cell-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.select{position:relative;min-width:150px}.select-trigger{width:100%;padding:.75rem 1rem;background:var(--color-input-bg, var(--color-surface, #fff));border:1px solid var(--color-input-border, var(--color-border, #e5e7eb));border-radius:var(--radius-md, 8px);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:var(--font-size-base, 1rem);font-weight:500;color:var(--color-input-fg, var(--color-on-surface, #0f172a));transition:all .2s ease;min-height:44px}.select-trigger:hover{border-color:var(--color-primary-500, #3b82f6);background:var(--color-background-secondary, #f9fafb)}.select-trigger:focus{outline:none;border-color:var(--color-primary-500, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.select-open .select-trigger{border-color:var(--color-primary-500, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.select-disabled .select-trigger{background:var(--color-background-secondary, #f9fafb);cursor:not-allowed;opacity:.6}.select-placeholder{color:var(--color-text-tertiary, #9ca3af)}.select-arrow{font-size:10px;color:var(--color-text-secondary, #6b7280);transition:transform .2s ease}.select-open .select-arrow{transform:rotate(180deg)}.select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);box-shadow:0 10px 25px -5px #00000026,0 4px 10px -5px #0000001a;max-height:240px;overflow-y:auto;z-index:100}.select-option{width:100%;padding:.75rem 1rem;text-align:left;cursor:pointer;border:none;background:transparent;font-size:var(--font-size-base, 1rem);font-weight:500;color:var(--color-text-primary, #111827);transition:all .15s ease;min-height:44px}.select-option:hover{background:var(--color-primary-50, #eff6ff);color:var(--color-primary-700, #1d4ed8)}.select-option:active{background:var(--color-primary-100, #dbeafe)}.select-option-selected{background:var(--color-primary-50, #eff6ff);color:var(--color-primary-700, #1d4ed8);font-weight:600}.badge{display:inline-flex;align-items:center;font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}.badge-small{padding:2px 8px;font-size:var(--font-size-xs)}.badge-medium{padding:4px 12px;font-size:var(--font-size-sm)}.badge-large{padding:6px 16px;font-size:var(--font-size-base)}.badge-default{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.badge-primary{background:var(--color-primary-light);color:var(--color-primary-700)}.badge-success{background:var(--color-success-light);color:var(--color-success-700)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-700)}.badge-danger{background:var(--color-danger-light);color:var(--color-error-700)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-secondary-600) 100%);padding:var(--spacing-4)}.login-ai-status{position:fixed;bottom:var(--spacing-4);right:var(--spacing-4);z-index:10;opacity:.85}.login-background-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.login-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.login-announcement{position:fixed;top:0;left:0;right:0;padding:var(--spacing-2) var(--spacing-4);text-align:center;color:#fff;font-weight:500;z-index:100}.login-page:has(.login-announcement){padding-top:calc(var(--spacing-4) + 40px)}.login-feature-panel{position:absolute;top:50%;transform:translateY(-50%);width:300px;color:#fff;z-index:5}.login-feature-panel.left{left:5%}.login-feature-panel.right{right:5%}.login-feature-panel h3{margin:0 0 var(--spacing-4);font-size:var(--font-size-xl);font-weight:600}.login-feature-panel .feature-item{display:flex;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.login-feature-panel .feature-icon{font-size:2rem;flex-shrink:0}.login-feature-panel .feature-text strong{display:block;font-size:var(--font-size-base);margin-bottom:var(--spacing-1)}.login-feature-panel .feature-text small{display:block;font-size:var(--font-size-sm);opacity:.8;line-height:1.4}.login-container{position:relative;z-index:10;display:flex;width:100%;max-width:100%;align-items:center;justify-content:center;gap:var(--spacing-8)}.login-card-wrapper{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.login-header{text-align:center;color:#fff}.login-logo{font-size:3rem;display:block;margin-bottom:var(--spacing-2)}.login-logo-image{height:60px;max-width:200px;object-fit:contain;margin-bottom:var(--spacing-2)}.login-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0}.login-tagline{font-size:var(--font-size-sm);opacity:.9;margin:var(--spacing-1) 0 0}.login-welcome{font-size:var(--font-size-base);margin:var(--spacing-2) 0 0;opacity:.85}.login-subtitle{font-size:var(--font-size-sm);opacity:.9;margin-top:var(--spacing-1)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.login-error{padding:var(--spacing-3);background-color:var(--color-error-50);border:1px solid var(--color-error-200);border-radius:var(--radius-md);color:var(--color-error-700);font-size:var(--font-size-sm)}.login-footer-text{text-align:center;margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-link{color:var(--color-primary-700);text-decoration:underline;text-underline-offset:2px;background:none;border:none;padding:0;font:inherit;cursor:pointer}.login-link:hover,.login-link-btn:hover{text-decoration:underline;color:var(--color-primary-800)}.login-link-btn{min-height:44px;padding:.5rem .25rem}.login-demo-hint{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:#fff;text-align:center}.login-demo-hint code{background:#fff3;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-family:var(--font-family-mono)}.login-social-links{display:flex;justify-content:center;gap:var(--spacing-3);margin-top:var(--spacing-4)}.login-social-links .social-link{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;font-size:1.2rem;text-decoration:none;transition:all .2s ease}.login-social-links .social-link:hover{background:#ffffff40;transform:scale(1.1)}.login-footer-links{display:flex;justify-content:center;gap:var(--spacing-4);margin-top:var(--spacing-3)}.login-footer-links a{color:#ffffffb3;font-size:var(--font-size-xs);text-decoration:none;transition:color .2s ease}.login-footer-links a:hover{color:#fff}.login-card-wrapper.login-card-center{margin:0 auto}.login-card-wrapper.login-card-left{margin-right:auto;margin-left:20%}.login-card-wrapper.login-card-right{margin-left:auto;margin-right:20%}@media (max-width: 900px){.login-feature-panel{display:none}.login-card-wrapper.login-card-left,.login-card-wrapper.login-card-right{margin:0 auto}.login-container{justify-content:center}}@media (max-width: 480px){.login-card-wrapper{max-width:100%}.login-logo-image{height:50px}.login-title{font-size:var(--font-size-2xl)}}.login-language-selector{margin-top:var(--spacing-4);display:flex;justify-content:center;padding:var(--spacing-2)}.login-language-selector .language-selector-buttons{display:flex;gap:var(--spacing-2);flex-wrap:wrap;justify-content:center}.login-language-selector .language-btn{background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:var(--spacing-1)}.login-language-selector .language-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.login-language-selector .language-btn.active{background:var(--color-primary-500);color:#fff;border-color:var(--color-primary-500)}.login-language-selector .language-btn.active:hover{background:var(--color-primary-600)}.login-language-selector .lang-flag{font-size:var(--font-size-lg)}.dashboard{display:flex;flex-direction:column;gap:var(--spacing-6)}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2)}.dashboard-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.dashboard-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-1)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-4)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-grid{grid-template-columns:1fr}}.stat-card{display:flex;align-items:center;gap:var(--spacing-4)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-primary .stat-icon{background-color:var(--color-primary-100);color:var(--color-primary-600)}.stat-success .stat-icon{background-color:var(--color-success-100);color:var(--color-success-600)}.stat-warning .stat-icon{background-color:var(--color-warning-100);color:var(--color-warning-600)}.stat-error .stat-icon{background-color:var(--color-error-100);color:var(--color-error-600)}.stat-info{display:flex;flex-direction:column;gap:var(--spacing-1)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-card{min-height:300px}.quick-actions{display:flex;flex-direction:column;gap:var(--spacing-2)}.activity-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.activity-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.activity-item:hover{background-color:var(--color-background-secondary)}.activity-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--color-primary-500);flex-shrink:0}.activity-text{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.dashboard-loading,.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-4);color:var(--color-text-secondary)}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary-500);border-radius:var(--radius-full);animation:spin 1s linear infinite}.teacher-dashboard{padding:var(--spacing-lg)}.header-content h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.header-content p{color:var(--color-text-secondary)}.period-selector{display:flex;gap:var(--spacing-xs);background:var(--color-bg-secondary);padding:var(--spacing-xs);border-radius:var(--radius-md)}.period-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s}.period-btn:hover{background:var(--color-bg-primary)}.period-btn.active{background:var(--color-primary-600);color:#fff}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{text-align:center}.stat-icon-wrapper{display:flex;justify-content:center;margin-bottom:var(--spacing-sm)}.stat-number{display:flex;justify-content:center;align-items:baseline}.stat-big{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.dashboard-section{min-height:280px}.chart-container{display:flex;justify-content:center;padding:var(--spacing-sm) 0}.chart-row{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm)}.legend-color{width:12px;height:12px;border-radius:2px}.legend-label{color:var(--color-text-secondary)}.legend-value{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-left:auto}.risk-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.risk-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--color-error-500)}.risk-info{display:flex;flex-direction:column;gap:2px}.risk-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.risk-subject{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.risk-alert{font-size:var(--font-size-xs);color:var(--color-error-500)}.risk-score{display:flex;align-items:center;gap:var(--spacing-sm)}.risk-trend{font-size:var(--font-size-lg)}.risk-trend.down{color:var(--color-error-500)}.risk-trend.up{color:var(--color-success-500)}.risk-trend.stable{color:var(--color-text-muted)}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.classrooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--spacing-md)}.classroom-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);border:1px solid var(--color-border)}.classroom-card h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.classroom-grade{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.classroom-meta{margin-bottom:var(--spacing-md)}.quick-actions .actions-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.classrooms-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column}}.modern-dashboard{padding:var(--spacing-6);min-height:100vh;background:var(--color-background-secondary)}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-4);color:var(--color-text-secondary)}.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:var(--spacing-4) var(--spacing-6);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.toolbar-left{display:flex;align-items:center;gap:var(--spacing-3)}.dashboard-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.toolbar-right{display:flex;gap:var(--spacing-3)}.toolbar-btn{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none;background:var(--color-neutral-100);color:var(--color-text-secondary)}.toolbar-btn:hover{background:var(--color-neutral-200)}.toolbar-btn.edit-btn.active{background:var(--color-primary-500);color:#fff}.toolbar-btn.add-btn{background:var(--color-success-100);color:var(--color-success-700)}.toolbar-btn.reset-btn{background:var(--color-warning-100);color:var(--color-warning-700)}.widget-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-4);grid-auto-rows:minmax(120px,auto)}.widget-wrapper{position:relative;border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-base);grid-column:span 2}.widget-wrapper:nth-child(1){grid-column:span 2}.widget-wrapper:nth-child(2){grid-column:span 4}.editing .widget-wrapper{cursor:grab;border:2px dashed transparent}.editing .widget-wrapper:hover{border-color:var(--color-primary-300);box-shadow:0 0 0 4px var(--color-primary-100)}.editing .widget-wrapper.dragging{opacity:.5;transform:scale(.98)}.widget-controls{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2) var(--spacing-3);background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent);z-index:10;opacity:0;transition:opacity var(--transition-fast)}.editing .widget-wrapper:hover .widget-controls{opacity:1}.widget-type{font-size:var(--font-size-xs);color:#fff;font-weight:var(--font-weight-medium)}.remove-btn{width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-error-500);color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast)}.remove-btn:hover{transform:scale(1.1)}.widget{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-5);height:100%;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.widget-header h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.widget-header .badge{background:var(--color-primary-100);color:var(--color-primary-700);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.welcome-widget{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff}.welcome-greeting{font-size:var(--font-size-sm);opacity:.9;margin-bottom:var(--spacing-1)}.welcome-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-3)}.welcome-quote{font-size:var(--font-size-sm);opacity:.85;margin:0 0 var(--spacing-4);line-height:1.5}.welcome-time{font-size:var(--font-size-xs);opacity:.7}.stats-widget{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-4);padding:var(--spacing-4)}.stat-item{display:flex;align-items:center;gap:var(--spacing-3)}.stat-icon{font-size:var(--font-size-2xl)}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.stat-trend{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.stat-trend.up{color:var(--color-success-500)}.stat-trend.down{color:var(--color-error-500)}.list-widget .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.list-widget .empty-icon{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-2)}.list-widget .empty-state p{margin:0;font-size:var(--font-size-sm)}.assignments-list,.grades-list,.leaderboard-list,.activity-list{display:flex;flex-direction:column;gap:var(--spacing-3);flex:1;overflow-y:auto}.assignment-item,.grade-item,.leaderboard-item,.activity-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-background-secondary);border-radius:var(--radius-lg);transition:background var(--transition-fast)}.assignment-item:hover,.leaderboard-item:hover,.activity-item:hover{background:var(--color-neutral-100)}.assignment-item.overdue{background:var(--color-error-50);border:1px solid var(--color-error-200)}.assignment-item.due-soon{background:var(--color-warning-50);border:1px solid var(--color-warning-200)}.assignment-icon{font-size:var(--font-size-lg)}.assignment-info,.activity-content{flex:1;min-width:0}.assignment-title,.grade-title,.user-name,.activity-message{display:block;font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-meta,.activity-time{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.grade-info{flex:1}.grade-title{margin-bottom:var(--spacing-2)}.grade-bar{height:6px;background:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden}.grade-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-base)}.grade-score{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);min-width:50px;text-align:right}.progress-widget{display:flex;align-items:center;justify-content:space-around;padding:var(--spacing-4)}.progress-widget .progress-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2)}.circular-progress{position:relative;display:flex;align-items:center;justify-content:center}.circular-progress svg{transform:rotate(-90deg)}.circular-progress .progress-bg{fill:none;stroke:var(--color-neutral-200)}.circular-progress .progress-fill{fill:none;stroke-linecap:round;transition:stroke-dasharray var(--transition-base)}.progress-text{position:absolute;display:flex;align-items:baseline;gap:2px}.progress-text .progress-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.progress-text .progress-max{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.progress-widget .progress-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center}.streak-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff}.streak-number{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:1}.streak-label{font-size:var(--font-size-sm);opacity:.9;margin-bottom:var(--spacing-4)}.streak-days{display:flex;gap:var(--spacing-1)}.streak-day{width:20px;height:20px;border-radius:var(--radius-sm);background:#fff3;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--font-weight-medium)}.streak-day.active{background:#fff6}.streak-day.today{background:#fff;color:#f7931e}.leaderboard-item.current-user{background:var(--color-primary-50);border:1px solid var(--color-primary-200)}.leaderboard-item .rank{width:28px;text-align:center;font-size:var(--font-size-lg)}.user-points{font-weight:var(--font-weight-bold);color:var(--color-primary-500)}.quick-actions-widget{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3);padding:var(--spacing-4)}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.quick-action-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-200);transform:translateY(-2px)}.quick-action-btn .action-icon{font-size:var(--font-size-xl)}.quick-action-btn .action-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.ai-insights-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--spacing-4);gap:var(--spacing-3)}.ai-avatar{font-size:var(--font-size-3xl)}.ai-message{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.4}.ai-chat-btn{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary-600);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast)}.ai-chat-btn:hover{background:var(--color-primary-700)}.calendar-widget{padding:var(--spacing-4)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.calendar-day{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-2);border-radius:var(--radius-md);background:var(--color-background-secondary)}.calendar-day.today{background:var(--color-primary-500);color:#fff}.calendar-day .day-name{font-size:10px;color:var(--color-text-tertiary)}.calendar-day.today .day-name{color:#ffffffb3}.calendar-day .day-number{font-weight:var(--font-weight-semibold)}.event-dot{width:4px;height:4px;border-radius:var(--radius-full);background:var(--color-primary-500);margin-top:2px}.calendar-day.today .event-dot{background:#fff}.upcoming-events{display:flex;flex-direction:column;gap:var(--spacing-2)}.event-item{display:flex;gap:var(--spacing-3);font-size:var(--font-size-sm)}.event-time{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.event-title{color:var(--color-text-primary)}.skill-progress-widget{display:flex;flex-direction:column;gap:var(--spacing-4);padding:var(--spacing-4)}.skill-row{display:flex;align-items:center;gap:var(--spacing-3)}.skill-name{width:80px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.skill-bar{flex:1;height:8px;background:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden}.skill-fill{height:100%;background:linear-gradient(90deg,var(--color-primary-400),var(--color-primary-500));border-radius:var(--radius-full);transition:width var(--transition-base)}.skill-percent{width:40px;text-align:right;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.activity-widget .activity-list{flex:1}.activity-item .activity-icon{font-size:var(--font-size-lg)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.add-widget-modal{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-6);max-width:500px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-widget-modal h2{margin:0 0 var(--spacing-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.widget-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.widget-option{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);background:var(--color-background-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.widget-option:hover:not(:disabled){border-color:var(--color-primary-300);background:var(--color-primary-50)}.widget-option:disabled{opacity:.5;cursor:not-allowed}.widget-option .option-icon{font-size:var(--font-size-2xl)}.widget-option .option-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.close-modal-btn{width:100%;padding:var(--spacing-3);background:var(--color-neutral-100);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-base);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast)}.close-modal-btn:hover{background:var(--color-neutral-200)}@media (max-width: 1200px){.widget-grid{grid-template-columns:repeat(4,1fr)}.widget-wrapper:nth-child(2){grid-column:span 2}}@media (max-width: 900px){.widget-grid{grid-template-columns:repeat(2,1fr)}.widget-wrapper,.widget-wrapper:nth-child(1),.widget-wrapper:nth-child(2){grid-column:span 2}.stats-widget{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.modern-dashboard{padding:var(--spacing-4)}.dashboard-toolbar{flex-direction:column;gap:var(--spacing-3);text-align:center}.toolbar-right{width:100%;justify-content:center}.widget-grid{grid-template-columns:1fr}.widget-wrapper,.widget-wrapper:nth-child(1),.widget-wrapper:nth-child(2){grid-column:span 1;grid-row:auto}.quick-actions-widget{grid-template-columns:1fr 1fr}.widget-options{grid-template-columns:repeat(2,1fr)}}.principal-dashboard{padding:var(--spacing-lg)}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:400px}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.header-main h2,.header-main .dashboard-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs)}.header-main p{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.header-actions{display:flex;gap:var(--spacing-sm)}.dashboard-widgets-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.period-toggle{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.period-toggle button{padding:var(--spacing-xs) var(--spacing-md);min-height:44px;line-height:1.4;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);transition:all .2s ease}.period-toggle button:hover{background:var(--color-background)}.period-toggle button.active{background:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}.alerts-section{margin-bottom:var(--spacing-lg)}.alerts-section h3{margin-bottom:var(--spacing-md);color:var(--color-warning)}.alerts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md)}.alert-card{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-primary);border-radius:var(--radius-lg);border-left:4px solid var(--color-warning)}.alert-card.critical{border-left-color:var(--color-danger);background:var(--color-danger-light)}.alert-card.warning{border-left-color:var(--color-warning);background:var(--color-warning-light)}.alert-icon{font-size:2rem}.alert-content h4{margin-bottom:var(--spacing-xs)}.alert-content p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.alert-actions{display:flex;gap:var(--spacing-sm)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{text-align:center;padding:var(--spacing-lg)}.stat-icon{font-size:1.5rem;margin-bottom:var(--spacing-xs)}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.stat-card.highlight{background:linear-gradient(135deg,var(--color-primary-light),#dbeafe)}.stat-card.highlight .stat-value{color:var(--color-primary-dark)}.stat-card.warning{background:var(--color-warning-light)}.stat-card.warning .stat-value{color:var(--color-danger)}.principal-dashboard .stat-card .stat-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.principal-dashboard .stat-card.warning .stat-label{color:var(--color-warning-800, #92400e)}.dashboard-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.tab-btn{padding:var(--spacing-sm) var(--spacing-lg);min-height:44px;line-height:1.4;background:none;border:none;border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);transition:all var(--transition-fast)}.tab-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.tab-btn.active{background:color-mix(in srgb,var(--color-primary) 88%,#000);color:#fff}.tab-btn:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-lg)}.grid-card{min-height:300px}.grid-card.wide{grid-column:1 / -1}.chart-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:250px;background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-muted)}.chart-hint{font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.executive-summary{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);padding:var(--spacing-lg);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.recommendations-list{list-style:none;padding:0;margin:0}.recommendation{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);background:var(--color-bg-secondary)}.recommendation.high{background:var(--color-danger-light)}.recommendation.medium{background:var(--color-warning-light)}.rec-icon{font-size:1.5rem}.rec-content strong{display:block;margin-bottom:var(--spacing-xs)}.rec-content p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.action-items-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.action-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md)}.action-item input[type=checkbox]{width:18px;height:18px}@media (max-width: 768px){.dashboard-header{flex-direction:column}.dashboard-tabs{flex-wrap:wrap}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 480px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.ai-assistant-page{display:flex;flex-direction:column;height:calc(100vh - 80px);padding:var(--spacing-4);gap:var(--spacing-4);background:var(--color-background-secondary)}.ai-assistant-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4) var(--spacing-6);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.ai-assistant-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-3)}.ai-assistant-header h1 span{font-size:1.5rem}.header-controls{display:flex;align-items:center;gap:var(--spacing-3)}.role-badge{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background:linear-gradient(135deg,var(--color-primary-50),var(--color-primary-100));border-radius:var(--radius-lg);border:1px solid var(--color-primary-200)}.role-indicator{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary-700)}.ai-assistant-body{flex:1;display:flex;gap:var(--spacing-4);min-height:0}.ai-assistant-chat{flex:1;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.markdown-content{line-height:1.7;word-wrap:break-word}.markdown-content p{margin:0 0 var(--spacing-3)}.markdown-content p:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:var(--spacing-5) 0 var(--spacing-3);font-weight:var(--font-weight-bold);line-height:1.3;color:var(--color-text-primary)}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child{margin-top:0}.markdown-content h1{font-size:1.5em;border-bottom:2px solid var(--color-border);padding-bottom:var(--spacing-2)}.markdown-content h2{font-size:1.35em;color:var(--color-primary-600)}.markdown-content h3{font-size:1.2em}.markdown-content h4{font-size:1.1em}.markdown-content ul,.markdown-content ol{margin:var(--spacing-3) 0;padding-left:var(--spacing-6)}.markdown-content li{margin:var(--spacing-2) 0;line-height:1.6}.markdown-content li::marker{color:var(--color-primary-500)}.markdown-content ul ul,.markdown-content ol ol,.markdown-content ul ol,.markdown-content ol ul{margin:var(--spacing-1) 0}.markdown-content code{background:linear-gradient(135deg,var(--color-neutral-100),var(--color-neutral-200));color:var(--color-error-600);padding:2px 8px;border-radius:var(--radius-md);font-family:JetBrains Mono,Fira Code,Monaco,Consolas,monospace;font-size:.85em;border:1px solid var(--color-neutral-300)}.message.user .markdown-content code{background:#fff3;border-color:#ffffff4d;color:#fff}.markdown-content pre{background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;padding:var(--spacing-5);border-radius:var(--radius-lg);overflow-x:auto;margin:var(--spacing-4) 0;border:1px solid #334155;box-shadow:var(--shadow-md);position:relative}.markdown-content pre:before{content:"";position:absolute;top:12px;left:12px;width:12px;height:12px;background:#ff5f56;border-radius:50%;box-shadow:20px 0 #ffbd2e,40px 0 #27ca40}.markdown-content pre code{background:none;padding:0;color:inherit;border:none;font-size:.9em;line-height:1.6;display:block;margin-top:var(--spacing-4)}.message.user .markdown-content pre{background:#0000004d;border-color:#ffffff1a}.markdown-content pre .keyword{color:#c792ea}.markdown-content pre .string{color:#c3e88d}.markdown-content pre .number{color:#f78c6c}.markdown-content pre .comment{color:#546e7a;font-style:italic}.markdown-content pre .function{color:#82aaff}.markdown-content pre .variable{color:#f07178}.markdown-content blockquote{border-left:4px solid var(--color-primary-400);background:linear-gradient(90deg,var(--color-primary-50) 0%,transparent 100%);padding:var(--spacing-4) var(--spacing-5);margin:var(--spacing-4) 0;color:var(--color-text-secondary);font-style:italic;border-radius:0 var(--radius-md) var(--radius-md) 0}.message.user .markdown-content blockquote{border-left-color:#ffffff80;background:#ffffff1a;color:#ffffffe6}.markdown-content a{color:var(--color-primary-500);text-decoration:none;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.markdown-content a:hover{border-bottom-color:var(--color-primary-500)}.message.user .markdown-content a{color:#fffffff2}.markdown-content table{width:100%;border-collapse:collapse;margin:var(--spacing-4) 0;font-size:.9em;display:block;overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border)}.markdown-content th,.markdown-content td{border:1px solid var(--color-border);padding:var(--spacing-3) var(--spacing-4);text-align:left}.markdown-content th{background:linear-gradient(180deg,var(--color-neutral-50),var(--color-neutral-100));font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-transform:uppercase;font-size:.85em;letter-spacing:.05em}.markdown-content tr:nth-child(2n) td{background:var(--color-neutral-50)}.markdown-content tr:hover td{background:var(--color-primary-50)}.message.user .markdown-content th{background:#ffffff26}.message.user .markdown-content td{border-color:#fff3}.message.user .markdown-content tr:nth-child(2n) td{background:#ffffff0d}.markdown-content hr{border:none;height:2px;background:linear-gradient(90deg,transparent,var(--color-border),transparent);margin:var(--spacing-5) 0}.markdown-content .math,.markdown-content .katex{font-family:"Cambria Math","Latin Modern Math",serif;font-style:italic;background:var(--color-neutral-100);padding:2px 6px;border-radius:var(--radius-sm)}.markdown-content dl{margin:var(--spacing-3) 0}.markdown-content dt{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.markdown-content dd{margin:0 0 var(--spacing-2) var(--spacing-4);color:var(--color-text-secondary)}.markdown-content input[type=checkbox]{margin-right:var(--spacing-2);accent-color:var(--color-primary-500)}.markdown-content img{max-width:100%;border-radius:var(--radius-md);margin:var(--spacing-3) 0}.markdown-content del{color:var(--color-text-tertiary);text-decoration:line-through}.ai-assistant-sidebar{width:300px;display:flex;flex-direction:column;gap:var(--spacing-4)}@media (max-width: 1024px){.ai-assistant-sidebar{width:250px}}@media (max-width: 768px){.ai-assistant-page{padding:var(--spacing-3);height:auto;min-height:calc(100vh - 80px)}.ai-assistant-header{flex-direction:column;gap:var(--spacing-3);align-items:flex-start}.ai-assistant-body{flex-direction:column}.ai-assistant-sidebar{width:100%;flex-direction:row;flex-wrap:wrap}.sidebar-card{flex:1;min-width:200px}.message{max-width:95%}.quick-prompts{flex-direction:column;align-items:stretch}.quick-prompt-btn{text-align:center}}.ai-tutor-page{display:flex;flex-direction:column;height:calc(100vh - 80px);padding:var(--spacing-4);gap:var(--spacing-4);background:var(--color-background-secondary)}.ai-tutor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4) var(--spacing-6);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.ai-tutor-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-3)}.ai-tutor-header h1 span{font-size:1.5rem}.header-controls{display:flex;align-items:center;gap:var(--spacing-4)}.subject-select,.mode-select{display:flex;align-items:center;gap:var(--spacing-2)}.subject-select label,.mode-select label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.subject-select select{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);background:var(--color-background-secondary);min-width:120px}.ai-tutor-body{flex:1;display:flex;gap:var(--spacing-4);min-height:0}.ai-tutor-chat{flex:1;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.messages-container{flex:1;overflow-y:auto;padding:var(--spacing-6);display:flex;flex-direction:column;gap:var(--spacing-4)}.chat-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--spacing-8)}.welcome-icon{width:80px;height:80px;background:linear-gradient(135deg,var(--color-primary-100),var(--color-primary-200));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin-bottom:var(--spacing-6)}.chat-welcome h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-3);color:var(--color-text-primary)}.chat-welcome p{color:var(--color-text-secondary);max-width:500px;margin:0 0 var(--spacing-6);line-height:1.6}.quick-prompts{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center;max-width:600px}.quick-prompt-btn{padding:var(--spacing-3) var(--spacing-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.quick-prompt-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-300);color:var(--color-primary-600)}.message{display:flex;gap:var(--spacing-3);max-width:85%;animation:messageIn .3s ease}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse;margin-left:auto}.message-avatar{width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;background:var(--color-background-secondary);border:2px solid var(--color-border)}.message.user .message-avatar{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff;border:none;font-weight:var(--font-weight-semibold)}.message-content-wrapper{display:flex;flex-direction:column;gap:var(--spacing-1)}.message.user .message-content-wrapper{align-items:flex-end}.message-sender{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.message-bubble{padding:var(--spacing-4) var(--spacing-5);border-radius:var(--radius-xl);line-height:1.6;font-size:var(--font-size-base)}.message.assistant .message-bubble{background:var(--color-background-secondary);border:1px solid var(--color-border);border-top-left-radius:var(--radius-sm)}.message.user .message-bubble{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff;border-top-right-radius:var(--radius-sm)}.message-bubble.thinking{display:flex;align-items:center;gap:var(--spacing-3)}.thinking-dots{display:flex;gap:var(--spacing-1)}.thinking-dots span{width:8px;height:8px;background:var(--color-primary-500);border-radius:50%;animation:thinking 1.4s infinite ease-in-out}.thinking-dots span:nth-child(1){animation-delay:0s}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.chat-input-area{display:flex;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);background:var(--color-background-secondary);border-top:1px solid var(--color-border)}.chat-input-area textarea{flex:1;padding:var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-xl);resize:none;font-size:var(--font-size-base);min-height:48px;max-height:120px;font-family:inherit;line-height:1.5;transition:border-color var(--transition-fast)}.chat-input-area textarea:focus{outline:none;border-color:var(--color-primary-400)}.chat-input-area textarea::placeholder{color:var(--color-text-tertiary)}.send-btn{padding:var(--spacing-4) var(--spacing-6);background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff;border:none;border-radius:var(--radius-xl);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.send-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.ai-tutor-sidebar{width:300px;display:flex;flex-direction:column;gap:var(--spacing-4)}.sidebar-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-5);box-shadow:var(--shadow-sm)}.sidebar-card h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-2)}.topic-input{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);transition:border-color var(--transition-fast)}.topic-input:focus{outline:none;border-color:var(--color-primary-400)}.mode-options{display:flex;flex-direction:column;gap:var(--spacing-2)}.mode-option{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);background:var(--color-background-secondary);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:left}.mode-option:hover{background:var(--color-neutral-100)}.mode-option.active{background:var(--color-primary-50);border-color:var(--color-primary-400)}.mode-option-icon{font-size:1.3rem}.mode-option-content{flex:1}.mode-option-title{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.mode-option-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.tips-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.tips-list li{display:flex;align-items:flex-start;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.tips-list li span:first-child{color:var(--color-primary-500);font-weight:var(--font-weight-bold)}@media (max-width: 1024px){.header-controls{flex-wrap:wrap;gap:var(--spacing-2)}.ai-tutor-sidebar{width:250px}}@media (max-width: 768px){.ai-tutor-page{padding:var(--spacing-3);height:auto;min-height:calc(100vh - 80px)}.ai-tutor-header{flex-direction:column;gap:var(--spacing-3);align-items:flex-start}.header-controls{width:100%;flex-wrap:wrap}.ai-tutor-body{flex-direction:column}.ai-tutor-sidebar{width:100%;flex-direction:row;flex-wrap:wrap}.sidebar-card{flex:1;min-width:200px}.message{max-width:95%}.quick-prompts{flex-direction:column;align-items:stretch}.quick-prompt-btn{text-align:center}}.ai-generator-page{padding:0;min-height:calc(100vh - 60px);background:linear-gradient(180deg,#f0f4ff,#f8fafc)}.generator-hero{background:linear-gradient(135deg,#1e3a8a,#4f46e5,#7c3aed);padding:48px 32px;color:#fff;position:relative;overflow:hidden}.generator-hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.generator-hero:after{content:"";position:absolute;bottom:-50%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);border-radius:50%}.hero-content{position:relative;z-index:1;max-width:800px}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:6px 16px;border-radius:20px;font-size:13px;font-weight:500;margin-bottom:16px;border:1px solid rgba(255,255,255,.2)}.hero-title{font-size:36px;font-weight:700;margin:0 0 12px;line-height:1.2}.hero-subtitle{font-size:18px;opacity:.9;margin:0 0 24px;max-width:500px}.hero-stats{display:flex;gap:32px}.hero-stat{display:flex;align-items:center;gap:8px}.hero-stat-value{font-size:24px;font-weight:700}.hero-stat-label{font-size:14px;opacity:.8}.generator-container{display:grid;grid-template-columns:320px 1fr;gap:24px;padding:24px;max-width:1600px;margin:0 auto}.generator-sidebar{display:flex;flex-direction:column;gap:16px}.sidebar-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d,0 4px 12px #0000000d;border:1px solid #e5e7eb;overflow:hidden}.sidebar-card .card-content{padding:20px}.content-type-selector h3{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px}.content-types{display:flex;flex-direction:column;gap:8px}.content-type-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f9fafb;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.content-type-btn:hover{background:#f3f4f6;border-color:#e5e7eb;transform:translateY(-1px)}.content-type-btn.active{background:linear-gradient(135deg,#eef2ff,#ede9fe);border-color:#6366f1;box-shadow:0 2px 8px #6366f126}.type-icon{font-size:24px;line-height:1}.type-info{flex:1}.type-label{display:block;font-size:14px;font-weight:600;color:#111827;margin-bottom:2px}.type-desc{display:block;font-size:11px;color:#6b7280;line-height:1.4}.config-section{margin-bottom:20px}.config-section:last-of-type{margin-bottom:0}.config-section h4{font-size:12px;font-weight:600;color:#374151;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f3f4f6}.form-group{margin-bottom:14px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:12px;font-weight:500;color:#4b5563;margin-bottom:6px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;background:#fafafa;color:#111827;transition:all .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.checkbox-group{display:flex;flex-direction:column;gap:10px}.checkbox-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#4b5563}.checkbox-item input{width:16px;height:16px;accent-color:#6366f1}.generate-btn{width:100%;margin-top:20px;padding:14px 24px!important;font-size:15px!important;font-weight:600!important;background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;border:none!important;border-radius:10px!important;box-shadow:0 4px 12px #4f46e54d!important;transition:all .2s ease!important}.generate-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #4f46e566!important}.generate-btn:disabled{opacity:.6;transform:none}.generator-main{min-height:500px}.empty-state{background:#fff;border-radius:20px;padding:60px 40px;text-align:center;box-shadow:0 1px 3px #0000000d;border:1px solid #e5e7eb}.empty-illustration{width:160px;height:160px;margin:0 auto 24px;background:linear-gradient(135deg,#eef2ff,#ede9fe);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.empty-illustration:before{content:"✨";font-size:48px}.empty-floating{position:absolute;font-size:24px;animation:floatAround 3s ease-in-out infinite}.empty-floating:nth-child(1){top:20px;left:20px;animation-delay:0s}.empty-floating:nth-child(2){top:40px;right:20px;animation-delay:.5s}.empty-floating:nth-child(3){bottom:30px;left:30px;animation-delay:1s}.empty-floating:nth-child(4){bottom:20px;right:30px;animation-delay:1.5s}@keyframes floatAround{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 12px}.empty-text{font-size:15px;color:#6b7280;max-width:400px;margin:0 auto 32px;line-height:1.6}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:500px;margin:0 auto}.feature-item{padding:16px;background:#f9fafb;border-radius:12px;text-align:center}.feature-item-icon{font-size:24px;margin-bottom:8px}.feature-item h4{font-size:13px;font-weight:600;color:#111827;margin:0 0 4px}.feature-item p{font-size:11px;color:#6b7280;margin:0}.start-btn{padding:14px 32px!important;font-size:15px!important;font-weight:600!important;background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;border:none!important;border-radius:10px!important;box-shadow:0 4px 12px #4f46e54d!important}.generating-card{background:#fff;border-radius:20px;padding:80px 40px;text-align:center;box-shadow:0 1px 3px #0000000d;border:1px solid #e5e7eb}.generating-animation{display:flex;flex-direction:column;align-items:center;gap:24px}.ai-brain{position:relative;width:120px;height:120px}.brain-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px #7c3aed66;z-index:2}.brain-icon{font-size:32px}.brain-pulse{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);animation:brainPulse 2s ease-in-out infinite;opacity:.3}@keyframes brainPulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.3);opacity:0}}.generating-title{font-size:22px;font-weight:600;color:#111827;margin:0}.generating-step{font-size:14px;color:#6366f1;font-weight:500;animation:stepPulse 1s ease-in-out infinite}@keyframes stepPulse{0%,to{opacity:1}50%{opacity:.5}}.generating-details{display:flex;flex-direction:column;gap:8px;padding:16px 24px;background:#f9fafb;border-radius:10px;min-width:200px}.generating-detail{display:flex;justify-content:space-between;font-size:13px}.generating-detail-label{color:#6b7280}.generating-detail-value{font-weight:500;color:#111827}.result-card{background:#fff;border-radius:20px;box-shadow:0 1px 3px #0000000d,0 4px 12px #0000000d;border:1px solid #e5e7eb;overflow:hidden}.result-card .card-header{padding:24px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb}.result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.result-title{font-size:22px;font-weight:700;color:#111827;margin:0 0 8px}.result-meta{font-size:14px;color:#6b7280;margin:0}.result-badges{display:flex;gap:8px;flex-shrink:0}.result-badge{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:500}.result-badge-primary{background:#eef2ff;color:#4f46e5}.result-badge-secondary{background:#f3f4f6;color:#4b5563}.result-card .card-content{padding:24px}.content-block{margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid #f3f4f6}.content-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.block-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.block-icon{font-size:20px}.block-header h4{font-size:16px;font-weight:600;color:#111827;margin:0;flex:1}.block-count{font-size:12px;color:#9ca3af;background:#f3f4f6;padding:4px 10px;border-radius:6px}.objectives-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.objective-item{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#f0fdf4,#ecfeff);border-radius:10px;border-left:3px solid #22c55e;font-size:14px;color:#111827;line-height:1.5}.objective-check{color:#22c55e;font-weight:700;flex-shrink:0}.materials-list{display:flex;flex-wrap:wrap;gap:8px}.material-tag{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#4b5563}.activities-timeline{display:flex;flex-direction:column;gap:16px}.activity-card{display:flex;gap:16px;padding:18px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;transition:all .2s ease}.activity-card:hover{border-color:#6366f1;box-shadow:0 2px 8px #6366f11a}.activity-timeline-marker{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.timeline-dot{width:14px;height:14px;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:50%;flex-shrink:0}.timeline-line{width:2px;flex:1;min-height:20px;background:linear-gradient(180deg,#6366f1,transparent);margin-top:8px}.activity-content{flex:1}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.activity-header h5{font-size:14px;font-weight:600;color:#111827;margin:0}.activity-duration{font-size:12px;color:#6b7280;background:#e5e7eb;padding:3px 8px;border-radius:4px}.activity-description{font-size:13px;color:#4b5563;line-height:1.6;margin:0}.questions-list{display:flex;flex-direction:column;gap:16px}.question-card{padding:20px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;transition:all .2s ease}.question-card:hover{border-color:#6366f1;box-shadow:0 2px 8px #6366f11a}.question-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.question-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:8px;font-weight:700;font-size:13px}.question-type{font-size:11px;color:#6b7280;background:#e5e7eb;padding:3px 8px;border-radius:4px}.question-points{margin-left:auto;font-size:12px;color:#6b7280}.question-text{font-size:14px;font-weight:500;color:#111827;margin:0 0 14px;line-height:1.5}.options-list{display:flex;flex-direction:column;gap:6px}.option-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:13px}.option-letter{width:22px;height:22px;background:#f3f4f6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#6b7280}.option-item.correct{background:#f0fdf4;border-color:#22c55e}.option-item.correct .option-letter{background:#22c55e;color:#fff}.answer-box{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;background:#f0fdf4;border-radius:8px;font-size:13px;color:#166534}.answer-label{font-weight:600}.explanation-box{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 14px;background:#fef3c7;border-radius:8px;font-size:13px;color:#92400e}.result-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:24px;border-top:1px solid #e5e7eb}.action-buttons{display:flex;gap:8px}.action-buttons button{padding:10px 16px!important;font-size:13px!important;border-radius:8px!important}.save-btn{padding:12px 24px!important;font-size:14px!important;font-weight:600!important;background:linear-gradient(135deg,#22c55e,#16a34a)!important;border:none!important;border-radius:10px!important;box-shadow:0 4px 12px #22c55e4d!important}.error-card{background:#fff;border-radius:20px;padding:60px 40px;text-align:center;box-shadow:0 1px 3px #0000000d;border:1px solid #fee2e2}.error-icon{font-size:48px;margin-bottom:16px}.error-title{font-size:20px;font-weight:600;color:#dc2626;margin:0 0 8px}.error-text{font-size:14px;color:#6b7280;margin:0 0 24px}.error-actions{display:flex;justify-content:center;gap:12px}@media (max-width: 1200px){.generator-container{grid-template-columns:1fr}.generator-sidebar{position:static}}@media (max-width: 768px){.generator-container{grid-template-columns:1fr;padding:16px;gap:16px}.generator-sidebar{width:100%}.hero-title{font-size:28px}.hero-stats{flex-direction:column;gap:12px}.sidebar-card{margin-bottom:16px}.form-row-3,.feature-grid{grid-template-columns:1fr}.result-header{flex-direction:column}.result-badges{width:100%}.result-actions{flex-direction:column}.action-buttons{width:100%;flex-wrap:wrap}.action-buttons button{flex:1}}.quiz-page{padding:var(--spacing-lg);max-width:900px;margin:0 auto}.quiz-loading,.quiz-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md);color:var(--color-text-secondary)}.quiz-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-md)}.quiz-title-area h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs)}.quiz-title-area p{color:var(--color-text-secondary)}.quiz-meta{display:flex;align-items:center;gap:var(--spacing-md)}.quiz-timer{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary-light);border-radius:var(--radius-md)}.quiz-timer.warning{color:var(--color-danger);background:var(--color-danger-light);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.quiz-progress{height:8px;background:var(--color-bg-secondary);border-radius:var(--radius-full);margin-bottom:var(--spacing-lg);overflow:hidden}.quiz-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-success));transition:width .3s ease}.quiz-navigation{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.quiz-nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-background-secondary, #f3f4f6);border:2px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);font-weight:var(--font-weight-medium, 500);cursor:pointer;transition:all .2s ease;color:var(--color-text-primary, #111827)}.quiz-nav-btn:hover{border-color:var(--color-primary-500, #3b82f6);background:var(--color-primary-50, #eff6ff)}.quiz-nav-btn.active{background:var(--color-primary-500, #3b82f6);border-color:var(--color-primary-500, #3b82f6);color:#fff}.quiz-nav-btn.answered{background:var(--color-success-50, #dcfce7);border-color:var(--color-success-500, #22c55e);color:var(--color-success-700, #15803d)}.quiz-nav-btn.answered.active{background:var(--color-primary-500, #3b82f6);border-color:var(--color-primary-500, #3b82f6);color:#fff}.question-card{margin-bottom:var(--spacing-lg)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.question-number{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.question-text{font-size:var(--font-size-lg, 1.125rem);margin-bottom:var(--spacing-lg, 1.5rem);line-height:1.6;color:var(--color-text-primary, #111827)}.question-media{max-width:100%;border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.options-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.option-btn{display:flex;align-items:center;gap:var(--spacing-md, 12px);padding:.875rem 1rem;background:var(--color-surface, #fff);border:2px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease;text-align:left;min-height:48px;font-size:1rem;color:var(--color-text-primary, #111827)}.option-btn:hover{border-color:var(--color-primary-500, #3b82f6);background:var(--color-primary-50, #eff6ff);transform:translate(4px)}.option-btn.selected{border-color:var(--color-primary-500, #3b82f6);background:var(--color-primary-50, #eff6ff);border-width:2px}.option-btn:hover{border-color:var(--color-primary);background:var(--color-bg-hover);transform:translate(4px)}.option-btn.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.option-letter{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-background-secondary, #f3f4f6);border-radius:var(--radius-md, 8px);font-weight:var(--font-weight-semibold, 600);flex-shrink:0;color:var(--color-text-primary, #111827)}.option-btn.selected .option-letter{background:var(--color-primary-500, #3b82f6);color:#fff}.option-text{flex:1}.tf-btn{justify-content:center;font-size:var(--font-size-lg)}.fill-blank-input,.short-answer-input{width:100%;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.fill-blank-input:focus,.short-answer-input:focus{border-color:var(--color-primary);outline:none}.short-answer-input{resize:vertical;min-height:100px}.question-actions{display:flex;justify-content:space-between;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.quiz-results{padding:var(--spacing-lg);max-width:800px;margin:0 auto}.results-header{text-align:center;padding:var(--spacing-xl);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.results-header.passed{background:linear-gradient(135deg,var(--color-success-light),#bbf7d0)}.results-header.failed{background:var(--color-bg-secondary)}.results-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.results-header h1{margin-bottom:var(--spacing-sm)}.results-header p{color:var(--color-text-secondary)}.results-score-card{margin-bottom:var(--spacing-lg)}.score-display{display:flex;justify-content:center;margin-bottom:var(--spacing-lg)}.score-circle{position:relative;width:150px;height:150px}.score-circle svg{width:100%;height:100%}.score-circle circle{transition:stroke-dasharray .5s ease}.score-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}.results-stats{display:flex;justify-content:center;gap:var(--spacing-xl)}.stat-item{text-align:center}.stat-value{display:block;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.stat-label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.results-questions{margin-bottom:var(--spacing-lg)}.results-questions h3,.answer-review{margin-bottom:var(--spacing-md)}.answer-review.correct{border-left:4px solid var(--color-success)}.answer-review.incorrect{border-left:4px solid var(--color-danger)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.review-number{font-weight:var(--font-weight-semibold)}.review-question{margin-bottom:var(--spacing-md)}.review-answers{margin-bottom:var(--spacing-sm)}.correct-answer{color:var(--color-success)}.review-explanation{background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.results-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.quiz-results-enhanced{max-width:900px;margin:0 auto;padding:var(--spacing-xl)}.results-hero{text-align:center;padding:var(--spacing-2xl);border-radius:var(--radius-xl);margin-bottom:var(--spacing-xl);position:relative;overflow:hidden}.results-hero.passed{background:linear-gradient(135deg,#dcfce7,#bbf7d0,#86efac)}.results-hero.failed{background:linear-gradient(135deg,#fef3c7,#fde68a,#fcd34d)}.results-emoji{font-size:4rem;margin-bottom:var(--spacing-md)}.results-hero h1{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-sm)}.results-hero p{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.score-display-large{margin:var(--spacing-xl) auto;width:200px;height:200px}.score-ring{width:100%;height:100%}.score-ring-progress{transition:stroke-dasharray 1s ease-in-out}.score-percent{font-size:42px;font-weight:var(--font-weight-bold);fill:var(--color-text-primary)}.score-grade{font-size:28px;font-weight:var(--font-weight-semibold)}.score-message{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-top:var(--spacing-md)}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media (max-width: 768px){.results-grid{grid-template-columns:1fr}}.results-stats-card,.results-chart-card{height:100%}.results-stats-card h3,.results-chart-card h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:var(--color-text-primary)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.stat-box{padding:var(--spacing-md);border-radius:var(--radius-lg);text-align:center;position:relative;overflow:hidden}.stat-box.correct{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.stat-box.incorrect{background:linear-gradient(135deg,#fee2e2,#fecaca)}.stat-box.points{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.stat-box.time{background:linear-gradient(135deg,#fef3c7,#fde68a)}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.bar-chart{display:flex;flex-direction:column;gap:var(--spacing-xs)}.bar-item{display:flex;align-items:center;gap:var(--spacing-sm)}.bar-label{width:40px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.bar-container{flex:1;height:28px;background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden}.bar-fill{height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md)}.bar-fill.correct{background:linear-gradient(90deg,#22c55e,#16a34a);color:#fff}.bar-fill.incorrect{background:linear-gradient(90deg,#ef4444,#dc2626);color:#fff}.chart-legend{display:flex;justify-content:center;gap:var(--spacing-lg);margin-top:var(--spacing-md)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.legend-dot{width:12px;height:12px;border-radius:var(--radius-sm);display:inline-block}.legend-item.correct .legend-dot{background:#22c55e}.legend-item.incorrect .legend-dot{background:#ef4444}.results-type-breakdown{margin-bottom:var(--spacing-xl)}.type-stats{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.type-stat{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.type-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.type-score{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.type-percent{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.results-tip-card{margin-bottom:var(--spacing-xl);background:linear-gradient(135deg,#fef3c7,#fde68a)}.results-tip-card h3{margin-bottom:var(--spacing-md)}.improvement-tips{list-style:none;padding:0;margin:0}.improvement-tips li{padding:var(--spacing-sm) 0;padding-left:24px;position:relative}.improvement-tips li:before{content:"→";position:absolute;left:0;color:var(--color-primary)}.text-success{color:var(--color-success);font-weight:var(--font-weight-medium)}.text-error{color:var(--color-danger);font-weight:var(--font-weight-medium)}.correct-badge,.incorrect-badge{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.correct-badge{background:var(--color-success);color:#fff}.incorrect-badge{background:var(--color-danger);color:#fff}.review-question-number{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:var(--font-weight-medium)}.your-answer,.correct-answer{margin:var(--spacing-sm) 0}@media (max-width: 768px){.quiz-header{flex-direction:column}.quiz-navigation{justify-content:center}.question-actions,.results-stats{flex-direction:column;gap:var(--spacing-md)}.quiz-results-enhanced{padding:var(--spacing-md)}.results-hero{padding:var(--spacing-lg)}}.quiz-generator{padding:2rem;max-width:1200px;margin:0 auto}.generator-header{text-align:center;margin-bottom:2rem}.generator-header h1{font-size:1.875rem;margin-bottom:.5rem;color:var(--color-text-primary, #111827)}.generator-header p{color:var(--color-text-secondary, #6b7280)}.generator-steps{display:flex;align-items:center;justify-content:center;margin-bottom:2rem}.step{display:flex;flex-direction:column;align-items:center;gap:.5rem}.step-number{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-background-secondary, #f9fafb);border:2px solid var(--color-border, #e5e7eb);border-radius:50%;font-weight:700;font-size:1rem;color:var(--color-text-secondary, #6b7280)}.step.active .step-number{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb4d}.step-label{font-size:.875rem;color:var(--color-text-secondary, #6b7280);font-weight:500}.step.active .step-label{color:#2563eb;font-weight:600}.step-line{width:80px;height:2px;background:var(--color-border, #e5e7eb);margin:0 1rem}.generator-content{min-height:500px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.form-group{margin-bottom:1rem}.form-group.full-width{grid-column:1 / -1}.form-group label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary, #111827);font-size:.875rem}.form-group input,.form-group textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--color-border, #e5e7eb);border-radius:8px;font-size:1rem;font-weight:500;background:var(--color-surface, #fff);color:var(--color-text-primary, #111827);transition:all .2s ease;min-height:44px}.form-group input:focus,.form-group textarea:focus,.form-group input:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-tertiary, #9ca3af);font-weight:400}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem;color:var(--color-text-primary, #111827)}.checkbox-label input[type=checkbox]{width:20px;height:20px;min-height:auto;accent-color:#2563eb}.checkbox-text{display:flex;flex-direction:column;gap:2px}.checkbox-text strong{font-weight:600}.checkbox-text small{color:var(--color-text-secondary, #6b7280);font-size:.8125rem}.analysis-card{margin-top:1.5rem}.analyzing{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--color-background-secondary, #f9fafb);border-radius:8px;border:1px solid var(--color-border, #e5e7eb)}.recommendations-card{margin-top:1.5rem;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:12px;overflow:hidden}.recommendations-grid{display:grid;gap:1.25rem}.rec-section{margin-bottom:1rem}.rec-section h4{margin-bottom:.75rem;color:var(--color-text-primary, #111827);font-weight:600}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.diff-group{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem;background:var(--color-background-secondary, #f9fafb);border-radius:8px}.suggestion{margin-left:auto;font-size:.875rem;color:#2563eb;font-weight:500}.generator-actions{display:flex;justify-content:flex-end;margin-top:2rem}.generating-card{text-align:center}.generating-info{margin-bottom:1.5rem}.generating-info ul{list-style:none;padding:0;text-align:left;max-width:400px;margin:0 auto 1.5rem}.generating-info li{padding:.75rem 0;border-bottom:1px solid var(--color-border, #e5e7eb)}.quiz-preview,.preview-meta{margin-bottom:1.5rem}.preview-meta h3{margin-bottom:.75rem}.meta-tags{display:flex;gap:.75rem}.questions-preview{max-height:400px;overflow-y:auto}.question-preview-item{padding:1rem;background:var(--color-background-secondary, #f9fafb);border-radius:8px;margin-bottom:.75rem;border:1px solid var(--color-border, #e5e7eb)}.q-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.q-number{font-weight:700;color:#2563eb}.q-points{margin-left:auto;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.q-text{margin-bottom:.75rem}.q-options{display:flex;flex-direction:column;gap:.5rem}.q-opt{padding:.5rem .75rem;border-radius:6px;font-size:.875rem;background:#fff;border:1px solid var(--color-border, #e5e7eb)}.q-opt.correct{background:#dcfce7;color:#15803d;font-weight:500;border-color:#86efac}.final-actions{display:flex;flex-direction:column;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-border, #e5e7eb)}.action-buttons{display:flex;justify-content:space-between;gap:1rem}@media (max-width: 768px){.quiz-generator{padding:1rem}.generator-steps{flex-wrap:wrap}.step-line{display:none}.form-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}}.learning-profile-container{--color-visual: #8B5CF6;--color-visual-light: #EDE9FE;--color-auditory: #3B82F6;--color-auditory-light: #DBEAFE;--color-kinesthetic: #F97316;--color-kinesthetic-light: #FFEDD5;--color-reading: #10B981;--color-reading-light: #D1FAE5;--color-primary: #6366F1;--color-primary-light: #E0E7FF;--color-primary-dark: #4F46E5;--color-bg: #F8FAFC;--color-card: #FFFFFF;--color-text-main: #1E293B;--color-text-muted: #64748B;--color-border: #E2E8F0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px}.learning-profile-container{min-height:100vh;background-color:var(--color-bg);padding:2rem 1rem;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--color-text-main);display:flex;flex-direction:column;align-items:center}.learning-profile-content{width:100%;max-width:800px;margin:0 auto}.lp-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}.lp-spinner{width:64px;height:64px;border:6px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:lp-spin 1s linear infinite}@keyframes lp-spin{to{transform:rotate(360deg)}}.lp-loading-text{font-size:1.25rem;font-weight:600;color:var(--color-text-muted);animation:lp-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes lp-pulse{0%,to{opacity:1}50%{opacity:.5}}.lp-welcome-card{background:var(--color-card);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center;box-shadow:var(--shadow-xl);border:2px solid var(--color-border);position:relative;overflow:hidden}.lp-welcome-card:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--color-visual),var(--color-auditory),var(--color-kinesthetic),var(--color-reading))}.lp-welcome-icon{font-size:5rem;margin-bottom:1.5rem;display:inline-block;animation:lp-bounce 2s infinite}@keyframes lp-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.lp-welcome-title{font-size:2.5rem;font-weight:800;margin-bottom:1rem;color:var(--color-text-main);letter-spacing:-.025em}.lp-welcome-desc{font-size:1.125rem;color:var(--color-text-muted);margin-bottom:2.5rem;max-width:500px;margin-left:auto;margin-right:auto;line-height:1.6}.lp-btn-primary{background-color:var(--color-primary);color:#fff;border:none;padding:1rem 2.5rem;font-size:1.25rem;font-weight:700;border-radius:var(--radius-full);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 0 var(--color-primary-dark);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.lp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--color-primary-dark)}.lp-btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--color-primary-dark)}.lp-btn-primary:disabled{background-color:var(--color-border);box-shadow:0 4px #cbd5e1;color:var(--color-text-muted);cursor:not-allowed;transform:none}.lp-assessment-header{margin-bottom:2rem}.lp-progress-container{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.lp-progress-bar-bg{flex-grow:1;height:16px;background-color:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.lp-progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#818CF8);border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1)}.lp-progress-text{font-weight:700;color:var(--color-text-muted);font-size:1rem;min-width:48px;text-align:right}.lp-question-card{background:var(--color-card);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-lg);border:2px solid var(--color-border)}.lp-question-text{font-size:1.75rem;font-weight:800;margin-bottom:2rem;color:var(--color-text-main);line-height:1.3}.lp-options-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:2.5rem}.lp-option-btn{display:flex;align-items:center;padding:1.25rem 1.5rem;border-radius:var(--radius-lg);border:2px solid var(--color-border);background-color:var(--color-card);cursor:pointer;transition:all .2s ease;text-align:left;min-height:44px;position:relative;overflow:hidden}.lp-option-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.lp-option-btn:active{transform:translateY(0)}.lp-option-content{display:flex;align-items:center;gap:1rem;width:100%;z-index:1}.lp-option-radio{width:24px;height:24px;border-radius:50%;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;background-color:#fff}.lp-option-radio-inner{width:12px;height:12px;border-radius:50%;background-color:transparent;transition:all .2s ease}.lp-option-text{font-size:1.125rem;font-weight:600;color:var(--color-text-main)}.lp-option-btn[data-color="0"]:hover{border-color:var(--color-visual);background-color:var(--color-visual-light)}.lp-option-btn[data-color="0"].selected{border-color:var(--color-visual);background-color:var(--color-visual-light);box-shadow:0 4px 0 var(--color-visual)}.lp-option-btn[data-color="0"].selected .lp-option-radio{border-color:var(--color-visual)}.lp-option-btn[data-color="0"].selected .lp-option-radio-inner{background-color:var(--color-visual)}.lp-option-btn[data-color="1"]:hover{border-color:var(--color-auditory);background-color:var(--color-auditory-light)}.lp-option-btn[data-color="1"].selected{border-color:var(--color-auditory);background-color:var(--color-auditory-light);box-shadow:0 4px 0 var(--color-auditory)}.lp-option-btn[data-color="1"].selected .lp-option-radio{border-color:var(--color-auditory)}.lp-option-btn[data-color="1"].selected .lp-option-radio-inner{background-color:var(--color-auditory)}.lp-option-btn[data-color="2"]:hover{border-color:var(--color-kinesthetic);background-color:var(--color-kinesthetic-light)}.lp-option-btn[data-color="2"].selected{border-color:var(--color-kinesthetic);background-color:var(--color-kinesthetic-light);box-shadow:0 4px 0 var(--color-kinesthetic)}.lp-option-btn[data-color="2"].selected .lp-option-radio{border-color:var(--color-kinesthetic)}.lp-option-btn[data-color="2"].selected .lp-option-radio-inner{background-color:var(--color-kinesthetic)}.lp-option-btn[data-color="3"]:hover{border-color:var(--color-reading);background-color:var(--color-reading-light)}.lp-option-btn[data-color="3"].selected{border-color:var(--color-reading);background-color:var(--color-reading-light);box-shadow:0 4px 0 var(--color-reading)}.lp-option-btn[data-color="3"].selected .lp-option-radio{border-color:var(--color-reading)}.lp-option-btn[data-color="3"].selected .lp-option-radio-inner{background-color:var(--color-reading)}.lp-nav-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:2rem;border-top:2px dashed var(--color-border)}.lp-btn-secondary{background-color:transparent;color:var(--color-text-muted);border:2px solid var(--color-border);padding:.875rem 1.5rem;font-size:1.125rem;font-weight:700;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;min-height:44px}.lp-btn-secondary:hover:not(:disabled){background-color:var(--color-border);color:var(--color-text-main)}.lp-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.lp-profile-view{display:flex;flex-direction:column;gap:2rem}.lp-profile-header{display:flex;justify-content:space-between;align-items:center;background:var(--color-card);padding:1.5rem 2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:2px solid var(--color-border)}.lp-style-badge{display:flex;align-items:center;gap:1rem}.lp-style-icon-wrapper{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;background-color:var(--color-primary-light);box-shadow:0 4px 0 var(--color-primary)}.lp-style-info h2{font-size:1.5rem;font-weight:800;color:var(--color-text-main);margin:0 0 .25rem}.lp-style-info p{font-size:1rem;color:var(--color-text-muted);margin:0}.lp-btn-outline{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);padding:.75rem 1.5rem;font-size:1rem;font-weight:700;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;min-height:44px}.lp-btn-outline:hover{background-color:var(--color-primary-light)}.lp-profile-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width: 768px){.lp-profile-grid{grid-template-columns:2fr 1fr}}.lp-card{background:var(--color-card);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md);border:2px solid var(--color-border)}.lp-card-title{font-size:1.25rem;font-weight:800;color:var(--color-text-main);margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.lp-card-title:before{content:"";display:block;width:12px;height:12px;border-radius:50%;background-color:var(--color-primary)}.lp-score-list{display:flex;flex-direction:column;gap:1.25rem}.lp-score-item{display:flex;flex-direction:column;gap:.5rem}.lp-score-header{display:flex;justify-content:space-between;align-items:center}.lp-score-label{font-weight:700;color:var(--color-text-main);text-transform:capitalize}.lp-score-value{font-weight:800;color:var(--color-text-muted)}.lp-score-bar-bg{height:12px;background-color:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.lp-score-bar-fill{height:100%;border-radius:var(--radius-full);transition:width 1s cubic-bezier(.4,0,.2,1)}.lp-score-bar-fill[data-style=visual]{background-color:var(--color-visual)}.lp-score-bar-fill[data-style=auditory]{background-color:var(--color-auditory)}.lp-score-bar-fill[data-style=kinesthetic]{background-color:var(--color-kinesthetic)}.lp-score-bar-fill[data-style=reading]{background-color:var(--color-reading)}.lp-description-text{font-size:1.125rem;line-height:1.7;color:var(--color-text-main)}@media (max-width: 640px){.lp-welcome-title{font-size:2rem}.lp-question-text{font-size:1.5rem}.lp-profile-header{flex-direction:column;gap:1.5rem;text-align:center}.lp-style-badge{flex-direction:column}}.messaging-container{display:flex;height:calc(100vh - 120px);background:var(--bg-primary, #fff);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.messaging-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.conversations-sidebar{width:320px;border-right:1px solid var(--border-color, #e2e8f0);display:flex;flex-direction:column;background:var(--bg-secondary, #fafbfc)}.sidebar-header{padding:20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color, #e2e8f0)}.sidebar-header h2{font-size:20px;font-weight:600;color:var(--text-primary, #1e293b)}.new-chat-button{width:36px;height:36px;background:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:50%;font-size:24px;cursor:pointer;transition:transform .2s,background .2s;display:flex;align-items:center;justify-content:center}.new-chat-button:hover{background:var(--primary-dark, #4f46e5);transform:scale(1.05)}.new-chat-search{padding:12px;background:var(--bg-secondary, #fafbfc);border-bottom:1px solid var(--border-color, #e2e8f0);position:relative}.new-chat-search input{width:100%;padding:10px 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:14px;background:var(--bg-primary, #fff)}.new-chat-search input:focus{outline:none;border-color:var(--primary-color, #6366f1)}.search-results{position:absolute;top:100%;left:12px;right:12px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:240px;overflow-y:auto;z-index:100}.search-result-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:none;cursor:pointer;text-align:left;transition:background .2s}.search-result-item:hover{background:var(--bg-hover, #f1f5f9)}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.user-info{display:flex;flex-direction:column}.user-name{font-size:14px;font-weight:500;color:var(--text-primary, #1e293b)}.user-role{font-size:12px;color:var(--text-secondary, #64748b);text-transform:capitalize}.conversations-list{flex:1;overflow-y:auto}.no-conversations{padding:40px 20px;text-align:center;color:var(--text-secondary, #64748b)}.no-conversations .hint{font-size:13px;margin-top:8px;color:var(--text-tertiary, #94a3b8)}.conversation-item{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;border:none;background:none;cursor:pointer;text-align:left;transition:background .2s;position:relative}.conversation-item:hover{background:var(--bg-hover, #f1f5f9)}.conversation-item.selected{background:var(--primary-light, #eef2ff)}.conversation-avatar{width:44px;height:44px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0}.conversation-avatar.large{width:48px;height:48px;font-size:20px}.conversation-preview{flex:1;min-width:0}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.conversation-name{font-size:15px;font-weight:600;color:var(--text-primary, #1e293b)}.conversation-time{font-size:12px;color:var(--text-tertiary, #94a3b8)}.last-message{font-size:13px;color:var(--text-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-badge{min-width:20px;height:20px;background:var(--primary-color, #6366f1);color:#fff;border-radius:10px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 6px}.messages-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-primary, #fff)}.messages-header{padding:16px 24px;border-bottom:1px solid var(--border-color, #e2e8f0);display:flex;align-items:center}.conversation-info{display:flex;align-items:center;gap:12px}.conversation-details h3{font-size:16px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:2px}.conversation-type{font-size:13px;color:var(--text-secondary, #64748b)}.messages-list{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.no-messages{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary, #64748b);text-align:center}.no-messages p:last-child{font-size:14px;margin-top:8px;color:var(--text-tertiary, #94a3b8)}.message{display:flex;gap:8px;max-width:70%}.message.own{margin-left:auto;flex-direction:row-reverse}.message-avatar{width:32px;height:32px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.message-content{display:flex;flex-direction:column}.message.own .message-content{align-items:flex-end}.sender-name{font-size:12px;font-weight:500;color:var(--text-secondary, #64748b);margin-bottom:4px}.message-bubble{background:var(--bg-secondary, #f1f5f9);padding:10px 14px;border-radius:16px 16px 16px 4px}.message.own .message-bubble{background:var(--primary-color, #6366f1);color:#fff;border-bottom-left-radius:16px;border-bottom-right-radius:4px}.message-bubble p{font-size:14px;line-height:1.5;margin:0;word-break:break-word}.message-time{font-size:11px;color:var(--text-tertiary, #94a3b8);margin-top:4px}.message.own .message-time{color:var(--primary-light, #c7d2fe)}.message-input-form{display:flex;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color, #e2e8f0);background:var(--bg-primary, #fff)}.message-input-form input{flex:1;padding:12px 16px;border:1px solid var(--border-color, #e2e8f0);border-radius:24px;font-size:15px;background:var(--bg-secondary, #f8fafc);transition:border-color .2s}.message-input-form input:focus{outline:none;border-color:var(--primary-color, #6366f1)}.message-input-form button{width:44px;height:44px;background:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:50%;font-size:18px;cursor:pointer;transition:background .2s,transform .2s}.message-input-form button:hover:not(:disabled){background:var(--primary-dark, #4f46e5);transform:scale(1.05)}.message-input-form button:disabled{opacity:.5;cursor:not-allowed}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary, #64748b)}.no-selection-icon{font-size:48px;margin-bottom:16px}.no-selection h3{font-size:20px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:8px}.no-selection p{font-size:15px}@media (max-width: 768px){.messaging-container{flex-direction:column;height:auto;min-height:calc(100vh - 120px)}.conversations-sidebar{width:100%;max-height:300px}.messages-panel{min-height:400px}.message{max-width:85%}}.forums-container{max-width:1000px;margin:0 auto;padding:24px}.forums-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.forums-header{text-align:center;margin-bottom:32px}.forums-header h1{font-size:28px;font-weight:700;color:var(--text-primary, #1e293b);margin-bottom:8px}.forums-header p{color:var(--text-secondary, #64748b);font-size:16px}.search-container{margin-bottom:32px;position:relative}.search-container input{width:100%;padding:14px 20px;border:1px solid var(--border-color, #e2e8f0);border-radius:12px;font-size:15px;background:var(--bg-primary, #fff)}.search-container input:focus{outline:none;border-color:var(--primary-color, #6366f1)}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:100}.search-dropdown.wide{max-height:400px}.search-result{display:flex;flex-direction:column;width:100%;padding:12px 16px;border:none;background:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0)}.search-result:last-child{border-bottom:none}.search-result:hover{background:var(--bg-hover, #f1f5f9)}.result-title{font-size:14px;font-weight:500;color:var(--text-primary, #1e293b)}.result-category{font-size:12px;color:var(--text-tertiary, #94a3b8)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.category-card{display:flex;align-items:flex-start;gap:16px;padding:20px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.category-card:hover{border-color:var(--primary-color, #6366f1);box-shadow:0 4px 12px #6366f11a}.category-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.category-info{flex:1}.category-info h3{font-size:16px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:4px}.category-info p{font-size:13px;color:var(--text-secondary, #64748b);margin-bottom:8px;line-height:1.4}.category-stats{display:flex;gap:16px;font-size:12px;color:var(--text-tertiary, #94a3b8)}.no-categories{grid-column:1 / -1;text-align:center;padding:48px;color:var(--text-secondary, #64748b)}.category-view .category-header{margin-bottom:24px}.back-button{background:none;border:none;color:var(--primary-color, #6366f1);font-size:14px;cursor:pointer;padding:8px 0;display:flex;align-items:center;gap:4px}.back-button:hover{color:var(--primary-dark, #4f46e5)}.category-header h1{font-size:24px;font-weight:700;color:var(--text-primary, #1e293b);margin:16px 0 4px}.category-header p{color:var(--text-secondary, #64748b)}.threads-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.search-box{position:relative;flex:1}.search-box input{width:100%;padding:10px 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:14px}.new-thread-btn{background:var(--primary-color, #6366f1);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.new-thread-btn:hover{background:var(--primary-dark, #4f46e5)}.new-thread-form{background:var(--bg-secondary, #f8fafc);padding:20px;border-radius:12px;margin-bottom:24px}.new-thread-form input{width:100%;padding:12px 16px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:15px;margin-bottom:12px}.new-thread-form textarea{width:100%;padding:12px 16px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:14px;resize:vertical;font-family:inherit}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.form-actions button{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.form-actions button:first-child{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #64748b)}.form-actions button:last-child{background:var(--primary-color, #6366f1);border:none;color:#fff}.form-actions button:disabled{opacity:.5;cursor:not-allowed}.threads-list{display:flex;flex-direction:column;gap:12px}.thread-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.thread-item:hover{border-color:var(--primary-color, #6366f1)}.thread-main{flex:1;min-width:0}.thread-title{font-size:16px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:4px;display:flex;align-items:center;gap:8px}.pin-icon{font-size:14px}.thread-preview{color:var(--text-secondary, #64748b);font-size:13px;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-stats{font-size:12px;color:var(--text-tertiary, #94a3b8)}.thread-stats span{margin-right:4px}.thread-meta-info{display:flex;gap:20px}.stat{display:flex;flex-direction:column;align-items:center;min-width:50px}.stat-value{font-size:18px;font-weight:600;color:var(--text-primary, #1e293b)}.stat-label{font-size:11px;color:var(--text-tertiary, #94a3b8)}.no-threads{text-align:center;padding:48px;color:var(--text-secondary, #64748b)}.thread-view .thread-header{margin-bottom:24px}.thread-header .thread-info{margin-top:16px}.thread-header h1{font-size:24px;font-weight:700;color:var(--text-primary, #1e293b);margin-bottom:8px}.thread-meta{display:flex;gap:16px;font-size:13px;color:var(--text-secondary, #64748b)}.thread-meta span:before{content:"•";margin-right:8px;color:var(--text-tertiary, #94a3b8)}.thread-meta span:first-child:before{content:none}.locked-notice{margin-top:12px;padding:10px 16px;background:var(--warning-light, #fef3c7);color:var(--warning-dark, #92400e);border-radius:8px;font-size:14px}.thread-content{margin-bottom:32px}.thread-post,.reply-item{display:flex;gap:16px;padding:20px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px}.post-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.post-body,.reply-body{flex:1}.post-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.post-author{font-size:15px;font-weight:600;color:var(--text-primary, #1e293b)}.post-role{font-size:12px;color:var(--primary-color, #6366f1);background:var(--primary-light, #eef2ff);padding:2px 8px;border-radius:4px;text-transform:capitalize}.post-date{font-size:12px;color:var(--text-tertiary, #94a3b8)}.post-content p{font-size:15px;line-height:1.6;color:var(--text-primary, #1e293b);margin:0;white-space:pre-wrap}.replies-section{margin-bottom:24px}.replies-section h3{font-size:18px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:16px}.replies-list{display:flex;flex-direction:column;gap:12px}.no-replies{text-align:center;padding:32px;background:var(--bg-secondary, #f8fafc);border-radius:12px;color:var(--text-secondary, #64748b)}.reply-actions{margin-top:12px}.like-button{background:none;border:none;font-size:13px;color:var(--text-secondary, #64748b);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.like-button:hover{background:var(--bg-hover, #f1f5f9)}.like-button.liked{color:#ef4444}.reply-form-container{padding:20px;background:var(--bg-secondary, #f8fafc);border-radius:12px}.show-reply-form{width:100%;padding:14px;background:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.show-reply-form:hover{background:var(--primary-dark, #4f46e5)}.reply-form textarea{width:100%;padding:12px 16px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:14px;resize:vertical;font-family:inherit;margin-bottom:12px}@media (max-width: 768px){.categories-grid{grid-template-columns:1fr}.thread-item{flex-direction:column;align-items:flex-start}.thread-meta-info{margin-top:16px;width:100%;justify-content:flex-start}.forums-container{padding:16px}}.gamification-container{max-width:900px;margin:0 auto;padding:24px}.gamification-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--primary-color, #6366f1);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gamification-header{text-align:center;margin-bottom:24px}.gamification-header h1{font-size:28px;font-weight:700;color:var(--text-primary, #1e293b);margin-bottom:8px}.gamification-header p{color:var(--text-secondary, #64748b)}.level-card{background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));border-radius:16px;padding:24px;display:flex;align-items:center;gap:24px;color:#fff;margin-bottom:24px}.level-badge{display:flex;flex-direction:column;align-items:center;gap:4px}.level-icon{font-size:48px}.level-number{font-size:14px;font-weight:600;background:#fff3;padding:4px 12px;border-radius:20px}.level-info{flex:1}.level-info h2{font-size:24px;font-weight:700;margin-bottom:12px}.level-progress-bar{height:8px;background:#ffffff4d;border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;background:#fff;border-radius:4px;transition:width .5s ease}.points-display{display:flex;align-items:baseline;gap:8px}.total-points{font-size:32px;font-weight:700}.points-label{font-size:14px;opacity:.8}.quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px}.stat-icon{font-size:28px}.stat-value{font-size:22px;font-weight:700;color:var(--text-primary, #1e293b)}.stat-label{font-size:12px;color:var(--text-secondary, #64748b)}.tabs{display:flex;gap:8px;background:var(--bg-secondary, #f8fafc);padding:6px;border-radius:12px;margin-bottom:24px}.tab{flex:1;padding:10px 16px;border:none;background:none;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .2s}.tab:hover{color:var(--text-primary, #1e293b)}.tab.active{background:var(--bg-primary, #fff);color:var(--primary-color, #6366f1);box-shadow:0 2px 4px #0000000d}.tab-content{min-height:300px}.overview-tab{display:grid;grid-template-columns:1fr 1fr;gap:24px}.streak-calendar,.recent-achievements,.points-breakdown{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:20px}.streak-calendar h3,.recent-achievements h3,.points-breakdown h3{font-size:16px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:16px}.streak-display{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.streak-number{font-size:48px;font-weight:700;color:var(--warning-color, #f59e0b)}.streak-unit{font-size:18px;color:var(--text-secondary, #64748b)}.streak-message{font-size:14px;color:var(--text-secondary, #64748b)}.longest-streak{font-size:12px;color:var(--text-tertiary, #94a3b8);margin-top:8px}.no-achievements{font-size:14px;color:var(--text-tertiary, #94a3b8);text-align:center;padding:20px}.achievement-row{display:flex;gap:12px;flex-wrap:wrap}.achievement-mini{display:flex;flex-direction:column;align-items:center;padding:12px;background:var(--bg-secondary, #f8fafc);border-radius:8px;min-width:80px}.achievement-icon{font-size:24px;margin-bottom:4px}.achievement-name{font-size:11px;color:var(--text-secondary, #64748b);text-align:center}.breakdown-list{display:flex;flex-direction:column;gap:12px}.breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--bg-secondary, #f8fafc);border-radius:8px}.breakdown-label{font-size:14px;color:var(--text-secondary, #64748b)}.breakdown-value{font-size:16px;font-weight:600;color:var(--text-primary, #1e293b)}.achievements-tab{display:flex;flex-direction:column;gap:32px}.achievements-section h3{font-size:18px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:16px}.empty-message{font-size:14px;color:var(--text-tertiary, #94a3b8);text-align:center;padding:32px;background:var(--bg-secondary, #f8fafc);border-radius:12px}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.achievement-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;transition:all .2s}.achievement-card.earned{border-color:var(--success-color, #10b981);background:var(--success-light, #ecfdf5)}.achievement-card.available.claimable{border-color:var(--warning-color, #f59e0b);background:var(--warning-light, #fffbeb)}.achievement-icon-large{font-size:36px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary, #f8fafc);border-radius:12px}.achievement-icon-large.locked{opacity:.5}.achievement-details{flex:1}.achievement-details h4{font-size:15px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:4px}.achievement-details p{font-size:13px;color:var(--text-secondary, #64748b);margin-bottom:8px}.earned-date,.points-required{font-size:12px;color:var(--text-tertiary, #94a3b8)}.achievement-points{font-size:14px;font-weight:600;color:var(--primary-color, #6366f1);background:var(--primary-light, #eef2ff);padding:4px 10px;border-radius:20px}.claim-button{background:var(--warning-color, #f59e0b);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.claim-button:hover{background:var(--warning-dark, #d97706)}.leaderboard-tab h3{font-size:18px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:16px}.leaderboard-list{display:flex;flex-direction:column;gap:8px}.leaderboard-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;transition:all .2s}.leaderboard-item:hover{border-color:var(--primary-color, #6366f1)}.leaderboard-item.current-user{border-color:var(--primary-color, #6366f1);background:var(--primary-light, #eef2ff)}.rank{width:40px;font-size:20px;text-align:center}.rank.top-1{color:gold}.rank.top-2{color:silver}.rank.top-3{color:#cd7f32}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-color, #6366f1),var(--accent-color, #8b5cf6));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.user-info{flex:1}.user-name{font-size:14px;font-weight:500;color:var(--text-primary, #1e293b);display:block}.user-level{font-size:12px;color:var(--text-tertiary, #94a3b8)}.user-points{font-size:14px;font-weight:600;color:var(--primary-color, #6366f1)}@media (max-width: 768px){.quick-stats{grid-template-columns:repeat(2,1fr)}.overview-tab{grid-template-columns:1fr}.level-card{flex-direction:column;text-align:center}}.user-management{padding:var(--spacing-6);max-width:1200px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-8);flex-wrap:wrap;gap:var(--spacing-4)}.page-header h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.page-header p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:var(--spacing-1) 0 0 0}.user-cell{display:flex;align-items:center;gap:var(--spacing-3)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-primary-500);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.action-buttons{display:flex;gap:var(--spacing-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-4)}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-6);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-content h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-6)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2);color:var(--color-text-primary)}.form-group input,.form-group select{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary-500)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-6)}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start}.action-buttons{flex-direction:column}}@layer theme-settings{.theme-settings{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.page-header{margin-bottom:var(--spacing-6)}.page-header h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary, #1e293b);margin:0}.page-header p{font-size:var(--font-size-base);color:var(--color-text-secondary, #64748b);margin:var(--spacing-1) 0 0 0}.theme-status{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-4);border-radius:var(--radius-md, 8px);border:1px solid transparent;font-size:var(--font-size-sm);animation:theme-status-in .2s ease-out}.theme-status--error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.theme-status--success{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.theme-status__icon{font-size:1.1rem;line-height:1;flex-shrink:0}.theme-status__text{flex:1;font-weight:var(--font-weight-medium, 500)}.theme-status__close{background:transparent;border:none;font-size:1.25rem;line-height:1;cursor:pointer;padding:0 var(--spacing-1);color:inherit;opacity:.7;border-radius:var(--radius-sm, 4px)}.theme-status__close:hover{opacity:1;background:#0000000d}@keyframes theme-status-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.theme-tabs{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-6);overflow-x:auto;padding-bottom:var(--spacing-2);position:sticky;top:0;z-index:10;background:var(--color-background, #f8fafc);box-shadow:0 1px #0000000a}.theme-tab{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-lg, 12px);cursor:pointer;white-space:nowrap;transition:all .2s ease;font-family:inherit}.theme-tab:hover{border-color:var(--color-primary-500, #3b82f6);background:var(--color-background, #f8fafc)}.theme-tab.active{background:var(--color-primary-500, #3b82f6);color:#fff;border-color:var(--color-primary-500, #3b82f6);font-weight:var(--font-weight-semibold, 600)}.tab-icon{font-size:1.1rem}.tab-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.theme-content{margin-bottom:var(--spacing-6)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-6);margin-bottom:var(--spacing-6)}.section-desc{color:var(--color-text-secondary, #64748b);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.form-group{margin-bottom:var(--spacing-4)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2);color:var(--color-text-primary, #1e293b)}.form-group small{display:block;margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.form-group input[type=text],.form-group input[type=url],.form-group select{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);font-size:var(--font-size-base);background:var(--color-surface, #ffffff);color:var(--color-text-primary, #1e293b)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary-500, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.toggle-label{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer}.toggle-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-primary-500, #3b82f6)}.logo-preview{margin-top:var(--spacing-4);padding:var(--spacing-4);background:var(--color-background-secondary, #f1f5f9);border-radius:var(--radius-md, 8px);text-align:center}.logo-preview img{max-width:150px;max-height:80px;object-fit:contain}.color-section{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border, #e2e8f0)}.color-section:last-child{border-bottom:none}.color-section h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-3);color:var(--color-text-primary, #1e293b)}.color-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-4)}.color-input-group{display:flex;gap:var(--spacing-2)}.color-input-group input[type=color]{width:44px;height:44px;padding:2px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer}.color-input-group input[type=text]{flex:1;padding:var(--spacing-3);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);font-size:var(--font-size-sm);font-family:var(--font-family-mono, monospace)}.presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-3);margin-top:var(--spacing-2)}.preset-btn{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease}.preset-btn:hover{border-color:var(--color-primary-500, #3b82f6);transform:translateY(-2px)}.preset-btn.large{padding:var(--spacing-4)}.preset-btn.active{border-color:var(--color-primary-500, #3b82f6);background:#3b82f60d}.preset-colors{display:flex;width:100%;height:32px;border-radius:var(--radius-sm, 6px);overflow:hidden}.preset-colors div{flex:1}.preset-info{display:flex;flex-direction:column;gap:2px}.preset-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary, #1e293b)}.preset-mood{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.radius-presets,.shadow-presets{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.radius-btn,.Shadow-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease;min-width:60px}.radius-btn:hover,.Shadow-btn:hover{border-color:var(--color-primary-500, #3b82f6)}.radius-btn.active,.Shadow-btn.active{border-color:var(--color-primary-500, #3b82f6);background:#3b82f61a}.radius-icon{width:32px;height:20px;background:var(--color-primary-500, #3b82f6);display:block}.radius-btn span,.Shadow-btn span{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.shadow-preview{width:40px;height:24px;background:var(--color-surface, #ffffff);border-radius:var(--radius-sm, 4px)}.sidebar-presets{display:flex;gap:var(--spacing-2)}.sidebar-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);padding:var(--spacing-3);background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease;flex:1}.sidebar-btn:hover{border-color:var(--color-primary-500, #3b82f6)}.sidebar-btn.active{border-color:var(--color-primary-500, #3b82f6);background:#3b82f61a}.sidebar-icon{font-size:1.5rem}.sidebar-btn span{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.style-presets,.button-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--spacing-2)}.style-btn,.button-style-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease}.style-btn:hover,.button-style-btn:hover{border-color:var(--color-primary-500, #3b82f6)}.style-btn.active,.button-style-btn.active{border-color:var(--color-primary-500, #3b82f6);background:#3b82f61a}.card-preview{width:60px;height:40px;background:var(--color-background-secondary, #f1f5f9)}.card-preview.flat{border-radius:var(--radius-sm, 4px);box-shadow:none}.card-preview.elevated{border-radius:var(--radius-sm, 4px);box-shadow:0 2px 4px #0000001a}.card-preview.glass{border-radius:var(--radius-sm, 4px);background:#fff3;border:1px solid rgba(255,255,255,.3)}.card-preview.bordered{border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #e2e8f0);box-shadow:none}.btn-preview{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary-500, #3b82f6);color:#fff;font-size:var(--font-size-sm)}.btn-preview.rounded{border-radius:var(--radius-md, 8px)}.btn-preview.pill{border-radius:9999px}.btn-preview.square{border-radius:0}.btn-preview.outline{background:transparent;border:2px solid var(--color-primary-500, #3b82f6)}.style-btn span,.button-style-btn span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.style-btn small,.button-style-btn small{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b);text-align:center}.animation-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-2)}.anim-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--spacing-3);background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s ease}.anim-btn:hover{border-color:var(--color-primary-500, #3b82f6)}.anim-btn.active{border-color:var(--color-primary-500, #3b82f6);background:#3b82f61a}.anim-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.anim-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.font-preview{margin-top:var(--spacing-3);padding:var(--spacing-4);background:var(--color-background-secondary, #f1f5f9);border-radius:var(--radius-md, 8px)}.font-preview h1{font-size:var(--font-size-xl);margin-bottom:var(--spacing-2)}.font-preview h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-2)}.font-preview p{font-size:var(--font-size-base);line-height:1.6}.time-range{display:flex;gap:var(--spacing-4)}.time-input{flex:1}.time-input label{display:block;font-size:var(--font-size-xs);margin-bottom:var(--spacing-1)}.time-input input{width:100%;padding:var(--spacing-2);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px)}.dark-preview{margin-top:var(--spacing-4)}.dark-preview h4{font-size:var(--font-size-sm);margin-bottom:var(--spacing-3)}.preview-boxes{display:flex;gap:var(--spacing-3)}.preview-box{flex:1;padding:var(--spacing-4);border-radius:var(--radius-md, 8px);text-align:center}.preview-box.light{background:#fff;border:1px solid #e2e8f0}.preview-box.dark{background:#1e293b;border:1px solid #334155}.preview-box span{font-size:var(--font-size-sm);color:var(--color-text-secondary, #64748b)}.preview-box.dark span{color:#94a3b8}.preview-section{margin-bottom:var(--spacing-6)}.theme-preview-full{background:var(--preview-bg, #f8fafc);border-radius:var(--radius-lg, 12px);overflow:hidden;border:1px solid var(--color-border, #e2e8f0)}.preview-navbar{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);background:linear-gradient(135deg,var(--preview-primary, #3b82f6),var(--preview-secondary, #8b5cf6));color:#fff}.preview-logo{font-size:1.5rem}.preview-menu{display:flex;gap:var(--spacing-4)}.preview-menu span{font-size:var(--font-size-sm);opacity:.9}.preview-avatar{width:32px;height:32px;background:#ffffff4d;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.preview-main{display:flex;min-height:200px}.preview-sidebar{width:60px;background:var(--preview-surface, #ffffff);border-right:1px solid var(--color-border, #e2e8f0);padding:var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-2)}.preview-sidebar-item{width:36px;height:36px;background:var(--preview-bg, #f1f5f9);border-radius:var(--preview-radius, 12px);display:flex;align-items:center;justify-content:center;font-size:1rem}.preview-content{flex:1;padding:var(--spacing-4)}.preview-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-4)}.preview-card{background:var(--preview-surface, #ffffff);border-radius:var(--preview-radius, 12px);padding:var(--spacing-4);box-shadow:var(--preview-shadow, 0 4px 6px rgba(0,0,0,.1));border:1px solid var(--color-border, #e2e8f0)}.preview-card h3{font-family:var(--preview-heading, Inter),system-ui,sans-serif;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-2);color:var(--preview-text, #1e293b)}.preview-card p{font-family:var(--preview-body, Inter),system-ui,sans-serif;font-size:var(--font-size-sm);color:var(--preview-text-secondary, #64748b);margin-bottom:var(--spacing-3)}.preview-btn{padding:var(--spacing-2) var(--spacing-4);border:none;border-radius:var(--preview-radius, 12px);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:default}.preview-btn.primary{background:var(--preview-primary, #3b82f6);color:#fff}.preview-stats{display:flex;gap:var(--spacing-4)}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--preview-primary, #3b82f6)}.stat-label{font-size:var(--font-size-xs);color:var(--preview-text-secondary, #64748b)}.preview-progress{display:flex;flex-direction:column;gap:var(--spacing-2)}.progress-bar{height:8px;background:var(--preview-bg, #e2e8f0);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--preview-primary, #3b82f6);border-radius:4px}.preview-progress span{font-size:var(--font-size-xs);color:var(--preview-text-secondary, #64748b)}.actions-bar{display:flex;justify-content:space-between;gap:var(--spacing-4);padding:var(--spacing-4);margin-top:var(--spacing-6);border-radius:var(--radius-lg, 12px);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);box-shadow:0 -2px 12px #0000000a;position:sticky;bottom:0;z-index:10}.actions-bar button{min-width:160px}@media (max-width: 1024px){.theme-grid{grid-template-columns:1fr}}@media (max-width: 768px){.theme-settings{padding:var(--spacing-4)}.theme-grid{grid-template-columns:1fr}.theme-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.preview-card-grid{grid-template-columns:1fr}.preview-main{flex-direction:column}.preview-sidebar{flex-direction:row;width:100%;border-right:none;border-bottom:1px solid var(--color-border, #e2e8f0)}.actions-bar{flex-direction:column-reverse}.actions-bar button{width:100%}}}.login-settings{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.login-settings .page-header{margin-bottom:var(--spacing-6)}.login-settings .page-header h1{margin:0;font-size:var(--font-size-2xl);color:var(--color-text-primary)}.login-settings .page-header p{margin:var(--spacing-1) 0 0;color:var(--color-text-secondary)}.settings-layout{display:grid;grid-template-columns:1fr 400px;gap:var(--spacing-6)}.settings-main{min-width:0}.settings-tabs{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap}.settings-tab{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.settings-tab:hover{border-color:var(--color-primary-500)}.settings-tab.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.settings-tab .tab-icon{font-size:1.2em}.settings-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-4)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-4)}.bg-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-3)}.bg-type-btn{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4);border:2px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.bg-type-btn:hover{border-color:var(--color-primary-500)}.bg-type-btn.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.bg-type-icon{font-size:1.5rem;margin-bottom:var(--spacing-2)}.bg-type-label{font-size:var(--font-size-sm);font-weight:500}.card-styles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3)}.card-style-btn{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4);border:2px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.card-style-btn:hover{border-color:var(--color-primary-500)}.card-style-btn.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.card-preview-box{width:100px;height:60px;background:#fff;margin-bottom:var(--spacing-2);border-radius:var(--radius-sm)}.card-preview-box.elevated{box-shadow:0 4px 12px #00000026}.card-preview-box.glass{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.card-preview-box.solid{background:#fff;border:none}.card-preview-box.outlined{background:transparent;border:2px solid var(--color-border)}.card-style-label{font-weight:500;margin-bottom:var(--spacing-1)}.card-style-btn small{color:var(--color-text-secondary)}.position-grid{display:flex;gap:var(--spacing-3)}.position-grid.small{flex-wrap:wrap}.position-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border:2px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.position-btn:hover{border-color:var(--color-primary-500)}.position-btn.active{border-color:var(--color-primary-500);background:var(--color-primary-500);color:#fff}.position-icon{font-size:1.2em}.overlay-settings{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.range-labels{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--spacing-1)}.toggle-option{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease}.toggle-option:hover{background:var(--color-background)}.toggle-option input[type=checkbox]{margin-top:var(--spacing-1);width:18px;height:18px}.toggle-info{flex:1}.toggle-label{font-weight:500;display:block}.toggle-desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.dynamic-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.dynamic-item{display:flex;gap:var(--spacing-2);align-items:center}.dynamic-item input[type=text],.dynamic-item input[type=url]{flex:1}.dynamic-item select{width:150px}.dynamic-item .flex-1{flex:1}.remove-btn{width:32px;height:32px;border:none;background:var(--color-error-50);color:var(--color-error);border-radius:var(--radius-sm);cursor:pointer;font-size:1.2rem}.remove-btn:hover{background:var(--color-error);color:#fff}.add-btn{padding:var(--spacing-2) var(--spacing-4);border:2px dashed var(--color-border);background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--color-primary-600);font-weight:500;transition:all .2s ease}.add-btn:hover{border-color:var(--color-primary-500);background:var(--color-primary-50)}.feature-items{margin-top:var(--spacing-4)}.feature-item{padding:var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-3)}.feature-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3)}.feature-item-header h4{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.feature-item-fields{display:flex;flex-direction:column;gap:var(--spacing-3)}.feature-item-fields .form-group.inline{display:flex;align-items:center;gap:var(--spacing-2)}.feature-item-fields .form-group.inline label{margin:0;min-width:80px}.feature-item-fields .icon-input{width:60px;text-align:center;font-size:1.5rem}.announcement-settings{margin-top:var(--spacing-4)}.announcement-preview{padding:var(--spacing-3);border-radius:var(--radius-md);text-align:center;color:#fff;font-weight:500;margin-top:var(--spacing-4)}.presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-3)}.preset-btn{display:flex;flex-direction:column;padding:var(--spacing-4);border:2px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .2s ease}.preset-btn:hover{border-color:var(--color-primary-500)}.preset-btn .preset-name{font-weight:600;margin-bottom:var(--spacing-1)}.preset-btn small{color:var(--color-text-secondary)}.code-textarea{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.image-preview{margin-top:var(--spacing-3);border-radius:var(--radius-md);overflow:hidden}.image-preview img{max-width:100%;max-height:200px;object-fit:cover}.settings-preview{position:sticky;top:var(--spacing-4)}.preview-container{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.preview-container.mobile{max-width:375px;margin:0 auto}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border)}.preview-header h3{margin:0;font-size:var(--font-size-sm)}.preview-modes{display:flex;gap:var(--spacing-2)}.preview-mode-btn{padding:var(--spacing-1) var(--spacing-3);border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-xs)}.preview-mode-btn.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.login-preview{position:relative;min-height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,#6366f1,#8b5cf6)}.preview-bg-image{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center}.preview-bg-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.announcement-preview-top{position:absolute;top:0;left:0;right:0;padding:var(--spacing-2) var(--spacing-4);color:#fff;text-align:center;font-size:var(--font-size-sm);font-weight:500}.feature-panel-preview{position:absolute;top:50%;transform:translateY(-50%);width:200px;color:#fff;padding:var(--spacing-4)}.feature-panel-preview.left{left:var(--spacing-6)}.feature-panel-preview.right{right:var(--spacing-6)}.feature-panel-preview h3{margin:0 0 var(--spacing-4);font-size:var(--font-size-lg)}.feature-item-preview{display:flex;align-items:flex-start;gap:var(--spacing-2);margin-bottom:var(--spacing-3)}.feature-item-preview .feature-icon{font-size:1.5rem}.feature-item-preview .feature-text{flex:1}.feature-item-preview strong{display:block;font-size:var(--font-size-sm)}.feature-item-preview small{opacity:.8;font-size:var(--font-size-xs)}.login-card-preview{position:relative;z-index:10;width:340px;padding:var(--spacing-6);background:#fff;border-radius:var(--radius-lg);text-align:center}.login-card-preview.elevated{box-shadow:0 8px 30px #00000026}.login-card-preview.glass{background:#ffffffd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3)}.login-card-preview.solid{box-shadow:none}.login-card-preview.outlined{background:#fff;border:2px solid #e5e7eb}.login-card-preview h2{margin:var(--spacing-2) 0;font-size:var(--font-size-xl)}.login-card-preview .welcome-msg{color:var(--color-text-secondary);margin:0;font-size:var(--font-size-sm)}.login-card-preview .tagline{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:var(--spacing-1) 0}.login-card-preview .preview-form{display:flex;flex-direction:column;gap:var(--spacing-3);margin-top:var(--spacing-4)}.login-card-preview input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.login-card-preview .remember-me{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);justify-content:flex-start}.login-card-preview .preview-login-btn{width:100%;padding:var(--spacing-3);background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;cursor:pointer}.login-card-preview .forgot-link{display:block;margin-top:var(--spacing-2);color:var(--color-primary-600);font-size:var(--font-size-sm);text-decoration:none}.login-card-preview .demo-hint-preview{margin-top:var(--spacing-4);padding:var(--spacing-2) var(--spacing-3);background:#0000000d;border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.login-card-preview .social-links-preview{display:flex;justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-4)}.login-card-preview .social-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-background);border-radius:50%;font-size:1.2rem}.login-card-preview .footer-links-preview{display:flex;justify-content:center;gap:var(--spacing-3);margin-top:var(--spacing-3);font-size:var(--font-size-xs)}.login-card-preview .footer-links-preview a{color:var(--color-text-secondary);text-decoration:none}.login-card-preview.right{margin-left:auto;margin-right:20%}.login-card-preview.left{margin-left:20%;margin-right:auto}.preview-logo{font-size:2.5rem}.actions-bar{display:flex;justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-6);padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.form-group{margin-bottom:var(--spacing-4)}.form-group label{display:block;margin-bottom:var(--spacing-2);font-weight:500;font-size:var(--font-size-sm)}.form-group input[type=text],.form-group input[type=url],.form-group input[type=email],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--color-background);transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary-500)}.form-group small{display:block;margin-top:var(--spacing-1);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.color-input-group{display:flex;gap:var(--spacing-2)}.color-input-group input[type=color]{width:50px;height:40px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.color-input-group input[type=text]{flex:1}@media (max-width: 1100px){.settings-layout{grid-template-columns:1fr}.settings-preview{position:static;margin-top:var(--spacing-6)}}@media (max-width: 600px){.bg-type-grid{grid-template-columns:repeat(2,1fr)}.card-styles-grid,.presets-grid,.overlay-settings{grid-template-columns:1fr}}.gradebook{padding:var(--spacing-6);max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8);flex-wrap:wrap;gap:var(--spacing-4)}.page-header select{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.submissions-grid{display:grid;gap:var(--spacing-4)}.submission-card{cursor:pointer;transition:box-shadow var(--transition-fast)}.submission-card:hover{box-shadow:var(--shadow-md)}.submission-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2)}.student-info{display:flex;align-items:center;gap:var(--spacing-3)}.avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-primary-500);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold)}.name{font-weight:var(--font-weight-medium)}.assignment{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.status{display:flex;align-items:center;gap:var(--spacing-3)}.badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.badge.graded{background:var(--color-success-100);color:var(--color-success-700)}.badge.pending{background:var(--color-warning-100);color:var(--color-warning-700)}.expand-icon{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.submission-details{padding-top:var(--spacing-4);border-top:1px solid var(--color-border);margin-top:var(--spacing-4)}.submission-content{margin-bottom:var(--spacing-4)}.submission-content label{font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2);display:block}.content-box{padding:var(--spacing-4);background:var(--color-background-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.grading-section .form-group{margin-bottom:var(--spacing-4)}.grading-section label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2)}.grading-section input,.grading-section textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.grading-section input:focus,.grading-section textarea:focus{outline:none;border-color:var(--color-primary-500)}.empty-state{text-align:center;padding:var(--spacing-12);color:var(--color-text-secondary)}.video-content{padding:var(--spacing-6);max-width:1200px;margin:0 auto}.page-header{margin-bottom:var(--spacing-8)}.page-header h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0}.page-header p{color:var(--color-text-secondary);margin:var(--spacing-1) 0 0}.upload-card{margin-bottom:var(--spacing-6)}.form-row{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-4)}.form-group{flex:1;margin-bottom:var(--spacing-4)}.form-group.flex-2{flex:2}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2)}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.input-with-button{display:flex;gap:var(--spacing-2)}.input-with-button input{flex:1}.videos-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-6);margin-bottom:var(--spacing-8)}.features-list{list-style:none;padding:0}.features-list li{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) 0;border-bottom:1px solid var(--color-border)}.features-list li:last-child{border-bottom:none}.feature-icon{font-size:var(--font-size-xl)}.video-preview{aspect-ratio:16/9;background:var(--color-neutral-900);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.video-placeholder{text-align:center;color:#fff}.video-placeholder span{font-size:var(--font-size-4xl);display:block;margin-bottom:var(--spacing-2)}.empty-preview{aspect-ratio:16/9;background:var(--color-background-secondary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.recent-section h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-4)}.video-list{display:grid;gap:var(--spacing-4)}.video-item h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-2)}.video-item p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.video-actions{display:flex;gap:var(--spacing-2)}.empty-state{text-align:center;padding:var(--spacing-12);background:var(--color-background-secondary);border-radius:var(--radius-lg);color:var(--color-text-secondary)}@media (max-width: 768px){.form-row{flex-direction:column}.videos-grid{grid-template-columns:1fr}.video-actions{flex-wrap:wrap}}.my-students{padding:2rem;max-width:1400px;margin:0 auto}.my-students .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.my-students .page-header h1{margin:0;font-size:1.75rem;color:var(--text-primary, #1a1a2e)}.my-students .page-header p{margin:.5rem 0 0;color:var(--text-secondary, #666)}.my-students .classroom-filter{padding:.75rem 1rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--card-bg, #fff);font-size:.875rem;color:var(--text-primary, #1a1a2e);cursor:pointer;min-width:200px}.my-students .classroom-filter:focus{outline:none;border-color:var(--primary-color, #5b4d9a);box-shadow:0 0 0 3px #5b4d9a1a}.my-students .stats-row{display:flex;gap:1rem;margin-bottom:2rem}.my-students .stat-card{background:linear-gradient(135deg,var(--primary-color, #5b4d9a) 0%,var(--primary-dark, #4a3f7a) 100%);color:#fff;padding:1.5rem;border-radius:12px;min-width:150px;text-align:center}.my-students .stat-card .stat-value{display:block;font-size:2rem;font-weight:700;margin-bottom:.25rem}.my-students .stat-card .stat-label{font-size:.875rem;opacity:.9}.my-students .students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.my-students .student-card{background:var(--card-bg, #fff);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s}.my-students .student-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a}.my-students .student-card .card-content{padding:1.5rem;text-align:center}.my-students .student-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color, #5b4d9a) 0%,var(--secondary-color, #8b4d9a) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;margin:0 auto 1rem}.my-students .student-name{margin:0 0 .25rem;font-size:1.125rem;color:var(--text-primary, #1a1a2e)}.my-students .student-email{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary, #666)}.my-students .student-stats{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px}.my-students .student-stats .stat{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--text-secondary, #666)}.my-students .student-actions{padding-top:1rem;border-top:1px solid var(--border-color, #e0e0e0)}.my-students .action-btn{display:inline-block;padding:.5rem 1rem;background:var(--primary-color, #5b4d9a);color:#fff;text-decoration:none;border-radius:6px;font-size:.875rem;transition:background .2s}.my-students .action-btn:hover{background:var(--primary-dark, #4a3f7a)}.my-students .empty-state{grid-column:1 / -1;text-align:center;padding:3rem;background:var(--card-bg, #fff);border-radius:12px;color:var(--text-secondary, #666)}.my-students .empty-state p{margin:0;font-size:1rem}@media (max-width: 768px){.my-students{padding:1rem}.my-students .page-header{flex-direction:column}.my-students .classroom-filter{width:100%}.my-students .stats-row{flex-direction:column}.my-students .stat-card{width:100%}}.attendance-page{padding:var(--spacing-lg);max-width:900px;margin:0 auto}.attendance-header{margin-bottom:var(--spacing-lg)}.attendance-header h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs)}.attendance-header p{color:var(--color-text-secondary);margin:0}.attendance-controls{margin-bottom:var(--spacing-md)}.controls-row{display:flex;gap:var(--spacing-md);align-items:flex-end;flex-wrap:wrap}.control-group{display:flex;flex-direction:column;gap:var(--spacing-1)}.control-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.attendance-select,.attendance-date{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-surface);color:var(--color-text-primary);min-width:200px;min-height:40px}.quick-actions-row{margin-left:auto}.attendance-summary{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-md);flex-wrap:wrap}.attendance-loading{display:flex;justify-content:center;padding:var(--spacing-xl)}.roster-card{overflow:hidden}.roster-list{display:flex;flex-direction:column}.roster-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);gap:var(--spacing-md);transition:background var(--transition-fast)}.roster-item:last-child{border-bottom:none}.roster-item:hover{background:var(--color-background-secondary)}.roster-item.present{border-left:4px solid var(--color-success-500)}.roster-item.absent{border-left:4px solid var(--color-error-500)}.roster-item.late{border-left:4px solid var(--color-warning-500)}.roster-item.excused{border-left:4px solid var(--color-primary-500)}.roster-item.unmarked{border-left:4px solid transparent}.roster-name{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.roster-student-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-student-email{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.roster-actions{display:flex;gap:var(--spacing-1);flex-shrink:0}.status-btn{padding:var(--spacing-1) var(--spacing-2);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);min-height:36px;min-width:44px;font-weight:var(--font-weight-medium)}.status-btn:hover{background:var(--color-background-secondary)}.status-btn.present.active{background:var(--color-success-500);border-color:var(--color-success-500);color:#fff}.status-btn.absent.active{background:var(--color-error-500);border-color:var(--color-error-500);color:#fff}.status-btn.late.active{background:var(--color-warning-500);border-color:var(--color-warning-500);color:#fff}.status-btn.excused.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.attendance-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.save-msg{font-size:var(--font-size-sm)}.save-msg.success{color:var(--color-success-700)}.save-msg.error{color:var(--color-error-700)}@media (max-width: 640px){.controls-row{flex-direction:column;align-items:stretch}.quick-actions-row{margin-left:0}.roster-item{flex-direction:column;align-items:stretch}.roster-actions{justify-content:center;flex-wrap:wrap}.status-btn{flex:1;min-width:70px}}.classroom-management{padding:24px;max-width:1400px;margin:0 auto}.classroom-management .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.classroom-management .page-header h1{font-size:28px;font-weight:700;margin:0 0 4px}.classroom-management .page-header p{color:#6b7280;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;text-align:center}.stat-card .stat-value{display:block;font-size:32px;font-weight:700;color:#3b82f6}.stat-card .stat-label{display:block;font-size:13px;color:#6b7280;margin-top:4px}.classroom-list{display:flex;flex-direction:column;gap:8px}.classroom-row{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:box-shadow .2s}.classroom-row.expanded{box-shadow:0 4px 12px #00000014;border-color:#3b82f6}.classroom-row-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f9fafb;transition:background .15s}.classroom-row-header:hover{background:#f3f4f6}.classroom-info{display:flex;align-items:center;gap:10px}.classroom-name{font-weight:600;font-size:16px}.classroom-subject{color:#6b7280;font-size:14px}.classroom-meta{display:flex;align-items:center;gap:16px;font-size:14px;color:#4b5563}.meta-item{white-space:nowrap}.unassigned{color:#ef4444;font-style:italic;font-size:13px}.expand-icon{transition:transform .2s;font-size:12px;color:#9ca3af}.expand-icon.rotated{transform:rotate(90deg)}.classroom-detail{padding:20px;border-top:1px solid #e5e7eb;background:#fff}.detail-loading{display:flex;align-items:center;gap:8px;padding:20px 0;color:#6b7280}.detail-section{margin-bottom:24px}.detail-section:last-child{margin-bottom:0}.detail-section h4{font-size:15px;font-weight:600;margin:0 0 12px;color:#374151}.detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.detail-section-header h4{margin:0}.detail-actions{display:flex;gap:8px;padding-top:16px;border-top:1px solid #f3f4f6}.empty-inline{color:#9ca3af;font-style:italic;padding:8px 0;font-size:14px}.student-cell{display:flex;align-items:center;gap:8px}.student-avatar{width:28px;height:28px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.empty-state{text-align:center;padding:48px;color:var(--color-text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:16px;padding:32px;width:90%;max-width:540px;max-height:85vh;overflow-y:auto}.modal-content h2{font-size:22px;font-weight:700;margin:0 0 24px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:#374151}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;box-sizing:border-box}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.enroll-list{max-height:300px;overflow-y:auto}.enroll-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f3f4f6}.enroll-row:last-child{border-bottom:none}.page-loader{display:flex;justify-content:center;align-items:center;min-height:400px}.school-analytics{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-8)}.header-content h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0}.header-content p{color:var(--color-text-secondary);margin:var(--spacing-1) 0 0}.period-selector{display:flex;gap:var(--spacing-xs);background:var(--color-surface);padding:var(--spacing-xs);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.period-selector button{padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);transition:all .2s ease}.period-selector button:hover{background:var(--color-background)}.period-selector button.active{background:var(--color-primary-600);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.stat-card{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-5);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card.primary{border-left:4px solid var(--color-primary-500)}.stat-card.secondary{border-left:4px solid var(--color-secondary-500)}.stat-card.accent{border-left:4px solid var(--color-warning-500)}.stat-card.success{border-left:4px solid var(--color-success-500)}.stat-icon{font-size:var(--font-size-3xl)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.stat-change{font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.stat-change.positive{color:var(--color-success-500)}.stat-change.negative{color:var(--color-error-500)}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.metric-card{text-align:center}.metric-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md)}.metric-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.metric-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.charts-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-6);margin-bottom:var(--spacing-6)}.chart-card{min-height:320px}.chart-card.wide{min-height:350px}.donut-wrapper{display:flex;align-items:center;gap:var(--spacing-lg)}.chart-legend{display:flex;flex-direction:column;gap:var(--spacing-sm)}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-secondary);text-align:center}.chart-empty span{font-size:2.5rem;opacity:.5;margin-bottom:var(--spacing-sm)}.leaderboard{display:flex;flex-direction:column;gap:var(--spacing-sm)}.leaderboard-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-background);border-radius:var(--radius-lg);transition:transform .2s ease}.leaderboard-item:hover{transform:translate(4px)}.leaderboard-item.rank-1{background:linear-gradient(135deg,#f59e0b1a,#eab3081a);border:1px solid rgba(245,158,11,.3)}.leaderboard-item.rank-2{background:linear-gradient(135deg,#94a3b81a,#cbd5e11a);border:1px solid rgba(148,163,184,.3)}.leaderboard-item.rank-3{background:linear-gradient(135deg,#b453091a,#92400e1a);border:1px solid rgba(180,83,9,.3)}.rank-badge{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:var(--font-size-sm);background:var(--color-primary-500);color:#fff}.rank-1 .rank-badge{background:linear-gradient(135deg,#f59e0b,#eab308)}.rank-2 .rank-badge{background:linear-gradient(135deg,#94a3b8,#cbd5e1)}.rank-3 .rank-badge{background:linear-gradient(135deg,#b45309,#d97706)}.student-info{flex:1;display:flex;flex-direction:column}.student-name{font-weight:600;color:var(--color-text-primary)}.student-stats{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.student-score{text-align:right}.score-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-success-500)}.bottom-row{display:grid;grid-template-columns:1fr 2fr;gap:var(--spacing-6)}.alerts-card .alerts-list{max-height:250px;overflow-y:auto}.alert-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);transition:transform .2s ease}.alert-item:hover{transform:translate(4px)}.alert-item.success{background:linear-gradient(135deg,#22c55e1a,#10b9811a);border-left:3px solid var(--color-success-500)}.alert-item.warning{background:linear-gradient(135deg,#f59e0b1a,#d977061a);border-left:3px solid var(--color-warning-500)}.alert-item.critical{background:linear-gradient(135deg,#ef44441a,#dc26261a);border-left:3px solid var(--color-error-500)}.alert-item.info{background:linear-gradient(135deg,#3b82f61a,#2563eb1a);border-left:3px solid var(--color-primary-500)}.alert-item .alert-icon{font-size:var(--font-size-xl)}.alert-item .alert-message{font-size:var(--font-size-sm);color:var(--color-text-primary)}.activity-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:250px;overflow-y:auto}.activity-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border-radius:var(--radius-md)}.activity-icon{font-size:var(--font-size-lg)}.activity-info{flex:1;display:flex;flex-direction:column}.activity-title{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media (max-width: 1200px){.stats-grid,.metrics-row{grid-template-columns:repeat(2,1fr)}.charts-row,.bottom-row{grid-template-columns:1fr}}@media (max-width: 768px){.page-header{flex-direction:column;gap:var(--spacing-md)}.stats-grid,.metrics-row{grid-template-columns:1fr}.stat-card{flex-direction:column;text-align:center}.donut-wrapper{flex-direction:column}}.quizzes-list{padding:2rem;max-width:1400px;margin:0 auto}.quizzes-list .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.quizzes-list .page-header h1{margin:0;font-size:1.75rem;color:var(--color-text-primary, #111827)}.quizzes-list .page-header p{margin:.5rem 0 0;color:var(--color-text-secondary, #6b7280)}.quizzes-list .filters-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.quizzes-list .search-box input{padding:.75rem 1rem;border:2px solid var(--color-border, #e5e7eb);border-radius:8px;font-size:.9375rem;min-width:280px;background:var(--color-surface, #fff);color:var(--color-text-primary, #111827);transition:all .2s ease;min-height:44px}.quizzes-list .search-box input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.quizzes-list .filter-buttons{display:flex;gap:.5rem}.quizzes-list .filter-btn{padding:.625rem 1.25rem;border:2px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-surface, #fff);color:var(--color-text-secondary, #6b7280);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:44px}.quizzes-list .filter-btn:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.quizzes-list .filter-btn.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563eb;color:#fff;box-shadow:0 2px 8px #2563eb40}.quizzes-list .empty-state{text-align:center;padding:4rem 2rem;background:var(--color-surface, #fff);border-radius:12px;border:1px solid var(--color-border, #e5e7eb)}.quizzes-list .empty-icon{font-size:4rem;margin-bottom:1rem}.quizzes-list .empty-state h3{margin:0 0 .5rem;color:var(--color-text-primary, #111827)}.quizzes-list .empty-state p{color:var(--color-text-secondary, #6b7280);margin:0 0 1.5rem}.quizzes-list .quizzes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.quizzes-list .quiz-card{background:var(--color-surface, #fff);border-radius:12px;border:1px solid var(--color-border, #e5e7eb);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.quizzes-list .quiz-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0000001f;border-color:#2563eb}.quizzes-list .quiz-card .card-content{padding:1.5rem}.quizzes-list .quiz-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.quizzes-list .quiz-subject-badge{padding:.375rem .875rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:20px;font-size:.8125rem;font-weight:600;color:#1d4ed8}.quizzes-list .quiz-title{margin:0 0 .5rem;font-size:1.125rem;color:var(--color-text-primary, #111827);font-weight:600}.quizzes-list .quiz-description{margin:0 0 1rem;font-size:.9375rem;color:var(--color-text-secondary, #6b7280);line-height:1.5}.quizzes-list .quiz-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.quizzes-list .meta-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.quizzes-list .meta-icon{font-size:1rem}.quizzes-list .quiz-score{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem;background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border-radius:8px}.quizzes-list .score-label{font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.quizzes-list .score-value{font-size:1.25rem;font-weight:700;color:#22c55e}.quizzes-list .quiz-actions{display:flex;gap:.75rem}.quizzes-list .quiz-actions .btn{flex:1}@media (max-width: 768px){.quizzes-list{padding:1rem}.quizzes-list .page-header{flex-direction:column}.quizzes-list .filters-row{flex-direction:column;align-items:stretch}.quizzes-list .search-box input{width:100%;min-width:auto}.quizzes-list .filter-buttons{flex-wrap:wrap}.quizzes-list .quizzes-grid{grid-template-columns:1fr}}@layer quiz-results{.quiz-results-teacher-page{padding:24px;max-width:1400px;margin:0 auto}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.header-left{display:flex;flex-direction:column;gap:12px}.quiz-info h1{margin:0;font-size:24px;font-weight:600}.quiz-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.header-actions{display:flex;gap:12px}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{text-align:center;padding:20px}.stat-card .stat-value{font-size:32px;font-weight:700;color:#2563eb}.stat-card .stat-label{font-size:14px;color:#64748b;margin-top:4px}.question-stats-card{margin-bottom:24px}.question-stats-card h3{margin:0 0 16px}.question-stats-grid{display:flex;flex-direction:column;gap:12px}.question-stat-item{display:grid;grid-template-columns:50px 1fr 60px 100px;align-items:center;gap:12px}.question-number{font-weight:600;color:#64748b}.question-bar-container{height:20px;background:#f1f5f9;border-radius:10px;overflow:hidden}.question-bar{height:100%;border-radius:10px;transition:width .3s ease}.question-percent{font-weight:600;font-size:14px}.question-detail{font-size:12px;color:#64748b}.attempts-card{margin-bottom:24px}.attempts-card h3{margin:0 0 16px}.table-container{overflow-x:auto}.attempts-table{width:100%;border-collapse:collapse}.attempts-table th,.attempts-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0}.attempts-table th{font-weight:600;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.attempts-table tr:hover{background:#f8fafc}.attempts-table tr.selected{background:#eff6ff}.student-cell{display:flex;flex-direction:column;gap:2px}.student-name{font-weight:500}.student-email{font-size:12px;color:#64748b}.score-cell{display:flex;flex-direction:column;gap:2px}.score-value{font-weight:600}.score-detail{font-size:12px;color:#64748b}.text-success{color:#22c55e}.text-error{color:#ef4444}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:20px}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#64748b;padding:4px}.close-btn:hover{color:#1e293b}.modal-body{padding:24px;overflow-y:auto}.attempt-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;padding:16px;background:#f8fafc;border-radius:8px;margin-bottom:24px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-item .label{font-size:12px;color:#64748b}.summary-item .value{font-size:18px;font-weight:600}.answers-list{display:flex;flex-direction:column;gap:16px}.answer-item{border:1px solid #e2e8f0;border-radius:8px;padding:16px}.answer-item.correct{border-left:4px solid #22c55e}.answer-item.incorrect{border-left:4px solid #ef4444}.answer-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.question-num{font-weight:600}.points{margin-left:auto;font-size:14px;color:#64748b}.question-text{margin:0 0 12px;color:#1e293b}.answer-comparison{background:#f8fafc;padding:12px;border-radius:6px;margin-bottom:8px}.user-answer,.correct-answer{margin-bottom:4px}.user-answer strong,.correct-answer strong{margin-right:8px}.explanation{font-size:14px;color:#64748b;padding:8px;background:#fffbeb;border-radius:4px}.no-attempts{text-align:center;padding:40px;color:#64748b}@media (max-width: 768px){.quiz-results-teacher-page{padding:16px}.page-header{flex-direction:column}.question-stat-item{grid-template-columns:40px 1fr 50px}.question-detail{display:none}.attempts-table th:nth-child(5),.attempts-table td:nth-child(5){display:none}}}.settings-page{padding:2rem;max-width:1000px;margin:0 auto}.settings-page .page-header{margin-bottom:2rem}.settings-page .page-header h1{margin:0;font-size:1.75rem;color:var(--text-primary, #1a1a2e)}.settings-page .page-header p{margin:.5rem 0 0;color:var(--text-secondary, #666)}.settings-page .message{padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.875rem}.settings-page .message.success{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.settings-page .message.error{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.settings-page .settings-layout{display:grid;grid-template-columns:200px 1fr;gap:2rem}.settings-page .settings-nav{display:flex;flex-direction:column;gap:.5rem}.settings-page .nav-btn{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:none;border-radius:8px;background:transparent;color:var(--text-secondary, #666);font-size:.875rem;cursor:pointer;text-align:left;transition:all .2s}.settings-page .nav-btn:hover{background:var(--bg-secondary, #f0f0f5);color:var(--text-primary, #1a1a2e)}.settings-page .nav-btn.active{background:var(--primary-color, #5b4d9a);color:#fff}.settings-page .nav-icon{font-size:1.25rem}.settings-page .nav-label{font-weight:500}.settings-page .settings-form{display:flex;flex-direction:column;gap:1.25rem}.settings-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.settings-page .form-group{display:flex;flex-direction:column;gap:.5rem}.settings-page .form-group label{font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a2e)}.settings-page .form-group input,.settings-page .form-group select,.settings-page .form-group textarea{padding:.75rem 1rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;font-size:.875rem;background:var(--card-bg, #fff);color:var(--text-primary, #1a1a2e);transition:border-color .2s,box-shadow .2s}.settings-page .form-group input:focus,.settings-page .form-group select:focus,.settings-page .form-group textarea:focus{outline:none;border-color:var(--primary-color, #5b4d9a);box-shadow:0 0 0 3px #5b4d9a1a}.settings-page .form-group input.disabled,.settings-page .form-group select.disabled{background:var(--bg-secondary, #f0f0f5);color:var(--text-secondary, #666);cursor:not-allowed}.settings-page .form-group small{font-size:.75rem;color:var(--text-secondary, #666)}.settings-page .form-group textarea{resize:vertical;min-height:80px}.settings-page .preference-group{padding:1rem 0;border-bottom:1px solid var(--border-color, #e0e0e0)}.settings-page .preference-group:last-of-type{border-bottom:none}.settings-page .preference-group h4{margin:0 0 1rem;font-size:1rem;color:var(--text-primary, #1a1a2e)}.settings-page .toggle-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;cursor:pointer}.settings-page .toggle-row span{font-size:.875rem;color:var(--text-secondary, #666)}.settings-page .toggle-row input[type=checkbox]{width:44px;height:24px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-secondary, #e0e0e0);border-radius:12px;position:relative;cursor:pointer;transition:background .2s}.settings-page .toggle-row input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 2px 4px #0000001a}.settings-page .toggle-row input[type=checkbox]:checked{background:var(--primary-color, #5b4d9a)}.settings-page .toggle-row input[type=checkbox]:checked:before{transform:translate(20px)}.settings-page .form-actions{display:flex;justify-content:flex-end;padding-top:1rem;margin-top:.5rem;border-top:1px solid var(--border-color, #e0e0e0)}@media (max-width: 768px){.settings-page{padding:1rem}.settings-page .settings-layout{grid-template-columns:1fr}.settings-page .settings-nav{flex-direction:row;overflow-x:auto;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e0e0e0);margin-bottom:1rem}.settings-page .nav-btn{white-space:nowrap}.settings-page .form-row{grid-template-columns:1fr}}.parent-dashboard{max-width:1200px;margin:0 auto;padding:24px}.dashboard-header{margin-bottom:32px}.dashboard-header h1{font-size:28px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.dashboard-subtitle{color:var(--color-text-secondary);font-size:16px}.error-banner{background:var(--color-error-bg);color:var(--color-error);padding:12px 16px;border-radius:8px;margin-bottom:24px}.link-student-section{margin-bottom:32px}.link-student-section h2{font-size:18px;margin-bottom:8px}.section-description{color:var(--color-text-secondary);margin-bottom:16px}.link-form{display:flex;gap:12px;max-width:400px}.link-form input{flex:1}.link-message{margin-top:12px;font-size:14px}.link-message.success{color:var(--color-success)}.link-message.error{color:var(--color-error)}.linked-students-section h2{font-size:20px;margin-bottom:20px}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.student-card{padding:20px}.student-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.student-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--color-primary-100);display:flex;align-items:center;justify-content:center}.student-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{font-size:24px;font-weight:600;color:var(--color-primary-600)}.student-info h3{font-size:18px;margin-bottom:4px}.student-email{color:var(--color-text-secondary);font-size:14px}.student-stats{display:flex;justify-content:space-around;margin-bottom:16px;padding:12px 0;background:var(--color-bg-secondary);border-radius:8px}.stat{text-align:center}.stat-value{display:block;font-size:24px;font-weight:600;color:var(--color-text-primary)}.stat-value.warning{color:var(--color-warning)}.stat-label{display:block;font-size:12px;color:var(--color-text-secondary);margin-top:4px}.student-actions{display:flex;gap:12px}.student-actions a,.student-actions button{flex:1}.parent-student-view{max-width:1200px;margin:0 auto;padding:24px}.back-link{display:inline-block;margin-bottom:24px;color:var(--color-primary);text-decoration:none;font-size:14px}.back-link:hover{text-decoration:underline}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding:24px;background:var(--color-bg-secondary);border-radius:12px}.student-profile{display:flex;align-items:center;gap:20px}.profile-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--color-primary-100);display:flex;align-items:center;justify-content:center}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-info h1{font-size:24px;margin-bottom:4px}.profile-email{color:var(--color-text-secondary);font-size:14px}.student-streak{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--color-bg-primary);border-radius:8px}.streak-icon{font-size:24px}.streak-value{font-size:28px;font-weight:700;color:var(--color-warning)}.streak-label{color:var(--color-text-secondary);font-size:14px}.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.assignments-section{grid-column:1 / -1}.assignments-section h2,.grades-section h2,.activity-section h2{font-size:18px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.assignments-list,.grades-list,.activity-list{display:flex;flex-direction:column;gap:12px}.assignment-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--color-bg-secondary);border-radius:8px}.assignment-info h4{font-size:15px;margin-bottom:4px}.assignment-classroom{font-size:13px;color:var(--color-text-secondary);margin-bottom:2px}.assignment-due{font-size:12px;color:var(--color-text-muted)}.assignment-status{display:flex;align-items:center;gap:12px}.assignment-score{font-size:16px;font-weight:600}.grade-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--color-bg-secondary);border-radius:8px}.grade-info h4{font-size:15px;margin-bottom:4px}.grade-subject{font-size:13px;color:var(--color-text-secondary);margin-bottom:2px}.grade-count{font-size:12px;color:var(--color-text-muted)}.grade-average{font-size:24px;font-weight:600}.activity-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-bg-secondary);border-radius:8px}.activity-icon{font-size:20px}.activity-info{flex:1}.activity-description{font-size:14px;margin-bottom:2px}.activity-time{font-size:12px;color:var(--color-text-muted)}.empty-message{color:var(--color-text-secondary);text-align:center;padding:24px}.student-view-error{max-width:600px;margin:0 auto;padding:24px}.error-message{color:var(--color-error);text-align:center;padding:24px}@media (max-width: 768px){.stats-overview{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.student-header{flex-direction:column;gap:16px;text-align:center}.student-profile{flex-direction:column}}.study-schedule{max-width:1200px;margin:0 auto;padding:24px}.schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.schedule-header h1{font-size:28px;font-weight:600;color:var(--color-text-primary)}.schedule-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-card{display:flex;align-items:center;gap:16px;padding:20px}.stat-icon{font-size:32px}.stat-content{display:flex;flex-direction:column}.stat-content .stat-value{font-size:24px;font-weight:600}.stat-content .stat-label{font-size:14px;color:var(--color-text-secondary)}.progress-bar{width:100%;height:8px;background:var(--color-bg-secondary);border-radius:4px;margin-top:8px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s ease}.view-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--color-border);padding-bottom:8px}.view-tabs .tab{padding:8px 16px;background:none;border:none;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-radius:6px;transition:all .2s}.view-tabs .tab:hover{background:var(--color-bg-secondary)}.view-tabs .tab.active{background:var(--color-primary);color:#fff}.sessions-list,.recommendations-list{display:flex;flex-direction:column;gap:12px}.session-card{display:flex;align-items:center;gap:20px;padding:16px 20px}.session-time{display:flex;flex-direction:column;align-items:center;min-width:80px;font-size:16px;font-weight:600;color:var(--color-text-primary)}.session-time .duration{font-size:12px;color:var(--color-text-secondary);font-weight:400}.session-info{flex:1}.session-info h4{font-size:16px;margin-bottom:4px}.session-info p{font-size:14px;color:var(--color-text-secondary);margin-bottom:4px}.session-status{font-size:12px;font-weight:500;text-transform:capitalize}.session-actions{display:flex;gap:8px}.recommendation-card{display:flex;align-items:center;gap:16px;padding:16px 20px}.rec-icon{font-size:28px}.rec-content{flex:1}.rec-content h4{font-size:15px;margin-bottom:4px}.rec-content p{font-size:14px;color:var(--color-text-secondary);margin-bottom:4px}.rec-subject{font-size:12px;color:var(--color-primary);background:var(--color-primary-100);padding:2px 8px;border-radius:4px}.dismiss-btn{width:28px;height:28px;border:none;background:var(--color-bg-secondary);border-radius:50%;cursor:pointer;font-size:18px;color:var(--color-text-secondary)}.dismiss-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.empty-state{text-align:center;padding:48px 24px}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{font-size:18px;margin-bottom:8px}.empty-state p{color:var(--color-text-secondary)}@media (max-width: 768px){.schedule-stats{grid-template-columns:1fr}.session-card{flex-direction:column;align-items:flex-start}}.risk-dashboard{padding:24px;max-width:1400px;margin:0 auto}.risk-header{margin-bottom:24px}.risk-header h1{font-size:24px;font-weight:600;color:#1f2937}.risk-summary-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px}.summary-card{background:#fff;border-radius:8px;padding:16px;border-left:4px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.summary-value{font-size:32px;font-weight:700;color:#1f2937}.summary-label{font-size:14px;color:#6b7280;margin-top:4px}.risk-filters{display:flex;gap:12px;margin-bottom:24px}.risk-filters select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff}.risk-content{display:grid;grid-template-columns:1fr 400px;gap:24px}.risk-students-list{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.risk-students-list h2{font-size:18px;font-weight:600;margin-bottom:16px}.students-table{overflow-x:auto}.table-header{display:grid;grid-template-columns:2fr 1.2fr .9fr .8fr 1.6fr .7fr .7fr;gap:12px;padding:12px;background:#f9fafb;border-radius:6px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase}.table-row{display:grid;grid-template-columns:2fr 1.2fr .9fr .8fr 1.6fr .7fr .7fr;gap:12px;padding:12px;align-items:center;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .15s}.table-row:hover{background:#f9fafb}.table-row.selected{background:#eff6ff}.col-name{display:flex;align-items:center;gap:12px}.student-avatar{width:36px;height:36px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.student-info{overflow:hidden}.student-name{font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-email{font-size:12px;color:#6b7280}.col-score{display:flex;align-items:center;gap:8px}.score-bar{width:60px;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.score-fill{height:100%;border-radius:3px;transition:width .3s}.risk-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.risk-detail-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a;position:sticky;top:24px;max-height:calc(100vh - 100px);overflow-y:auto}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-header h3{font-size:18px;font-weight:600}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280}.detail-score{text-align:center;padding:20px;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:20px}.score-circle{width:80px;height:80px;border-radius:50%;border:4px solid;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:28px;font-weight:700}.score-label{font-size:14px;color:#6b7280}.detail-metrics{margin-bottom:20px}.metric-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e5e7eb;font-size:14px}.metric-row .negative{color:#dc2626}.detail-factors{margin-bottom:20px}.detail-factors h4,.detail-recommendations h4,.detail-alerts h4,.detail-interventions h4{font-size:14px;font-weight:600;margin-bottom:8px;color:#374151}.factors-list{display:flex;flex-wrap:wrap;gap:6px}.factor-tag{background:#fef2f2;color:#dc2626;padding:4px 8px;border-radius:4px;font-size:12px}.factor-tag.weak{background:#fff7ed;color:#c2410c}.col-insight{min-width:0}.insight-badge{display:block;font-size:12px;line-height:1.3;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 8px;border-radius:6px}.insight-badge.ready{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.insight-badge.pending{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.detail-monthly-insight{margin:16px 0;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.detail-monthly-insight h4,.detail-monthly-insight h5{margin:0 0 8px;color:#0f172a}.detail-monthly-insight h5{font-size:13px;margin-top:12px}.insight-summary{margin:0;font-size:14px;font-weight:600;color:#1e293b;line-height:1.4}.insight-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#64748b}.insight-section ul,.insight-actions{margin:0;padding-left:18px;font-size:13px;color:#334155}.insight-actions li,.insight-section li{margin-bottom:6px}.insight-pending-msg{margin:0;font-size:13px;color:#64748b;line-height:1.45}.detail-recommendations ul{list-style:none;padding:0;margin:0}.detail-recommendations li{padding:8px;background:#f0fdf4;border-left:3px solid #16a34a;margin-bottom:8px;font-size:13px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.detail-actions .risk-action-btn,.risk-action-btn{flex:1 1 140px;min-height:44px;padding:.625rem 1rem;border-radius:var(--radius-md, 8px);border:2px solid transparent;font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.25;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.risk-action-btn--alert{background-color:var(--color-primary-600, #2563eb);border-color:var(--color-primary-600, #2563eb);color:var(--color-on-primary, #ffffff)}.risk-action-btn--alert:hover{background-color:var(--color-primary-700, #1d4ed8);border-color:var(--color-primary-700, #1d4ed8);color:var(--color-on-primary, #ffffff)}.risk-action-btn--intervention{background-color:var(--color-btn-outline-bg, #ffffff);border-color:var(--color-btn-outline-fg, #0f172a);color:var(--color-btn-outline-fg, #0f172a)}.risk-action-btn--intervention:hover{background-color:var(--color-background-secondary, #f1f5f9);border-color:var(--color-btn-outline-fg, #0f172a);color:var(--color-btn-outline-fg, #0f172a)}.risk-action-btn:focus-visible{outline:2px solid var(--color-primary-500, #3b82f6);outline-offset:2px}.detail-alerts,.detail-interventions{margin-bottom:16px}.alert-item,.intervention-item{display:flex;align-items:center;gap:8px;padding:8px;background:#f9fafb;border-radius:4px;margin-bottom:6px;font-size:13px}.severity-critical{color:#dc2626;font-weight:600;font-size:11px}.severity-warning{color:#ea580c;font-weight:600;font-size:11px}.severity-info{color:#3b82f6;font-weight:600;font-size:11px}.int-status{font-size:11px;padding:2px 6px;background:#e5e7eb;border-radius:3px;text-transform:capitalize}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:24px;width:400px;max-width:90%}.modal h3{margin-bottom:16px;font-size:18px}.modal form{display:flex;flex-direction:column;gap:12px}.modal input,.modal select,.modal textarea{padding:10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.modal textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.modal-actions button{padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer}.modal-actions button:first-child{background:#f3f4f6;border:1px solid #d1d5db}.modal-actions button:last-child{background:#3b82f6;color:#fff;border:none}.loading,.empty{text-align:center;padding:40px;color:#6b7280}@media (max-width: 1024px){.risk-content{grid-template-columns:1fr}.risk-detail-panel{position:relative;top:0;max-height:none}.risk-summary-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width: 640px){.risk-summary-cards{grid-template-columns:repeat(2,1fr)}.table-header,.table-row{grid-template-columns:1.5fr 1fr 1fr}.col-grades,.col-attendance,.col-engagement{display:none}}
