*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;background:0 0;border:none}table{border-collapse:collapse;border-spacing:0}:root{--color-primary:#013297;--color-primary-hover:#074ab2;--color-primary-light:#e8f0fe;--color-primary-rgb:1, 50, 151;--color-secondary:#e55a00;--color-secondary-hover:#cc4e00;--color-secondary-light:#fff3e0;--color-secondary-rgb:229, 90, 0;--color-accent:#0b67c8;--color-accent-hover:#0161db;--color-accent-light:#e3f2fd;--color-orange:#e55a00;--color-orange-light:#fd6703;--color-orange-dark:#bf4400;--color-background:#f5f5f5;--color-background-secondary:#fff;--color-background-tertiary:#eceff1;--color-surface:#fff;--color-surface-hover:#f5f5f5;--color-surface-elevated:#fff;--color-text-primary:#1a1a2e;--color-text-secondary:#546e7a;--color-text-tertiary:#90a4ae;--color-text-inverse:#fff;--color-text-link:#013297;--color-text-accent:#fd6703;--color-border:#e0e0e0;--color-border-light:#f5f5f5;--color-border-focus:#013297;--color-success:#2e7d32;--color-success-light:#e8f5e9;--color-success-dark:#1b5e20;--color-warning:#fd9607;--color-warning-light:#fff8e1;--color-warning-dark:#e65100;--color-error:#d32f2f;--color-error-light:#ffebee;--color-error-dark:#b71c1c;--color-info:#0b67c8;--color-info-light:#e3f2fd;--gradient-primary:linear-gradient(135deg, #013297 0%, #074ab2 50%, #0b67c8 100%);--gradient-secondary:linear-gradient(135deg, #e55a00 0%, #fd6703 100%);--gradient-accent:linear-gradient(135deg, #0b67c8 0%, #0161db 100%);--gradient-surface:linear-gradient(180deg, #f5f5f5 0%, #fff 100%);--gradient-dark:linear-gradient(135deg, #0d1b2a 0%, #013297 100%);--gradient-orange:linear-gradient(135deg, #e55a00 0%, #fd6703 100%);--gradient-auth-header:linear-gradient(135deg, #013297 0%, #e55a00 100%);--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #00000008;--shadow-xl:0 20px 25px -5px #00000014, 0 10px 10px -5px #00000005;--shadow-glow:0 0 20px #01329726;--shadow-glow-lg:0 0 40px #01329733;--shadow-orange:0 4px 14px #fd67034d;--shadow-orange-lg:0 8px 24px #fd670359;--shadow-auth:0 8px 32px #0000001f;--shadow-auth-dark:0 8px 32px #0000004d;--radius-xs:2px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-full:9999px;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.2;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--container-max-width:1280px;--container-padding:24px;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--input-height:44px;--input-height-sm:36px;--input-height-lg:52px}[data-theme=dark]{--color-primary:#e55a00;--color-primary-hover:#fd6703;--color-primary-light:#e55a0026;--color-primary-rgb:229, 90, 0;--color-secondary:#4fc3f7;--color-secondary-hover:#81d4fa;--color-secondary-light:#4fc3f726;--color-secondary-rgb:79, 195, 247;--color-accent:#e55a00;--color-accent-hover:#fd6703;--color-accent-light:#e55a0026;--color-orange:#e55a00;--color-orange-light:#fd6703;--color-orange-dark:#bf4400;--color-background:#0d1b2a;--color-background-secondary:#1a2332;--color-background-tertiary:#263238;--color-surface:#1a2332;--color-surface-hover:#263238;--color-surface-elevated:#1e2a3a;--color-text-primary:#f0f4f8;--color-text-secondary:#b0bec5;--color-text-tertiary:#78909c;--color-text-inverse:#0d1b2a;--color-text-link:#fd6703;--color-text-accent:#ff8a3d;--color-border:#2c3e50;--color-border-light:#1a2332;--color-border-focus:#fd6703;--color-success:#66bb6a;--color-success-light:#66bb6a26;--color-success-dark:#a5d6a7;--color-warning:#ffb74d;--color-warning-light:#ffb74d26;--color-warning-dark:#ffe0b2;--color-error:#ef5350;--color-error-light:#ef535026;--color-error-dark:#ef9a9a;--color-info:#4fc3f7;--color-info-light:#4fc3f726;--gradient-primary:linear-gradient(135deg, #e55a00 0%, #fd6703 50%, #ff8a3d 100%);--gradient-secondary:linear-gradient(135deg, #4fc3f7 0%, #81d4fa 100%);--gradient-accent:linear-gradient(135deg, #e55a00 0%, #bf4400 100%);--gradient-surface:linear-gradient(180deg, #0d1b2a 0%, #1a2332 100%);--gradient-dark:linear-gradient(135deg, #0a1628 0%, #0d1b2a 100%);--gradient-orange:linear-gradient(135deg, #e55a00 0%, #fd6703 100%);--gradient-auth-header:linear-gradient(135deg, #e55a00 0%, #013297 100%);--shadow-xs:0 1px 2px #0003;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 10px 15px -3px #00000059, 0 4px 6px -2px #0003;--shadow-xl:0 20px 25px -5px #0006, 0 10px 10px -5px #0003;--shadow-glow:0 0 20px #e55a0040;--shadow-glow-lg:0 0 40px #e55a0059;--shadow-orange:0 4px 14px #e55a0066;--shadow-orange-lg:0 8px 24px #e55a0073;--shadow-auth:0 8px 32px #0000004d;--shadow-auth-dark:0 8px 32px #00000080}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary)}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);color:var(--color-text-primary)}h5{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--color-text-primary)}h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--color-text-secondary)}p{line-height:var(--line-height-normal);color:var(--color-text-primary)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-center{text-align:center}.text-right{text-align:right}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.container{width:100%;max-width:var(--container-max-width);padding:0 var(--space-4);margin:0 auto}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.left-0{left:0}.right-0{right:0}.bottom-0{bottom:0}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.m-0{margin:0}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.bg-background{background-color:var(--color-background)}.bg-surface{background-color:var(--color-surface)}.bg-primary{background-color:var(--color-primary)}.text-primary-color{color:var(--color-primary)}.spinner{justify-content:center;align-items:center;display:inline-flex}.spinner-circle{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:.8s linear infinite spin}.spinner-sm .spinner-circle{width:16px;height:16px}.spinner-md .spinner-circle{width:24px;height:24px}.spinner-lg .spinner-circle{width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}.toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:300px;max-width:500px;display:flex}.toast-success{background-color:var(--color-success-light);border-left:4px solid var(--color-success)}.toast-error{background-color:var(--color-error-light);border-left:4px solid var(--color-error)}.toast-warning{background-color:var(--color-warning-light);border-left:4px solid var(--color-warning)}.toast-info{background-color:var(--color-info-light);border-left:4px solid var(--color-info)}.toast-icon{font-size:var(--font-size-lg)}.toast-message{font-size:var(--font-size-sm);flex:1}.toast-close{font-size:var(--font-size-lg);opacity:.7}.toast-close:hover{opacity:1}.empty-state{padding:var(--space-12) var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-4);font-size:48px}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.empty-state-description{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.error-boundary{padding:var(--space-12) var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;display:flex}.error-boundary-icon{margin-bottom:var(--space-4);font-size:48px}.error-boundary-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.error-boundary-message{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.badge{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);align-items:center;display:inline-flex}.badge-default{background-color:var(--color-background-tertiary);color:var(--color-text-secondary)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-secondary{background-color:var(--color-secondary-light);color:var(--color-secondary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-error{background-color:var(--color-error-light);color:var(--color-error)}.input-group{gap:var(--space-1);flex-direction:column;display:flex}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.input-required{color:var(--color-error);margin-left:var(--space-1)}.input-wrapper{align-items:center;display:flex;position:relative}.input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.input:disabled{background-color:var(--color-background-tertiary);cursor:not-allowed;opacity:.7}.input.has-left-icon{padding-left:var(--space-10)}.input.has-right-icon{padding-right:var(--space-10)}.input-icon-left{left:var(--space-3);color:var(--color-text-tertiary);align-items:center;display:flex;position:absolute}.input-icon-right{right:var(--space-3);color:var(--color-text-tertiary);align-items:center;display:flex;position:absolute}.input-error .input{border-color:var(--color-error)}.input-error .input:focus{box-shadow:0 0 0 3px var(--color-error-light)}.input-error-text{font-size:var(--font-size-xs);color:var(--color-error)}.input-helper-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.select-wrapper{align-items:center;display:flex;position:relative}.select{width:100%;padding:var(--space-2) var(--space-10) var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);appearance:none;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.select-arrow{right:var(--space-3);pointer-events:none;color:var(--color-text-tertiary);position:absolute}.search-bar{align-items:center;width:100%;max-width:400px;display:flex;position:relative}.search-icon{left:var(--space-3);color:var(--color-text-tertiary);position:absolute}.search-input{width:100%;padding:var(--space-2) var(--space-10) var(--space-2) var(--space-10);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.search-clear{right:var(--space-3);font-size:var(--font-size-lg);color:var(--color-text-tertiary);position:absolute}.search-clear:hover{color:var(--color-text-primary)}.checkbox-group,.radio-group{gap:var(--space-2);flex-direction:column;display:flex}.checkbox-label,.radio-label{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.checkbox-label input,.radio-label input{cursor:pointer;width:16px;height:16px}.textarea{width:100%;min-height:100px;padding:var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;display:inline-flex}.btn-md{padding:var(--space-2) var(--space-4);font-size:var(--font-size-base)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-lg)}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text-inverse)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover)}.btn-outline:hover:not(:disabled){background-color:var(--color-background-secondary)}.btn-ghost{color:var(--color-text-primary);background-color:#0000}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:#d33426}.btn-full{width:100%}.btn-loading{color:#0000;position:relative}.btn-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;position:absolute}.btn-loading-text{visibility:hidden}.table-container{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table-header{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-background-secondary);border-bottom:1px solid var(--color-border)}.table-header-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header-sortable:hover{background-color:var(--color-background-tertiary)}.table-header-content{align-items:center;gap:var(--space-2);display:flex}.table-sort-icon{font-size:var(--font-size-xs)}.table-sort-icon.asc,.table-sort-icon.desc{color:var(--color-primary)}.table-row{transition:background-color var(--transition-fast)}.table-row:hover{background-color:var(--color-background-secondary)}.table-row-clickable{cursor:pointer}.table-cell{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.table-empty{padding:var(--space-8);text-align:center;color:var(--color-text-tertiary)}.pagination{align-items:center;gap:var(--space-1);display:flex}.pagination-btn{min-width:32px;height:32px;padding:0 var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);background-color:#0000;justify-content:center;align-items:center;display:flex}.pagination-btn:hover:not(:disabled){background-color:var(--color-background-secondary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-active{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.pagination-ellipsis{cursor:default;border:none}.pagination-ellipsis:hover{background-color:#0000}.modal-overlay{z-index:var(--z-modal-backdrop);padding:var(--space-4);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;z-index:var(--z-modal);flex-direction:column;width:100%;display:flex;overflow:hidden}.modal-md{max-width:500px}.modal-xl{max-width:900px}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-close{font-size:var(--font-size-xl);color:var(--color-text-tertiary);padding:var(--space-1);line-height:1}.modal-close:hover{color:var(--color-text-primary)}.modal-body{padding:var(--space-6);overflow-y:auto}.bottom-sheet-overlay{z-index:var(--z-modal-backdrop);background-color:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{background-color:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-direction:column;width:100%;max-height:90vh;display:flex;overflow:hidden}.bottom-sheet-handle{width:40px;height:4px;margin:var(--space-3) auto;background-color:var(--color-border);border-radius:var(--radius-full)}.bottom-sheet-header{padding:0 var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.bottom-sheet-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.bottom-sheet-close{font-size:var(--font-size-xl);color:var(--color-text-tertiary)}.bottom-sheet-content{padding:var(--space-4);overflow-y:auto}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:0 var(--space-3)}.hidden-mobile{display:none}.modal{margin:var(--space-4);max-height:calc(100vh - var(--space-8))}.table-container{font-size:var(--font-size-sm)}.pagination{flex-wrap:wrap;justify-content:center}.btn-lg{padding:var(--space-3) var(--space-4);font-size:var(--font-size-base)}.auth-form-side{width:100%;min-height:100vh;padding:var(--space-6) var(--space-4)}.auth-visual-side{display:none}.sidebar{transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-close,.sidebar-overlay{display:block}.dashboard-main{margin-left:0}.dashboard-menu-btn{display:flex}.dashboard-content{padding:var(--space-4);padding-bottom:80px}.mobile-bottom-nav{background:var(--color-surface,#fff);border-top:1px solid var(--color-border,#e5e7eb);z-index:100;padding:var(--space-1) 0;padding-bottom:env(safe-area-inset-bottom,0);-webkit-backdrop-filter:blur(12px);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000001a}.mobile-bottom-nav-item{color:var(--color-text-secondary,#6b7280);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:10px;transition:color .15s,transform .15s;display:flex;position:relative}.mobile-bottom-nav-item:active{transform:scale(.92)}.mobile-bottom-nav-item-active{color:var(--color-primary,#013297);font-weight:600}.mobile-bottom-nav-item-active:after{content:"";background:var(--color-primary,#013297);border-radius:0 0 2px 2px;width:20px;height:2px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.mobile-bottom-nav-icon{font-size:22px;line-height:1}.mobile-bottom-nav-label{font-weight:500;line-height:1}.mobile-drawer-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);background:#00000080;align-items:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-drawer{background:var(--color-surface,#fff);-webkit-overflow-scrolling:touch;border-radius:16px 16px 0 0;width:100%;max-height:75vh;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-drawer-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.mobile-drawer-title{color:var(--color-text-primary,#1a1a2e);margin:0;font-size:18px;font-weight:600}.mobile-drawer-close{background:var(--color-background-secondary,#f8f9fa);width:32px;height:32px;color:var(--color-text-secondary,#6b7280);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:20px;transition:background .15s;display:flex}.mobile-drawer-close:active{background:var(--color-border,#e5e7eb)}.mobile-drawer-nav{padding:var(--space-2) 0}.mobile-drawer-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);color:var(--color-text-primary,#1a1a2e);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:100%;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.mobile-drawer-link:active{background:var(--color-background-secondary,#f8f9fa)}.mobile-drawer-link-active{color:var(--color-primary,#013297);background:var(--color-primary-light,#01329714)}.mobile-drawer-link-icon{text-align:center;flex-shrink:0;width:28px;font-size:20px}.mobile-drawer-logout{color:var(--color-danger,#dc2626);border-top:1px solid var(--color-border,#e5e7eb);margin-top:var(--space-2);padding-top:var(--space-3)}.sidebar-overlay{z-index:35;-webkit-backdrop-filter:blur(4px);background:#00000080;animation:.2s ease-out fadeIn;display:none;position:fixed;inset:0}.sidebar-overlay.active,.sidebar-open+.sidebar-overlay,.sidebar-open~.sidebar-overlay{display:block}}@media (width>=769px){.hidden-desktop,.mobile-bottom-nav,.mobile-drawer-overlay{display:none}.modal-xl{max-width:900px}.auth-form-side{width:50%}.auth-visual-side{width:50%;display:flex}}@media (width<=480px){h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}.toast{min-width:auto;max-width:calc(100vw - var(--space-8))}.bottom-sheet{max-height:80vh}.dashboard-header,.dashboard-content{padding:var(--space-3)}}@media (width>=1024px){.grid-4{grid-template-columns:repeat(4,1fr)}}.auth-layout{background-color:var(--color-background);width:100%;min-height:100vh;display:flex}.auth-layout-container{width:100%;min-height:100vh;display:flex}.auth-form-side{width:50%;min-height:100vh;padding:var(--space-10);background-color:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow-y:auto}.auth-form-side:before{content:"";background:var(--gradient-glow);pointer-events:none;z-index:0;position:absolute;inset:0}.auth-visual-side{justify-content:center;align-items:center;width:50%;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-visual{background:var(--gradient-dark);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.auth-visual:before{content:"";background:radial-gradient(circle, rgba(var(--color-primary-rgb), .25) 0%, rgba(var(--color-primary-rgb), .05) 50%, transparent 70%);border-radius:50%;width:600px;height:600px;animation:4s ease-in-out infinite pulse-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-visual:after{content:"";background:radial-gradient(circle,#06b6d433 0%,#06b6d408 50%,#0000 70%);border-radius:50%;width:400px;height:400px;animation:5s ease-in-out 1s infinite pulse-glow;position:absolute;top:20%;right:-10%}.auth-visual-content{z-index:2;text-align:center;padding:var(--space-8);justify-content:center;align-items:center;gap:var(--space-6);flex-direction:column;max-width:520px;display:flex;position:relative}.auth-visual-slide{transition:opacity .3s,transform .3s}.auth-visual-slide-exit{opacity:0;transform:translateY(10px)}.auth-visual-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);color:#fff;line-height:var(--line-height-tight);margin-bottom:var(--space-3);letter-spacing:-.025em;text-shadow:0 2px 8px #0003}.auth-visual-subtitle{font-size:var(--font-size-lg);color:#ffffffd9;line-height:var(--line-height-relaxed);text-shadow:0 1px 4px #0000001a;max-width:420px;margin:0 auto}.auth-visual-icon-wrapper{width:140px;height:140px;margin:var(--space-4) auto;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out infinite icon-float;display:flex;box-shadow:0 8px 32px #0003}.auth-visual-icon{filter:drop-shadow(0 2px 4px #0000001a);font-size:4rem}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-visual-dots{gap:var(--space-2);justify-content:center;display:flex}.auth-visual-dot{border-radius:var(--radius-full);cursor:pointer;width:10px;height:10px;transition:all var(--transition-fast);background:#ffffff4d;border:none;padding:0}.auth-visual-dot:hover{background:#ffffff80}.auth-visual-dot-active{background:#fd6703;width:28px;box-shadow:0 0 12px #fd670380}.auth-visual-features{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.auth-visual-feature{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-full);background:#ffffff1a;border:1px solid #ffffff26;display:flex}.auth-visual-feature-icon{font-size:1.1rem}.auth-visual-feature-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#ffffffe6}.auth-visual-glass{z-index:2;-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);padding:var(--space-10);background:#ffffff0d;border:1px solid #ffffff1a;position:relative;box-shadow:0 8px 32px #0003}.auth-visual-particles{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle{pointer-events:none;will-change:transform, opacity;background:#ffffff26;border-radius:50%;position:absolute}.particle:first-child{width:6px;height:6px;animation:6s ease-in-out infinite float,12s linear infinite particle-drift;top:15%;left:20%}.particle:nth-child(2){width:4px;height:4px;animation:8s ease-in-out .5s infinite float,15s linear 2s infinite particle-drift;top:70%;left:65%}.particle:nth-child(3){opacity:.6;width:8px;height:8px;animation:7s ease-in-out 1s infinite float,10s linear 1s infinite particle-drift;top:40%;left:80%}.particle:nth-child(4){width:3px;height:3px;animation:9s ease-in-out 1.5s infinite float,14s linear 3s infinite particle-drift;top:85%;left:30%}.particle:nth-child(5){opacity:.8;width:5px;height:5px;animation:5s ease-in-out 2s infinite float,11s linear .5s infinite particle-drift;top:25%;left:55%}.particle:nth-child(6){opacity:.4;width:7px;height:7px;animation:10s ease-in-out .3s infinite float,16s linear 4s infinite particle-drift;top:60%;left:15%}.particle:nth-child(7){width:4px;height:4px;animation:6.5s ease-in-out .8s infinite float,13s linear 1.5s infinite particle-drift;top:10%;left:75%}.particle:nth-child(8){opacity:.3;width:9px;height:9px;animation:8.5s ease-in-out 2.5s infinite float,17s linear 2.5s infinite particle-drift;top:50%;left:40%}.particle:nth-child(9){opacity:.5;width:3px;height:3px;animation:7.5s ease-in-out 1.2s infinite float,12s linear 5s infinite particle-drift;top:90%;left:85%}.particle:nth-child(10){opacity:.7;width:5px;height:5px;animation:5.5s ease-in-out 3s infinite float,14s linear .8s infinite particle-drift;top:35%;left:10%}.particle:nth-child(11){opacity:.35;width:6px;height:6px;animation:9.5s ease-in-out .6s infinite float,18s linear 3.5s infinite particle-drift;top:75%;left:50%}.particle:nth-child(12){opacity:.6;width:4px;height:4px;animation:6s ease-in-out 1.8s infinite float,11s linear 1.2s infinite particle-drift;top:20%;left:90%}.auth-visual-shape{pointer-events:none;z-index:0;border:1px solid #ffffff0f;border-radius:50%;position:absolute}.auth-visual-shape:first-child{width:300px;height:300px;animation:12s ease-in-out infinite float;top:-50px;right:-80px}.auth-visual-shape:nth-child(2){width:200px;height:200px;animation:10s ease-in-out 2s infinite reverse float;bottom:-40px;left:-60px}.auth-visual-shape:nth-child(3){border-color:rgba(var(--color-primary-rgb), .1);width:150px;height:150px;animation:8s ease-in-out 1s infinite float;top:40%;left:20%}.auth-visual-glow{background:radial-gradient(circle, rgba(var(--color-primary-rgb), .15) 0%, rgba(var(--color-primary-rgb), .03) 40%, transparent 70%);z-index:0;border-radius:50%;width:500px;height:500px;animation:6s ease-in-out infinite pulse-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-form-container{z-index:1;width:100%;max-width:440px;padding:var(--space-8) 0;position:relative}.auth-form-header{margin-bottom:var(--space-8);text-align:center}.auth-form-tagline{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-6)}.auth-form-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);background:var(--gradient-auth-header);-webkit-text-fill-color:transparent;line-height:var(--line-height-tight);margin-bottom:var(--space-2);-webkit-background-clip:text;background-clip:text}.auth-form-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:0}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}.auth-form .input-group{gap:var(--space-1);flex-direction:column;display:flex}.auth-form .input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.auth-form .input{width:100%;height:var(--input-height);padding:var(--space-2) var(--space-4);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast)}.auth-form .input::placeholder{color:var(--color-text-tertiary)}.auth-form .input:hover:not(:disabled){border-color:var(--color-border-focus)}.auth-form .input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .12), var(--shadow-glow);outline:none}.auth-form .input:disabled{background-color:var(--color-background-secondary);cursor:not-allowed;opacity:.6}.auth-form .input.has-left-icon{padding-left:var(--space-12)}.auth-form .input.has-right-icon{padding-right:var(--space-12)}.auth-form .input-icon-left{left:var(--space-4);color:var(--color-text-tertiary);pointer-events:none;transition:color var(--transition-fast);align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.auth-form .input:focus~.input-icon-left,.auth-form .input:focus+.input-icon-left{color:var(--color-primary)}.auth-form .input-icon-right{right:var(--space-4);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast);align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.auth-form .input-icon-right:hover{color:var(--color-text-primary)}.auth-form .input-wrapper{align-items:center;display:flex;position:relative}.auth-form .select{width:100%;height:var(--input-height);padding:var(--space-2) var(--space-10) var(--space-2) var(--space-4);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);appearance:none;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.auth-form .select:hover:not(:disabled){border-color:var(--color-border-focus)}.auth-form .select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .12), var(--shadow-glow);outline:none}.auth-form .select:disabled{background-color:var(--color-background-secondary);cursor:not-allowed;opacity:.6}.auth-form .btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;height:var(--input-height-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:var(--font-family);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;display:inline-flex;position:relative;overflow:hidden}.auth-form .btn:before{content:"";opacity:0;transition:opacity var(--transition-fast);background:linear-gradient(135deg,#ffffff26 0%,#0000 50%);position:absolute;inset:0}.auth-form .btn:hover:before{opacity:1}.auth-form .btn:active{transform:scale(.985)}.auth-form .btn:focus{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .25), var(--shadow-glow-lg);outline:none}.auth-form .btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-form .btn:disabled:before{display:none}.auth-form .btn-primary{background:var(--gradient-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.auth-form .btn-primary:hover:not(:disabled){box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-1px)}.auth-form .btn-primary:active:not(:disabled){transform:translateY(0)scale(.985)}.auth-form .btn-secondary{color:var(--color-text-primary);border:1.5px solid var(--color-border);background-color:#0000}.auth-form .btn-secondary:hover:not(:disabled){background-color:var(--color-background-secondary);border-color:var(--color-border-focus)}.auth-form .btn-ghost{color:var(--color-text-secondary);background-color:#0000}.auth-form .btn-ghost:hover:not(:disabled){background-color:var(--color-background-secondary);color:var(--color-text-primary)}.auth-form .btn-loading{color:#0000;pointer-events:none;position:relative}.auth-form .btn-loading:after{content:"";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;position:absolute}.auth-form .input-group.has-error .input{border-color:var(--color-error)}.auth-form .input-group.has-error .input:focus{box-shadow:0 0 0 3px var(--color-error-light), 0 0 12px #ef44441a}.auth-form .input-error-text{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1)}.auth-form-footer{text-align:center;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border-light)}.auth-form-footer-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-form-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-link);transition:color var(--transition-fast);text-decoration:none}.auth-form-link:hover{color:var(--color-primary-hover);text-underline-offset:2px;text-decoration:underline}.auth-divider{align-items:center;gap:var(--space-4);margin:var(--space-6) 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-divider-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.auth-checkbox{align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.auth-checkbox input[type=checkbox]{appearance:none;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);cursor:pointer;width:18px;height:18px;transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);flex-shrink:0;position:relative}.auth-checkbox input[type=checkbox]:hover{border-color:var(--color-primary)}.auth-checkbox input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.auth-checkbox input[type=checkbox]:checked:after{content:"";border:solid var(--color-text-inverse);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.auth-checkbox input[type=checkbox]:focus{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .15);outline:none}.auth-checkbox-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.auth-checkbox-label a{color:var(--color-text-link);font-weight:var(--font-weight-medium);text-decoration:none}.auth-checkbox-label a:hover{text-decoration:underline}.auth-otp-inputs{gap:var(--space-3);justify-content:center;display:flex}.auth-otp-input{text-align:center;width:52px;height:60px;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--color-text-primary);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);caret-color:var(--color-primary)}.auth-otp-input::placeholder{color:var(--color-text-tertiary);font-weight:var(--font-weight-normal)}.auth-otp-input:hover{border-color:var(--color-border-focus)}.auth-otp-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .12), var(--shadow-glow);background-color:var(--color-surface);outline:none}.auth-otp-input.filled{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb), .04)}.auth-otp-input.error{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-light)}.auth-success{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-lg);animation:slide-up .4s var(--transition-spring) forwards;display:flex}.auth-success-icon{width:24px;height:24px;color:var(--color-success);flex-shrink:0;margin-top:1px}.auth-success-content{flex:1}.auth-success-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-success-dark);margin-bottom:var(--space-1)}.auth-success-message{font-size:var(--font-size-sm);color:var(--color-success-dark);opacity:.85;line-height:var(--line-height-relaxed)}.auth-step-indicator{justify-content:center;align-items:center;gap:var(--space-2);margin-bottom:var(--space-8);display:flex}.auth-step-dot{background-color:var(--color-border);width:8px;height:8px;transition:all var(--transition-normal);border-radius:50%}.auth-step-dot.active{border-radius:var(--radius-full);background:var(--gradient-primary);width:28px}.auth-step-dot.completed{background-color:var(--color-primary)}.auth-step-line{background-color:var(--color-border);border-radius:var(--radius-full);width:32px;height:2px;transition:background-color var(--transition-normal)}.auth-step-line.completed{background-color:var(--color-primary)}.auth-password-strength{gap:var(--space-1);margin-top:var(--space-2);display:flex}.auth-password-strength-bar{border-radius:var(--radius-full);background-color:var(--color-border);height:3px;transition:background-color var(--transition-normal);flex:1}.auth-password-strength-bar.weak{background-color:var(--color-error)}.auth-password-strength-bar.medium{background-color:var(--color-warning)}.auth-password-strength-bar.strong{background-color:var(--color-success)}.auth-password-strength-text{font-size:var(--font-size-xs);margin-top:var(--space-1);transition:color var(--transition-fast)}.auth-password-strength-text.weak{color:var(--color-error)}.auth-password-strength-text.medium{color:var(--color-warning)}.auth-password-strength-text.strong{color:var(--color-success)}.auth-error{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-lg);animation:slide-up .4s var(--transition-spring) forwards;display:flex}.auth-error-icon{width:24px;height:24px;color:var(--color-error);flex-shrink:0;margin-top:1px}.auth-error-content{flex:1}.auth-error-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-error-dark);margin-bottom:var(--space-1)}.auth-error-message{font-size:var(--font-size-sm);color:var(--color-error-dark);opacity:.85;line-height:var(--line-height-relaxed)}.auth-social-buttons{gap:var(--space-3);flex-direction:column;display:flex}.auth-social-btn{justify-content:center;align-items:center;gap:var(--space-3);width:100%;height:var(--input-height-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:flex}.auth-social-btn:hover{background-color:var(--color-background-secondary);border-color:var(--color-border-focus);box-shadow:var(--shadow-sm)}.auth-social-btn:active{transform:scale(.985)}.auth-social-btn svg,.auth-social-btn img{flex-shrink:0;width:20px;height:20px}.auth-form-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.auth-form-row .auth-form-link{font-size:var(--font-size-sm)}.auth-resend{text-align:center;margin-top:var(--space-4)}.auth-resend-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-resend-btn{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-link);cursor:pointer;font-family:var(--font-family);transition:color var(--transition-fast);background:0 0;border:none;padding:0}.auth-resend-btn:hover:not(:disabled){color:var(--color-primary-hover);text-underline-offset:2px;text-decoration:underline}.auth-resend-btn:disabled{color:var(--color-text-tertiary);cursor:not-allowed}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-12px)translate(4px)}50%{transform:translateY(-6px)translate(-3px)}75%{transform:translateY(-18px)translate(2px)}}@keyframes pulse-glow{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes particle-drift{0%{opacity:0;transform:translate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(40px,-60px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.auth-form-side .auth-form-header{animation:.5s ease-out forwards slide-up}.auth-form-side .auth-form{opacity:0;animation:.5s ease-out .1s forwards slide-up}.auth-form-side .auth-form-footer{opacity:0;animation:.5s ease-out .3s forwards fade-in}.auth-visual-content{opacity:0;animation:.8s ease-out .2s forwards scale-in}@media (width<=1024px){.auth-visual-side{display:none}.auth-form-side{width:100%;min-height:100vh;padding:var(--space-8) var(--space-6)}.auth-form-container{max-width:420px}}@media (width<=768px){.auth-form-side{padding:var(--space-6) var(--space-4);padding-top:var(--space-10);justify-content:flex-start}.auth-form-container{max-width:100%}.auth-form-title{font-size:var(--font-size-2xl)}.auth-form .btn{height:var(--input-height-lg)}.auth-otp-inputs{gap:var(--space-2)}.auth-otp-input{width:46px;height:54px;font-size:var(--font-size-xl)}.auth-social-buttons{gap:var(--space-2)}.auth-form-row{align-items:flex-start;gap:var(--space-3);flex-direction:column}}@media (width<=480px){.auth-form-side{padding:var(--space-5) var(--space-4);padding-top:var(--space-8)}.auth-form-title{font-size:var(--font-size-xl)}.auth-form-subtitle{font-size:var(--font-size-sm)}.auth-form-logo{font-size:var(--font-size-xl)}.auth-form .input{height:46px;font-size:var(--font-size-base)}.auth-form .btn{height:48px;font-size:var(--font-size-base)}.auth-otp-inputs{gap:var(--space-1)}.auth-otp-input{width:42px;height:50px;font-size:var(--font-size-lg);border-radius:var(--radius-md)}.auth-divider{margin:var(--space-4) 0}.auth-form-footer{margin-top:var(--space-6);padding-top:var(--space-4)}.auth-step-indicator{margin-bottom:var(--space-6)}}@media (-webkit-device-pixel-ratio>=2),(resolution>=192dpi){.auth-form .input,.auth-form .select,.auth-otp-input{border-width:1px}}@media (prefers-reduced-motion:reduce){.particle,.auth-visual-shape,.auth-visual:before,.auth-visual:after,.auth-visual-glow{animation:none!important}.auth-form-side .auth-form-header,.auth-form-side .auth-form,.auth-form-side .auth-form-footer,.auth-visual-content{opacity:1;animation:none!important}.auth-form .btn,.auth-form .input,.auth-form .select,.auth-checkbox input[type=checkbox],.auth-otp-input,.auth-social-btn{transition-duration:.01ms!important}}[data-theme=dark] .auth-form .input,[data-theme=dark] .auth-form .select{background-color:var(--color-background-secondary)}[data-theme=dark] .auth-form .btn-secondary{background-color:#0000}[data-theme=dark] .auth-social-btn{background-color:var(--color-background-secondary)}[data-theme=dark] .auth-social-btn:hover{background-color:var(--color-background-tertiary)}[data-theme=dark] .auth-checkbox input[type=checkbox]{background-color:var(--color-background-secondary)}[data-theme=dark] .auth-otp-input{background-color:var(--color-background-secondary);color:var(--color-text-primary);border-color:var(--color-border)}[data-theme=dark] .auth-otp-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .2)}.auth-visual-logo{width:120px;height:120px;margin-bottom:var(--space-6);filter:drop-shadow(0 4px 24px #fd670359);object-fit:contain;animation:4s ease-in-out infinite auth-logo-float}@keyframes auth-logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.auth-form-logo{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);background:var(--gradient-primary);-webkit-text-fill-color:transparent;margin-bottom:var(--space-2);letter-spacing:-.025em;transition:opacity var(--transition-fast);-webkit-background-clip:text;background-clip:text;text-decoration:none;display:inline-block}.auth-form-logo:hover{opacity:.85}.auth-error{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--color-error-light);color:var(--color-error-dark,var(--color-error));border:1px solid var(--color-error);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);display:flex}.auth-success{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--color-success-light);color:var(--color-success-dark,var(--color-success));border:1px solid var(--color-success);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);display:flex}.auth-otp-icon{margin-bottom:var(--space-4);font-size:3rem;line-height:1}.auth-form-actions{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.auth-checkbox{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;display:flex}.auth-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;border-radius:var(--radius-sm)}.auth-checkbox-error{color:var(--color-error)}.auth-checkbox-group{gap:var(--space-1);flex-direction:column;display:flex}.auth-form-footer{margin-top:var(--space-6);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-form-footer p{margin:0}.auth-form-link{color:var(--color-primary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);text-decoration:none}.auth-form-link:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-divider{align-items:center;gap:var(--space-4);margin:var(--space-4) 0;color:var(--color-text-tertiary);font-size:var(--font-size-sm);display:flex}.auth-divider:before,.auth-divider:after{content:"";background-color:var(--color-border);flex:1;height:1px}.auth-social-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);display:flex}.auth-social-btn:hover{background-color:var(--color-surface-hover);border-color:var(--color-border-focus)}.auth-countdown{color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.auth-back-login{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}[data-theme=dark] .auth-form .btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-orange)}[data-theme=dark] .auth-form .btn-primary:hover:not(:disabled){box-shadow:var(--shadow-orange-lg);transform:translateY(-1px)}[data-theme=dark] .auth-form .btn-secondary{border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .auth-form .btn-secondary:hover:not(:disabled){border-color:var(--color-primary);background-color:var(--color-primary-light)}[data-theme=dark] .auth-visual-title{color:#fff}[data-theme=dark] .auth-visual-subtitle{color:#ffffffd9}[data-theme=dark] .auth-visual-feature-text{color:#ffffffe6}[data-theme=dark] .auth-form-side{background-color:var(--color-background)}[data-theme=dark] .auth-form-side:before{background:radial-gradient(600px circle at var(--mouse-x,50%) var(--mouse-y,50%), #e55a000f, transparent 40%)}.auth-visual{background:linear-gradient(135deg,#0d1b2a 0%,#013297 60%,#0b67c8 100%)}.page{max-width:1200px;margin:0 auto;padding:1.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{color:var(--color-text,#111827);margin:0;font-size:1.75rem;font-weight:700}.page-subtitle{color:var(--color-text-secondary,#6b7280);margin:.25rem 0 0;font-size:.9rem}.page-actions{margin-bottom:1.5rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{align-items:center;gap:1rem;padding:1rem;display:flex}.stat-icon{background:var(--color-primary-bg,#eff6ff);border-radius:12px;justify-content:center;align-items:center;width:50px;height:50px;font-size:2rem;display:flex}.stat-info{flex:1}.stat-value{color:var(--color-text,#111827);margin:0;font-size:1.5rem;font-weight:700}.stat-label{color:var(--color-text-secondary,#6b7280);margin:.125rem 0 0;font-size:.8rem}.section-title{color:var(--color-text,#111827);margin:0 0 1rem;font-size:1.1rem;font-weight:600}.quick-actions{margin-top:1.5rem}.actions-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.action-card{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e5e7eb);cursor:pointer;color:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;text-decoration:none;transition:all .2s;display:flex}.action-card:hover{border-color:var(--color-primary,#4f46e5);box-shadow:0 2px 8px #00000014}.action-icon{font-size:1.5rem}.action-label{color:var(--color-text,#111827);font-size:.85rem;font-weight:500}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.course-card{overflow:hidden}.course-thumbnail{object-fit:cover;background:var(--color-border,#e5e7eb);width:100%;height:160px}.course-title{color:var(--color-text,#111827);margin:0 0 .5rem;font-size:1rem;font-weight:600}.course-description{color:var(--color-text-secondary,#6b7280);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .75rem;font-size:.85rem;display:-webkit-box;overflow:hidden}.course-meta{color:var(--color-text-tertiary,#9ca3af);justify-content:space-between;font-size:.8rem;display:flex}.assignments-list{flex-direction:column;gap:1rem;display:flex}.assignment-card{padding:1.25rem}.assignment-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.assignment-title{color:var(--color-text,#111827);margin:0;font-size:1rem;font-weight:600}.assignment-description{color:var(--color-text-secondary,#6b7280);margin:0 0 .75rem;font-size:.85rem}.assignment-meta{color:var(--color-text-tertiary,#9ca3af);gap:1rem;font-size:.8rem;display:flex}.assignment-points{color:var(--color-primary,#4f46e5);font-weight:500}.assignment-due{color:var(--color-danger,#ef4444)}.assessments-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.assessment-card{padding:1.25rem}.assessment-title{color:var(--color-text,#111827);margin:0 0 .5rem;font-size:1rem;font-weight:600}.assessment-description{color:var(--color-text-secondary,#6b7280);margin:0 0 .75rem;font-size:.85rem}.assessment-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.assessment-duration,.assessment-points{color:var(--color-text-tertiary,#9ca3af);font-size:.8rem}.classes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.class-card{padding:1.25rem}.class-name{color:var(--color-text,#111827);margin:0 0 .5rem;font-size:1rem;font-weight:600}.class-description{color:var(--color-text-secondary,#6b7280);margin:0 0 .75rem;font-size:.85rem}.class-meta{color:var(--color-text-tertiary,#9ca3af);font-size:.8rem}.mentors-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.25rem;display:grid}.mentor-card{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.mentor-avatar{background:var(--color-primary,#4f46e5);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.25rem;font-weight:600;display:flex}.mentor-name{color:var(--color-text,#111827);margin:0;font-size:1rem;font-weight:600}.mentor-role{color:var(--color-text-secondary,#6b7280);margin:0;font-size:.8rem}.requests-list{flex-direction:column;gap:1rem;display:flex}.request-card{padding:1.25rem}.request-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.request-subject{color:var(--color-text,#111827);margin:0;font-size:1rem;font-weight:600}.request-description{color:var(--color-text-secondary,#6b7280);margin:0 0 .75rem;font-size:.85rem}.request-meta{color:var(--color-text-tertiary,#9ca3af);justify-content:space-between;margin-bottom:.75rem;font-size:.8rem;display:flex}.request-actions{justify-content:flex-end;gap:.5rem;display:flex}.students-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.25rem;display:grid}.student-card{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;display:flex}.student-avatar{background:var(--color-secondary,#10b981);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.1rem;font-weight:600;display:flex}.student-name{color:var(--color-text,#111827);margin:0;font-size:1rem;font-weight:600}.student-email,.student-country,.student-sessions{color:var(--color-text-secondary,#6b7280);margin:0;font-size:.8rem}.messages-layout{grid-template-columns:300px 1fr;gap:1rem;height:calc(100vh - 200px);min-height:400px;display:grid}.conversations-list{border-right:1px solid var(--color-border,#e5e7eb);padding-right:1rem;overflow-y:auto}.conversation-item{cursor:pointer;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;transition:background .15s;display:flex}.conversation-item:hover{background:var(--color-bg-hover,#f3f4f6)}.conversation-item-active{background:var(--color-primary-bg,#eff6ff)}.conversation-avatar{background:var(--color-primary,#4f46e5);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.85rem;font-weight:600;display:flex}.conversation-info{flex:1;min-width:0}.conversation-name{color:var(--color-text,#111827);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.85rem;font-weight:600;overflow:hidden}.conversation-preview{color:var(--color-text-secondary,#6b7280);white-space:nowrap;text-overflow:ellipsis;margin:.125rem 0 0;font-size:.75rem;overflow:hidden}.conversation-badge{background:var(--color-primary,#4f46e5);color:#fff;border-radius:10px;flex-shrink:0;padding:.125rem .5rem;font-size:.7rem;font-weight:600}.messages-panel{flex-direction:column;display:flex}.messages-list{flex-direction:column;flex:1;gap:.75rem;padding:1rem;display:flex;overflow-y:auto}.message{border-radius:12px;max-width:70%;padding:.75rem 1rem;font-size:.85rem}.message-sent{background:var(--color-primary,#4f46e5);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message-received{background:var(--color-bg-hover,#f3f4f6);color:var(--color-text,#111827);border-bottom-left-radius:4px;align-self:flex-start}.message-content{margin:0}.message-time{opacity:.7;margin-top:.25rem;font-size:.7rem;display:block}.message-input{border-top:1px solid var(--color-border,#e5e7eb);align-items:center;gap:.5rem;padding:1rem;display:flex}.messages-empty,.messages-loading{color:var(--color-text-secondary,#6b7280);flex:1;justify-content:center;align-items:center;display:flex}.notifications-list{flex-direction:column;gap:.5rem;display:flex}.notification-item{cursor:pointer;border:1px solid var(--color-border,#e5e7eb);border-radius:8px;align-items:flex-start;gap:.75rem;padding:1rem;transition:background .15s;display:flex}.notification-item:hover{background:var(--color-bg-hover,#f3f4f6)}.notification-unread{background:var(--color-primary-bg,#eff6ff);border-color:var(--color-primary-light,#c7d2fe)}.notification-icon{flex-shrink:0;margin-top:.125rem;font-size:1.25rem}.notification-content{flex:1;min-width:0}.notification-title{color:var(--color-text,#111827);margin:0 0 .25rem;font-size:.9rem;font-weight:600}.notification-message{color:var(--color-text-secondary,#6b7280);margin:0;font-size:.8rem}.notification-time{color:var(--color-text-tertiary,#9ca3af);white-space:nowrap;flex-shrink:0;font-size:.75rem}.library-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.25rem;display:grid}.library-item{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;display:flex}.library-item-icon{font-size:2rem}.library-item-title{color:var(--color-text,#111827);margin:0;font-size:.95rem;font-weight:600}.library-item-author{color:var(--color-text-secondary,#6b7280);margin:0;font-size:.8rem}.library-item-description{color:var(--color-text-tertiary,#9ca3af);margin:0;font-size:.8rem}.score-value{color:var(--color-primary,#4f46e5);font-weight:600}.percentage{border-radius:4px;padding:.125rem .5rem;font-size:.8rem;font-weight:500}.percentage-pass{color:#065f46;background:#d1fae5}.percentage-fail{color:#991b1b;background:#fee2e2}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.analytics-card{padding:1.25rem}.analytics-title{color:var(--color-text-secondary,#6b7280);margin:0 0 .5rem;font-size:.8rem}.analytics-value{color:var(--color-text,#111827);margin:0;font-size:1.5rem;font-weight:700}.settings-form{flex-direction:column;gap:1.5rem;max-width:600px;display:flex}.settings-section{padding:1.25rem}.settings-section-title{color:var(--color-text,#111827);margin:0 0 1rem;font-size:1rem;font-weight:600}.settings-toggle{border-bottom:1px solid var(--color-border,#e5e7eb);justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.toggle-label{color:var(--color-text,#111827);font-size:.9rem;font-weight:500}.toggle-text{color:var(--color-text-secondary,#6b7280);font-size:.8rem}.theme-section{margin-bottom:2rem}.theme-mode-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.theme-presets{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.theme-preset{cursor:pointer;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;display:flex}.theme-preset-colors{gap:.5rem;display:flex}.theme-color-swatch{width:32px;height:32px;box-shadow:0 0 0 1px var(--color-border,#e5e7eb);border:2px solid #fff;border-radius:50%}.theme-preset-name{color:var(--color-text,#111827);margin:0;font-size:.85rem;font-weight:500}.theme-preset-active{border-color:var(--color-primary,#4f46e5);box-shadow:0 0 0 2px var(--color-primary,#4f46e5)}.profile-form{max-width:600px}.profile-avatar{justify-content:center;margin-bottom:1.5rem;display:flex}.avatar-large{background:var(--color-primary,#4f46e5);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;font-size:1.5rem;font-weight:600;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-row{gap:1rem;display:flex}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.modal-form{flex-direction:column;gap:1rem;display:flex}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.auth-page{max-width:400px;margin:0 auto;padding:2rem}.auth-title{color:var(--color-text,#111827);text-align:center;margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--color-text-secondary,#6b7280);text-align:center;margin:0 0 1.5rem;font-size:.9rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-links{justify-content:flex-end;display:flex}.auth-link{color:var(--color-primary,#4f46e5);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-footer{text-align:center;color:var(--color-text-secondary,#6b7280);margin-top:1.5rem;font-size:.85rem}.auth-success{text-align:center;color:var(--color-success,#10b981);margin-top:1rem;font-size:.85rem}.auth-success-icon{text-align:center;margin-bottom:1rem;font-size:3rem}.role-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;display:grid}.role-card{border:2px solid var(--color-border,#e5e7eb);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;transition:all .2s;display:flex}.role-card:hover{border-color:var(--color-primary,#4f46e5);background:var(--color-primary-bg,#eff6ff)}.role-card-name{color:var(--color-text,#111827);margin:0;font-size:.9rem;font-weight:600}.role-card-description{color:var(--color-text-secondary,#6b7280);margin:0;font-size:.75rem}.onboarding-progress{margin-bottom:2rem}.onboarding-progress-bar{background:var(--color-border,#e5e7eb);border-radius:2px;height:4px;overflow:hidden}.onboarding-progress-fill{background:var(--color-primary,#4f46e5);height:100%;transition:width .3s}.onboarding-step{color:var(--color-text-secondary,#6b7280);text-align:center;margin-top:.5rem;font-size:.75rem;display:block}.onboarding-actions{gap:.75rem;margin-top:1.5rem;display:flex}.dashboard-content{margin-top:1rem}.page-error{text-align:center;padding:3rem 1rem}.page-error-icon{margin-bottom:1rem;font-size:3rem}.page-error-title{color:var(--color-text,#111827);margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.page-error-message{color:var(--color-text-secondary,#6b7280);margin:0 0 1.5rem;font-size:.9rem}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;padding:1rem 0;display:flex}.pagination-info{color:var(--color-text-secondary,#6b7280);font-size:.85rem}@media (width<=768px){.page{padding:1rem}.page-header{flex-direction:column}.stats-grid,.messages-layout{grid-template-columns:1fr}.conversations-list{border-right:none;border-bottom:1px solid var(--color-border,#e5e7eb);max-height:200px}.form-grid{grid-template-columns:1fr}.form-row{flex-direction:column}}.profile-hint-banner{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);margin-bottom:var(--space-6);animation:.3s slide-down}.profile-hint-content{align-items:center;gap:var(--space-4);display:flex}.profile-hint-icon{flex-shrink:0;font-size:1.5rem}.profile-hint-text{color:var(--color-text-inverse);flex:1}.profile-hint-text strong{font-size:var(--font-size-base);margin-bottom:var(--space-1);display:block}.profile-hint-text p{font-size:var(--font-size-sm);opacity:.9;margin:0}.profile-hint-action{color:var(--color-text-inverse);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);white-space:nowrap;transition:background var(--transition-fast);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;text-decoration:none}.profile-hint-action:hover{background:#ffffff4d}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dashboard-layout{background:var(--color-background);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width,260px);background:var(--gradient-primary);height:100vh;color:var(--color-text-inverse);z-index:40;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-header{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border-bottom:1px solid #ffffff1a;display:flex}.sidebar-logo-img{border-radius:var(--radius-md);object-fit:contain;flex-shrink:0;width:40px;height:40px}.sidebar-logo{font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--color-text-inverse);flex:1;margin:0}.sidebar-close{color:var(--color-text-inverse);cursor:pointer;padding:var(--space-1);opacity:.7;transition:opacity var(--transition-fast);background:0 0;border:none;font-size:1.5rem;line-height:1;display:none}.sidebar-close:hover{opacity:1}.sidebar-nav{padding:var(--space-3) var(--space-2);gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#fffc;font-size:.9rem;font-weight:var(--font-weight-medium);transition:all var(--transition-fast);text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-text-inverse);background:#ffffff1a}.sidebar-link-active{color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);background:#ffffff26}.sidebar-link-icon{text-align:center;flex-shrink:0;width:24px;font-size:1.1rem}.sidebar-link-text{white-space:nowrap}.sidebar-footer{padding:var(--space-4);border-top:1px solid #ffffff1a}.sidebar-user{align-items:center;gap:var(--space-3);display:flex}.sidebar-user-avatar{border-radius:var(--radius-full);width:40px;height:40px;font-weight:var(--font-weight-semibold);background:#ffffff26;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;overflow:hidden}.sidebar-user-role{opacity:.7;text-transform:capitalize;margin:0;font-size:.75rem}.sidebar-overlay{z-index:35;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:none;position:fixed;inset:0}.dashboard-main{margin-left:var(--sidebar-width,260px);flex-direction:column;flex:1;min-height:100vh;display:flex}.dashboard-header{padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:30;justify-content:space-between;align-items:center;gap:var(--space-3);display:flex;position:sticky;top:0}.dashboard-menu-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--color-text);transition:all var(--transition-fast);background:0 0;font-size:1.25rem;display:none}.dashboard-menu-btn:hover{background:var(--color-surface-hover)}.dashboard-header-actions{align-items:center;gap:var(--space-3);display:flex}.status-indicator{font-size:.8rem;font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);white-space:nowrap}.status-online{background:var(--color-success-light,#e8f5e9);color:var(--color-success,#2e7d32)}.status-offline{background:var(--color-error-light,#ffebee);color:var(--color-error,#d32f2f)}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;transition:all var(--transition-fast);background:0 0;font-size:1.1rem;line-height:1}.theme-toggle:hover{background:var(--color-surface-hover)}.dashboard-content{padding:var(--space-5);flex:1}.auth-visual-logo{width:100px;height:100px;margin-bottom:var(--space-6);filter:drop-shadow(0 0 20px #fd67034d);animation:3s ease-in-out infinite logo-float}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loading-screen{background:var(--gradient-primary);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-screen-content{text-align:center;animation:.5s fade-in}.loading-screen-logo{width:120px;height:120px;margin-bottom:var(--space-6);filter:drop-shadow(0 0 30px #fd670366);animation:2s ease-in-out infinite pulse-logo}.loading-screen-text{color:var(--color-text-inverse);font-size:1.5rem;font-weight:var(--font-weight-bold);letter-spacing:.05em}.loading-screen-subtitle{color:#ffffffb3;margin-top:var(--space-2);font-size:.875rem}.loading-screen-spinner{margin-top:var(--space-6)}.loading-screen-spinner .spinner-circle{border-color:#fd6703 #fff3 #fff3}@keyframes pulse-logo{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.assignments-page,.courses-page,.classes-page,.gradebook-page,.students-page,.communication-page,.analytics-page,.ai-tools-page,.resources-page,.profile-page,.settings-page{padding:0 0 var(--space-8)}.assignments-header,.courses-header,.classes-header,.gradebook-header,.students-header,.communication-header,.analytics-header,.ai-tools-header,.resources-header,.settings-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.assignments-header-left,.courses-header-left,.students-header-left,.resources-header-left{gap:var(--space-1);flex-direction:column;display:flex}.analytics-header-text{flex:1;min-width:200px}.analytics-title,.ai-tools-title,.settings-title,.gradebook-header-top{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.analytics-subtitle,.ai-tools-subtitle,.settings-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.section-header,.chart-header,.ai-tool-section-title{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.section-title,.chart-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.chart-subtitle,.section-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.section-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-primary-light);color:var(--color-primary);align-items:center;display:inline-flex}.section-badge--danger{background:var(--color-error-light);color:var(--color-error-dark)}.section-badge--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.tabs,.analytics-tabs,.gradebook-tabs,.message-tabs,.settings-tabs,.resources-tabs,.class-tabs,.detail-tabs,.student-tabs{gap:var(--space-1);border-bottom:2px solid var(--color-border);margin-bottom:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.analytics-tabs::-webkit-scrollbar{display:none}.message-tabs::-webkit-scrollbar{display:none}.settings-tabs::-webkit-scrollbar{display:none}.resources-tabs::-webkit-scrollbar{display:none}.tabs-trigger,.analytics-tab,.message-tab,.settings-tab,.resources-tab,.class-tab,.detail-tab,.student-tab,.chart-tab{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:var(--space-2);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;display:flex}.tabs-trigger:hover,.analytics-tab:hover,.message-tab:hover,.settings-tab:hover,.resources-tab:hover,.class-tab:hover,.detail-tab:hover,.student-tab:hover,.chart-tab:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.tabs-trigger-active,.tabs-trigger.active,.analytics-tab--active,.analytics-tab.active,.message-tab.active,.settings-tab.active,.resources-tab.active,.class-tab.active,.detail-tab.active,.student-tab.active,.chart-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.assignment-card,.course-card,.class-card,.student-card,.media-card,.question-card,.template-card,.stat-card,.overview-stat-card,.metric-card,.kpi-card,.at-risk-card,.grading-item,.activity-item,.setting-item,.feature-usage-item,.engagement-stat,.revenue-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-normal)}.assignment-card:hover,.course-card:hover,.class-card:hover,.student-card:hover,.media-card:hover,.question-card:hover,.template-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-grid,.analytics-kpi-grid,.summary-grid,.revenue-grid,.engagement-stats-grid{gap:var(--space-4);display:grid}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.analytics-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.summary-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.revenue-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.engagement-stats-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.dashboard-grid-2col,.analytics-grid-2col{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.course-status-badge,.card-type-badge,.difficulty-badge,.media-type-badge,.question-type,.format-badge,.frequency-badge,.intervention-type-badge,.intervention-status-badge,.note-category-badge,.note-privacy-badge,.verification-status,.upload-status-badge,.grade-a,.grade-b,.grade-c,.text-success,.text-warning,.text-error{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;line-height:1.4;display:inline-flex}.course-status-badge,.difficulty-easy{background:var(--color-success-light);color:var(--color-success-dark)}.difficulty-medium{background:var(--color-warning-light);color:var(--color-warning-dark)}.difficulty-hard{background:var(--color-error-light);color:var(--color-error-dark)}.grade-a{background:var(--color-success-light);color:var(--color-success-dark)}.grade-b{background:var(--color-info-light);color:#1e40af}.grade-c{background:var(--color-warning-light);color:var(--color-warning-dark)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.metric-card{gap:var(--space-2);padding:var(--space-4);flex-direction:column;display:flex}.metric-card-header{align-items:center;gap:var(--space-2);display:flex}.metric-icon{font-size:var(--font-size-xl)}.metric-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.metric-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.metric-trend{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.metric-trend--up{color:var(--color-success)}.metric-trend--down{color:var(--color-error)}.chart-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.chart-body{min-height:200px}.empty-state,.ai-output-empty{padding:var(--space-12) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon,.ai-output-empty-icon{margin-bottom:var(--space-3);opacity:.5;font-size:48px}.empty-state-message{font-size:var(--font-size-base)}.page-loading{justify-content:center;align-items:center;min-height:400px;display:flex}.page-error,.settings-error-banner,.ai-output-error{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-error-light);color:var(--color-error-dark)}.settings-success-banner{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-success-light);color:var(--color-success-dark)}.toggle,.toggle-switch{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:background var(--transition-fast);border:none;padding:0;position:relative}.toggle-switch:after{content:"";width:20px;height:20px;transition:transform var(--transition-fast);box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle-slider{display:none}.toggle-label,.toggle-label-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.divider{background:var(--color-border);height:1px;margin:var(--space-4) 0}.context-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);min-width:160px;padding:var(--space-1);position:absolute;top:100%;right:0}.context-menu-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;width:100%;display:flex}.context-menu-item:hover{background:var(--color-background-secondary)}@media (width<=1024px){.dashboard-grid-2col,.analytics-grid-2col{grid-template-columns:1fr}}@media (width<=768px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.analytics-kpi-grid{grid-template-columns:1fr 1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}.revenue-grid{grid-template-columns:1fr}.engagement-stats-grid{grid-template-columns:1fr 1fr}.assignments-header,.courses-header,.classes-header,.students-header,.communication-header,.analytics-header,.ai-tools-header,.resources-header,.settings-header{gap:var(--space-3);flex-direction:column}.section-header{flex-direction:column;align-items:flex-start}}@media (width<=480px){.kpi-grid,.analytics-kpi-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}}.create-course-modal{z-index:var(--z-modal,500);display:none;position:fixed;inset:0}.create-course-modal.open{justify-content:center;align-items:center;display:flex}.create-course-modal .modal-overlay{z-index:0;background:#00000080;position:absolute;inset:0}.create-course-modal .modal-container{z-index:1;background:var(--color-surface,#fff);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;width:90%;max-width:720px;max-height:90vh;display:flex;position:relative;overflow:hidden}.create-course-modal .modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.create-course-modal .modal-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.create-course-modal .modal-close{background:var(--color-background-secondary);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.create-course-modal .modal-close:hover{background:var(--color-error-light);color:var(--color-error)}.create-course-modal .modal-body{padding:var(--space-6);flex:1;overflow-y:auto}.create-course-modal .modal-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}@media (width<=768px){.create-course-modal .modal-container{border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}.courses-page{padding:0 0 var(--space-8)}.courses-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.courses-header-left{gap:var(--space-1);flex-direction:column;display:flex}.courses-header-left h1,.courses-header-left h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.courses-header-left p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.courses-filters{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.courses-filters .search-bar{flex:1;min-width:220px;max-width:400px}.courses-filters .select-wrapper{min-width:160px}.courses-grid{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.courses-list{gap:var(--space-3);flex-direction:column;display:flex}.course-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);flex-direction:column;display:flex;position:relative;overflow:hidden}.course-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.course-thumbnail{aspect-ratio:16/9;background:var(--color-background-tertiary);width:100%;position:relative;overflow:hidden}.course-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-normal)}.course-card:hover .course-thumbnail img{transform:scale(1.03)}.course-thumbnail-fallback{background:var(--gradient-primary);width:100%;height:100%;color:var(--color-text-inverse);font-size:var(--font-size-3xl);opacity:.85;justify-content:center;align-items:center;display:flex}.course-thumbnail-fallback svg,.course-thumbnail-fallback span{opacity:.6}.course-card .course-status-badge{top:var(--space-3);right:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-success-light);color:var(--color-success-dark);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1;position:absolute}.course-card .course-status-badge.draft{background:var(--color-warning-light);color:var(--color-warning-dark)}.course-card .course-status-badge.archived{background:var(--color-background-tertiary);color:var(--color-text-tertiary)}.course-info{padding:var(--space-4) var(--space-5) var(--space-3);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.course-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.course-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.course-category-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-primary-light);color:var(--color-primary);align-self:flex-start;align-items:center;display:inline-flex}.course-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.course-meta span{align-items:center;gap:var(--space-1);display:inline-flex}.course-separator{border-radius:var(--radius-full);background:var(--color-text-tertiary);flex-shrink:0;width:3px;height:3px}.course-students{align-items:center;gap:var(--space-1);display:inline-flex}.course-updated{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.course-progress-card{padding:0 var(--space-5) var(--space-3)}.course-progress-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.course-progress-bar{background:var(--color-background-tertiary);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.course-progress-fill{background:var(--gradient-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.course-progress-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1);text-align:right}.course-rating{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.course-rating-stars{color:var(--color-warning);align-items:center;gap:1px;display:flex}.course-rating-stars svg,.course-rating-stars span{font-size:var(--font-size-sm)}.course-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--color-border-light);display:flex}.course-actions .btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3)}.course-list-header{gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:2fr 1.2fr 1fr 100px 120px;display:grid}.course-list-item{gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);grid-template-columns:2fr 1.2fr 1fr 100px 120px;align-items:center;display:grid}.course-list-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.course-list-thumbnail{border-radius:var(--radius-sm);background:var(--color-background-tertiary);flex-shrink:0;width:80px;height:50px;overflow:hidden}.course-list-thumbnail img{object-fit:cover;width:100%;height:100%}.course-list-thumbnail .course-thumbnail-fallback{font-size:var(--font-size-lg);border-radius:var(--radius-sm)}.course-list-info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.course-list-info .course-title{font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.course-list-info .course-category-badge{padding:1px var(--space-2);font-size:10px}.course-list-actions{align-items:center;gap:var(--space-2);justify-content:flex-end;display:flex}.course-list-actions .btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2)}.course-card .course-rating{padding:0 var(--space-5) var(--space-2)}.courses-loading{padding:var(--space-16) var(--space-4);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.courses-loading .spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:40px;height:40px;animation:.8s linear infinite spin}.courses-loading p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.courses-empty{padding:var(--space-16) var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.courses-empty-icon{margin-bottom:var(--space-4);opacity:.4;font-size:56px}.courses-empty h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2)}.courses-empty p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-6);max-width:360px}.course-card .skeleton{background:linear-gradient(90deg, var(--color-background-tertiary) 25%, var(--color-border-light) 50%, var(--color-background-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-thumbnail{aspect-ratio:16/9;width:100%}.skeleton-title{width:75%;height:18px}.skeleton-text{width:100%;height:14px}.skeleton-text-short{width:60%;height:14px}.skeleton-bar{border-radius:var(--radius-full);width:100%;height:6px}@media (width<=1200px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.courses-header{gap:var(--space-3);flex-direction:column}.courses-filters{flex-direction:column;align-items:stretch}.courses-filters .search-bar{max-width:none}.courses-grid{gap:var(--space-4);grid-template-columns:1fr}.courses-list .course-list-header{display:none}.course-list-item{gap:var(--space-3);grid-template-columns:1fr}.course-list-thumbnail{border-radius:var(--radius-md);width:100%;height:160px}.course-list-info{gap:var(--space-2)}.course-list-actions{padding-top:var(--space-2);border-top:1px solid var(--color-border-light);justify-content:flex-start}}@media (width<=480px){.course-info{padding:var(--space-3) var(--space-4) var(--space-2)}.course-progress-card{padding:0 var(--space-4) var(--space-3)}.course-rating{padding:0 var(--space-4) var(--space-2)}.course-actions{padding:var(--space-3) var(--space-4);flex-wrap:wrap}.course-meta{gap:var(--space-2)}}.assignments-page{padding:0 0 var(--space-8)}.assignments-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.assignments-filters{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.filter-chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:var(--color-background-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;display:inline-flex}.filter-chip-count{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:0 var(--space-2);border-radius:var(--radius-full);background:#ffffff40;line-height:1.6}.filter-chip.active .filter-chip-count{background:#ffffff40}.filter-chip:not(.active) .filter-chip-count{background:var(--color-background-tertiary);color:var(--color-text-tertiary)}.assignments-grid{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.assignments-table-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.assignments-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.assignments-table thead{background:var(--color-background-secondary);border-bottom:2px solid var(--color-border)}.assignments-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.assignments-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary);vertical-align:middle}.assignments-table tbody tr{transition:background var(--transition-fast)}.assignments-table tbody tr:hover{background:var(--color-surface-hover)}.assignments-table tbody tr:last-child td{border-bottom:none}.assignment-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);flex-direction:column;display:flex;position:relative;overflow:hidden}.assignment-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-top-bar{background:var(--color-primary);flex-shrink:0;width:100%;height:4px}.card-top-bar.quiz{background:var(--gradient-secondary)}.card-top-bar.assignment{background:var(--gradient-primary)}.card-top-bar.project{background:linear-gradient(135deg, var(--color-success) 0%, #43a047 100%)}.card-top-bar.discussion{background:linear-gradient(135deg,#9c27b0 0%,#ba68c8 100%)}.card-top-bar.exam{background:linear-gradient(135deg, var(--color-error) 0%, #e57373 100%)}.card-top-baressay{background:linear-gradient(135deg,#00897b 0%,#4db6ac 100%)}.card-type-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-primary-light);color:var(--color-primary);align-items:center;display:inline-flex}.card-type-badge.quiz{background:var(--color-secondary-light);color:var(--color-secondary)}.card-type-badge.project{background:var(--color-success-light);color:var(--color-success-dark)}.card-type-badge.discussion{color:#7b1fa2;background:#f3e5f5}.card-type-badge.exam{background:var(--color-error-light);color:var(--color-error-dark)}.card-type-badge.essay{color:#00695c;background:#e0f2f1}.card-progress{padding:0 var(--space-5) var(--space-3)}.card-progress .course-progress-bar{height:4px}.assignment-card .assignment-name,.assignment-card .assignment-title{padding:var(--space-4) var(--space-5) var(--space-1);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.assignment-card .assignment-course{padding:0 var(--space-5) var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.assignment-card .assignment-meta{padding:0 var(--space-5) var(--space-3);align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.assignment-card .assignment-grade{padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.assignment-card .assignment-grade .grade-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.assignment-card .assignment-grade .grade-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.detail-view{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.detail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-6);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.detail-header-left{align-items:flex-start;gap:var(--space-4);flex:1;min-width:0;display:flex}.detail-header-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.detail-type-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:48px;height:48px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.detail-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-2);line-height:var(--line-height-tight)}.detail-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.detail-tabs{gap:var(--space-1);border-bottom:2px solid var(--color-border);padding:0 var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.detail-tabs::-webkit-scrollbar{display:none}.detail-tab{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:var(--space-2);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;display:flex}.detail-tab:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.detail-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.detail-content{padding:var(--space-6)}.detail-stat{gap:var(--space-1);padding:var(--space-4);background:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);flex-direction:column;display:flex}.detail-stat .stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.detail-stat .stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.form-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5)}.form-step{display:none}.form-step.active{display:block}.form-subtitle{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.form-group{margin-bottom:var(--space-5)}.required-mark{color:var(--color-error);margin-left:var(--space-1)}.form-input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-input--sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm)}.form-select{width:100%;padding:var(--space-2) var(--space-10) var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);appearance:none;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-textarea{width:100%;min-height:100px;padding:var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-row{gap:var(--space-4);align-items:flex-start;display:flex}.form-row>*{flex:1;min-width:0}.form-grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.form-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.form-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1)}.form-helper,.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.form-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--color-border-light);margin-top:var(--space-5);display:flex}.form-tag{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-primary-light);color:var(--color-primary);display:inline-flex}.form-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.quiz-builder{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.quiz-builder-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.quiz-settings-bar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}.quiz-add-question{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);margin:var(--space-4) var(--space-5);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);width:calc(100% - var(--space-10));background:0 0;display:flex}.quiz-add-question:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.quiz-meta{align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.rubric-tab{padding:var(--space-5)}.rubric-tab-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.rubric-builder{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.rubric-criterion{border-bottom:1px solid var(--color-border-light);padding:var(--space-5);transition:background var(--transition-fast)}.rubric-criterion:last-child{border-bottom:none}.rubric-criterion:hover{background:var(--color-surface-hover)}.criterion-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.criterion-number{border-radius:var(--radius-full);background:var(--color-primary);width:28px;height:28px;color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.rubric-header{grid-template-columns:1fr repeat(var(--rubric-levels,4), 1fr);gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:2px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;display:grid}.rubric-rating{padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.rubric-rating:hover{border-color:var(--color-primary-light)}.rubric-ratings-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.rubric-score-header{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:2px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;grid-template-columns:1fr 100px 80px;display:grid}.rubric-score-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);grid-template-columns:1fr 100px 80px;align-items:center;display:grid}.rubric-score-item:last-child{border-bottom:none}.rubric-score-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.rubric-score-weight{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.rating-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.rating-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.rating-btn.selected{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.rating-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.rating-level{gap:var(--space-1);flex-direction:column;display:flex}.rating-buttons{gap:var(--space-1);display:flex}.rubric-weight-total{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-top:2px solid var(--color-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.rubric-weight-total.valid{color:var(--color-success)}.rubric-weight-total.invalid{color:var(--color-error)}.rubric-actions{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-light);display:flex}.btn-add-criterion{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);margin:var(--space-4) var(--space-5);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.btn-add-criterion:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.step-indicator{justify-content:center;align-items:center;gap:var(--space-2);margin-bottom:var(--space-8);padding:var(--space-4) 0;display:flex}.step{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;background:0 0;border:2px solid #0000;display:flex}.step:hover{color:var(--color-text-secondary);background:var(--color-background-secondary)}.step.active{color:var(--color-primary);background:var(--color-primary-light);border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.step.completed{color:var(--color-success);background:var(--color-success-light)}.step-icon{border-radius:var(--radius-full);background:var(--color-background-tertiary);width:24px;height:24px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-tertiary);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.step.active .step-icon{background:var(--color-primary);color:var(--color-text-inverse)}.step.completed .step-icon{background:var(--color-success);color:var(--color-text-inverse)}.step-number{border-radius:var(--radius-full);background:var(--color-background-tertiary);width:28px;height:28px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.step.active .step-number{background:var(--color-primary);color:var(--color-text-inverse)}.step.completed .step-number{background:var(--color-success);color:var(--color-text-inverse)}.step-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.step.active .step-label{color:var(--color-primary)}.step:not(:last-child):after{content:"";background:var(--color-border);width:32px;height:2px;margin-left:var(--space-2);flex-shrink:0;display:block}.step.completed:not(:last-child):after{background:var(--color-success)}.category-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.category-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);transition:all var(--transition-normal);flex-direction:column;display:flex}.category-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md)}.category-card-header{justify-content:space-between;align-items:center;display:flex}.category-card-actions{align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast);display:flex}.category-card:hover .category-card-actions{opacity:1}.category-card-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.category-card-weight{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.category-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:40px;height:40px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.pricing-toggle{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.pricing-option{align-items:center;gap:var(--space-1);padding:var(--space-4);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;min-width:140px;display:flex}.pricing-option:hover{border-color:var(--color-primary-light)}.pricing-option.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.pricing-option .price{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.pricing-option .price-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.discounted-price{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-success)}.original-price{font-size:var(--font-size-base);color:var(--color-text-tertiary);margin-left:var(--space-2);text-decoration:line-through}.discount-preview{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-success-light);color:var(--color-success-dark);display:inline-flex}.thumbnail-upload{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.thumbnail-input{width:100%;max-width:400px}.thumbnail-placeholder{aspect-ratio:16/9;border:2px dashed var(--color-border);border-radius:var(--radius-lg);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;width:100%;transition:all var(--transition-fast);background:var(--color-background-secondary);flex-direction:column;display:flex}.thumbnail-placeholder:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.thumbnail-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.thumbnail-icon{color:var(--color-text-tertiary);font-size:2rem}.thumbnail-placeholder:hover .thumbnail-icon{color:var(--color-primary)}.thumbnail-preview{aspect-ratio:16/9;border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden}.thumbnail-preview img{object-fit:cover;width:100%;height:100%}.file-upload-area{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);justify-content:center;align-items:center;gap:var(--space-3);cursor:pointer;transition:all var(--transition-fast);background:var(--color-background-secondary);text-align:center;flex-direction:column;display:flex}.file-upload-area:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.file-upload-area.drag-over{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-glow)}.file-upload-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.file-upload-label strong{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.curriculum-empty{padding:var(--space-12) var(--space-4);text-align:center;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-background-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.curriculum-empty .icon{margin-bottom:var(--space-3);opacity:.4;font-size:48px}.curriculum-empty h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2)}.curriculum-empty p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5)}.curriculum-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.curriculum-sections{gap:var(--space-4);flex-direction:column;display:flex}.module-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);overflow:hidden}.module-item:hover{border-color:var(--color-primary-light)}.module-item.expanded{box-shadow:var(--shadow-sm)}.module-name{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.module-status-icon{font-size:var(--font-size-lg);flex-shrink:0}.module-status-icon.complete{color:var(--color-success)}.module-status-icon.in-progress{color:var(--color-warning)}.module-more{border-radius:var(--radius-full);width:28px;height:28px;transition:transform var(--transition-fast);color:var(--color-text-tertiary);justify-content:center;align-items:center;margin-left:auto;display:flex}.module-item.expanded .module-more{transform:rotate(180deg)}.module-lessons{border-top:1px solid var(--color-border-light);padding:var(--space-2)}.lesson-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.lesson-item:hover{background:var(--color-surface-hover)}.lesson-drag-handle{width:20px;color:var(--color-text-tertiary);cursor:grab;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson-drag-handle:active{cursor:grabbing}.lesson-title-input{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:1px solid #0000;flex:1;min-width:0}.lesson-title-input:focus{background:var(--color-surface);border-color:var(--color-border);box-shadow:var(--shadow-xs);outline:none}.lesson-duration-input{width:80px;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);border-radius:var(--radius-sm);text-align:center;transition:all var(--transition-fast);background:0 0;border:1px solid #0000}.lesson-duration-input:focus{background:var(--color-surface);border-color:var(--color-border);outline:none}.lesson-type-select{width:120px;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);border-radius:var(--radius-sm);appearance:none;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000}.lesson-type-select:focus{background:var(--color-surface);border-color:var(--color-border);outline:none}.add-lesson-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);margin:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;display:flex}.add-lesson-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}.advanced-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}.add-item-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.add-item-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.option-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.option-letter{border-radius:var(--radius-full);background:var(--color-background-tertiary);width:28px;height:28px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-options{gap:var(--space-4);display:flex}.tf-options label{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.tags-input-row{align-items:center;gap:var(--space-2);display:flex}.tag-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-primary-light);color:var(--color-primary);display:inline-flex}.tag-sm{padding:2px var(--space-2);font-size:10px}.tag-remove{border-radius:var(--radius-full);width:16px;height:16px;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.tag-remove:hover{background:var(--color-primary);color:var(--color-text-inverse)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;font-family:var(--font-family);border:1px solid #0000;display:inline-flex}.btn:focus{box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.btn-xs{padding:2px var(--space-2);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-outline{border:1px solid var(--color-border);color:var(--color-text-primary);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--color-background-secondary);border-color:var(--color-text-tertiary)}.btn-ghost{color:var(--color-text-primary);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-background-secondary)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-dark);border-color:var(--color-error-dark)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-primary);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}.btn-loading{color:#0000;pointer-events:none;position:relative}.btn-loading:after{content:"";border-radius:var(--radius-full);width:16px;height:16px;color:var(--color-text-inverse);border:2px solid;border-right-color:#0000;animation:.8s linear infinite spin;position:absolute}@media (width<=1200px){.assignments-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.assignments-header{gap:var(--space-3);flex-direction:column}.assignments-filters{flex-direction:column;align-items:stretch}.assignments-grid{gap:var(--space-4);grid-template-columns:1fr}.assignments-table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.assignments-table{min-width:640px}.detail-header,.detail-header-left{gap:var(--space-3);flex-direction:column}.detail-header-right{justify-content:flex-start;width:100%}.detail-tabs{padding:0 var(--space-4)}.detail-content{padding:var(--space-4)}.form-row{flex-direction:column}.form-grid,.form-grid-3{grid-template-columns:1fr}.form-section{padding:var(--space-4)}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%}.step-indicator{-webkit-overflow-scrolling:touch;padding:var(--space-3) var(--space-4);justify-content:flex-start;gap:var(--space-1);overflow-x:auto}.step{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.step:not(:last-child):after{width:16px}.step-label{display:none}.category-cards{grid-template-columns:1fr}.pricing-toggle{flex-direction:column;align-items:stretch}.pricing-option{min-width:auto}.module-name{padding:var(--space-3) var(--space-4)}.lesson-item{gap:var(--space-2);flex-wrap:wrap}.lesson-title-input{order:-1;width:100%}.lesson-duration-input{width:70px}.lesson-type-select{width:100px}.rubric-header{display:none}.rubric-score-item{gap:var(--space-2);padding:var(--space-4);grid-template-columns:1fr}.rubric-score-header{display:none}.rubric-ratings-grid{grid-template-columns:1fr}.quiz-settings-bar{flex-direction:column;align-items:stretch}.quiz-builder-header{flex-direction:column;align-items:flex-start}.filter-chips{-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);flex-wrap:nowrap;overflow-x:auto}.filter-chip{flex-shrink:0}}@media (width<=480px){.filter-chip{font-size:var(--font-size-xs);padding:2px var(--space-2)}.detail-stat{padding:var(--space-3)}.detail-stat .stat-value{font-size:var(--font-size-xl)}.thumbnail-placeholder{aspect-ratio:16/10}.file-upload-area{padding:var(--space-6)}}.classes-page{min-height:100vh;padding:var(--space-6);background:var(--color-background-secondary)}.classes-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.classes-header-text h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin:0}.classes-header-text p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.classes-filters{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.classes-filter-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.classes-filter-chips .chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;display:inline-flex}.classes-filter-chips .chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.classes-filter-chips .chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.classes-view-toggle{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);display:inline-flex;overflow:hidden}.classes-view-toggle button{width:var(--space-9);height:var(--space-9);cursor:pointer;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.classes-view-toggle button:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.classes-view-toggle button.active{color:#fff;background:var(--color-primary)}.classes-view-toggle button+button{border-left:1px solid var(--color-border-light)}.classes-grid{gap:var(--space-5);display:grid}.classes-grid-grid{grid-template-columns:repeat(3,1fr)}.classes-grid-list{gap:var(--space-3);grid-template-columns:1fr}.class-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);transition:box-shadow var(--transition-normal), transform var(--transition-normal);position:relative;overflow:hidden}.class-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.class-card-grid{flex-direction:column;display:flex}.class-card-list{flex-direction:row;align-items:stretch;display:flex}.class-card-main{padding:var(--space-5);flex-direction:column;flex:1;min-width:0;display:flex}.class-card-info{flex:1}.class-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-1);line-height:1.3}.class-course-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.class-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.class-card-meta{align-items:center;gap:var(--space-4);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);display:flex}.class-card-meta .stat{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.class-card-meta .stat svg{width:var(--space-4);height:var(--space-4);opacity:.6}.class-cohort-code{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-background-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);letter-spacing:.05em;font-family:monospace;display:inline-flex}.class-card-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-4);display:flex}.class-actions{gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-light);background:var(--color-background-secondary);display:flex}.class-actions button{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);display:inline-flex}.class-actions button:hover{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.class-actions button.btn-danger:hover{border-color:var(--color-error);background:var(--color-error);color:#fff}.class-actions button.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.class-actions button.btn-primary:hover{opacity:.9}.class-detail{padding:var(--space-6)}.class-detail-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.class-detail-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin:0}.class-detail-meta{align-items:center;gap:var(--space-4);margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.detail-actions{gap:var(--space-2);display:flex}.class-overview{margin-bottom:var(--space-6)}.class-stats-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.class-stat-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);transition:box-shadow var(--transition-normal)}.class-stat-card:hover{box-shadow:var(--shadow-sm)}.class-stat-card .stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:var(--space-1);line-height:1}.class-stat-card .stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.schedule-calendar{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden}.calendar-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.calendar-header button{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.calendar-header button:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.calendar-grid{padding:var(--space-2);background:var(--color-border-light);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.calendar-day-header{padding:var(--space-2);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--color-surface)}.calendar-day{padding:var(--space-2);min-height:var(--space-16);background:var(--color-surface);cursor:pointer;transition:background var(--transition-fast);flex-direction:column;align-items:center;display:flex;position:relative}.calendar-day:hover{background:var(--color-background-secondary)}.calendar-day-number{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);width:var(--space-7);height:var(--space-7);border-radius:var(--radius-full);margin-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.calendar-day--empty{background:var(--color-background-secondary);opacity:.5;cursor:default}.calendar-day--empty:hover{background:var(--color-background-secondary)}.calendar-day-today .calendar-day-number{background:var(--color-primary);color:#fff;font-weight:var(--font-weight-bold)}.calendar-day-selected{background:var(--color-primary);color:#fff}.calendar-day-selected .calendar-day-number{color:#fff}.calendar-day-other{opacity:.35;pointer-events:none}.calendar-day-other .calendar-day-number{color:var(--color-text-tertiary)}.calendar-events{width:100%;padding:0 var(--space-1);flex-direction:column;gap:2px;display:flex}.calendar-event{align-items:center;gap:var(--space-1);padding:1px var(--space-1);border-radius:var(--radius-xs);font-size:var(--font-size-2xs);white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-primary);background:var(--color-background-secondary);line-height:1.4;display:flex;overflow:hidden}.calendar-event:before{content:"";border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.calendar-event-live:before{background:var(--color-success)}.calendar-event-live{background:color-mix(in srgb, var(--color-success) 10%, transparent)}.calendar-event-upcoming:before{background:var(--color-info)}.calendar-event-upcoming{background:color-mix(in srgb, var(--color-info) 10%, transparent)}.calendar-event-completed:before{background:var(--color-text-tertiary)}.calendar-event-completed{background:var(--color-background-secondary);opacity:.7}.calendar-event-more{font-size:var(--font-size-2xs);color:var(--color-text-tertiary);text-align:center;cursor:pointer;padding:1px 0}.calendar-event-more:hover{color:var(--color-primary)}.calendar-legend{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-light);background:var(--color-surface);display:flex}.legend-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.legend-dot--live{background:var(--color-success)}.legend-dot--upcoming{background:var(--color-info)}.legend-dot--completed{background:var(--color-text-tertiary)}.attendance-grid{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex;overflow:hidden}.attendance-header{gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:2fr 1fr 2fr;display:grid}.attendance-row{gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);grid-template-columns:2fr 1fr 2fr;align-items:center;display:grid}.attendance-row:last-child{border-bottom:none}.attendance-row:hover{background:var(--color-background-secondary)}.attendance-row-header{background:var(--color-background-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.attendance-row-empty{padding:var(--space-8) var(--space-5);color:var(--color-text-tertiary);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.attendance-col-name{align-items:center;gap:var(--space-3);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm);display:flex}.attendance-col-status{font-size:var(--font-size-sm)}.attendance-select{appearance:none;padding:var(--space-2) var(--space-3);padding-right:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center}.attendance-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.session-list{gap:var(--space-3);flex-direction:column;display:flex}.session-item{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);transition:box-shadow var(--transition-normal), border-color var(--transition-normal);align-items:stretch;display:flex;overflow:hidden}.session-item-clickable{cursor:pointer}.session-item-clickable:hover{box-shadow:var(--shadow-sm);border-color:var(--color-primary)}.session-item-active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary) 15%, transparent)}.session-date{min-width:var(--space-16);padding:var(--space-4);background:var(--color-primary);color:#fff;text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.session-day{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);line-height:1}.session-month{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;opacity:.85;margin-top:var(--space-1)}.session-info{padding:var(--space-4) var(--space-5);flex:1;min-width:0}.session-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-1)}.session-topic{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2)}.session-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.session-link{color:var(--color-primary);font-weight:var(--font-weight-medium);transition:opacity var(--transition-fast);text-decoration:none}.session-link:hover{opacity:.8}.session-details-panel{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-4);box-shadow:var(--shadow-xs)}@media (width<=1024px){.classes-grid-grid,.class-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.classes-page{padding:var(--space-4)}.classes-header{flex-direction:column;align-items:flex-start}.classes-grid-grid{grid-template-columns:1fr}.class-stats-grid{grid-template-columns:repeat(2,1fr)}.class-card-list{flex-direction:column}.session-date{min-width:var(--space-14)}.attendance-header,.attendance-row{grid-template-columns:1.5fr 1fr 1.5fr}.calendar-grid{min-width:560px;overflow-x:auto}.schedule-calendar{overflow-x:auto}.calendar-legend{gap:var(--space-2);flex-wrap:wrap}}@media (width<=480px){.classes-page{padding:var(--space-3)}.classes-header-text h1{font-size:var(--font-size-2xl)}.class-card-main{padding:var(--space-4)}.class-actions{padding:var(--space-3);flex-wrap:wrap}.session-date{min-width:var(--space-12);padding:var(--space-3)}.session-day{font-size:var(--font-size-xl)}.class-stats-grid{grid-template-columns:1fr}.attendance-header,.attendance-row{gap:var(--space-2);padding:var(--space-2) var(--space-3);grid-template-columns:1fr 1fr}.attendance-col-notes{display:none}}.gradebook-page{min-height:100vh;padding:var(--space-6);background:var(--color-background-secondary)}.gradebook-header{margin-bottom:var(--space-6)}.gradebook-header-top{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.gradebook-header-top h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin:0}.gradebook-course-select{appearance:none;padding:var(--space-2) var(--space-4);padding-right:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}.gradebook-course-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.gradebook-tabs{border-bottom:2px solid var(--color-border-light);margin-bottom:var(--space-5);gap:0;display:flex}.gradebook-tabs .tab{padding:var(--space-3) var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;position:relative}.gradebook-tabs .tab:hover{color:var(--color-text-primary)}.gradebook-tabs .tab.active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.gradebook-tabs .tab.active:after{content:"";background:var(--color-primary);border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:-2px;left:0;right:0}.gradebook-tab-content{animation:.2s ease-out fadeSlideIn}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gradebook-controls{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.gradebook-controls .search-input{min-width:var(--space-48);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);flex:1}.gradebook-controls .search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.gradebook-controls .btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;display:inline-flex}.gradebook-controls .btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.gradebook-controls .btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.gradebook-controls .btn-primary:hover{opacity:.9}.gradebook-controls .btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.gradebook-controls .btn-success:hover{opacity:.9}.gradebook-table-wrapper{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-surface);-webkit-overflow-scrolling:touch;overflow-x:auto}.gradebook-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.gradebook-table th,.gradebook-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light);white-space:nowrap}.gradebook-header-cell{background:var(--color-background-secondary);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;z-index:2;position:sticky;top:0}.gradebook-header-cell--name{min-width:var(--space-48);z-index:3;background:var(--color-background-secondary);position:sticky;left:0}.gradebook-header-cell--final{background:color-mix(in srgb, var(--color-primary) 8%, var(--color-background-secondary));color:var(--color-primary);font-weight:var(--font-weight-bold)}.gradebook-row{transition:background var(--transition-fast)}.gradebook-row:hover,.gradebook-row:nth-child(2n){background:var(--color-background-secondary)}.gradebook-row:nth-child(2n):hover{background:var(--color-background-tertiary)}.gradebook-cell{color:var(--color-text-primary)}.gradebook-cell--name{font-weight:var(--font-weight-medium);background:inherit;z-index:1;position:sticky;left:0}.gradebook-row:hover .gradebook-cell--name,.gradebook-row:nth-child(2n) .gradebook-cell--name{background:var(--color-background-secondary)}.gradebook-cell--grade{text-align:center;font-variant-numeric:tabular-nums}.gradebook-cell--final{font-weight:var(--font-weight-bold);background:color-mix(in srgb, var(--color-primary) 4%, transparent);text-align:center}.gradebook-cell--bulk{text-align:center}.gradebook-cell--overridden{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}.grades-summary{margin-bottom:var(--space-6)}.summary-item{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;transition:box-shadow var(--transition-normal)}.summary-item:hover{box-shadow:var(--shadow-sm)}.summary-item .summary-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-1);line-height:1}.summary-item .summary-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-semibold)}.summary-item.graded .summary-value{color:var(--color-success)}.summary-item.missing .summary-value{color:var(--color-error)}.summary-item.pending .summary-value{color:var(--color-warning)}.grade-entry{gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);flex-direction:column;display:flex}.grade-entry-student{align-items:center;gap:var(--space-3);display:flex}.grade-entry-info{flex:1;min-width:0}.grade-entry-info .student-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.grade-entry-info .student-email{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.grade-entry-assignment{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.grade-entry-max{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.grade-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);text-align:center}.grade-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.grade-input--sm{width:var(--space-16)}.grade-input--color{border-width:2px}.grade-input-group{align-items:center;gap:var(--space-2);display:flex}.grade-input-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap}.grade-input-row{align-items:center;gap:var(--space-3);display:flex}.grade-cell-content{flex-direction:column;align-items:center;gap:2px;display:flex}.grade-cell-score{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.grade-cell-letter{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:1px var(--space-1);border-radius:var(--radius-xs);line-height:1.4}.grade-cell-pct{font-size:var(--font-size-2xs);color:var(--color-text-tertiary)}.grade-cell-empty{color:var(--color-text-tertiary);font-style:italic}.bulk-grade-controls{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-4);display:flex}.bulk-grade-grid{gap:var(--space-3);flex-direction:column;display:flex}.bulk-grade-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-radius:var(--radius-md);display:flex}.bulk-grade-student{min-width:0;font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1}.bulk-grade-pct{width:var(--space-16);text-align:center}.bulk-selected-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.bulk-actions-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);margin-bottom:var(--space-4);animation:.2s ease-out slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bulk-actions{gap:var(--space-2);margin-left:auto;display:flex}.grade-preview{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:inline-flex}.grade-preview-pct{font-weight:var(--font-weight-bold);color:var(--color-primary)}.grade-preview-letter{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.grade-override-section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5)}.grade-override-form{gap:var(--space-4);flex-direction:column;display:flex}.grade-override-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);display:inline-flex}.grading-layout{gap:var(--space-5);min-height:calc(100vh - var(--space-20));grid-template-columns:1fr 320px;display:grid}.grading-panel{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5)}.grading-rubric{background:var(--color-background-secondary);border-radius:var(--radius-md);padding:var(--space-4)}.grading-sidebar{gap:var(--space-4);flex-direction:column;display:flex}.grading-content{flex:1}.grading-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.grading-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.grading-nav{gap:var(--space-2);display:flex}.grading-nav button{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.grading-nav button:hover{border-color:var(--color-primary);color:var(--color-primary)}.grading-actions{gap:var(--space-2);display:flex}.grading-view{padding:var(--space-5)}.grade-stats{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grades-alerts{gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.grade-alert--danger{background:color-mix(in srgb, var(--color-error) 10%, transparent);color:var(--color-error);border:1px solid color-mix(in srgb, var(--color-error) 25%, transparent)}.grade-alert--warning{background:color-mix(in srgb, var(--color-warning) 10%, transparent);color:var(--color-warning);border:1px solid color-mix(in srgb, var(--color-warning) 25%, transparent)}.grades-trend{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5)}.grade-trend-chart{width:100%;height:var(--space-48)}.grade-change{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex}.grade-change-delta{font-size:var(--font-size-xs);padding:1px var(--space-1);border-radius:var(--radius-xs)}.grade-change--up{color:var(--color-success)}.grade-change--up .grade-change-delta{background:color-mix(in srgb, var(--color-success) 10%, transparent);color:var(--color-success)}.grade-change--down{color:var(--color-error)}.grade-change--down .grade-change-delta{background:color-mix(in srgb, var(--color-error) 10%, transparent);color:var(--color-error)}.grades-assignments{margin-bottom:var(--space-6)}.grades-breakdown{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden}.breakdown-list{flex-direction:column;display:flex}.breakdown-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);display:flex}.breakdown-item:last-child{border-bottom:none}.breakdown-item:hover{background:var(--color-background-secondary)}.breakdown-header{justify-content:space-between;align-items:center;width:100%;display:flex}.breakdown-details{align-items:center;gap:var(--space-4);width:100%;display:flex}.breakdown-category{flex:1;min-width:0}.breakdown-category .category-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.breakdown-category .category-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.breakdown-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.breakdown-letter{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);min-width:var(--space-8);text-align:center}.breakdown-weight{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.breakdown-average{font-weight:var(--font-weight-bold);color:var(--color-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.grades-achievements{margin-bottom:var(--space-6)}.grades-performance{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5)}.performance-section{margin-bottom:var(--space-5)}.performance-section:last-child{margin-bottom:0}.performance-stat{padding:var(--space-2) 0;justify-content:space-between;align-items:center;display:flex}.performance-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.performance-stat-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.performance-summary-stats{gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);grid-template-columns:repeat(3,1fr);display:grid}.grade-distribution-chart{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5)}.dist-bar-track{width:100%;height:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-full);overflow:hidden}.dist-bar-fill{border-radius:var(--radius-full);background:var(--color-primary);height:100%;transition:width .6s ease-out}.dist-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);min-width:var(--space-8)}.dist-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:right;min-width:var(--space-8)}.stats-distribution{gap:var(--space-3);flex-direction:column;display:flex}.stats-overview{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.grade-attendance{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden}.grade-attendance .attendance-grid{flex-direction:column;display:flex}.grade-attendance .attendance-header{gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:repeat(5,1fr);display:grid}.grade-attendance .attendance-row{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);grid-template-columns:repeat(5,1fr);align-items:center;display:grid}.grade-attendance .attendance-row:last-child{border-bottom:none}.grade-attendance .attendance-row:hover{background:var(--color-background-secondary)}.student-avatar{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar-initials{font-size:inherit;font-weight:inherit;text-transform:uppercase;line-height:1}@media (width<=1280px){.grading-layout{grid-template-columns:1fr 280px}}@media (width<=1024px){.grading-layout{grid-template-columns:1fr}.grading-sidebar{order:-1}.summary-grid,.grade-stats,.performance-summary-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.gradebook-page{padding:var(--space-4)}.gradebook-header-top{flex-direction:column;align-items:flex-start}.gradebook-controls{flex-direction:column;align-items:stretch}.gradebook-controls .search-input{min-width:auto}.gradebook-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.gradebook-tabs .tab{white-space:nowrap;padding:var(--space-3) var(--space-4)}.summary-grid{grid-template-columns:repeat(2,1fr)}.grade-stats{grid-template-columns:1fr}.bulk-grade-controls{flex-direction:column;align-items:stretch}.bulk-actions-bar{flex-direction:column;align-items:flex-start}.bulk-actions{width:100%;margin-left:0}.breakdown-details{gap:var(--space-2);flex-wrap:wrap}.breakdown-item{padding:var(--space-3) var(--space-4)}.performance-summary-stats,.stats-overview{grid-template-columns:1fr}.grade-attendance .attendance-header,.grade-attendance .attendance-row{grid-template-columns:repeat(3,1fr)}}@media (width<=480px){.gradebook-page{padding:var(--space-3)}.summary-grid{grid-template-columns:1fr}.summary-item{padding:var(--space-4)}.gradebook-header-top h1{font-size:var(--font-size-2xl)}.gradebook-table th,.gradebook-table td{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.bulk-grade-row{flex-wrap:wrap}.grading-layout{gap:var(--space-3)}.grading-panel{padding:var(--space-4)}}.students-page{padding:0 0 var(--space-8)}.students-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.students-header-left{gap:var(--space-1);flex-direction:column;display:flex}.students-header-left .page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.students-header-left .page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.students-header-actions{align-items:center;gap:var(--space-2);display:flex}.students-filters{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.filter-search{width:100%;max-width:480px}.filter-search .form-input{width:100%}.filter-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;display:inline-flex}.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.filter-chip.active{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active .filter-chip-count{color:var(--color-text-inverse);background:#ffffff40}.filter-chip-count{min-width:20px;height:20px;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--color-background-tertiary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);justify-content:center;align-items:center;display:inline-flex}.filter-actions{align-items:center;gap:var(--space-3);display:flex}.sort-select{min-width:160px}.view-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.view-toggle .view-btn{background:var(--color-surface);width:36px;height:36px;color:var(--color-text-tertiary);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;padding:0;display:flex}.view-toggle .view-btn:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.view-toggle .view-btn.active{background:var(--color-primary);color:var(--color-text-inverse)}.view-toggle .view-btn+.view-btn{border-left:1px solid var(--color-border)}.bulk-actions-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex}.bulk-selected-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.bulk-actions{align-items:center;gap:var(--space-2);display:flex}.students-grid{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.student-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-normal);position:relative}.student-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.student-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.student-card-select{top:var(--space-3);left:var(--space-3);z-index:1;position:absolute}.student-card-select input[type=checkbox],.student-checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}.student-card--grid{gap:var(--space-3);flex-direction:column;display:flex}.student-card--grid .student-card-header{align-items:center;gap:var(--space-3);padding-top:var(--space-2);flex-direction:column;display:flex}.student-card--grid .student-info{text-align:center}.student-card--grid .student-card-courses{gap:var(--space-1);flex-wrap:wrap;justify-content:center;display:flex}.student-card--grid .student-stats{justify-content:center;gap:var(--space-4);padding-top:var(--space-2);border-top:1px solid var(--color-border-light);display:flex}.student-card--grid .student-card-meta{text-align:center}.student-card--grid .student-actions{gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border-light);justify-content:center;display:flex}.student-card--list{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-top:none;border-left:none;border-right:none;border-bottom:1px solid var(--color-border-light);border-radius:0;display:flex}.student-card--list:last-child{border-bottom:none}.student-card--list:hover{background:var(--color-surface-hover);transform:none}.student-card--list .student-card-select{flex-shrink:0;position:static}.student-card--list .student-card-main{align-items:center;gap:var(--space-3);cursor:pointer;flex:1;min-width:0;display:flex}.student-card--list .student-info{min-width:0}.student-card--list .student-info .student-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.student-card--list .student-info .student-email{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.student-card--list .student-card-courses{gap:var(--space-1);flex-wrap:wrap;flex-shrink:0;max-width:200px;display:flex}.student-card--list .student-card-stats{gap:var(--space-4);flex-shrink:0;display:flex}.student-card--list .student-card-meta{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;min-width:100px;display:flex}.student-card--list .student-card-actions{gap:var(--space-1);flex-shrink:0;display:flex}.students-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.students-list-header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;display:flex}.students-list-header .student-card-select{flex-shrink:0;position:static}.students-list-header .student-card-main{flex:1}.students-list-header .student-card-courses,.students-list-header .student-card-stats{flex-shrink:0}.students-list-header .student-card-meta{min-width:100px}.students-list-header .student-card-actions{flex-shrink:0}.student-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:48px;height:48px;color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.student-avatar--initials{justify-content:center;align-items:center;display:flex}.avatar-initials{font-size:inherit;line-height:1}.avatar-image{object-fit:cover;width:100%;height:100%}.student-avatar-sm{width:32px;height:32px;font-size:var(--font-size-xs)}.student-avatar--lg,.student-detail-profile .student-avatar{width:64px;height:64px;font-size:var(--font-size-lg)}.student-avatar-lg{width:80px;height:80px;font-size:var(--font-size-xl)}.student-card-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.student-card-main{cursor:pointer}.student-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.student-email{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.student-course-tag{padding:1px var(--space-2);background:var(--color-background-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:100px;display:inline-block;overflow:hidden}.student-stats,.student-card-stats{gap:var(--space-4);display:flex}.student-grade{flex-direction:column;align-items:center;gap:0;display:flex}.student-grade .stat-value,.student-card .stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.student-grade .stat-label,.student-card .stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.student-attendance-stat{flex-direction:column;align-items:center;display:flex}.student-attendance-stat .stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.student-attendance-stat .stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.student-card-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.student-last-active{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.grade-a{color:var(--color-success)}.grade-b{color:var(--color-info)}.grade-c{color:var(--color-warning)}.grade-d{color:var(--color-warning-dark)}.grade-f{color:var(--color-error)}.grade-badge{min-width:32px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;display:inline-flex}.grade-badge.grade-a{background:var(--color-success-light);color:var(--color-success-dark)}.grade-badge.grade-b{background:var(--color-info-light);color:#1e40af}.grade-badge.grade-c,.grade-badge.grade-d{background:var(--color-warning-light);color:var(--color-warning-dark)}.grade-badge.grade-f{background:var(--color-error-light);color:var(--color-error-dark)}.status-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;align-items:center;display:inline-flex}.status-active{background:var(--color-success-light);color:var(--color-success-dark)}.status-at-risk{background:var(--color-error-light);color:var(--color-error-dark)}.status-top-performer{background:var(--color-primary-light);color:var(--color-primary)}.status-new{background:var(--color-info-light);color:#1e40af}.students-loading{justify-content:center;align-items:center;min-height:400px;display:flex}.students-empty{justify-content:center;align-items:center;min-height:300px;display:flex}.empty-icon{margin-bottom:var(--space-3);opacity:.5;font-size:48px}.empty-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-message{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.empty-action{margin-top:var(--space-4)}.student-detail{padding:var(--space-6);max-width:1200px;margin:0 auto}.student-detail-header{margin-bottom:var(--space-6)}.student-detail-header .btn-back{margin-bottom:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.student-detail-header .btn-back:hover{color:var(--color-primary)}.student-detail-profile{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.student-detail-info{gap:var(--space-1);flex-direction:column;flex:1;min-width:200px;display:flex}.student-detail-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.student-detail-email{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.student-detail-enrollment{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-1);display:flex}.student-detail-quick-stats{gap:var(--space-3);display:flex}.student-stats .quick-stat,.student-detail-quick-stats .quick-stat{padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:0;min-width:80px;display:flex}.quick-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.quick-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.student-tab-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);min-height:400px}.student-overview{gap:var(--space-8);flex-direction:column;display:flex}.overview-stats-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.overview-stat-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:box-shadow var(--transition-fast);display:flex}.overview-stat-card:hover{box-shadow:var(--shadow-sm)}.overview-stat-icon{font-size:var(--font-size-2xl);flex-shrink:0;line-height:1}.overview-stat-content{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.overview-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.overview-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.overview-stat-detail{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.overview-section{gap:var(--space-4);flex-direction:column;display:flex}.overview-section .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.activity-timeline{flex-direction:column;gap:0;display:flex}.timeline-item{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);display:flex}.timeline-item:last-child{border-bottom:none}.activity-icon{font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.timeline-content{flex:1;min-width:0}.timeline-description{font-size:var(--font-size-sm);color:var(--color-text-primary);margin:0 0 var(--space-1);line-height:var(--line-height-normal)}.timeline-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.timeline-meta-course{color:var(--color-text-secondary)}.quick-links-list{flex-direction:column;gap:0;display:flex}.quick-link-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:var(--space-2);display:flex}.quick-link-item:last-child{margin-bottom:0}.quick-link-item:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.quick-link-type{border-radius:var(--radius-sm);width:32px;height:32px;font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.quick-link-type--assignment{background:var(--color-primary-light)}.quick-link-type--grade{background:var(--color-success-light)}.quick-link-type--message{background:var(--color-info-light)}.quick-link-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.quick-link-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.quick-link-course{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.quick-link-due{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.quick-link-status{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;flex-shrink:0;display:inline-flex}.quick-link-status--upcoming{background:var(--color-info-light);color:#1e40af}.quick-link-status--due-today{background:var(--color-warning-light);color:var(--color-warning-dark)}.quick-link-status--overdue{background:var(--color-error-light);color:var(--color-error-dark)}.student-progress{gap:var(--space-6);flex-direction:column;display:flex}.student-progress-overall{align-items:center;gap:var(--space-6);padding:var(--space-5);background:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex}.student-progress-avg{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);color:var(--color-primary)}.student-progress-letter{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.student-progress-section{gap:var(--space-4);flex-direction:column;display:flex}.student-progress-categories{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.student-progress-cat{gap:var(--space-2);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);flex-direction:column;display:flex}.student-progress-cat-bar-track{background:var(--color-background-tertiary);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.student-progress-cat-bar-fill{border-radius:var(--radius-full);background:var(--gradient-primary);height:100%;transition:width var(--transition-normal)}.student-progress-cat-name{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.student-progress-cat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.progress-dist{gap:var(--space-3);flex-direction:column;display:flex}.progress-dist-bar{border-radius:var(--radius-full);background:var(--color-background-tertiary);height:10px;display:flex;overflow:hidden}.progress-dist-segment{height:100%;transition:width var(--transition-normal)}.progress-dist--on-track{background:var(--color-success)}.progress-dist--ahead{background:var(--color-primary)}.progress-dist--behind{background:var(--color-warning)}.progress-dist-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.progress-dist-legend{gap:var(--space-4);flex-wrap:wrap;display:flex}.progress-dist-legend-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.progress-dist-legend-item:before{content:"";border-radius:var(--radius-full);width:10px;height:10px;display:inline-block}.progress-dist-legend-item.on-track:before{background:var(--color-success)}.progress-dist-legend-item.ahead:before{background:var(--color-primary)}.progress-dist-legend-item.behind:before{background:var(--color-warning)}.course-progress-card{padding:var(--space-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.course-progress-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.course-progress-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.course-progress-overall{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.progress-bar-container{align-items:center;gap:var(--space-3);display:flex}.progress-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);min-width:100px}.progress-bar{background:var(--color-background-tertiary);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:var(--gradient-primary);height:100%;transition:width var(--transition-normal)}.progress-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:right;min-width:40px}.modules-section,.learning-path-section,.skills-section{margin-top:var(--space-4)}.modules-title,.section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3)}.modules-list{gap:var(--space-2);flex-direction:column;display:flex}.module-item{gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border-light);flex-direction:column;display:flex}.module-item.module-completed{border-color:var(--color-success-light);background:#2e7d3208}.module-header{align-items:center;gap:var(--space-2);display:flex}.module-status-icon{font-size:var(--font-size-sm)}.module-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1}.module-lessons{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.skill-item{padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.skill-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.skill-level{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:1px var(--space-2);border-radius:var(--radius-full)}.skill-mastered .skill-level{background:var(--color-success-light);color:var(--color-success-dark)}.skill-advanced .skill-level{background:var(--color-primary-light);color:var(--color-primary)}.skill-intermediate .skill-level{background:var(--color-warning-light);color:var(--color-warning-dark)}.skill-beginner .skill-level{background:var(--color-background-tertiary);color:var(--color-text-secondary)}.student-attendance{gap:var(--space-6);flex-direction:column;display:flex}.attendance-summary-stats{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.attendance-stat-card{align-items:center;gap:var(--space-1);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:box-shadow var(--transition-fast);flex-direction:column;display:flex}.attendance-stat-card:hover{box-shadow:var(--shadow-sm)}.attendance-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.attendance-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.attendance-stat-present{color:var(--color-success)}.attendance-stat-absent{color:var(--color-error)}.attendance-stat-tardy{color:var(--color-warning)}.attendance-trend-section{gap:var(--space-3);flex-direction:column;display:flex}.attendance-trend-chart{padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.trend-chart-bars{align-items:flex-end;gap:var(--space-2);height:160px;padding-top:var(--space-4);display:flex}.trend-bar-column{align-items:center;gap:var(--space-1);flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.trend-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--gradient-primary);width:100%;max-width:40px;transition:height var(--transition-normal);min-height:4px}.trend-bar.trend-good{background:var(--gradient-primary)}.trend-bar.trend-warning{background:linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-light) 100%)}.trend-bar.trend-danger{background:linear-gradient(135deg, var(--color-error) 0%, var(--color-error-light) 100%)}.trend-bar-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.attendance-calendar-section{gap:var(--space-3);flex-direction:column;display:flex}.attendance-calendar{padding:var(--space-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.calendar-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.calendar-month-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day-header{height:36px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;justify-content:center;align-items:center;display:flex}.calendar-day{border-radius:var(--radius-sm);height:40px;font-size:var(--font-size-sm);color:var(--color-text-primary);justify-content:center;align-items:center;display:flex;position:relative}.calendar-day--empty{background:0 0}.calendar-day-number{z-index:1}.calendar-day.attendance-present{background:var(--color-success-light)}.calendar-day.attendance-absent{background:var(--color-error-light)}.calendar-day.attendance-tardy{background:var(--color-warning-light)}.calendar-day.attendance-excused{background:var(--color-info-light)}.calendar-legend{gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex}.legend-dot{border-radius:var(--radius-full);width:10px;height:10px;display:inline-block}.legend-dot.attendance-present{background:var(--color-success)}.legend-dot.attendance-absent{background:var(--color-error)}.legend-dot.attendance-tardy{background:var(--color-warning)}.legend-dot.attendance-excused{background:var(--color-info)}.attendance-grid{gap:var(--space-2);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:repeat(5,1fr);display:grid}.attendance-header,.attendance-row{display:contents}.attendance-row-header{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;padding:var(--space-2)}.attendance-row-empty{padding:var(--space-8);text-align:center;color:var(--color-text-tertiary);grid-column:1/-1}.attendance-col-name{font-size:var(--font-size-sm);color:var(--color-text-primary)}.attendance-col-status{text-align:center}.attendance-col-notes{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.attendance-select{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-surface);cursor:pointer}.attendance-present{color:var(--color-success);font-weight:var(--font-weight-medium)}.attendance-absent{color:var(--color-error);font-weight:var(--font-weight-medium)}.attendance-tardy{color:var(--color-warning);font-weight:var(--font-weight-medium)}.attendance-excused{color:var(--color-info);font-weight:var(--font-weight-medium)}.attendance-content{gap:var(--space-6);grid-template-columns:1fr 300px;display:grid}.attendance-sidebar{gap:var(--space-4);flex-direction:column;display:flex}.attendance-stat{align-items:center;gap:var(--space-1);padding:var(--space-3);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);flex-direction:column;display:flex}.attendance-table{border-collapse:collapse;width:100%}.attendance-table th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;padding:var(--space-2) var(--space-3);text-align:left;border-bottom:2px solid var(--color-border)}.attendance-table td{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.attendance-table tr:hover{background:var(--color-surface-hover)}.student-notes{gap:var(--space-6);flex-direction:column;display:flex}.note-form{padding:var(--space-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.note-form .section-title{margin-bottom:var(--space-4)}.note-form-fields{gap:var(--space-3);flex-direction:column;display:flex}.note-form-options{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.note-form-options .form-group{min-width:120px}.note-form-options .btn{flex-shrink:0}.note-edit-form{gap:var(--space-3);flex-direction:column;display:flex}.note-edit-form .note-form-options{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.notes-filter{gap:var(--space-3);flex-direction:column;display:flex}.notes-filter .section-title{margin:0}.notes-list{gap:var(--space-3);flex-direction:column;display:flex}.note-item{padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);border-left:4px solid var(--color-border);transition:box-shadow var(--transition-fast)}.note-item:hover{box-shadow:var(--shadow-sm)}.note-item--academic{border-left-color:var(--color-primary)}.note-item--behavioral{border-left-color:var(--color-warning)}.note-item--personal{border-left-color:var(--color-info)}.note-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.note-category-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-background-tertiary);color:var(--color-text-secondary);display:inline-flex}.note-privacy-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.note-privacy-badge.private{background:var(--color-warning-light);color:var(--color-warning-dark)}.note-privacy-badge.shared{background:var(--color-success-light);color:var(--color-success-dark)}.note-content{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-relaxed);margin:0 0 var(--space-3);white-space:pre-wrap}.note-footer{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.note-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.note-actions{gap:var(--space-1);display:flex}.student-interventions{gap:var(--space-6);flex-direction:column;display:flex}.interventions-header .section-title{margin:0}.intervention-form{padding:var(--space-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-4);flex-direction:column;display:flex}.intervention-item{padding:var(--space-5);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-3);transition:box-shadow var(--transition-fast);flex-direction:column;display:flex}.intervention-item:hover{box-shadow:var(--shadow-sm)}.intervention-item--academic{border-left:4px solid var(--color-primary)}.intervention-item--behavioral{border-left:4px solid var(--color-warning)}.intervention-item--attendance{border-left:4px solid var(--color-secondary)}.intervention-item--personal,.intervention-item--school{border-left:4px solid var(--color-info)}.intervention-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.intervention-type--academic{background:var(--color-primary-light);color:var(--color-primary)}.intervention-type--behavioral{background:var(--color-warning-light);color:var(--color-warning-dark)}.intervention-type--attendance{background:var(--color-secondary-light);color:var(--color-secondary)}.intervention-type--personal{background:var(--color-info-light);color:#1e40af}.intervention-type--other{background:var(--color-background-tertiary);color:var(--color-text-secondary)}.intervention-status-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.intervention-open{background:var(--color-info-light);color:#1e40af}.intervention-in-progress{background:var(--color-warning-light);color:var(--color-warning-dark)}.intervention-resolved{background:var(--color-success-light);color:var(--color-success-dark)}.intervention-escalated{background:var(--color-error-light);color:var(--color-error-dark)}.intervention-escalation{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.intervention-description{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-relaxed);margin:0}.intervention-section{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.intervention-section strong{color:var(--color-text-primary)}.intervention-meta{align-items:center;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.intervention-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}.intervention-actions{gap:var(--space-2);display:flex}.intervention-followup{color:var(--color-warning);font-weight:var(--font-weight-medium)}.intervention-summary{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-sm)}.intervention-stat{align-items:center;gap:var(--space-1);padding:var(--space-3);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);flex-direction:column;display:flex}.intervention-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.intervention-stat--pending{color:var(--color-warning)}.intervention-stat--effective{color:var(--color-success)}.intervention-stat--ineffective{color:var(--color-error)}.student-grades{gap:var(--space-6);flex-direction:column;display:flex}.grades-summary{gap:var(--space-3);flex-direction:column;display:flex}.grades-alerts{gap:var(--space-3);flex-wrap:wrap;display:flex}.grade-alert{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.grade-alert--danger{background:var(--color-error-light);color:var(--color-error-dark)}.grade-alert--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.grades-breakdown,.grades-trend,.grades-assignments{gap:var(--space-4);flex-direction:column;display:flex}.breakdown-list{gap:var(--space-3);flex-direction:column;display:flex}.breakdown-item{padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.breakdown-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.breakdown-category{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.breakdown-weight{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.breakdown-details{align-items:center;gap:var(--space-4);margin-bottom:var(--space-2);display:flex}.breakdown-average{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.breakdown-letter{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.breakdown-count{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.grade-trend-chart{padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.assignments-table-container{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.assignments-table{border-collapse:collapse;width:100%}.assignments-table th{padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:left;background:var(--color-background-secondary);border-bottom:2px solid var(--color-border);white-space:nowrap}.assignments-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.assignments-table tr:hover{background:var(--color-surface-hover)}.assignments-table tr.row-missing{background:var(--color-error-light)}.assignments-table tr.row-late{background:var(--color-warning-light)}.assignment-name{font-weight:var(--font-weight-medium)}.assignment-grade{font-weight:var(--font-weight-bold)}.submission-status{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;align-items:center;display:inline-flex}.submission-status--submitted{background:var(--color-info-light);color:#1e40af}.submission-status--graded{background:var(--color-success-light);color:var(--color-success-dark)}.submission-status--late{background:var(--color-warning-light);color:var(--color-warning-dark)}.submission-status--missing{background:var(--color-error-light);color:var(--color-error-dark)}.submission-list{gap:var(--space-2);flex-direction:column;display:flex}.submission-list-header{padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);justify-content:space-between;align-items:center;display:flex}.submission-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.submission-row:hover{background:var(--color-surface-hover)}.submission-body{flex:1;min-width:0}.submission-text-content{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal)}.submission-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.submission-attachments{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.submissions-summary{gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.submissions-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.submissions-tab{gap:var(--space-1);border-bottom:2px solid var(--color-border);margin-bottom:var(--space-4);scrollbar-width:none;display:flex;overflow-x:auto}.submissions-tab::-webkit-scrollbar{display:none}.import-upload{align-items:center;gap:var(--space-3);padding:var(--space-8);border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-background-secondary);text-align:center;cursor:pointer;transition:all var(--transition-fast);flex-direction:column;display:flex}.import-upload:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.import-file-input{display:none}.import-preview{margin-top:var(--space-4)}.import-preview-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.import-preview-table{border-collapse:collapse;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow:hidden}.import-preview-table th,.import-preview-table td{padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-light)}.import-preview-table th{background:var(--color-background-secondary);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;font-size:var(--font-size-xs)}.import-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.import-format-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-2)}.import-error{padding:var(--space-3) var(--space-4);background:var(--color-error-light);color:var(--color-error-dark);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.form-textarea{width:100%;min-height:80px;padding:var(--space-3);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1);display:block}.form-group{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.form-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.form-select{padding:var(--space-2) var(--space-10) var(--space-2) var(--space-3);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);appearance:none;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.checkbox-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px;display:block}.modal-overlay-container{z-index:var(--z-modal-backdrop);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay{z-index:0;background:#00000080;position:absolute;inset:0}.modal-container{z-index:1;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-height:90vh;position:relative;overflow-y:auto}.modal-sm{max-width:480px}.modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.modal-body{padding:var(--space-5)}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex}@media (width<=1200px){.students-grid,.overview-stats-grid,.attendance-summary-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.students-grid{grid-template-columns:1fr}.students-header{gap:var(--space-3);flex-direction:column}.students-header-actions{width:100%}.filter-actions{justify-content:space-between;width:100%}.student-detail{padding:var(--space-4)}.student-detail-profile{align-items:flex-start;gap:var(--space-3);flex-direction:column}.student-detail-quick-stats{justify-content:flex-start;width:100%}.student-tab-content{padding:var(--space-4)}.overview-stats-grid,.attendance-summary-stats{grid-template-columns:1fr 1fr}.attendance-content{grid-template-columns:1fr}.student-card--list{gap:var(--space-2);flex-wrap:wrap}.student-card--list .student-card-courses{width:100%;max-width:100%}.student-card--list .student-card-stats{justify-content:flex-start;width:100%}.student-card--list .student-card-actions{justify-content:flex-end;width:100%}.students-list-header{display:none}.form-row{flex-direction:column}.note-form-options{flex-direction:column;align-items:stretch}.intervention-footer{flex-direction:column;align-items:flex-start}.bulk-actions-bar{gap:var(--space-2);text-align:center;flex-direction:column}.bulk-actions{flex-wrap:wrap;justify-content:center}}@media (width<=480px){.overview-stats-grid,.attendance-summary-stats{grid-template-columns:1fr}.student-detail-name{font-size:var(--font-size-xl)}.calendar-grid{gap:1px}.calendar-day{height:32px;font-size:var(--font-size-xs)}}.communication-page{padding:0 0 var(--space-8)}.communication-header{gap:var(--space-1);margin-bottom:var(--space-6);flex-direction:column;display:flex}.communication-header h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.communication-header p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.communication-content{min-height:400px}.message-tabs{gap:var(--space-1);border-bottom:2px solid var(--color-border);margin-bottom:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.message-tabs::-webkit-scrollbar{display:none}.message-tab{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:var(--space-2);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;display:flex}.message-tab:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.message-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.tab-icon{font-size:var(--font-size-base)}.tab-badge{min-width:18px;height:18px;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--color-error);color:var(--color-text-inverse);font-size:10px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;line-height:1;display:inline-flex}.messages-tab{gap:var(--space-4);flex-direction:column;display:flex}.messages-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.search-filter{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.search-filter .form-input{max-width:360px}.search-filter .form-select{min-width:140px}.search-filter .filter-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.message-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.message-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background var(--transition-fast);display:flex}.message-item:last-child{border-bottom:none}.message-item:hover{background:var(--color-surface-hover)}.message-item.message-unread{background:var(--color-primary-light);border-left:3px solid var(--color-primary);font-weight:var(--font-weight-medium)}.message-item.message-unread .message-subject{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.message-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:40px;height:40px;color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.message-content{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.message-top-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.message-author,.message-sender{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.message-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0}.message-subject{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-preview{font-size:var(--font-size-sm);color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;line-height:var(--line-height-normal);margin:0;overflow:hidden}.message-attachment-indicator{font-size:var(--font-size-base);margin-top:var(--space-1);flex-shrink:0}.message-body{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-relaxed);white-space:pre-wrap;margin-top:var(--space-2)}.message-meta{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.message-attachments{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.attachment-tag{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-background-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:inline-flex}.message-reply-area{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.reply-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.message-detail-view{gap:var(--space-5);flex-direction:column;display:flex}.detail-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.detail-actions{align-items:center;gap:var(--space-2);display:flex}.message-thread{gap:var(--space-4);flex-direction:column;display:flex}.thread-subject{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.compose-modal{z-index:var(--z-modal-backdrop);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.compose-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.compose-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.compose-body{padding:var(--space-5);gap:var(--space-4);flex-direction:column;max-height:60vh;display:flex;overflow-y:auto}.compose-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.footer-left{align-items:center;gap:var(--space-3);display:flex}.footer-right{align-items:center;gap:var(--space-2);display:flex}.rich-editor-toolbar{align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-background-secondary);border-bottom:none;display:flex}.toolbar-btn{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.toolbar-btn:hover{background:var(--color-background-tertiary);color:var(--color-text-primary)}.toolbar-divider{background:var(--color-border);width:1px;height:20px;margin:0 var(--space-1)}.rich-editor{border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none}.file-upload-area{position:relative}.file-input-hidden{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.file-upload-label{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.file-upload-label:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.upload-icon{font-size:var(--font-size-lg)}.attachment-list{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.attachment-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);display:flex}.attachment-name{font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.attachment-size{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0}.recipient-input-area{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:var(--input-height);background:var(--color-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-wrap:wrap;align-items:center;display:flex}.recipient-input-area:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.recipient-input-area .form-input{min-width:120px;box-shadow:none;padding:var(--space-1);border:none;flex:1}.recipient-input-area .form-input:focus{box-shadow:none;outline:none}.recipient-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.recipient-chip button{width:16px;height:16px;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-full);transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.recipient-chip button:hover{background:#01329726}.recipient-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:28px;height:28px;color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.recipient-dropdown{z-index:var(--z-dropdown);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:200px;margin-top:var(--space-1);position:absolute;top:100%;left:0;right:0;overflow-y:auto}.recipient-option{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition-fast);font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.recipient-option:hover{background:var(--color-surface-hover)}.discussions-tab{gap:var(--space-4);flex-direction:column;display:flex}.discussion-list{gap:var(--space-2);flex-direction:column;display:flex}.discussion-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:flex}.discussion-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.discussion-item-left{align-items:flex-start;gap:var(--space-3);flex:1;min-width:0;display:flex}.discussion-item-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:40px;height:40px;color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.discussion-item-info{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.discussion-item-title{align-items:center;gap:var(--space-2);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);flex-wrap:wrap;display:flex}.discussion-item-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.meta-divider{color:var(--color-text-tertiary);opacity:.5}.discussion-item-right{align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.discussion-stat{flex-direction:column;align-items:center;gap:0;min-width:50px;display:flex}.discussion-stat .stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.discussion-stat .stat-label,.discussion-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.discussion-stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.discussion-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.discussion-pin{font-size:var(--font-size-sm);flex-shrink:0}.discussion-thread-view{gap:var(--space-5);flex-direction:column;display:flex}.thread-header{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.thread-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-2)}.thread-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.discussion-posts{gap:var(--space-4);flex-direction:column;display:flex}.discussion-post{gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);display:flex}.discussion-reply{margin-top:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.discussion-reply .reply-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.post-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-2);display:flex}.vote-buttons{align-items:center;gap:var(--space-1);display:flex}.vote-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-tertiary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);display:flex}.vote-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.vote-btn.active{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.discussion-stats{gap:var(--space-4);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);display:flex}.discussion-stat-row{align-items:center;gap:var(--space-3);display:flex}.discussion-settings{gap:var(--space-3);flex-direction:column;display:flex}.discussion-settings .form-checkbox{align-items:flex-start;gap:var(--space-3);display:flex}.discussion-settings .form-checkbox div{flex-direction:column;gap:2px;display:flex}.new-post-area{gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.new-post-area .reply-actions{justify-content:flex-end;display:flex}.announcements-tab{gap:var(--space-4);flex-direction:column;display:flex}.announcement-list{gap:var(--space-3);flex-direction:column;display:flex}.announcement-item{align-items:flex-start;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:box-shadow var(--transition-fast);display:flex}.announcement-item:hover{box-shadow:var(--shadow-sm)}.announcement-item-left{flex:1;min-width:0}.announcement-item-info{gap:var(--space-2);flex-direction:column;display:flex}.announcement-item-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.announcement-item-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.announcement-item-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.announcement-item-right{align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex}.announcement-item-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.notifications-tab,.notification-settings{gap:var(--space-6);flex-direction:column;display:flex}.notification-section{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-4);flex-direction:column;display:flex}.notification-section h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.section-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.notification-header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.notification-prefs-table{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.prefs-header{gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:2px solid var(--color-border);grid-template-columns:1fr repeat(3,80px);display:grid}.pref-category{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);align-items:center;gap:var(--space-2);display:flex}.category-icon{font-size:var(--font-size-base)}.pref-channel{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;text-align:center;letter-spacing:.04em}.notification-category{gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);grid-template-columns:1fr repeat(3,80px);align-items:center;display:grid}.notification-category:last-child{border-bottom:none}.notification-category:hover{background:var(--color-surface-hover)}.notification-toggle{justify-content:center;align-items:center;display:flex}.quiet-hours-time{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.time-separator{font-size:var(--font-size-sm);color:var(--color-text-tertiary);padding-bottom:var(--space-2)}.toggle-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.toggle-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.toggle-btn--on{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.toggle-btn--on:hover{background:var(--color-primary-hover);color:var(--color-text-inverse);border-color:var(--color-primary-hover)}.toggle-btn--off{background:var(--color-surface);color:var(--color-text-tertiary);border-color:var(--color-border)}.toggle-btn--off:hover{background:var(--color-background-secondary);color:var(--color-text-secondary)}.badge{padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap;align-items:center;display:inline-flex}.badge-sm{padding:1px var(--space-2);font-size:10px}.badge-md{padding:2px var(--space-2);font-size:var(--font-size-xs)}.badge-default{background:var(--color-background-tertiary);color:var(--color-text-secondary)}.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}.badge-secondary{background:var(--color-secondary-light);color:var(--color-secondary)}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-error{background:var(--color-error-light);color:var(--color-error)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse)}.btn-success:hover:not(:disabled){background-color:var(--color-success-dark)}.empty-state{padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-3);opacity:.6;font-size:48px}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-6);max-width:400px}.modal-overlay{z-index:var(--z-modal-backdrop);padding:var(--space-4);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{z-index:var(--z-modal);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-height:90vh;position:relative;overflow-y:auto}.modal-lg{max-width:680px}.modal-close{width:32px;height:32px;color:var(--color-text-tertiary);font-size:var(--font-size-xl);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}@media (width<=768px){.communication-header{gap:var(--space-2)}.communication-header h1{font-size:var(--font-size-xl)}.message-tabs{gap:0}.message-tab{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.messages-toolbar{gap:var(--space-3);flex-direction:column;align-items:stretch}.search-filter{flex-direction:column;align-items:stretch}.search-filter .form-input{max-width:100%}.message-item{padding:var(--space-3)}.message-item.message-unread{border-left-width:2px}.discussion-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);flex-direction:column}.discussion-item-right{justify-content:flex-start;gap:var(--space-4);width:100%;padding-top:var(--space-2);border-top:1px solid var(--color-border-light)}.announcement-item{gap:var(--space-3);padding:var(--space-4);flex-direction:column}.announcement-item-right{align-items:flex-start;gap:var(--space-2);flex-flow:wrap;width:100%}.compose-footer{gap:var(--space-3);flex-direction:column}.footer-left,.footer-right{justify-content:center;width:100%}.detail-header{gap:var(--space-3);flex-direction:column;align-items:flex-start}.detail-actions{flex-wrap:wrap;width:100%}.discussion-post{gap:var(--space-2);flex-direction:column}.thread-meta{gap:var(--space-1)}.notification-category,.prefs-header{gap:var(--space-2);padding:var(--space-3);grid-template-columns:1fr repeat(3,60px)}.quiet-hours-time{flex-direction:column;align-items:stretch}.time-separator{text-align:center;padding:0}.recipient-dropdown{margin-top:var(--space-1);position:static}.recipient-input-area{position:relative}}@media (width<=480px){.message-tab .tab-icon{display:none}.message-avatar,.discussion-item-avatar{width:32px;height:32px;font-size:var(--font-size-xs)}.announcement-item{padding:var(--space-3)}.notification-category,.prefs-header{grid-template-columns:1fr repeat(3,48px)}}.analytics-page{background-color:var(--color-background-secondary);min-height:100vh;padding:var(--space-6)}.analytics-controls{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);background-color:var(--color-surface);padding:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}.date-range-selector{align-items:center;gap:var(--space-2);display:flex}.date-range-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.date-range-btn:hover{background-color:var(--color-background-secondary);border-color:var(--color-primary);color:var(--color-primary)}.date-range-btn--active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.date-range-btn--active:hover{background-color:var(--color-primary);opacity:.9}.custom-date-range{align-items:center;gap:var(--space-2);margin-left:var(--space-3);display:flex}.custom-date-range input[type=date]{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-fast);outline:none}.custom-date-range input[type=date]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0132971a}.analytics-overview{margin-bottom:var(--space-6)}.analytics-metrics{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.analytics-metrics .metric-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.analytics-metrics .metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.bar-chart{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.bar-chart-body{justify-content:space-around;align-items:flex-end;gap:var(--space-3);height:280px;padding-top:var(--space-4);border-bottom:1px solid var(--color-border);display:flex;position:relative}.bar-column{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;max-width:80px;display:flex}.bar-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;white-space:nowrap;margin-top:var(--space-2)}.bar-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.bar{background:linear-gradient(180deg, var(--color-primary), #013297b3);border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:100%;min-height:4px;transition:height var(--transition-normal), opacity var(--transition-fast)}.bar:hover{opacity:.85}.line-chart{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);position:relative;overflow:hidden}.line-chart-labels{padding-top:var(--space-3);border-top:1px solid var(--color-border);justify-content:space-between;display:flex}.line-chart-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center}.line-point{background-color:var(--color-primary);border:2px solid var(--color-surface);border-radius:var(--radius-full);width:10px;height:10px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);z-index:2;position:absolute;transform:translate(-50%,-50%)}.line-point:hover{transform:translate(-50%,-50%)scale(1.3)}.distribution-chart{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.distribution-bar-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.distribution-bar-row:last-child{margin-bottom:0}.distribution-bar-track{background-color:var(--color-background-secondary);border-radius:var(--radius-md);flex:1;height:28px;overflow:hidden}.distribution-bar-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));border-radius:var(--radius-md);height:100%;transition:width var(--transition-normal);padding-right:var(--space-2);justify-content:flex-end;align-items:center;display:flex}.distribution-label{min-width:100px;font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.distribution-count{font-size:var(--font-size-xs);color:#fff;font-weight:var(--font-weight-semibold)}.heatmap{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow-x:auto}.heatmap-header{grid-template-columns:60px repeat(24,1fr);gap:2px;margin-bottom:2px;display:grid}.heatmap-corner{background-color:#0000}.heatmap-row{grid-template-columns:60px repeat(24,1fr);gap:2px;margin-bottom:2px;display:grid}.heatmap-day-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);padding-right:var(--space-2);align-items:center;display:flex}.heatmap-hour-label{color:var(--color-text-tertiary);padding-bottom:var(--space-1);justify-content:center;align-items:center;font-size:10px;display:flex}.heatmap-cell{aspect-ratio:1;border-radius:var(--radius-xs);min-height:24px;transition:transform var(--transition-fast), box-shadow var(--transition-fast);cursor:pointer;position:relative}.heatmap-cell:hover{box-shadow:var(--shadow-md);z-index:2;transform:scale(1.15)}.heatmap-cell--empty{background-color:var(--color-background-secondary)}.heatmap-cell--low{background-color:#01329726}.heatmap-cell--medium-low{background-color:#0132974d}.heatmap-cell--medium{background-color:#01329780}.heatmap-cell--medium-high{background-color:#013297b3}.heatmap-cell--high{background-color:var(--color-primary)}.heatmap-legend{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);display:flex}.heatmap-legend-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.trend-chart-bars{justify-content:space-around;align-items:flex-end;gap:var(--space-3);height:200px;padding-top:var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.trend-bar-column{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;max-width:60px;display:flex}.trend-bar-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;margin-top:var(--space-2)}.trend-bar-value{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.trend-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:100%;min-height:4px;transition:height var(--transition-normal)}.trend-good{background:linear-gradient(180deg, var(--color-success), #22c55eb3)}.trend-warning{background:linear-gradient(180deg, var(--color-warning), #eab308b3)}.trend-danger{background:linear-gradient(180deg, var(--color-error), #ef4444b3)}.analytics-courses{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.analytics-courses .course-list{gap:var(--space-3);flex-direction:column;display:flex}.analytics-courses .course-item{padding:var(--space-4);background-color:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.analytics-courses .course-item:hover{border-color:var(--color-primary)}.analytics-classes{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.analytics-classes .class-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.analytics-classes .class-card{background-color:var(--color-background-secondary);border-radius:var(--radius-md);padding:var(--space-4);border:1px solid var(--color-border-light);transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.analytics-classes .class-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.analytics-students{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.analytics-students .student-table{border-collapse:separate;border-spacing:0;width:100%}.analytics-students .student-table th{background-color:var(--color-background-secondary);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:2px solid var(--color-border)}.analytics-students .student-table th:first-child{border-radius:var(--radius-md) 0 0 0}.analytics-students .student-table th:last-child{border-radius:0 var(--radius-md) 0 0}.analytics-students .student-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.analytics-students .student-table tbody tr:hover{background-color:var(--color-background-secondary)}.analytics-engagement,.analytics-assessments{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.analytics-reports{margin-bottom:var(--space-6)}.report-builder{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-4)}.report-list{gap:var(--space-3);flex-direction:column;display:flex}.report-item{padding:var(--space-4) var(--space-5);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:transform var(--transition-fast), box-shadow var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.report-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.report-item-info{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.report-item-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.report-item-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.report-item-meta{align-items:center;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.report-item-formats{gap:var(--space-2);display:flex}.report-item-formats span{padding:var(--space-1) var(--space-2);background-color:var(--color-background-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase}.report-actions{gap:var(--space-2);margin-left:var(--space-4);display:flex}.export-options{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.export-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.export-format-section{margin-bottom:var(--space-5)}.export-format-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-3);display:block}.export-format-options{gap:var(--space-3);flex-wrap:wrap;display:flex}.export-format-option{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.export-format-option:hover{border-color:var(--color-primary);background-color:#0132970d}.export-format-option--active{border-color:var(--color-primary);color:var(--color-primary);font-weight:var(--font-weight-semibold);background-color:#01329714}.export-date-section{margin-bottom:var(--space-5)}.export-date-inputs{align-items:center;gap:var(--space-3);display:flex}.export-date-inputs input[type=date]{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-fast);outline:none}.export-date-inputs input[type=date]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0132971a}.export-date-separator{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.export-student-section{margin-bottom:var(--space-5)}.export-student-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.export-student-list{gap:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);max-height:240px;padding:var(--space-2);flex-direction:column;display:flex;overflow-y:auto}.export-student-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);display:flex}.export-student-item:hover{background-color:var(--color-background-secondary)}.export-columns-section{margin-bottom:var(--space-5)}.export-columns-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.export-column-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast);display:flex}.export-column-item:hover{background-color:var(--color-background-secondary)}.satisfaction-list{gap:var(--space-4);flex-direction:column;display:flex}.satisfaction-item{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast)}.satisfaction-item:hover{box-shadow:var(--shadow-md)}.satisfaction-bar{gap:var(--space-2);flex-direction:column;display:flex}.satisfaction-bar-track{background-color:var(--color-background-secondary);border-radius:var(--radius-full);width:100%;height:12px;overflow:hidden}.satisfaction-bar-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal);background:linear-gradient(90deg, var(--color-success), #22c55ecc)}.satisfaction-bar-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.satisfaction-category{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.satisfaction-responses{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.feature-usage-list{gap:var(--space-3);flex-direction:column;display:flex}.feature-usage-item{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast)}.feature-usage-item:hover{box-shadow:var(--shadow-md)}.feature-usage-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.feature-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.feature-usage-bar-container{width:100%}.feature-usage-bar{background-color:var(--color-background-secondary);border-radius:var(--radius-full);width:100%;height:10px;overflow:hidden}.feature-usage-fill{background:linear-gradient(90deg, var(--color-secondary), #e55a00cc);border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal)}.feature-usage-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}.feature-usage-percent{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.feature-users{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.stats-overview{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stats-overview .stat-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);text-align:center;transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.stats-overview .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stats-distribution{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.stats-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-4)}.revenue-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.revenue-stat{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);text-align:center;transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.revenue-stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.revenue-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.revenue-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.engagement-stats-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.engagement-stat{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);text-align:center;transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.engagement-stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.engagement-stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.5px}.engagement-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.analytics-summary-section{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.summary-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.summary-item{gap:var(--space-2);padding:var(--space-4);background-color:var(--color-background-secondary);border-radius:var(--radius-md);border-left:4px solid var(--color-primary);flex-direction:column;display:flex}.summary-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.summary-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}@media (width<=1024px){.analytics-page{padding:var(--space-4)}.heatmap-header,.heatmap-row{grid-template-columns:50px repeat(24,24px)}.heatmap-cell{min-height:20px}}@media (width<=768px){.analytics-page{padding:var(--space-3)}.analytics-controls{flex-direction:column;align-items:stretch}.date-range-selector{flex-wrap:wrap}.custom-date-range{flex-wrap:wrap;margin-left:0}.analytics-metrics{grid-template-columns:1fr}.bar-chart-body{height:200px}.trend-chart-bars{height:150px}.report-item{align-items:flex-start;gap:var(--space-3);flex-direction:column}.report-actions{width:100%;margin-left:0}.export-date-inputs{flex-direction:column;align-items:stretch}.export-format-options{flex-direction:column}.heatmap-header,.heatmap-row{grid-template-columns:40px repeat(24,20px)}.heatmap-cell{min-height:16px}.summary-grid{grid-template-columns:1fr}.revenue-grid,.engagement-stats-grid,.stats-overview{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.analytics-page{padding:var(--space-2)}.bar-chart,.line-chart,.distribution-chart,.heatmap,.bar-chart-body{padding:var(--space-3)}.bar-column,.trend-bar-column{max-width:40px}.revenue-grid,.engagement-stats-grid,.stats-overview,.export-columns-list{grid-template-columns:1fr}.heatmap-header,.heatmap-row{grid-template-columns:30px repeat(24,16px)}.heatmap-cell{min-height:12px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.analytics-page .bar-column,.analytics-page .distribution-bar-row,.analytics-page .summary-item{animation:.4s ease-out both fadeInUp}.analytics-page .bar-column:first-child,.analytics-page .distribution-bar-row:first-child,.analytics-page .summary-item:first-child{animation-delay:50ms}.analytics-page .bar-column:nth-child(2),.analytics-page .distribution-bar-row:nth-child(2),.analytics-page .summary-item:nth-child(2){animation-delay:.1s}.analytics-page .bar-column:nth-child(3),.analytics-page .distribution-bar-row:nth-child(3),.analytics-page .summary-item:nth-child(3){animation-delay:.15s}.analytics-page .bar-column:nth-child(4),.analytics-page .distribution-bar-row:nth-child(4),.analytics-page .summary-item:nth-child(4){animation-delay:.2s}.analytics-page .bar-column:nth-child(5),.analytics-page .distribution-bar-row:nth-child(5),.analytics-page .summary-item:nth-child(5){animation-delay:.25s}.analytics-page .bar-column:nth-child(6),.analytics-page .distribution-bar-row:nth-child(6),.analytics-page .summary-item:nth-child(6){animation-delay:.3s}.analytics-page .bar-column:nth-child(7),.analytics-page .distribution-bar-row:nth-child(7),.analytics-page .summary-item:nth-child(7){animation-delay:.35s}.analytics-page ::-webkit-scrollbar{width:8px;height:8px}.analytics-page ::-webkit-scrollbar-track{background-color:var(--color-background-secondary);border-radius:var(--radius-full)}.analytics-page ::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-full)}.analytics-page ::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-tertiary)}.ai-tools-page{background-color:var(--color-background-secondary);min-height:100vh;padding:var(--space-6)}.ai-tool-grid{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.ai-tool-card{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);border:2px solid var(--color-border-light);cursor:pointer;transition:all var(--transition-normal);gap:var(--space-3);flex-direction:column;display:flex;position:relative;overflow:hidden}.ai-tool-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary);transform:translateY(-4px)}.ai-tool-active{border-color:var(--color-primary);box-shadow:var(--shadow-md), 0 0 0 3px #0132971a}.ai-tool-active:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));height:4px;position:absolute;top:0;left:0;right:0}.ai-tool-icon{border-radius:var(--radius-lg);width:56px;height:56px;font-size:var(--font-size-2xl);color:var(--color-primary);background:linear-gradient(135deg,#0132971a,#e55a001a);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-tool-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.3}.ai-tool-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.ai-tool-content{background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-border-light);padding:var(--space-6);margin-bottom:var(--space-6)}.ai-tool-panel{gap:var(--space-5);flex-direction:column;display:flex}.ai-tool-section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-border-light)}.ai-tool-input{width:100%;min-height:120px;padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background-secondary);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;font-family:inherit;line-height:1.6}.ai-tool-input::placeholder{color:var(--color-text-tertiary)}.ai-tool-input:focus{border-color:var(--color-primary);background-color:var(--color-surface);box-shadow:0 0 0 4px #0132971a}.ai-tool-output{background-color:var(--color-background-secondary);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border-light);min-height:200px}.ai-output-loading{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-10);color:var(--color-text-secondary);flex-direction:column;display:flex}.ai-output-loading:before{content:"";border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:40px;height:40px;animation:.8s linear infinite spin}.ai-output-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-10);text-align:center;flex-direction:column;display:flex}.ai-output-empty-icon{font-size:var(--font-size-4xl);opacity:.4}.ai-output-error{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);background-color:#ef444414;border:1px solid #ef444433;display:flex}.ai-output-content{gap:var(--space-5);flex-direction:column;display:flex}.ai-output-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.ai-output-overview{font-size:var(--font-size-base);color:var(--color-text-secondary);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);border-left:4px solid var(--color-primary);line-height:1.7}.ai-output-section{gap:var(--space-3);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border-light);flex-direction:column;display:flex}.ai-output-actions{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}.ai-output-edit{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);display:flex}.ai-output-edit:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:#0132970d}.ai-content-body{gap:var(--space-4);font-size:var(--font-size-base);color:var(--color-text-primary);flex-direction:column;line-height:1.7;display:flex}.ai-content-h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-top:var(--space-4);margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-light)}.ai-content-list-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.ai-content-list-item:before{content:"•";color:var(--color-primary);font-weight:var(--font-weight-bold);flex-shrink:0}.ai-checkbox-group{gap:var(--space-3);flex-direction:column;display:flex}.ai-checkbox-label{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.ai-checkbox-label:hover{border-color:var(--color-primary);background-color:#01329708}.ai-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.ai-edit-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.ai-generate-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:linear-gradient(135deg, var(--color-primary), #013297e6);color:#fff;border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);border:none;display:inline-flex}.ai-generate-btn:hover{box-shadow:var(--shadow-md);background:linear-gradient(135deg, #013297f2, var(--color-primary));transform:translateY(-2px)}.ai-generate-btn:active{transform:translateY(0)}.ai-generating{opacity:.7;pointer-events:none;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.ai-lesson-duration{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);background-color:#01329714;display:inline-flex}.ai-lesson-section{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);overflow:hidden}.ai-lesson-section-header{padding:var(--space-4) var(--space-5);background-color:var(--color-background-secondary);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.ai-lesson-section-body{padding:var(--space-5);font-size:var(--font-size-base);color:var(--color-text-primary);line-height:1.7}.ai-objective-list{gap:var(--space-3);flex-direction:column;display:flex}.ai-objective-list li{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background-color:var(--color-background-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.6;display:flex}.ai-objective-list li:before{content:"✓";color:var(--color-success);font-weight:var(--font-weight-bold);flex-shrink:0;margin-top:1px}.ai-question-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border-light);margin-bottom:var(--space-4);transition:box-shadow var(--transition-fast)}.ai-question-card:hover{box-shadow:var(--shadow-md)}.ai-question-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ai-question-number{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-primary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background-color:#01329714}.ai-question-type-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:#e55a001a}.ai-question-text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-4);line-height:1.6}.ai-question-options{gap:var(--space-2);flex-direction:column;display:flex}.ai-question-option{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);transition:all var(--transition-fast);cursor:default;display:flex}.ai-question-option:hover{border-color:var(--color-primary);background-color:#0132970d}.ai-question-option--correct{border-color:var(--color-success);color:var(--color-success);background-color:#22c55e14}.ai-question-answer{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-3);background-color:#22c55e0d;border:1px solid #22c55e33;display:flex}.ai-question-answer:before{content:"Answer:";font-weight:var(--font-weight-bold);color:var(--color-success);flex-shrink:0}.ai-question-explanation{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);background-color:#0132970d;border:1px solid #01329726;line-height:1.6;display:flex}.ai-question-explanation:before{content:"Explanation:";font-weight:var(--font-weight-bold);color:var(--color-primary);flex-shrink:0}.ai-question-edit{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);display:flex}.ai-history{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.ai-history-list{gap:var(--space-3);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.ai-history-item{gap:var(--space-2);padding:var(--space-4);background-color:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;display:flex}.ai-history-item:hover{border-color:var(--color-primary);background-color:#0132970d}.ai-history-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.ai-history-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.ai-history-preview{font-size:var(--font-size-xs);color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.ai-feedback-score{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);margin-bottom:var(--space-5);background:linear-gradient(135deg,#0132970d,#e55a000d);display:flex}.ai-feedback-score-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.ai-feedback-score-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-primary)}.ai-feedback-score-max{font-size:var(--font-size-lg);color:var(--color-text-tertiary);font-weight:var(--font-weight-normal)}.ai-feedback-list{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.ai-feedback-list--strengths li:before{content:"✓";color:var(--color-success);font-weight:var(--font-weight-bold)}.ai-feedback-list--improvements li:before{content:"!";color:var(--color-warning);font-weight:var(--font-weight-bold)}.ai-feedback-list--suggestions li:before{content:"→";color:var(--color-info);font-weight:var(--font-weight-bold)}.ai-feedback-list li{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-background-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.6;display:flex}.ai-discussion-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border-light);margin-bottom:var(--space-4);transition:box-shadow var(--transition-fast)}.ai-discussion-card:hover{box-shadow:var(--shadow-md)}.ai-discussion-number{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);margin-right:var(--space-3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ai-discussion-question{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4);line-height:1.6}.ai-discussion-body{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-4);background-color:var(--color-background-secondary);border-radius:var(--radius-md);line-height:1.7}.ai-discussion-followups{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.ai-discussion-followups button{padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.ai-discussion-followups button:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:#0132970d}.ai-predictions-list{gap:var(--space-4);flex-direction:column;display:flex}.ai-trend-item{padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.ai-trend-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ai-trends-list{gap:var(--space-3);flex-direction:column;display:flex}.ai-trend-arrow{font-size:var(--font-size-lg);margin-right:var(--space-2)}.ai-trend-arrow--up{color:var(--color-success)}.ai-trend-arrow--down{color:var(--color-error)}.ai-trend-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ai-trend-value--up{color:var(--color-success)}.ai-trend-value--down{color:var(--color-error)}.ai-recommendations-list{gap:var(--space-3);flex-direction:column;display:flex}.ai-recommendations-list li{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border-light);border-left:4px solid var(--color-primary);font-size:var(--font-size-sm);color:var(--color-text-primary);transition:box-shadow var(--transition-fast);line-height:1.6;display:flex}.ai-recommendations-list li:hover{box-shadow:var(--shadow-sm)}.ai-tutor-session{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.ai-tutor-session-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-light);display:flex}.ai-tutor-session-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));color:#fff;width:48px;height:48px;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-tutor-session-info{gap:var(--space-1);flex-direction:column;display:flex}.ai-tutor-session-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.ai-tutor-session-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.ai-tutor-session-summary{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.7}.ai-tutor-session-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.ai-tutor-actions{gap:var(--space-2);display:flex}@media (width<=1024px){.ai-tools-page{padding:var(--space-4)}.ai-tool-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}@media (width<=768px){.ai-tools-page{padding:var(--space-3)}.ai-tool-grid{gap:var(--space-3);grid-template-columns:1fr}.ai-tool-card{padding:var(--space-5)}.ai-tool-content,.ai-tool-output{padding:var(--space-4)}.ai-question-header{flex-direction:column;align-items:flex-start}.ai-feedback-score{text-align:center;flex-direction:column}.ai-discussion-followups{flex-direction:column}.ai-discussion-followups button{text-align:left;width:100%}.ai-output-actions{flex-direction:column}.ai-output-actions button,.ai-output-edit{justify-content:center;width:100%}.ai-edit-actions{flex-direction:column}.ai-edit-actions button,.ai-generate-btn{justify-content:center;width:100%}.ai-tutor-session-header{text-align:center;flex-direction:column}.ai-tutor-session-actions{flex-direction:column}.ai-tutor-actions{width:100%}.ai-tutor-actions button{flex:1}}@media (width<=480px){.ai-tools-page{padding:var(--space-2)}.ai-tool-card{padding:var(--space-4)}.ai-tool-icon{width:44px;height:44px;font-size:var(--font-size-xl)}.ai-tool-title{font-size:var(--font-size-base)}.ai-question-card{padding:var(--space-4)}.ai-question-option{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.ai-discussion-card{padding:var(--space-4)}.ai-history-item{padding:var(--space-3)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ai-tool-card{animation:.3s ease-out both fadeIn}.ai-tool-card:first-child{animation-delay:50ms}.ai-tool-card:nth-child(2){animation-delay:.1s}.ai-tool-card:nth-child(3){animation-delay:.15s}.ai-tool-card:nth-child(4){animation-delay:.2s}.ai-tool-card:nth-child(5){animation-delay:.25s}.ai-tool-card:nth-child(6){animation-delay:.3s}.ai-tool-content{animation:.4s ease-out both slideUp}.ai-question-card{animation:.3s ease-out both fadeIn}.ai-question-card:first-child{animation-delay:50ms}.ai-question-card:nth-child(2){animation-delay:.1s}.ai-question-card:nth-child(3){animation-delay:.15s}.ai-question-card:nth-child(4){animation-delay:.2s}.ai-question-card:nth-child(5){animation-delay:.25s}.ai-tools-page ::-webkit-scrollbar{width:8px;height:8px}.ai-tools-page ::-webkit-scrollbar-track{background-color:var(--color-background-secondary);border-radius:var(--radius-full)}.ai-tools-page ::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-full)}.ai-tools-page ::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-tertiary)}.ai-tools-page :focus-visible,.ai-tool-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ai-generate-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.resources-content{gap:var(--space-6);flex-direction:column;display:flex}.media-library{gap:var(--space-4);flex-direction:column;display:flex}.media-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.media-toolbar-left,.media-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.media-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.media-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.media-list-header{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:40px 1fr 120px 120px 100px 80px;align-items:center;display:grid}.media-list-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);cursor:pointer;grid-template-columns:40px 1fr 120px 120px 100px 80px;align-items:center;display:grid}.media-list-item:last-child{border-bottom:none}.media-list-item:hover{background:var(--color-surface-hover)}.media-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:pointer;flex-direction:column;display:flex;position:relative;overflow:hidden}.media-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.media-card-select{top:var(--space-2);left:var(--space-2);z-index:1;border-radius:var(--radius-xs);border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.media-card-select:hover{border-color:var(--color-primary)}.media-card-select:checked{background:var(--color-primary);border-color:var(--color-primary)}.media-thumbnail{aspect-ratio:16/9;object-fit:cover;background:var(--color-background-secondary);width:100%}.media-icon{font-size:var(--font-size-3xl);color:var(--color-text-tertiary);background:var(--color-background-secondary);justify-content:center;align-items:center;min-height:120px;display:flex}.media-icon-sm{font-size:var(--font-size-lg);border-radius:var(--radius-md);background:var(--color-background-secondary);width:36px;height:36px;color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.media-info{padding:var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.media-name{align-items:center;gap:var(--space-2);display:flex}.media-name-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.media-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.media-date,.media-size{align-items:center;gap:var(--space-1);display:inline-flex}.media-usage{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:inline-flex}.media-actions{align-items:center;gap:var(--space-1);padding:var(--space-1);display:flex}.file-preview-modal{z-index:var(--z-modal);position:fixed;inset:0}.file-preview-modal .modal-overlay{background:#000000b3;position:absolute;inset:0}.preview-modal-container{z-index:1;width:100%;max-width:1000px;max-height:90vh;margin:var(--space-4);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;margin-left:auto;margin-right:auto;display:flex;position:relative;overflow:hidden}.preview-header-info{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.preview-file-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:40px;height:40px;color:var(--color-primary);font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.preview-file-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-file-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.preview-content{background:var(--color-background-secondary);flex:1;justify-content:center;align-items:center;min-height:300px;display:flex;overflow:auto}.preview-image-container{width:100%;height:100%;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.preview-image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:100%}.preview-video-container{width:100%;max-width:800px;padding:var(--space-4)}.preview-video{border-radius:var(--radius-md);outline:none;width:100%}.preview-audio-container{align-items:center;gap:var(--space-4);padding:var(--space-10);flex-direction:column;display:flex}.preview-audio-icon{color:var(--color-primary);opacity:.7;font-size:64px}.preview-audio-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.preview-audio{width:100%;max-width:400px}.preview-document-container{width:100%;height:100%}.preview-document-frame{border:none;width:100%;height:100%;min-height:500px}.preview-document-placeholder{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-10);text-align:center;flex-direction:column;display:flex}.preview-doc-icon{color:var(--color-text-tertiary);opacity:.5;font-size:64px}.preview-doc-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.preview-other-container{align-items:center;gap:var(--space-3);padding:var(--space-10);flex-direction:column;display:flex}.preview-other-icon{color:var(--color-text-tertiary);opacity:.5;font-size:64px}.preview-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface);display:flex}.preview-zoom-controls{align-items:center;gap:var(--space-2);display:flex}.preview-zoom-level{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-align:center;min-width:48px}.preview-actions{align-items:center;gap:var(--space-2);display:flex}.upload-zone-content{align-items:center;gap:var(--space-3);padding:var(--space-10);text-align:center;flex-direction:column;display:flex}.upload-icon{color:var(--color-primary);opacity:.6;font-size:48px}.upload-text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.upload-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.upload-progress-list{gap:var(--space-2);flex-direction:column;display:flex}.upload-progress-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.upload-progress-info{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.upload-file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-progress-bar-track{background:var(--color-background-tertiary);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.upload-progress-bar-fill{background:var(--gradient-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal)}.documents-tab{gap:var(--space-4);flex-direction:column;display:flex}.documents-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.documents-toolbar-left,.documents-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.document-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.document-list-header{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-background-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:40px 1fr 120px 120px 80px;align-items:center;display:grid}.document-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast);grid-template-columns:40px 1fr 120px 120px 80px;align-items:center;display:grid}.document-item:last-child{border-bottom:none}.document-item:hover{background:var(--color-surface-hover)}.doc-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:36px;height:36px;color:var(--color-primary);font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.document-actions{align-items:center;gap:var(--space-1);display:flex}.question-bank{gap:var(--space-4);flex-direction:column;display:flex}.question-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.question-toolbar-left,.question-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.question-list{gap:var(--space-3);flex-direction:column;display:flex}.question-list-header{padding:var(--space-2) 0;justify-content:space-between;align-items:center;display:flex}.question-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal)}.question-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.question-card{padding:var(--space-5)}.question-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.question-number{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);white-space:nowrap}.question-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:var(--line-height-relaxed);flex:1}.question-text-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary);-webkit-line-clamp:2;margin-bottom:var(--space-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.question-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.question-points{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);white-space:nowrap}.question-analysis-list{gap:var(--space-2);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);margin-top:var(--space-3);flex-direction:column;display:flex}.question-misconceptions{gap:var(--space-2);padding:var(--space-3);background:var(--color-warning-light);border-radius:var(--radius-md);margin-top:var(--space-3);flex-direction:column;display:flex}.misconception-item{font-size:var(--font-size-sm);color:var(--color-text-secondary);align-items:flex-start;gap:var(--space-2);display:flex}.misconceptions-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-warning-dark);text-transform:uppercase;letter-spacing:.04em}.question-rate{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.question-rate-bar{border-radius:var(--radius-full);background:var(--color-background-tertiary);width:100%;height:8px;display:flex;overflow:hidden}.question-rate-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal)}.question-rate--correct .question-rate-fill{background:var(--color-success)}.question-rate--incorrect .question-rate-fill{background:var(--color-error)}.question-rate--skipped .question-rate-fill{background:var(--color-text-tertiary)}.question-rate-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.question-rate-value{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.question-rates{align-items:center;gap:var(--space-4);margin-top:var(--space-2);display:flex}.question-options{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.common-wrong-answer{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-error-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.common-wrong-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-error);white-space:nowrap}.templates-section{gap:var(--space-4);flex-direction:column;display:flex}.templates-section-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.templates-section-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.templates-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.templates-toolbar-left,.templates-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.templates-cards-grid,.templates-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.template-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);flex-direction:column;display:flex;overflow:hidden}.template-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.template-card-header{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);display:flex}.template-card-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:44px;height:44px;color:var(--color-primary);font-size:var(--font-size-xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.template-card-info{flex:1;min-width:0}.template-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.template-card-type{font-size:var(--font-size-xs);color:var(--color-text-tertiary);align-items:center;display:inline-flex}.template-card-category{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:var(--space-2);align-items:center;display:inline-flex}.template-card-desc,.template-card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);padding:0 var(--space-4) var(--space-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.template-card-modules{padding:0 var(--space-4) var(--space-3)}.template-card-modules-list{gap:var(--space-1);flex-wrap:wrap;display:flex}.template-card-actions{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.template-usage{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.template-actions{align-items:center;gap:var(--space-1);display:flex}.tags-input-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tags-list{gap:var(--space-1);flex-wrap:wrap;display:flex}.tag-chip{align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.tag-remove{border-radius:var(--radius-full);cursor:pointer;width:14px;height:14px;transition:background var(--transition-fast);justify-content:center;align-items:center;font-size:10px;display:inline-flex}.tag-remove:hover{background:#01329726}.filter-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;display:inline-flex}.filter-chip:hover{border-color:var(--color-primary-light);color:var(--color-primary)}.filter-chip.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.resources-loading{min-height:400px;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}@media (width<=1024px){.media-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.templates-cards-grid,.templates-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.media-list-header,.media-list-item,.document-list-header,.document-item{grid-template-columns:40px 1fr 100px 80px}}@media (width<=768px){.media-toolbar,.documents-toolbar,.question-toolbar,.templates-toolbar{flex-direction:column;align-items:stretch}.media-toolbar-left,.media-toolbar-right,.documents-toolbar-left,.documents-toolbar-right,.question-toolbar-left,.question-toolbar-right,.templates-toolbar-left,.templates-toolbar-right{flex-wrap:wrap}.media-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.templates-cards-grid,.templates-grid{grid-template-columns:1fr}.preview-modal-container{border-radius:0;max-width:none;height:100%;max-height:100vh;margin:0}.media-list-header,.media-list-item{grid-template-columns:32px 1fr 80px}.media-list-header>:nth-child(n+4),.media-list-item>:nth-child(n+4){display:none}.document-list-header,.document-item{grid-template-columns:32px 1fr 80px}.document-list-header>:nth-child(n+4),.document-item>:nth-child(n+4){display:none}.question-card-header{gap:var(--space-2);flex-direction:column}.question-rates{flex-wrap:wrap}.preview-toolbar{gap:var(--space-2);flex-direction:column}}@media (width<=480px){.media-grid{gap:var(--space-2);grid-template-columns:1fr 1fr}.media-info{padding:var(--space-2)}.upload-zone-content,.preview-audio-container{padding:var(--space-6)}}.profile-content{gap:var(--space-6);flex-direction:column;display:flex}.profile-header{align-items:center;gap:var(--space-6);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.profile-avatar{flex-shrink:0;width:120px;height:120px;position:relative}.avatar-upload{width:100%;height:100%;position:relative}.avatar-input{opacity:0;cursor:pointer;z-index:2;position:absolute;inset:0}.avatar-label{border-radius:var(--radius-full);cursor:pointer;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.avatar-overlay{border-radius:var(--radius-full);opacity:0;transition:opacity var(--transition-fast);z-index:1;color:var(--color-text-inverse);font-size:var(--font-size-sm);background:#0006;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.avatar-upload:hover .avatar-overlay{opacity:1}.avatar-image{border-radius:var(--radius-full);object-fit:cover;width:100%;height:100%}.avatar-initials{border-radius:var(--radius-full);background:var(--gradient-primary);width:100%;height:100%;font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);justify-content:center;align-items:center;display:flex}.profile-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.profile-role{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.profile-tabs{gap:var(--space-1);border-bottom:2px solid var(--color-border);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:var(--space-2);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;display:flex}.profile-tab:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.profile-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.profile-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.profile-form{gap:var(--space-4);flex-direction:column;display:flex}.form-section{gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-light);flex-direction:column;display:flex}.form-section:last-child{border-bottom:none;padding-bottom:0}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-input,.form-input--sm,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-input--sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);min-height:var(--input-height-sm)}.form-select{appearance:none;cursor:pointer}.form-textarea{resize:vertical;min-height:100px;line-height:var(--line-height-normal)}.form-input:focus,.form-input--sm:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.form-checkbox{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.form-checkbox input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.form-error{font-size:var(--font-size-xs);color:var(--color-error);align-items:center;gap:var(--space-1);display:flex}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.form-helper{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-relaxed)}.form-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);display:flex}.qualification-list{gap:var(--space-3);flex-direction:column;display:flex}.qualification-card{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.qualification-card:hover{background:var(--color-surface-hover)}.qualification-info{flex:1;min-width:0}.qualification-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.qualification-institution{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.qualification-year{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.qualification-actions{align-items:center;gap:var(--space-1);display:flex}.certification-list{gap:var(--space-2);flex-direction:column;display:flex}.cert-link{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none;display:inline-flex}.cert-link:hover{color:var(--color-primary-hover);text-decoration:underline}.verification-list{gap:var(--space-3);flex-direction:column;display:flex}.verification-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);display:flex}.verification-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.verification-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.verification-status{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.verification-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.verification-info{flex:1;min-width:0}.upload-verification-section{margin-top:var(--space-4);padding:var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;color:var(--color-text-tertiary);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast)}.upload-verification-section:hover{border-color:var(--color-primary);color:var(--color-primary)}.working-hours-list{gap:var(--space-2);flex-direction:column;display:flex}.working-hours-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);display:flex}.working-hours-day{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);min-width:100px}.working-hours-times{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.office-hours-section{gap:var(--space-3);flex-direction:column;display:flex}.office-hours-list{gap:var(--space-2);flex-direction:column;display:flex}.office-office-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.office-office-item:hover{background:var(--color-surface-hover)}.oh-day{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);min-width:100px}.oh-time{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.break-times-list{gap:var(--space-2);flex-direction:column;display:flex}.break-time-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);display:flex}.break-time-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.break-time-range{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.add-office-hour-form,.add-qualification-form,.add-break-time-form{gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-3);flex-direction:column;display:flex}.skills-section{gap:var(--space-4);flex-direction:column;display:flex}.skills-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.skill-item{gap:var(--space-2);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);flex-direction:column;display:flex}.skill-header{justify-content:space-between;align-items:center;display:flex}.skill-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.skill-level{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary)}.intervention-section{gap:var(--space-4);flex-direction:column;display:flex}.interventions-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.interventions-list{gap:var(--space-3);flex-direction:column;display:flex}.intervention-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--transition-normal)}.intervention-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.intervention-item--parent{border-left:3px solid var(--color-info)}.intervention-item--school{border-left:3px solid var(--color-secondary)}.intervention-type-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.intervention-type--parent{background:var(--color-info-light);color:var(--color-info)}.intervention-type--school{background:var(--color-secondary-light);color:var(--color-secondary)}.intervention-status-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-success-light);color:var(--color-success-dark);align-items:center;display:inline-flex}.intervention-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.intervention-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.intervention-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-top:var(--space-2)}.intervention-stats{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.intervention-stat{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-sm);flex-direction:column;min-width:80px;display:flex}.intervention-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.intervention-stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.intervention-stat--pending .intervention-stat-value{color:var(--color-warning)}.intervention-stat--effective .intervention-stat-value{color:var(--color-success)}.intervention-stat--ineffective .intervention-stat-value{color:var(--color-error)}.intervention-escalation{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.intervention-escalation--none{background:var(--color-background-secondary);color:var(--color-text-tertiary)}.intervention-escalation--low{background:var(--color-success-light);color:var(--color-success-dark)}.intervention-escalation--medium{background:var(--color-warning-light);color:var(--color-warning-dark)}.intervention-escalation--high{background:var(--color-error-light);color:var(--color-error-dark)}.intervention-form{margin-top:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.intervention-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.intervention-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);margin-top:var(--space-3);display:flex}.intervention-followup{padding:var(--space-3);background:var(--color-info-light);border-radius:var(--radius-md);margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.intervention-summary{padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}@media (width<=768px){.profile-header{text-align:center;padding:var(--space-5);flex-direction:column;align-items:center}.profile-avatar{width:100px;height:100px}.form-row,.form-grid,.skills-grid{grid-template-columns:1fr}.intervention-stats,.intervention-header{flex-direction:column}.intervention-footer{flex-direction:column;align-items:flex-start}.form-actions{flex-direction:column}.form-actions>*{width:100%}.verification-item{flex-direction:column;align-items:flex-start}.working-hours-item,.office-office-item{align-items:flex-start;gap:var(--space-1);flex-direction:column}.qualification-card{flex-direction:column;align-items:flex-start}.qualification-actions{align-self:flex-end}}@media (width<=480px){.profile-tabs{gap:0}.profile-tab{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}}.settings-content{gap:var(--space-6);flex-direction:column;display:flex}.settings-grid{gap:var(--space-6);grid-template-columns:240px 1fr;display:grid}.settings-loading{min-height:400px;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.settings-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.settings-section{padding:var(--space-5);border-bottom:1px solid var(--color-border-light)}.settings-section:last-child{border-bottom:none}.settings-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.setting-item{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);display:flex}.setting-item:last-child{border-bottom:none}.setting-info{flex:1;min-width:0}.setting-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.setting-description{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.setting-controls-row{align-items:center;gap:var(--space-3);display:flex}.setting-control{align-items:center;gap:var(--space-2);display:flex}.setting-toggle{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:background var(--transition-fast);border:none;flex-shrink:0;padding:0;position:relative}.setting-toggle:after{content:"";width:20px;height:20px;transition:transform var(--transition-fast);box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.setting-toggle.active,.setting-toggle[aria-checked=true]{background:var(--color-primary)}.setting-toggle.active:after,.setting-toggle[aria-checked=true]:after{transform:translate(20px)}.settings-toggles{gap:var(--space-1);flex-direction:column;display:flex}.settings-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);display:flex}.settings-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-background-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.settings-form,.notification-settings{gap:var(--space-4);flex-direction:column;display:flex}.notification-prefs-table{border-collapse:collapse;width:100%}.notification-section{gap:var(--space-3);flex-direction:column;display:flex}.notification-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.notification-category{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding:var(--space-2) 0}.notification-toggle{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.notification-toggle:hover{background:var(--color-surface-hover)}.notification-types-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.pref-category{gap:var(--space-2);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);flex-direction:column;display:flex}.pref-channel{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.prefs-header{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:center;grid-template-columns:1fr repeat(3,60px);display:grid}.prefs-header>:first-child{text-align:left}.quiet-hours-settings{gap:var(--space-3);flex-direction:column;display:flex}.quiet-hours-config{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.quiet-hours-time{gap:var(--space-1);flex-direction:column;display:flex}.quiet-hours-time label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.quiet-hours-time input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-surface)}.quiet-hours-time input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.privacy-settings{gap:var(--space-4);flex-direction:column;display:flex}.block-list{gap:var(--space-2);flex-direction:column;display:flex}.block-list-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-background-secondary);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.block-list-item:hover{background:var(--color-surface-hover)}.block-user-form{align-items:center;gap:var(--space-2);display:flex}.block-user-info{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.block-user-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:32px;height:32px;color:var(--color-text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.block-user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teaching-preferences{gap:var(--space-4);flex-direction:column;display:flex}.theme-options{gap:var(--space-3);display:flex}.theme-option{align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-background-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;min-width:100px;display:flex}.theme-option:hover{border-color:var(--color-primary-light);background:var(--color-surface-hover)}.theme-option.active,.theme-option.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.theme-icon{font-size:var(--font-size-2xl)}.theme-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.connected-accounts-list{gap:var(--space-2);flex-direction:column;display:flex}.connected-account-item{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-background-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.connected-account-item:hover{background:var(--color-surface-hover)}.connected-account-icon{border-radius:var(--radius-md);background:var(--color-surface);width:40px;height:40px;font-size:var(--font-size-xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.connected-account-info{flex:1;min-width:0}.connected-account-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.connected-account-status{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.connected-account-details{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.settings-danger{border:2px solid var(--color-error-light)}.danger-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-error);margin-bottom:var(--space-4)}.danger-zone{gap:var(--space-3);flex-direction:column;display:flex}.danger-content{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-error-light);border-radius:var(--radius-md);display:flex}.danger-info{flex:1}.danger-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.danger-description{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.form-step{gap:var(--space-4);flex-direction:column;display:flex}.step-indicator{align-items:center;gap:var(--space-2);padding:var(--space-4) 0;display:flex}.step{align-items:center;gap:var(--space-2);display:flex}.step-icon{border-radius:var(--radius-full);width:32px;height:32px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.step-number{border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-background-tertiary);color:var(--color-text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.step.active .step-number,.step.completed .step-number{background:var(--color-primary);color:var(--color-text-inverse)}.step.completed .step-number{background:var(--color-success)}.step-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary)}.step.active .step-label{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.step-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.days-of-week-selector{gap:var(--space-2);flex-wrap:wrap;display:flex}.day-chip{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;min-width:44px;display:inline-flex}.day-chip:hover{border-color:var(--color-primary-light);color:var(--color-primary)}.day-chip-active,.day-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.btn-success{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-success);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;display:inline-flex}.btn-success:hover{background:var(--color-success-dark);box-shadow:var(--shadow-sm)}.btn-warning{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-warning);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;display:inline-flex}.btn-warning:hover{background:var(--color-warning-dark);box-shadow:var(--shadow-sm)}@media (width<=1024px){.settings-grid{grid-template-columns:1fr}}@media (width<=768px){.setting-item{align-items:flex-start;gap:var(--space-3);flex-direction:column}.setting-controls-row{justify-content:flex-end;width:100%}.notification-types-grid{grid-template-columns:1fr}.prefs-header{grid-template-columns:1fr repeat(3,50px);font-size:10px}.theme-options{flex-wrap:wrap}.theme-option{flex:1;min-width:80px}.danger-content{flex-direction:column;align-items:flex-start}.quiet-hours-config{flex-direction:column;align-items:stretch}.connected-account-item{align-items:flex-start;gap:var(--space-2);flex-direction:column}.step-indicator{gap:var(--space-3);flex-wrap:wrap}.days-of-week-selector{gap:var(--space-1)}.day-chip{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);min-width:36px}.settings-footer,.settings-actions{flex-direction:column}.settings-footer>*,.settings-actions>*{width:100%}.block-user-form{flex-direction:column}.block-user-form>*{width:100%}}@media (width<=480px){.notification-prefs-table{gap:var(--space-2);flex-direction:column;display:flex}.step-label{display:none}.theme-options{grid-template-columns:1fr 1fr}}@media (width<=768px){.dashboard-main{width:100%;max-width:100%;overflow-x:hidden;margin-left:0!important}.dashboard-layout{overflow-x:hidden}.dashboard-content{width:100%;max-width:100%;padding:var(--space-4) var(--space-4) 96px;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-x:hidden}.dashboard-header{padding:var(--space-3) var(--space-4);gap:var(--space-3);flex-wrap:nowrap;min-height:52px}.dashboard-header-actions{gap:var(--space-2);flex-shrink:0}.status-indicator{display:none}}@media (width<=480px){.dashboard-content{padding:var(--space-3) var(--space-3) 96px}.dashboard-header{padding:var(--space-3)}}@media (width<=768px){.btn,.btn-sm,.btn-lg,.btn-primary,.btn-secondary,.btn-outline,.btn-ghost,.btn-danger,.btn-success,.form-actions .btn{min-height:44px;padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);letter-spacing:.01em;-webkit-tap-highlight-color:transparent;touch-action:manipulation;white-space:nowrap;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn:active,.btn-sm:active,.btn-lg:active{filter:brightness(.92);transform:scale(.97)}.btn-primary,.btn-primary.btn{background:var(--color-primary);color:#fff;border:none;box-shadow:0 2px 8px #01329740}.btn-primary:active{box-shadow:0 1px 4px #0132974d}.btn-secondary,.btn-secondary.btn{background:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-secondary:active{background:var(--color-primary-light)}.btn-ghost,.btn-ghost.btn{color:var(--color-text-secondary);border:1.5px solid var(--color-border);background:0 0}.btn-ghost:active{background:var(--color-background-secondary)}.btn-outline,.btn-outline.btn{color:var(--color-text-primary);border:1.5px solid var(--color-border);background:0 0}.btn-outline:active{background:var(--color-background-secondary);border-color:var(--color-primary);color:var(--color-primary)}.btn-danger,.btn-danger.btn{background:var(--color-error);color:#fff;border:none;box-shadow:0 2px 8px #dc262640}.btn-danger:active{filter:brightness(.9)}.btn-success,.btn-success.btn{background:var(--color-success);color:#fff;border:none}.btn-sm{min-height:36px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{min-height:48px;padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-icon,.icon-btn,.theme-toggle,.dashboard-menu-btn,.modal-close,.mobile-drawer-close{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.15rem;transition:all .15s;display:inline-flex}.btn-icon:active,.icon-btn:active,.theme-toggle:active,.dashboard-menu-btn:active{background:var(--color-background-secondary);transform:scale(.93)}.form-actions{gap:var(--space-3);flex-direction:column}.form-actions .btn,.form-actions .btn-primary,.form-actions .btn-secondary{justify-content:center;width:100%;min-height:48px}.btn-group{gap:var(--space-2);display:flex}.btn-group .btn{flex:1;justify-content:center}.classes-view-toggle,.media-toolbar-right,.view-toggle{gap:var(--space-1)}.view-toggle-btn,.view-toggle button{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:36px;min-width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:all .15s;display:flex}.view-toggle-btn.active,.view-toggle button.active,.view-toggle-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-chip,.classes-filter-chip,.student-filter-chip{min-height:36px;padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;flex-shrink:0;transition:all .15s}.filter-chip.active,.filter-chip:active,.classes-filter-chip.active,.student-filter-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.form-select,select.form-input{min-height:44px;padding:var(--space-3) var(--space-4);padding-right:var(--space-10);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);box-sizing:border-box;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;width:100%;font-size:16px}.form-group{width:100%;margin-bottom:var(--space-4)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2);display:block}.form-input,.form-textarea{width:100%;min-height:44px;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);box-sizing:border-box;appearance:none;font-size:16px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0132971f}.form-textarea{resize:vertical;min-height:100px}.form-hint,.form-error-text{font-size:var(--font-size-xs);margin-top:var(--space-1)}.form-row,.form-grid,.form-grid-3{gap:var(--space-3);grid-template-columns:1fr}.form-checkbox,.form-radio{min-width:20px;min-height:20px}.search-input,.search-bar input{min-height:40px;padding:var(--space-2) var(--space-4);padding-left:var(--space-10);border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-background-secondary);box-sizing:border-box;width:100%;font-size:16px}.assignments-page,.courses-page,.classes-page,.gradebook-page,.students-page,.communication-page,.analytics-page,.ai-tools-page,.resources-page,.profile-page,.settings-page{width:100%;max-width:100%;margin:0;padding:0;overflow:visible}.assignments-header,.courses-header,.classes-header,.gradebook-header,.students-header,.communication-header,.analytics-header,.ai-tools-header,.resources-header,.settings-header{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column}.assignments-header-left,.courses-header-left,.students-header-left,.resources-header-left{width:100%}.page-title,.assignments-page-title,.courses-page-title,.classes-page-title,.students-page-title,.communication-page-title,.analytics-title,.ai-tools-title,.settings-title,.gradebook-header-top{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0;line-height:1.2}.page-subtitle,.analytics-subtitle,.ai-tools-subtitle,.settings-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;line-height:1.4}.section-header,.chart-header,.ai-tool-section-title{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column}.section-title,.chart-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.section-badge{padding:2px var(--space-2);font-size:10px}.assignment-card,.course-card,.class-card,.student-card,.media-card,.question-card,.template-card,.stat-card,.overview-stat-card,.metric-card,.kpi-card,.at-risk-card,.setting-item,.chart-container{padding:var(--space-4);border-radius:var(--radius-md);box-sizing:border-box;min-width:0;max-width:100%}.course-card,.assignment-card,.student-card,.class-card,.media-card,.question-card,.template-card{-webkit-tap-highlight-color:transparent;overflow:hidden}.card-top-bar{height:3px}.card-header{align-items:flex-start;gap:var(--space-2);flex-direction:column}.card-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;width:100%}.card-meta,.card-footer{gap:var(--space-2);flex-wrap:wrap}.kpi-grid,.analytics-kpi-grid,.summary-grid,.revenue-grid,.engagement-stats-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.dashboard-grid-2col,.analytics-grid-2col,.dashboard-grid{gap:var(--space-4);grid-template-columns:1fr}.quick-actions-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}}@media (width<=400px){.kpi-grid,.analytics-kpi-grid,.summary-grid,.revenue-grid,.engagement-stats-grid{gap:var(--space-3);grid-template-columns:1fr}.quick-actions-grid{grid-template-columns:1fr}}@media (width<=768px){.tabs,.analytics-tabs,.gradebook-tabs,.message-tabs,.settings-tabs,.resources-tabs,.class-tabs,.detail-tabs,.student-tabs{margin-bottom:var(--space-4);scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;border-bottom-width:1px;flex-wrap:nowrap;gap:0;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.analytics-tabs::-webkit-scrollbar{display:none}.message-tabs::-webkit-scrollbar{display:none}.settings-tabs::-webkit-scrollbar{display:none}.resources-tabs::-webkit-scrollbar{display:none}.class-tabs::-webkit-scrollbar{display:none}.detail-tabs::-webkit-scrollbar{display:none}.student-tabs::-webkit-scrollbar{display:none}.tabs-trigger,.analytics-tab,.message-tab,.settings-tab,.resources-tab,.class-tab,.detail-tab,.student-tab,.chart-tab{padding:var(--space-3) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;border-bottom-width:2px;flex-shrink:0;min-height:40px;margin-bottom:-1px}.tabs-trigger.active,.analytics-tab.active,.message-tab.active,.settings-tab.active,.resources-tab.active,.class-tab.active,.detail-tab.active,.student-tab.active,.chart-tab.active{font-weight:var(--font-weight-semibold)}.filter-chips,.classes-filter-chips,.students-filters,.analytics-controls{gap:var(--space-2);padding-bottom:var(--space-2);margin:0 calc(var(--space-4) * -1);padding-left:var(--space-4);padding-right:var(--space-4);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.filter-chips::-webkit-scrollbar{display:none}.classes-filter-chips::-webkit-scrollbar{display:none}.students-filters::-webkit-scrollbar{display:none}.analytics-controls::-webkit-scrollbar{display:none}.classes-view-toggle,.media-toolbar-right{flex-shrink:0}.modal-container,.modal{margin:0;position:fixed;inset:0;border-radius:0!important;width:100%!important;max-width:100%!important;max-height:100vh!important}.modal-overlay{padding:0}.modal-header{padding:var(--space-4);border-radius:0}.modal-body{padding:var(--space-4);-webkit-overflow-scrolling:touch;overflow-y:auto}.modal-footer{padding:var(--space-3) var(--space-4);border-radius:0}.create-course-modal.open .modal-container{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100vh}.gradebook-table-wrapper,.assignments-table-container,.attendance-table,.notification-prefs-table{-webkit-overflow-scrolling:touch;margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4);padding-bottom:var(--space-3);scrollbar-width:none;overflow-x:auto}.gradebook-table-wrapper::-webkit-scrollbar{display:none}.assignments-table-container::-webkit-scrollbar{display:none}.attendance-table::-webkit-scrollbar{display:none}.notification-prefs-table::-webkit-scrollbar{display:none}.gradebook-table,.assignments-table{min-width:560px}.gradebook-cell{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.gradebook-cell--name{background:var(--color-surface);z-index:1;min-width:120px;max-width:150px;position:sticky;left:0;box-shadow:2px 0 4px #0000000a}.chart-container{padding:var(--space-3);overflow:hidden}.chart-body{min-height:150px}.bar-chart,.line-chart,.distribution-chart{-webkit-overflow-scrolling:touch;overflow-x:auto}.heatmap{-webkit-overflow-scrolling:touch;margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4);overflow-x:auto}.heatmap-header,.heatmap-row{min-width:480px}.heatmap-cell{width:28px;height:28px}.courses-grid{gap:var(--space-3);grid-template-columns:1fr}.courses-list{gap:var(--space-2)}.course-card{padding:var(--space-3)}.course-thumbnail{border-radius:var(--radius-md) var(--radius-md) 0 0;height:160px}.course-info{padding:var(--space-3)}.course-title{font-size:var(--font-size-base);line-height:1.3}.course-description{font-size:var(--font-size-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.course-meta{font-size:var(--font-size-xs);gap:var(--space-1);flex-wrap:wrap}.course-progress-bar{height:4px}.course-list-item{flex-direction:column;align-items:stretch}.course-list-thumbnail{width:100%;height:120px}.course-list-info{padding:var(--space-3)}.assignments-grid{gap:var(--space-3);grid-template-columns:1fr}.assignment-card{padding:var(--space-3)}.assignment-name,.assignment-title{font-size:var(--font-size-base)}.step-indicator{margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4);scrollbar-width:none;flex-wrap:nowrap;gap:0;overflow-x:auto}.step-indicator::-webkit-scrollbar{display:none}.step{min-width:44px;padding:var(--space-2);flex-shrink:0}.step-label{display:none}.step-title{font-size:var(--font-size-xs)}.quiz-builder,.rubric-builder{padding:var(--space-3);overflow-x:hidden}.rubric-ratings-grid{grid-template-columns:1fr}.category-cards{gap:var(--space-3);grid-template-columns:1fr}.curriculum-sections{margin:0}.module-item{padding:var(--space-3)}.lesson-item{padding:var(--space-2) var(--space-3)}.classes-grid-grid{gap:var(--space-3);grid-template-columns:1fr}.class-card{padding:var(--space-3)}.class-name{font-size:var(--font-size-base)}.class-card-meta{gap:var(--space-2);flex-wrap:wrap}.schedule-calendar{-webkit-overflow-scrolling:touch;margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4);overflow-x:auto}.calendar-grid{gap:1px;min-width:340px}.calendar-day{min-height:36px;padding:var(--space-1);font-size:var(--font-size-xs)}.calendar-events{display:none}.attendance-grid{overflow-x:auto}.attendance-row{min-width:480px}.session-item{padding:var(--space-3)}.session-date{flex-shrink:0;width:44px}.class-stats-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.class-stat-card{padding:var(--space-3)}.gradebook-header-top{gap:var(--space-3);flex-direction:column}.gradebook-course-select{width:100%}.gradebook-controls{gap:var(--space-2);flex-wrap:wrap}.summary-grid{gap:var(--space-2);grid-template-columns:1fr 1fr}.summary-item{padding:var(--space-3);text-align:center}.summary-value{font-size:var(--font-size-xl)}.grade-entry{padding:var(--space-3)}.breakdown-list{gap:var(--space-2)}.breakdown-item{padding:var(--space-3)}.dist-bar-track{height:8px}.students-grid{gap:var(--space-3);grid-template-columns:1fr}.students-list{gap:var(--space-2)}.student-card{padding:var(--space-3)}.student-card-header{gap:var(--space-3);flex-direction:row;align-items:center}.student-avatar,.student-avatar-sm{flex-shrink:0;width:40px;height:40px}.student-card-meta{font-size:var(--font-size-xs)}.student-card-stats{gap:var(--space-2);flex-wrap:wrap}.student-detail-header{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column}.student-avatar-lg{width:64px;height:64px}.student-detail-quick-stats{gap:var(--space-2);grid-template-columns:1fr 1fr}.stat-card{padding:var(--space-3)}.student-progress-categories{gap:var(--space-2)}.student-progress-cat{gap:var(--space-1);flex-direction:column}.note-form,.note-item,.intervention-item,.submission-row{padding:var(--space-3)}.notes-list,.interventions-list,.submission-list{gap:var(--space-2)}.submission-row{flex-direction:column;align-items:stretch}.communication-content{padding:0}.message-list,.discussion-list,.announcement-list{gap:0}.message-item,.discussion-item,.announcement-item{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.message-avatar{flex-shrink:0;width:36px;height:36px}.message-content{min-width:0}.message-subject{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.message-preview{font-size:var(--font-size-xs);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.compose-modal{border-radius:0}.compose-modal .modal-overlay{padding:0}.compose-modal .modal-container{border-radius:0;width:100%;height:100%;max-height:100vh}.notification-prefs-table{min-width:380px}.notification-types-grid{grid-template-columns:1fr}.analytics-controls{gap:var(--space-3);flex-direction:column}.date-range-selector{scrollbar-width:none;flex-wrap:nowrap;width:100%;overflow-x:auto}.date-range-selector::-webkit-scrollbar{display:none}.date-range-btn{font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3);flex-shrink:0;min-height:36px}.metric-card{padding:var(--space-3)}.metric-value{font-size:var(--font-size-xl)}.feature-usage-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);flex-direction:column}.feature-usage-bar-container{width:100%}.report-list{gap:var(--space-2)}.report-item{gap:var(--space-2);padding:var(--space-3);flex-direction:column}.export-options{padding:var(--space-3)}.export-format-options{gap:var(--space-2);flex-wrap:wrap}.ai-tool-grid{gap:var(--space-3);grid-template-columns:1fr}.ai-tool-card{padding:var(--space-4)}.ai-tool-content,.ai-tool-panel{padding:var(--space-3)}.ai-tool-input textarea{min-height:120px;font-size:16px}.ai-output-content,.ai-question-card{padding:var(--space-3)}.ai-question-options{flex-direction:column}.ai-question-option{padding:var(--space-2) var(--space-3);min-height:40px}.ai-history-item,.ai-tutor-session{padding:var(--space-3)}.ai-feedback-score-value{font-size:var(--font-size-2xl)}.media-grid{gap:var(--space-2);grid-template-columns:1fr 1fr}.media-card{padding:var(--space-2)}.media-thumbnail{height:100px}.media-name{font-size:var(--font-size-xs)}.media-meta{font-size:10px}.media-list-item{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.document-list{gap:var(--space-2)}.document-item{padding:var(--space-3);align-items:flex-start;gap:var(--space-2);flex-direction:column}.question-list{gap:var(--space-2)}.question-card{padding:var(--space-3)}.question-text{font-size:var(--font-size-sm)}.templates-cards-grid,.templates-grid{gap:var(--space-3);grid-template-columns:1fr}.template-card{padding:var(--space-3)}.preview-modal-container{border-radius:0;width:100%;height:100%;max-height:100vh}.preview-toolbar{gap:var(--space-2);flex-wrap:wrap}.upload-zone-content{padding:var(--space-6) var(--space-4)}.upload-icon{font-size:32px}.profile-header{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column}.profile-avatar{width:80px;height:80px}.profile-name{font-size:var(--font-size-xl)}.profile-tabs{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3);flex-shrink:0;min-height:36px}.profile-section,.profile-form{padding:var(--space-3)}.qualification-list,.verification-list,.office-hours-list,.interventions-list{gap:var(--space-2)}.qualification-card,.verification-item,.working-hours-item{padding:var(--space-3);gap:var(--space-2);flex-direction:column}.skills-grid{gap:var(--space-2);grid-template-columns:1fr}.skill-item{padding:var(--space-3)}.settings-grid{gap:var(--space-3);grid-template-columns:1fr}.settings-panel,.settings-section{padding:var(--space-3)}.settings-section-title{font-size:var(--font-size-base)}.setting-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);flex-direction:column}.setting-controls-row{justify-content:space-between;width:100%}.theme-options{gap:var(--space-2);grid-template-columns:1fr}.theme-option{padding:var(--space-3)}.connected-accounts-list{gap:var(--space-2)}.connected-account-item{padding:var(--space-3);gap:var(--space-2);flex-direction:column}.danger-zone{padding:var(--space-3)}.days-of-week-selector{gap:var(--space-2);flex-wrap:wrap}.day-chip{min-width:40px;padding:var(--space-2);font-size:var(--font-size-xs)}.teacher-dashboard{padding:var(--space-4)}.dashboard-welcome h1{font-size:var(--font-size-xl)}.dashboard-welcome-actions{gap:var(--space-2);flex-direction:column}.dashboard-welcome-actions .btn{justify-content:center;width:100%}.kpi-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.kpi-card{padding:var(--space-3)}.quick-actions-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.at-risk-grid{grid-template-columns:1fr}}@media (width<=400px){.teacher-dashboard{padding:var(--space-3)}.kpi-grid,.quick-actions-grid{grid-template-columns:1fr}}@media (width<=768px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],textarea,select{font-size:16px!important}.assignment-card,.course-card,.class-card,.student-card,.media-card,.question-card,.template-card{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.assignment-card:active,.course-card:active,.class-card:active,.student-card:active,.media-card:active{transition:transform .1s;transform:scale(.98)}html,body{-webkit-text-size-adjust:100%;overflow-x:hidden}*{word-wrap:break-word;overflow-wrap:break-word}.dashboard-content{scroll-behavior:smooth}}@supports (padding-top:env(safe-area-inset-top)){@media (width<=768px){.dashboard-header{padding-top:calc(var(--space-3) + env(safe-area-inset-top))}.mobile-bottom-nav{padding-bottom:env(safe-area-inset-bottom)}}}@media (width<=768px) and (prefers-color-scheme:dark){.mobile-bottom-nav{background:#1a1a2ef2;border-top-color:#ffffff1a;box-shadow:0 -2px 12px #0000004d}.mobile-drawer{background:#1a1a2e}.mobile-drawer-header{background:#1a1a2e;border-bottom-color:#ffffff1a}.mobile-drawer-link{color:#e0e0e0}.mobile-drawer-link:active{background:#ffffff0d}}.teacher-dashboard{max-width:1400px;padding:var(--space-6);margin:0 auto}.dashboard-welcome{margin-bottom:var(--space-8)}.dashboard-welcome h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.dashboard-welcome p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.dashboard-welcome-actions{gap:var(--space-3);margin-top:var(--space-4);display:flex}.kpi-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.kpi-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border);transition:all var(--transition-fast)}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card-icon{border-radius:var(--radius-md);width:48px;height:48px;margin-bottom:var(--space-3);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.kpi-card-icon.courses{background:var(--color-primary-light)}.kpi-card-icon.classes{background:var(--color-secondary-light)}.kpi-card-icon.students{background:#e8f5e9}.kpi-card-icon.grading{background:#fff3e0}.kpi-card-icon.upcoming{background:#e3f2fd}.kpi-card-icon.risk{background:#ffebee}.kpi-card-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.kpi-card-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.kpi-card-trend{font-size:var(--font-size-xs);align-items:center;gap:var(--space-1);display:flex}.kpi-card-trend.up{color:var(--color-success)}.kpi-card-trend.down{color:var(--color-error)}.today-schedule{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-8)}.section-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.schedule-list{padding:var(--space-2)}.schedule-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.schedule-item:hover{background:var(--color-surface-hover)}.schedule-time{min-width:80px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.schedule-info{flex:1}.schedule-title{font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.schedule-meta{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.schedule-status{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.schedule-status.live{color:#2e7d32;background:#e8f5e9}.schedule-status.upcoming{color:#013297;background:#e3f2fd}.schedule-status.completed{background:var(--color-background-tertiary);color:var(--color-text-tertiary)}.quick-actions{margin-bottom:var(--space-8)}.quick-actions-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.quick-action-card{align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;text-decoration:none;display:flex}.quick-action-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.quick-action-icon{border-radius:var(--radius-md);background:var(--gradient-primary);justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;display:flex}.quick-action-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:center}.grading-queue{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-8)}.grading-list{padding:var(--space-2)}.grading-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);display:flex}.grading-item:hover{background:var(--color-surface-hover)}.grading-student{align-items:center;gap:var(--space-3);flex:1;display:flex}.grading-avatar{border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;width:36px;height:36px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}.grading-info{flex:1}.grading-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.grading-assignment{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.grading-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.activity-feed{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-8)}.activity-list{padding:var(--space-2) var(--space-4)}.activity-item{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-dot.submission{background:var(--color-primary)}.activity-dot.grade{background:var(--color-success)}.activity-dot.message{background:var(--color-secondary)}.activity-dot.enrollment{background:#9c27b0}.activity-dot.question{background:#ff9800}.activity-content{flex:1}.activity-text{font-size:var(--font-size-sm);color:var(--color-text-primary)}.activity-text strong{font-weight:var(--font-weight-semibold)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.at-risk-section{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-8)}.at-risk-grid{gap:var(--space-4);padding:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.at-risk-card{border-radius:var(--radius-md);padding:var(--space-4);background:#fff8e1;border:1px solid #ffe082}.at-risk-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.at-risk-avatar{border-radius:var(--radius-full);background:var(--gradient-secondary);color:#fff;width:40px;height:40px;font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}.at-risk-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.at-risk-course{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.at-risk-reasons{margin:0;padding:0;list-style:none}.at-risk-reasons li{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-1) 0;align-items:center;gap:var(--space-2);display:flex}.at-risk-reasons li:before{content:"⚠️";font-size:var(--font-size-xs)}.performance-chart{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-8);padding:var(--space-5)}.chart-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.chart-tabs{gap:var(--space-2);display:flex}.chart-tab{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0}.chart-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.chart-placeholder{background:var(--gradient-surface);border-radius:var(--radius-md);height:200px;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.sidebar-nav-section{margin-bottom:var(--space-4)}.sidebar-nav-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-2) var(--space-4)}.dashboard-grid{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=768px){.teacher-dashboard{padding:var(--space-4)}.kpi-grid,.quick-actions-grid{grid-template-columns:repeat(2,1fr)}.at-risk-grid{grid-template-columns:1fr}}
