:root{--color-primary:#a8d8b9;--color-primary-dark:#77bfa3;--color-primary-light:#a8d8b94d;--color-primary-lighter:#a8d8b933;--color-primary-lightest:#a8d8b91a;--color-secondary:#5c8374;--color-secondary-light:#5c83741a;--color-secondary-muted:#5c837433;--color-neutral:#e0e0e0;--color-neutral-light:#e0e0e080;--color-neutral-dark:#bdbdbd;--bg-primary:#fff;--bg-secondary:#f7f9f7;--bg-tertiary:#f0f0f0;--text-primary:#333;--text-secondary:#333333b3;--text-tertiary:#3339;--text-muted:#33333380;--text-on-primary:#fff;--color-success:#22c55e;--color-success-light:#22c55e1a;--color-danger:#ff7070;--color-danger-light:#ef44441a;--color-warning:#f59e0b;--color-warning-light:#f59e0b1a;--color-info:#3b82f6;--color-info-light:#3b82f61a;--border-light:#e5e7eb;--border-light-subtle:#e5e7eb80;--border-focus:#a8d8b9;--font-family-primary:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", Consolas, monospace;--font-size-display:2rem;--font-size-h1:1.75rem;--font-size-h2:1.5rem;--font-size-h3:1.375rem;--font-size-h4:1.25rem;--font-size-h5:1.125rem;--font-size-body-lg:1rem;--font-size-body:.9375rem;--font-size-body-sm:.875rem;--font-size-caption:.8125rem;--font-size-small:.75rem;--font-size-tiny:.6875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--spacing-0:0;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--radius-none:0;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-default:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--border-width-thin:1px;--border-width-medium:1.5px;--border-width-thick:2px;--shadow-none:none;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 8px #00000014;--shadow-lg:0 8px 16px #0000001a;--shadow-xl:0 12px 24px #0000001f;--shadow-primary:0 4px 12px #a8d8b966;--transition-fast:.15s;--transition-default:.3s;--transition-slow:.5s;--ease-default:cubic-bezier(.4, 0, .2, 1);--header-height:64px;--sidebar-width:280px;--content-max-width:1400px;--input-height-sm:36px;--input-height-md:44px;--input-height-lg:52px;--btn-height-sm:32px;--btn-height-md:40px;--btn-height-lg:48px;--btn-height-xl:56px;--avatar-sm:32px;--avatar-md:40px;--avatar-lg:48px;--avatar-xl:64px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:28px}@media (max-width:480px){html{font-size:14px}}@media (min-width:1440px){html{font-size:17px}}@media (min-width:1920px){html{font-size:18px}}:root{--color-primary:#a8d8b9;--color-primary-dark:#77bfa3;--color-primary-light:#a8d8b94d;--color-primary-lighter:#a8d8b933;--color-primary-lightest:#a8d8b91a;--color-secondary:#5c8374;--color-secondary-light:#5c83741a;--color-secondary-muted:#5c837433;--color-neutral:#e0e0e0;--color-neutral-light:#e0e0e080;--color-neutral-dark:#bdbdbd;--bg-primary:#fff;--bg-secondary:#f7f9f7;--bg-tertiary:#f0f0f0;--text-primary:#333;--text-secondary:#333333b3;--text-tertiary:#3339;--text-muted:#33333380;--text-on-primary:#fff;--color-success:#22c55e;--color-success-light:#22c55e1a;--color-danger:#ff7070;--color-danger-light:#ef44441a;--color-warning:#f59e0b;--color-warning-light:#f59e0b1a;--color-info:#3b82f6;--color-info-light:#3b82f61a;--border-light:#e5e7eb;--border-light-subtle:#e5e7eb80;--border-focus:#a8d8b9;--font-family-primary:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", Consolas, monospace;--font-size-display:2rem;--font-size-h1:1.75rem;--font-size-h2:1.5rem;--font-size-h3:1.375rem;--font-size-h4:1.25rem;--font-size-h5:1.125rem;--font-size-body-lg:1rem;--font-size-body:.9375rem;--font-size-body-sm:.875rem;--font-size-caption:.8125rem;--font-size-small:.75rem;--font-size-tiny:.6875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--z-negative:-1;--z-normal:1;--z-tooltip:10;--z-fixed:100;--z-overlay:900;--z-modal:1000;--spacing-0:0;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--radius-none:0;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-default:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--border-width-thin:1px;--border-width-medium:1.5px;--border-width-thick:2px;--shadow-none:none;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 8px #00000014;--shadow-lg:0 8px 16px #0000001a;--shadow-xl:0 12px 24px #0000001f;--shadow-primary:0 4px 12px #a8d8b966;--transition-fast:.15s;--transition-default:.3s;--transition-slow:.5s;--ease-default:cubic-bezier(.4, 0, .2, 1);--header-height:64px;--sidebar-width:280px;--content-max-width:1400px;--input-height-sm:36px;--input-height-md:44px;--input-height-lg:52px;--btn-height-sm:32px;--btn-height-md:40px;--btn-height-lg:48px;--btn-height-xl:56px;--avatar-sm:32px;--avatar-md:40px;--avatar-lg:48px;--avatar-xl:64px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:28px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family-primary);font-size:var(--font-size-body);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}@media (max-width:480px){html{font-size:14px}}@media (min-width:1440px){html{font-size:17px}}@media (min-width:1920px){html{font-size:18px}}.auth-container{background-color:var(--bg-primary);width:100%;min-height:100vh;padding:var(--spacing-4);justify-content:center;align-items:center;display:flex}.auth-wrapper{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;width:100%;display:flex}.auth-content{justify-content:center;align-items:center;gap:var(--spacing-6);width:100%;max-width:28rem;padding:var(--spacing-4);flex-direction:column;display:flex}.auth-icon{border-radius:var(--radius-full);background-color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.auth-icon .material-symbols-outlined{color:var(--text-on-primary);font-size:48px}.auth-icon__img{object-fit:cover;border-radius:var(--radius-full);width:100%;height:100%}.auth-card{border-radius:var(--radius-lg);background-color:var(--bg-primary);width:100%;padding:var(--spacing-8);box-shadow:var(--shadow-md);border:var(--border-width-thin) solid var(--border-light)}.auth-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);color:var(--text-primary);text-align:center;line-height:var(--line-height-tight);margin:0}.auth-subtitle{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-normal);color:var(--text-secondary);text-align:center;margin:var(--spacing-2) 0 0 0;padding-bottom:var(--spacing-6);line-height:var(--line-height-normal)}.form{gap:var(--spacing-4);padding:var(--spacing-3) 0;flex-direction:column;display:flex}.form-group{gap:var(--spacing-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-label--required:after{content:" *";color:var(--color-danger)}.form-input{width:100%;height:var(--input-height-md);padding:0 var(--spacing-4);font-size:var(--font-size-body-sm);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);transition:all var(--transition-fast) var(--ease-default);outline:none}.form-input::placeholder{color:var(--text-tertiary)}.form-input:hover{border-color:var(--color-neutral-dark)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.form-input:disabled{background-color:var(--bg-tertiary);cursor:not-allowed;opacity:.6}.form-input--error{border-color:var(--color-danger)}.form-input--error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.form-hint{font-size:var(--font-size-small);color:var(--text-tertiary)}.form-error{font-size:var(--font-size-small);color:var(--color-danger)}.btn{justify-content:center;align-items:center;gap:var(--spacing-2);font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;text-decoration:none;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{justify-content:center;align-items:center;gap:var(--spacing-2);height:var(--btn-height-md);padding:0 var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-on-primary);background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:inline-flex}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.btn-primary.btn-full{width:100%;height:var(--btn-height-lg)}.btn-secondary{color:var(--color-primary-dark);border:var(--border-width-medium) solid var(--color-primary);border-radius:var(--radius-lg);background-color:#0000}.btn-ghost{color:var(--text-secondary);border-radius:var(--radius-lg);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.link{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--color-primary-dark);cursor:pointer;transition:color var(--transition-fast) var(--ease-default);background:0 0;border:none;padding:0;text-decoration:underline}.link:hover{color:var(--color-secondary)}.link-text{font-size:var(--font-size-body-sm);color:var(--text-secondary)}.auth-footer{padding-top:var(--spacing-4);justify-content:space-between;align-items:center;gap:var(--spacing-4);display:flex}@media (max-width:480px){.auth-content{padding:var(--spacing-2)}.auth-card{padding:var(--spacing-6);border-radius:var(--radius-default)}.auth-icon{width:85px;height:85px}.auth-icon .material-symbols-outlined{font-size:40px}.auth-title{font-size:var(--font-size-h1)}.auth-footer{gap:var(--spacing-3);flex-direction:column}.auth-footer>*{text-align:center;width:100%}}@media (min-width:481px) and (max-width:768px){.auth-content{max-width:24rem}}@media (min-width:1024px){.auth-card{padding:var(--spacing-10)}}.layout-main{padding:var(--spacing-8);flex:1;min-width:0;overflow-y:auto}.sidebar-brand__icon{border-radius:var(--radius-lg);background-color:var(--color-primary-lighter);width:40px;height:40px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand__img{object-fit:cover;border-radius:var(--radius-lg);width:100%;height:100%}.sidebar-brand__text{min-width:0}.sidebar-link{align-items:center;gap:var(--spacing-3);width:100%;padding:var(--spacing-3);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);text-align:left;font-family:var(--font-family-primary);background:0 0;border:none;display:flex}.sidebar-link__icon{flex-shrink:0;font-size:22px}.sidebar-link__text{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-divider{border:none;border-top:var(--border-width-thin) solid var(--border-light);margin:var(--spacing-1) 0}.sidebar-link--danger:hover{background-color:var(--color-danger-light);color:var(--color-danger)}@media (max-width:768px){.layout-main{padding:var(--spacing-6)}}.search-and-filters{padding:var(--spacing-4) 0}.search-row{gap:var(--spacing-4);flex-wrap:wrap;align-items:center;display:flex}.search-label{flex:1;min-width:200px}.search-wrapper{align-items:center;display:flex;position:relative}.search-inline-icon{left:var(--spacing-3);color:var(--text-muted);pointer-events:none;font-size:20px;position:absolute}.search-input{width:100%;height:var(--input-height-md);padding:0 var(--spacing-4) 0 var(--spacing-10);font-size:var(--font-size-body-sm);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);transition:all var(--transition-fast) var(--ease-default);outline:none}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.search-input.full{max-width:400px}.filters{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.filter-select,.filter-button{height:var(--input-height-md);padding:0 var(--spacing-4);font-size:var(--font-size-body-sm);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);cursor:pointer;transition:all var(--transition-fast) var(--ease-default)}.filter-select:hover,.filter-button:hover{border-color:var(--color-primary)}.filter-button{align-items:center;gap:var(--spacing-2);display:inline-flex}.table-container-inner{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:max-content}.data-table th{padding:var(--spacing-4) var(--spacing-6);text-align:left;color:var(--text-secondary);font-size:var(--font-size-small);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;background:var(--bg-secondary);font-weight:700}.data-table td{height:5rem;padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);font-size:var(--font-size-body-sm);vertical-align:middle;border-top:var(--border-width-thin) solid var(--border-light)}.data-table tbody tr{transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background:var(--color-primary-lightest)}.action-icon-btn{border-radius:var(--radius-default);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.action-icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.action-icon-btn .material-symbols-outlined{font-size:20px}.action-link{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-body-sm);color:var(--color-primary-dark);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;font-weight:500}.action-link:hover{background:var(--color-primary-lightest)}.icon-delete{border-radius:var(--radius-default);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-delete:hover{background:var(--color-danger-light);color:var(--color-danger)}.status-badge{align-items:center;gap:var(--spacing-2);border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-small);padding:.35rem .75rem;display:inline-flex}.status-badge.active{color:#065f46;background:var(--color-success-light)}.status-badge.frozen,.status-badge.locked{color:#1e40af;background:var(--color-info-light)}.status-dot{border-radius:var(--radius-full);width:8px;height:8px}.dot-active{background:var(--color-success)}.dot-frozen,.dot-locked{background:var(--color-info)}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-container{background:var(--bg-primary);width:500px;max-width:90%;padding:var(--spacing-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:.3s ease-out modalSlideIn;position:relative}.modal-header{margin-bottom:var(--spacing-6)}.modal-title{font-size:var(--font-size-h3);color:var(--text-primary);margin:0 0 var(--spacing-2) 0;font-weight:800}.modal-subtitle{color:var(--text-secondary);font-size:var(--font-size-body-sm);margin:0}.modal-actions{justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-6);display:flex}.btn-cancel{height:var(--btn-height-md);padding:0 var(--spacing-5);font-size:var(--font-size-body-sm);color:var(--text-secondary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;font-weight:600}.btn-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pagination-shell{padding:var(--spacing-4) var(--spacing-6);border-top:var(--border-width-thin) solid var(--border-light)}.pagination-wrapper{justify-content:center;align-items:center;gap:var(--spacing-2);display:flex}.pagination-button,.pagination-page-link{min-width:36px;height:36px;padding:0 var(--spacing-3);font-size:var(--font-size-body-sm);color:var(--text-secondary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.pagination-button:hover,.pagination-page-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.pagination-page-link.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-primary)}.pagination-dots{padding:0 var(--spacing-2);color:var(--text-muted)}.form-row{gap:var(--spacing-4);margin-bottom:var(--spacing-4);display:flex}.form-col{flex:1;min-width:0}.form-select{width:100%;height:var(--input-height-md);padding:0 var(--spacing-4);font-size:var(--font-size-body-sm);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);cursor:pointer;transition:all var(--transition-fast) var(--ease-default)}.form-select:hover{border-color:var(--color-neutral-dark)}.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.modal-content{background:var(--bg-primary);width:600px;max-width:95%;max-height:90vh;padding:var(--spacing-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:.3s ease-out modalSlideIn;position:relative;overflow-y:auto}.modal-header{margin-bottom:var(--spacing-6);justify-content:space-between;align-items:flex-start;display:flex}.modal-close{top:var(--spacing-4);right:var(--spacing-4);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-default);transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;font-size:24px;display:flex;position:absolute}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-footer{justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-6);padding-top:var(--spacing-4);border-top:var(--border-width-thin) solid var(--border-light);display:flex}.icon-edit{border-radius:var(--radius-default);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-edit:hover{background:var(--color-primary-lightest);color:var(--color-primary-dark)}.icon-edit .material-symbols-outlined{font-size:20px}.btn-save{height:var(--btn-height-md);padding:0 var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-on-primary);background-color:var(--color-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;justify-content:center;align-items:center;display:inline-flex}.btn-save:hover{background-color:var(--color-primary-dark)}.btn-danger{height:var(--btn-height-md);padding:0 var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:#fff;background-color:var(--color-danger);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;justify-content:center;align-items:center;display:inline-flex}.btn-danger:hover{background-color:#dc2626}.action-link.toggle{font-size:var(--font-size-small)}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mb-4{margin-bottom:var(--spacing-4)}.py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.text-xs{font-size:var(--font-size-small)}.text-sm{font-size:var(--font-size-body-sm)}.text-center{text-align:center}.font-medium{font-weight:500}.font-bold{font-weight:700}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.page-title{color:var(--text-primary);font-size:var(--font-size-h2);letter-spacing:-.02em;margin:0;font-weight:900;line-height:1.2}.page-subtitle{color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-2)}.btn-secondary{height:var(--btn-height-md);padding:0 var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);border:var(--border-width-medium) solid var(--color-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;justify-content:center;align-items:center;display:inline-flex}.btn-secondary:hover:not(:disabled){background-color:var(--color-primary-lightest);border-color:var(--color-primary-dark)}.login-title-wrapper{padding-bottom:var(--spacing-6)}.register-name-row{gap:var(--spacing-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:480px){.register-name-row{grid-template-columns:1fr;gap:0}}.register-footer{text-align:center;padding-top:var(--spacing-4)}.register-success-msg{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);text-align:center;margin:0 0 var(--spacing-6) 0}.form-hint{font-size:var(--font-size-caption);color:var(--text-tertiary);margin-top:var(--spacing-1)}.form-label--optional{font-weight:var(--font-weight-normal);color:var(--text-tertiary)}.auth-icon--success,.auth-icon--success .material-symbols-outlined{color:var(--color-success,#2ecc71)}.forgot-code-inputs{justify-content:center;gap:var(--spacing-3);display:flex}.forgot-code-input{text-align:center;width:48px;height:56px;font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-medium) solid var(--border-light);border-radius:var(--radius-default);transition:all var(--transition-fast) var(--ease-default);caret-color:var(--color-primary);outline:none}.forgot-code-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.forgot-code-input.form-input--error{border-color:var(--color-danger)}.forgot-code-input.form-input--error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.forgot-code-input:disabled{background-color:var(--bg-tertiary);cursor:not-allowed;opacity:.6}.forgot-timer-row{justify-content:center;align-items:center;min-height:32px;display:flex}.forgot-timer{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);font-family:var(--font-family-mono);display:inline-flex}.forgot-timer-icon{color:var(--text-tertiary);font-size:18px}.forgot-password-match{align-items:center;gap:var(--spacing-1);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);margin-top:var(--spacing-1);display:inline-flex}.forgot-password-match--ok{color:var(--color-success)}.forgot-password-match--no{color:var(--color-danger)}.forgot-match-icon{font-size:16px}.forgot-success-msg{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);text-align:center;margin:0 0 var(--spacing-6) 0}.forgot-footer{text-align:center;padding-top:var(--spacing-4)}@media (max-width:480px){.forgot-code-inputs{gap:var(--spacing-2)}.forgot-code-input{width:42px;height:48px;font-size:var(--font-size-h4)}}.homework-page{gap:var(--spacing-6);flex-direction:column;display:flex;position:relative}.homework-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:flex}.homework-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.homework-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.homework-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.homework-add-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);margin-left:var(--spacing-4);border:none;flex-shrink:0;display:flex}.homework-add-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.homework-add-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.homework-add-btn__icon{font-size:var(--icon-lg)}.homework-tabs{gap:var(--spacing-6);border-bottom:var(--border-width-thin) solid var(--border-light);display:flex}.homework-tab{appearance:none;padding:var(--spacing-3) 0;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;border-bottom:3px solid #0000}.homework-tab:hover{color:var(--text-primary)}.homework-tab--active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.homework-empty{padding:var(--spacing-10);border-radius:var(--radius-2xl);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);text-align:center;gap:var(--spacing-3);flex-direction:column;align-items:center;display:flex}.homework-empty--modal{padding:var(--spacing-8) var(--spacing-4);border:none}.homework-empty__icon{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:72px;height:72px;color:var(--color-primary-dark);justify-content:center;align-items:center;display:flex}.homework-empty__icon .material-symbols-outlined{font-size:34px}.homework-empty__icon--error{background-color:var(--color-danger-light);color:var(--color-danger)}.homework-empty__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--text-primary)}.homework-empty__text{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);max-width:520px;margin:0}.homework-list{gap:var(--spacing-4);flex-direction:column;display:flex}.homework-card{align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);display:flex}.homework-card--clickable{cursor:pointer}.homework-card--clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.homework-card--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.homework-card__icon{border-radius:var(--radius-lg);background-color:var(--color-primary-lighter);width:48px;height:48px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-card__icon .material-symbols-outlined{font-size:22px}.homework-card__content{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.homework-card__title{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.homework-card__meta{font-size:var(--font-size-body-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.homework-card__actions{align-items:center;gap:var(--spacing-2);flex-shrink:0;display:flex}.homework-action-btn{border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.homework-action-btn:hover{background-color:var(--bg-tertiary);color:var(--color-primary-dark)}.homework-action-btn--danger:hover{color:var(--color-danger)}.homework-action-btn--view:hover{color:var(--color-info)}.homework-modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:var(--spacing-4);animation:homework-modal-fade-in var(--transition-default) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.homework-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-2xl);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-10);animation:homework-modal-slide-in var(--transition-default) ease-out;position:relative;overflow-y:auto}.homework-modal-close{top:var(--spacing-4);right:var(--spacing-4);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.homework-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.homework-modal-header{align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:flex}.homework-modal-badge{border-radius:var(--radius-xl);background-color:var(--color-primary-lighter);width:56px;height:56px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-modal-badge .material-symbols-outlined{font-size:26px}.homework-modal-header__text{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.homework-modal-type{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.homework-modal-title{font-size:var(--font-size-h2);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);margin:0}.homework-modal-info-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:1fr;display:grid}@media (min-width:768px){.homework-modal-info-grid{gap:var(--spacing-6);grid-template-columns:repeat(2,1fr)}}.homework-modal-info-item{gap:var(--spacing-1);flex-direction:column;display:flex}.homework-modal-info-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.homework-modal-info-value{font-size:var(--font-size-body);color:var(--text-secondary)}.homework-modal-section{margin-bottom:var(--spacing-8)}.homework-modal-section__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-2)}.homework-modal-description{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.homework-modal-files{gap:var(--spacing-2);flex-direction:column;display:flex}.homework-modal-file{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);transition:background-color var(--transition-fast) var(--ease-default);display:flex}.homework-modal-file:hover{background-color:var(--bg-tertiary)}.homework-modal-file__icon{border-radius:var(--radius-md);background-color:var(--color-primary-lighter);width:44px;height:44px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-modal-file__icon .material-symbols-outlined{font-size:22px}.homework-modal-file__name{min-width:0;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.homework-modal-file__action{border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-modal-file__action:hover{background-color:var(--bg-primary);color:var(--color-primary-dark)}.homework-modal-files__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-3) 0}.homework-modal-actions{gap:var(--spacing-3);margin-top:var(--spacing-6);justify-content:flex-end;display:flex}.homework-modal-completion{gap:var(--spacing-3);flex-direction:column;display:flex}.homework-modal-completion__top{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.homework-modal-completion__label{font-size:var(--font-size-body-sm);color:var(--text-secondary)}.homework-modal-completion__value{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);white-space:nowrap}.homework-modal-completion__bar{background-color:var(--bg-tertiary);border-radius:var(--radius-full);border:var(--border-width-thin) solid var(--border-light);width:100%;height:10px;overflow:hidden}.homework-modal-completion__bar-fill{background-color:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-default) var(--ease-default)}.homework-modal-completion__actions{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.homework-modal-chip{border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-full);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default)}.homework-modal-chip:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-light);color:var(--text-primary)}.homework-modal-chip--active{background-color:var(--color-primary-lighter);border-color:var(--color-primary);color:var(--color-primary-dark)}.homework-modal-studentlist{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:var(--border-width-thin) solid var(--border-light)}.homework-modal-studentlist__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-3)}.homework-modal-studentlist__list{gap:var(--spacing-2);flex-direction:column;display:flex}.homework-modal-studentlist__item{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-tertiary);border-radius:var(--radius-lg);display:flex}.homework-modal-studentlist__name{font-size:var(--font-size-body-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.homework-modal-studentlist__badge{font-size:var(--font-size-tiny);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);padding:var(--spacing-1) var(--spacing-3);white-space:nowrap}.homework-modal-studentlist__badge--success{background-color:var(--color-success-light);color:var(--color-success)}.homework-modal-studentlist__badge--danger{background-color:var(--color-danger-light);color:var(--color-danger)}.homework-modal-studentlist__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-3) 0}.homework-modal-btn{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:inline-flex}.homework-modal-btn--secondary{color:var(--color-primary-dark);border:var(--border-width-medium) solid var(--color-primary);background-color:#0000}.homework-modal-btn--secondary:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-dark)}.homework-modal-btn--danger{background-color:var(--color-danger);color:var(--text-on-primary)}.homework-modal-btn--danger:hover{box-shadow:var(--shadow-danger)}@keyframes homework-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes homework-modal-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.homework-add-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:clamp(var(--spacing-3), 2vw, var(--spacing-6));animation:homework-modal-fade-in var(--transition-default) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.homework-add-modal{width:min(920px, calc(100vw - (2 * var(--spacing-4))));background-color:var(--bg-primary);border-radius:var(--radius-2xl);max-width:920px;height:min(92vh,920px);max-height:min(92vh,920px);box-shadow:var(--shadow-xl);padding:clamp(var(--spacing-6), 2.8vw, var(--spacing-10));animation:homework-modal-slide-in var(--transition-default) ease-out;flex-direction:column;display:flex;position:relative;overflow:hidden}.homework-add-close{top:var(--spacing-4);right:var(--spacing-4);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.homework-add-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.homework-add-title{margin:0 0 var(--spacing-6) 0;font-size:var(--font-size-h2);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);flex-shrink:0}.homework-add-form{gap:var(--spacing-6);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.homework-add-grid{gap:var(--spacing-8);flex:1;grid-template-columns:1.1fr .9fr;min-height:0;display:grid;overflow:hidden}.homework-add-grid--single{grid-template-columns:1fr}.homework-add-modal--announcement .homework-add-title{margin-bottom:var(--spacing-5)}.homework-add-grid--announcement{gap:var(--spacing-6);grid-template-columns:1fr 1fr}.homework-add-modal--announcement .homework-add-groups__list{max-height:160px}.homework-add-left{min-height:0;padding-right:var(--spacing-2);flex-direction:column;display:flex;overflow:hidden auto}.homework-add-right{gap:var(--spacing-4);min-height:0;padding-right:var(--spacing-2);flex-direction:column;display:flex;overflow:hidden auto}.homework-add-field{gap:var(--spacing-2);margin-bottom:var(--spacing-5);flex-direction:column;display:flex}.homework-add-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.homework-add-input,.homework-add-select{width:100%;height:var(--input-height-md);padding:0 var(--spacing-5);background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default)}.homework-add-input:focus,.homework-add-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.homework-add-textarea{width:100%;min-height:140px;padding:var(--spacing-3) var(--spacing-5);background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default);resize:vertical}.homework-add-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.homework-add-dropzone{border:2px dashed var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-tertiary);padding:var(--spacing-6);justify-content:center;align-items:center;gap:var(--spacing-2);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);flex-direction:column;display:flex}.homework-add-dropzone:hover{border-color:var(--color-primary);background-color:var(--color-primary-lightest)}.homework-add-file-input{display:none}.homework-add-dropzone__icon{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:56px;height:56px;color:var(--color-primary-dark);justify-content:center;align-items:center;display:flex}.homework-add-dropzone__icon .material-symbols-outlined{font-size:28px}.homework-add-dropzone__text{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.homework-add-dropzone__hint{font-size:var(--font-size-small);color:var(--text-tertiary)}.homework-add-files-wrapper{margin-top:var(--spacing-3);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-tertiary);overflow:hidden}.homework-add-files-header{padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-secondary);border-bottom:var(--border-width-thin) solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.homework-add-files-title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.homework-add-files-hint{font-size:var(--font-size-small);color:var(--text-tertiary);align-items:center;gap:var(--spacing-1);display:flex}.homework-add-files-hint:before{content:"↕";font-size:12px}.homework-add-files{gap:var(--spacing-2);max-height:160px;padding:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.homework-add-file{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-primary);border-radius:var(--radius-md);transition:background-color var(--transition-fast) var(--ease-default);display:flex}.homework-add-file:hover{background-color:var(--color-primary-lightest)}.homework-add-file__icon{border-radius:var(--radius-md);background-color:var(--color-primary-lighter);width:44px;height:44px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-add-file__name{min-width:0;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.homework-add-file__remove{border-radius:var(--radius-full);width:36px;height:36px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.homework-add-file__remove:hover{background-color:var(--bg-tertiary);color:var(--color-danger)}.homework-add-students{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-primary);flex-direction:column;flex:1;min-height:320px;display:flex;overflow:hidden}.homework-add-groups{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-primary);flex-shrink:0;overflow:hidden}.homework-add-groups__search{padding:var(--spacing-2);border-bottom:var(--border-width-thin) solid var(--border-light-subtle);background-color:var(--bg-tertiary);position:relative}.homework-add-groups__search-icon{left:calc(var(--spacing-2) + var(--spacing-3));color:var(--text-tertiary);font-size:var(--icon-lg);position:absolute;top:50%;transform:translateY(-50%)}.homework-add-groups__search-input{width:100%;height:var(--input-height-sm);padding:0 var(--spacing-4) 0 calc(var(--spacing-4) + var(--spacing-6));border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-body-sm);transition:all var(--transition-fast)}.homework-add-groups__search-input::placeholder{color:var(--text-tertiary)}.homework-add-groups__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.homework-add-groups__list{max-height:160px;padding:var(--spacing-2);gap:var(--spacing-2);background-color:var(--bg-tertiary);flex-direction:column;display:flex;overflow-y:auto}.homework-add-groups__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);background-color:#fff6;display:flex}.homework-add-groups__item:hover{background-color:var(--color-primary-lightest)}.homework-add-groups__checkbox{width:var(--checkbox-size);height:var(--checkbox-size);accent-color:var(--color-primary)}.homework-add-groups__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.homework-add-groups__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-4);text-align:center;background-color:var(--bg-tertiary)}.homework-add-students__header{padding:var(--spacing-4);border-bottom:var(--border-width-thin) solid var(--border-light);gap:var(--spacing-3);flex-direction:column;display:flex}.homework-add-students__search{position:relative}.homework-add-students__search-icon{top:50%;left:var(--spacing-4);color:var(--text-tertiary);font-size:20px;position:absolute;transform:translateY(-50%)}.homework-add-students__search-input{width:100%;height:var(--input-height-md);padding:0 var(--spacing-5) 0 calc(var(--spacing-5) + var(--spacing-6));background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary)}.homework-add-students__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.homework-add-students__list{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-3);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.homework-add-students__item{align-items:center;gap:var(--spacing-3);cursor:pointer;display:flex}.homework-add-students__checkbox{width:var(--checkbox-size);height:var(--checkbox-size);accent-color:var(--color-primary)}.homework-add-students__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.homework-add-students__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-4) 0;text-align:center}.homework-add-actions{justify-content:flex-end;gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);flex-shrink:0;display:flex}.homework-add-btn-secondary{color:var(--text-secondary);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none}.homework-add-btn-secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.homework-add-btn-primary{background-color:var(--color-primary);color:var(--text-on-primary);padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);border:none}.homework-add-btn-primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.homework-add-btn-primary:active{box-shadow:var(--shadow-none);transform:translateY(0)}@media (max-width:900px){.homework-add-modal{width:min(760px, calc(100vw - (2 * var(--spacing-4))));padding:clamp(var(--spacing-6), 3vw, var(--spacing-8))}.homework-add-grid{gap:var(--spacing-6);grid-template-columns:1fr}}@media (max-width:768px){.homework-add-modal{width:calc(100vw - (2 * var(--spacing-3)));max-height:94vh}.homework-add-actions{flex-direction:column}.homework-add-btn-secondary,.homework-add-btn-primary{justify-content:center;width:100%}.homework-title{font-size:var(--font-size-h1)}.homework-header{flex-direction:column}.homework-add-btn{justify-content:center;width:100%;margin-left:0}.homework-card{align-items:flex-start}.homework-card__meta{white-space:normal}.homework-modal-content{padding:var(--spacing-8)}.homework-modal-actions{flex-direction:column}.homework-modal-btn{width:100%}}.sidebar-brand__title{font-size:var(--font-size-h5);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary)}.sidebar-brand__subtitle{font-size:var(--font-size-caption);color:var(--text-secondary);margin-top:var(--spacing-1)}.sidebar-link{align-items:center;gap:var(--spacing-3);width:100%;padding:var(--spacing-3);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);text-align:left;background:0 0;border:none;display:flex}.sidebar-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sidebar-link__icon{font-size:22px}.sidebar-link__text{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium)}.sidebar-link--active{background-color:var(--color-primary-lighter);color:var(--color-primary-dark)}.sidebar-footer{gap:var(--spacing-2);padding-top:var(--spacing-2);border-top:var(--border-width-thin) solid var(--border-light);flex-direction:column;display:flex}.dashboard-header{margin-bottom:var(--spacing-8)}.dashboard-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary)}.dashboard-subtitle{margin-top:var(--spacing-2);font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.dashboard-grid{gap:var(--spacing-6);grid-template-columns:1fr;display:grid}.dashboard-col{gap:var(--spacing-6);flex-direction:column;display:flex}.dashboard-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.dashboard-card__header{margin-bottom:var(--spacing-4)}.dashboard-card__header--between{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.dashboard-card__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight)}.dashboard-link{cursor:pointer;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--color-primary-dark);transition:color var(--transition-fast) var(--ease-default);background:0 0;border:none;text-decoration:underline}.dashboard-link:hover{color:var(--color-secondary)}.dashboard-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-list{gap:var(--spacing-4);flex-direction:column;display:flex}.lesson-item{justify-content:space-between;align-items:center;gap:var(--spacing-4);display:flex}.lesson-item__left{align-items:center;gap:var(--spacing-4);min-width:0;display:flex}.lesson-item__icon{border-radius:var(--radius-lg);background-color:var(--color-primary-lightest);width:48px;height:48px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson-item__icon .material-symbols-outlined{font-size:24px}.lesson-item__content{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.lesson-item__title{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lesson-item__meta{font-size:var(--font-size-body-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lesson-item__action{cursor:pointer;color:var(--color-primary-dark);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);transition:color var(--transition-fast) var(--ease-default);background:0 0;border:none;flex-shrink:0}.lesson-item__action:hover{color:var(--color-secondary)}.lesson-item__action:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-empty{padding-top:var(--spacing-4);margin-top:var(--spacing-2);border-top:var(--border-width-thin) solid var(--border-light);justify-content:center;display:flex}.lesson-empty__text{font-size:var(--font-size-body-sm);color:var(--text-secondary);text-align:center}.quick-actions{gap:var(--spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.quick-action{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);border-radius:var(--radius-lg);cursor:pointer;background-color:var(--color-primary-lightest);transition:background-color var(--transition-fast) var(--ease-default);border:none;flex-direction:column;display:flex}.quick-action:hover{background-color:var(--color-primary-lighter)}.quick-action:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.quick-action__icon{color:var(--color-primary-dark);font-size:32px}.quick-action__text{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);text-align:center}.announcement-list{gap:var(--spacing-4);flex-direction:column;display:flex}.announcement-item__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.announcement-item__time{margin-top:var(--spacing-1);font-size:var(--font-size-caption);color:var(--text-secondary)}.announcement-divider{background-color:var(--border-light);height:1px}.announcement-item--clickable{cursor:pointer;text-align:left;width:100%;padding:var(--spacing-2) var(--spacing-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast) var(--ease-default);background:0 0;border:none}.announcement-item--clickable:hover{background-color:var(--color-primary-lightest)}.announcement-item--clickable:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-md)}.db-modal-overlay{z-index:1000;padding:var(--spacing-4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:db-overlay-in var(--transition-fast) var(--ease-default);background-color:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes db-overlay-in{0%{opacity:0}to{opacity:1}}.db-modal{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;animation:db-modal-in var(--transition-normal) var(--ease-default);overflow-y:auto}@keyframes db-modal-in{0%{opacity:0;transform:translateY(-16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.db-modal__header{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-5) var(--spacing-6);border-bottom:var(--border-width-thin) solid var(--border-light);display:flex}.db-modal__title{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;display:flex}.db-modal__title-icon{color:var(--color-primary-dark);font-size:22px}.db-modal__close{cursor:pointer;color:var(--text-secondary);padding:var(--spacing-1);border-radius:var(--radius-md);transition:color var(--transition-fast) var(--ease-default), background-color var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.db-modal__close:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.db-modal__close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.db-modal-form{padding:var(--spacing-6);gap:var(--spacing-4);flex-direction:column;display:flex}.db-form-group{gap:var(--spacing-2);flex-direction:column;display:flex}.db-form-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.db-form-hint{font-weight:var(--font-weight-regular);color:var(--text-secondary)}.db-form-input{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-body);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-default), box-shadow var(--transition-fast) var(--ease-default);box-sizing:border-box;outline:none}.db-form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f126}.db-form-input:disabled{opacity:.6;cursor:not-allowed}.db-form-textarea{resize:vertical;min-height:80px;font-family:inherit}.db-form-error{font-size:var(--font-size-body-sm);color:var(--color-error,#ef4444);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);border-left:3px solid var(--color-error,#ef4444);background-color:#ef444414}.db-group-list{gap:var(--spacing-2);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-md);max-height:160px;padding:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.db-group-empty{font-size:var(--font-size-body-sm);color:var(--text-secondary);padding:var(--spacing-2) var(--spacing-2);text-align:center}.db-group-item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);display:flex}.db-group-item:hover{background-color:var(--bg-secondary)}.db-group-item--checked{background-color:var(--color-primary-lightest)}.db-group-checkbox{accent-color:var(--color-primary-dark);cursor:pointer;flex-shrink:0;width:16px;height:16px}.db-group-name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.db-modal-actions{justify-content:flex-end;gap:var(--spacing-3);padding-top:var(--spacing-2);border-top:var(--border-width-thin) solid var(--border-light);margin-top:var(--spacing-2);display:flex}@media (min-width:1025px){.dashboard-grid{grid-template-columns:2fr 1fr;align-items:start}.dashboard-col--wide{grid-column:1}}@media (max-width:768px){.layout-shell{flex-direction:column}.layout-sidebar{border-right:none;border-bottom:var(--border-width-thin) solid var(--border-light);width:100%}.layout-main{padding:var(--spacing-6)}}@media (max-width:480px){.layout-main{padding:var(--spacing-4)}.dashboard-title{font-size:var(--font-size-h1)}.quick-actions{grid-template-columns:1fr}}.layout-main{padding:var(--spacing-8);flex:1}.sidebar-brand{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);display:flex}.sidebar-brand__icon{border-radius:var(--radius-lg);background-color:var(--color-primary-lighter);width:40px;height:40px;color:var(--color-primary-dark);justify-content:center;align-items:center;display:flex}.sidebar-brand__icon .material-symbols-outlined{font-size:22px}.sidebar-brand__title{font-size:var(--font-size-h5);font-weight:var(--font-weight-bold);color:var(--color-primary-dark)}.sidebar-brand__subtitle{font-size:var(--font-size-small);color:var(--text-secondary)}.sidebar-nav{gap:var(--spacing-1);flex-direction:column;flex:1;display:flex}.sidebar-link{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);text-align:left;background:0 0;border:none;width:100%;text-decoration:none;display:flex}.sidebar-link:hover{background-color:var(--color-primary-lightest);color:var(--text-primary)}.sidebar-link--active{background-color:var(--color-primary-lighter);color:var(--color-primary-dark);font-weight:var(--font-weight-semibold)}.sidebar-link--danger{color:var(--color-danger)}.sidebar-link--danger:hover{color:var(--color-danger);background-color:#ff70701a}.sidebar-link__icon{width:var(--menu-icon-size);height:var(--menu-icon-size);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.sidebar-link__text{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-footer{gap:var(--spacing-1);flex-direction:column;display:flex}.students-page{gap:var(--spacing-6);flex-direction:column;display:flex}.students-header{margin-bottom:var(--spacing-8);justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);display:flex}.students-header__content{flex:1}.students-title{font-size:var(--font-size-display);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-2) 0}.students-subtitle{font-size:var(--font-size-body-sm);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.students-create-group-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);margin-left:var(--spacing-4);border:none;display:flex}.students-create-group-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.students-create-group-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.students-create-group-btn__icon{font-size:var(--icon-lg)}.students-filters{gap:var(--spacing-4);margin-bottom:var(--spacing-6);flex-direction:column;display:flex}.students-search{width:100%;max-width:400px}.students-search__wrapper{align-items:center;width:100%;display:flex;position:relative}.students-search__icon{width:48px;height:100%;color:var(--text-secondary);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.students-search__input{width:100%;height:48px;padding:0 var(--spacing-4) 0 48px;font-size:var(--font-size-body-lg);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);transition:all var(--transition-fast) var(--ease-default);box-shadow:var(--shadow-sm);outline:none}.students-search__input::placeholder{color:var(--text-tertiary)}.students-search__input:hover{border-color:var(--color-neutral-dark)}.students-search__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.students-grade-filter{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.students-grade-filter__label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);white-space:nowrap}.students-grade-filter__buttons{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.students-grade-filter__btn{padding:0 var(--spacing-4);height:40px;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap;justify-content:center;align-items:center;display:flex}.students-grade-filter__btn:hover{background-color:var(--bg-tertiary)}.students-grade-filter__btn--active{background-color:var(--color-primary-lighter);color:var(--color-primary-dark);border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.students-table-container{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:var(--border-width-thin) solid var(--border-light);overflow-x:auto}.students-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-body-sm)}.students-table__head{background-color:var(--bg-tertiary)}.students-table__head th{padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);color:var(--text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);text-align:left;border-bottom:var(--border-width-thin) solid var(--border-light)}.students-table__head th:first-child{border-top-left-radius:var(--radius-lg)}.students-table__head th:last-child{border-top-right-radius:var(--radius-lg);text-align:center}.students-table__body{border-spacing:0 8px}.students-table__row{background-color:var(--bg-primary);transition:background-color var(--transition-fast) var(--ease-default)}.students-table__row--clickable{cursor:pointer}.students-table__row:hover{background-color:var(--color-primary-lightest)}.students-table__row:last-child .students-table__td{border-bottom:none}.students-table__td{padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);border-bottom:var(--border-width-thin) solid var(--border-light);vertical-align:middle}.students-table__td--name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.students-table__td--center{text-align:center}.students-table__actions{justify-content:center;align-items:center;gap:var(--spacing-1);display:flex}.students-table__view-btn,.students-table__delete-btn{cursor:pointer;border-radius:var(--radius-sm);width:32px;height:32px;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.students-table__view-btn{color:var(--color-secondary)}.students-table__view-btn:hover{background-color:var(--bg-tertiary);color:var(--color-primary-dark)}.students-table__delete-btn{color:var(--color-danger)}.students-table__delete-btn:hover{color:var(--color-danger);background-color:#ff70701a}.students-table__view-btn .material-symbols-outlined,.students-table__delete-btn .material-symbols-outlined{font-size:var(--icon-md)}@media (max-width:768px){.layout-main{padding:var(--spacing-6)}.students-header{align-items:stretch;gap:var(--spacing-6);flex-direction:column}.students-title{font-size:var(--font-size-h1)}.students-create-group-btn{justify-content:center}.students-filters{gap:var(--spacing-6)}.students-grade-filter{align-items:flex-start;gap:var(--spacing-2);flex-direction:column}.students-grade-filter__buttons{justify-content:flex-start;width:100%}.students-grade-filter__btn{flex:1;justify-content:center}.students-table-container{border-left:none;border-right:none;border-radius:0}.students-table__th,.students-table__td{padding:var(--spacing-3);font-size:var(--font-size-small)}.students-table__th{font-size:var(--font-size-tiny)}}@media (max-width:480px){.layout-main{padding:var(--spacing-4)}.students-search{max-width:none}.students-search__input{font-size:var(--font-size-body)}.students-grade-filter__buttons{flex-direction:column;width:100%}.students-grade-filter__btn{width:100%}.students-table{font-size:var(--font-size-small)}.students-table__th,.students-table__td{padding:var(--spacing-2)}}.students-modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);background-color:#00000080;justify-content:center;align-items:center;animation:.3s ease-out students-modal-fade-in;display:flex;position:fixed;inset:0}.students-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--spacing-10);width:90%;max-width:560px;max-height:90vh;animation:.3s ease-out students-modal-slide-in;position:relative;overflow-y:auto}.students-modal-close{top:var(--spacing-4);right:var(--spacing-4);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.students-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.students-modal-header{margin-bottom:var(--spacing-6);flex-direction:column;align-items:center;display:flex}.students-modal-avatar{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:80px;height:80px;color:var(--color-primary-dark);margin-bottom:var(--spacing-4);justify-content:center;align-items:center;display:flex}.students-modal-avatar .material-symbols-outlined{font-size:40px}.students-modal-title{font-size:var(--font-size-h2);color:var(--text-primary);text-align:center;font-weight:900;line-height:var(--line-height-tight);margin:0}.students-modal-info{margin-bottom:var(--spacing-8)}.students-modal-info-grid{gap:var(--spacing-4);grid-template-columns:1fr;display:grid}@media (min-width:768px){.students-modal-info-grid{gap:var(--spacing-6);grid-template-columns:repeat(2,1fr)}}.students-modal-info-item{gap:var(--spacing-1);flex-direction:column;display:flex}.students-modal-info-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.students-modal-info-value{font-size:var(--font-size-body);color:var(--text-secondary)}.students-modal-homework{margin-bottom:var(--spacing-2)}.students-modal-homework-title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-4) 0}.students-modal-homework-cards{gap:var(--spacing-3);grid-template-columns:1fr 1fr;display:grid}.students-modal-homework-card{align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);display:flex}.students-modal-homework-card__icon{border-radius:var(--radius-default);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.students-modal-homework-card__icon .material-symbols-outlined{font-size:22px}.students-modal-homework-card--completed .students-modal-homework-card__icon{color:var(--color-success);background-color:#34c7591f}.students-modal-homework-card--pending .students-modal-homework-card__icon{color:var(--color-warning,#ff9500);background-color:#ff95001f}.students-modal-homework-card__content{flex-direction:column;min-width:0;display:flex}.students-modal-homework-card__value{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.1}.students-modal-homework-card__label{font-size:var(--font-size-caption);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.students-modal-analysis{margin-top:var(--spacing-8)}.students-modal-analysis-title{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-4) 0}.students-modal-analysis-total{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-normal);color:var(--text-secondary)}.students-modal-analysis-list{gap:var(--spacing-2);flex-direction:column;display:flex}.students-modal-analysis-accordion{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);transition:box-shadow var(--transition-fast) var(--ease-default);overflow:hidden}.students-modal-analysis-accordion--open{box-shadow:var(--shadow-sm)}.students-modal-analysis-accordion__header{width:100%;padding:var(--spacing-4);background-color:var(--bg-primary);cursor:pointer;font-family:var(--font-family-primary);transition:background-color var(--transition-fast) var(--ease-default);border:none;justify-content:space-between;align-items:center;display:flex}.students-modal-analysis-accordion__header:hover{background-color:var(--bg-tertiary)}.students-modal-analysis-accordion__left{align-items:center;gap:var(--spacing-2);display:flex}.students-modal-analysis-accordion__chevron{color:var(--text-secondary);transition:transform .2s var(--ease-default);font-size:20px}.students-modal-analysis-accordion--open .students-modal-analysis-accordion__chevron{transform:rotate(90deg)}.students-modal-analysis-accordion__subject{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.students-modal-analysis-accordion__badge{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);background-color:var(--color-primary-lightest);border-radius:var(--radius-full);padding:var(--spacing-1) var(--spacing-3);white-space:nowrap}.students-modal-analysis-accordion__body{gap:var(--spacing-1);padding:0 var(--spacing-4) var(--spacing-4) var(--spacing-4);flex-direction:column;display:flex}.students-modal-analysis-topic{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-default);background-color:var(--bg-tertiary);display:flex}.students-modal-analysis-topic__name{min-width:0;font-size:var(--font-size-body-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.students-modal-analysis-topic__count{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-align:right;flex-shrink:0;min-width:28px}.students-modal-analysis-empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);background-color:var(--bg-tertiary);border-radius:var(--radius-lg);padding:var(--spacing-4)}@keyframes students-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes students-modal-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.groups-page{gap:var(--spacing-6);flex-direction:column;display:flex;position:relative}.groups-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-6);display:flex}.groups-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.groups-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.groups-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.groups-create-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);margin-left:var(--spacing-4);border:none;flex-shrink:0;display:flex}.groups-create-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.groups-create-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.groups-create-btn__icon{font-size:var(--icon-lg)}.groups-grid{gap:var(--spacing-6);grid-template-columns:1fr;display:grid}@media (min-width:640px){.groups-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.groups-grid{grid-template-columns:repeat(3,1fr)}}.groups-card{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);flex-direction:column;display:flex}.groups-card:hover{box-shadow:var(--shadow-md)}.groups-card__content{gap:var(--spacing-2);flex-direction:column;flex-grow:1;display:flex}.groups-card__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.groups-card__description{font-size:var(--font-size-body-sm);color:var(--text-secondary);margin:var(--spacing-2) 0 var(--spacing-4) 0;line-height:var(--line-height-normal)}.groups-card__members{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);color:var(--text-primary);display:flex}.groups-card__members-icon{font-size:var(--font-size-body)}.groups-card__members-count{font-weight:var(--font-weight-medium)}.groups-card__actions{align-items:center;gap:var(--spacing-3);margin-top:var(--spacing-6);display:flex}.groups-card__btn{border-radius:var(--radius-lg);height:44px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;justify-content:center;align-items:center;display:flex}.groups-card__btn--detail{background-color:var(--color-primary-lightest);color:var(--text-primary);font-size:var(--font-size-body-sm);padding:0 var(--spacing-4);flex-grow:1}.groups-card__btn--detail:hover{background-color:var(--color-primary-lighter)}.groups-card__btn--icon{background-color:var(--color-primary-lightest);width:44px;color:var(--text-primary);padding:0}.groups-card__btn--icon:hover{background-color:var(--color-primary-lighter)}.groups-card__btn--danger{color:var(--color-danger);background-color:#ef44441a}.groups-card__btn--danger:hover{background-color:#ef444433}.groups-card__btn .material-symbols-outlined{font-size:var(--icon-md)}.groups-modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:var(--spacing-4);animation:groups-modal-fade-in var(--transition-default) ease-out;background-color:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.groups-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);width:100%;max-width:512px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-8);animation:groups-modal-slide-in var(--transition-default) ease-out;position:relative;overflow-y:auto}.groups-modal-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-6) 0;text-align:center}.groups-modal-form{gap:var(--spacing-6);flex-direction:column;display:flex}.groups-modal-field{gap:var(--spacing-2);flex-direction:column;display:flex}.groups-modal-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);display:block}.groups-modal-input,.groups-modal-textarea{width:100%;height:48px;padding:0 var(--spacing-4);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default)}.groups-modal-textarea{height:auto;padding:var(--spacing-4);resize:vertical;min-height:96px}.groups-modal-input:focus,.groups-modal-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.groups-modal-input::placeholder,.groups-modal-textarea::placeholder{color:var(--text-tertiary)}.groups-modal-disconnected-warning{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-lg);background-color:#fff7ed;border:1px solid #fed7aa;display:flex}.groups-modal-disconnected-warning__icon{color:#ea580c;flex-shrink:0;margin-top:1px;font-size:22px}.groups-modal-disconnected-warning__content{flex:1;min-width:0}.groups-modal-disconnected-warning__text{font-size:var(--font-size-body-sm);color:#9a3412;margin:0 0 var(--spacing-2) 0;line-height:var(--line-height-normal)}.groups-modal-disconnected-warning__list{padding-left:var(--spacing-5);font-size:var(--font-size-body-sm);color:#c2410c;line-height:var(--line-height-relaxed);margin:0}.groups-modal-students-wrapper{position:relative}.groups-modal-students__search-wrapper{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);padding:0 var(--spacing-4);background-color:var(--bg-primary);height:48px;margin-bottom:var(--spacing-2);align-items:center;display:flex}.groups-modal-students__search-icon{color:var(--text-secondary);font-size:var(--icon-md);margin-right:var(--spacing-2);flex-shrink:0}.groups-modal-students__search-input{width:100%;font-size:var(--font-size-body);color:var(--text-primary);background-color:#0000;border:none;outline:none;flex:1}.groups-modal-students__search-input::placeholder{color:var(--text-tertiary)}.groups-modal-students__search-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter)}.groups-modal-students__list{max-height:192px;padding:var(--spacing-2);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-primary);gap:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.groups-modal-students__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);display:flex}.groups-modal-students__item:hover{background-color:var(--color-primary-lightest)}.groups-modal-students__checkbox{width:var(--checkbox-size);height:var(--checkbox-size);accent-color:var(--color-primary);border-radius:var(--radius-sm)}.groups-modal-students__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.groups-modal-students__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-4);text-align:center}.groups-modal-actions{justify-content:flex-end;gap:var(--spacing-4);padding-top:var(--spacing-4);display:flex}.groups-modal-btn{padding:var(--spacing-3) var(--spacing-8);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none}.groups-modal-btn--cancel{background-color:var(--color-primary-lightest);color:var(--text-primary)}.groups-modal-btn--cancel:hover{background-color:var(--color-primary-lighter)}.groups-modal-btn--primary{background-color:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.groups-modal-btn--primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.groups-modal-btn--primary:active{box-shadow:var(--shadow-none);transform:translateY(0)}.groups-detail-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:var(--spacing-4);animation:groups-modal-fade-in var(--transition-default) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.groups-detail-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-6);animation:groups-modal-slide-in var(--transition-default) ease-out;position:relative;overflow-y:auto}.groups-detail-close{top:var(--spacing-4);right:var(--spacing-4);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.groups-detail-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.groups-detail-header{margin-bottom:var(--spacing-4)}.groups-detail-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-1) 0}.groups-detail-description{font-size:var(--font-size-body-sm);color:var(--text-secondary);margin:0}.groups-detail-actions{gap:var(--spacing-3);margin-bottom:var(--spacing-6);flex-direction:column;display:flex}.groups-detail-action-btn{justify-content:center;align-items:center;gap:var(--spacing-2);background-color:var(--color-primary-lighter);width:100%;height:48px;color:var(--color-primary-dark);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:flex}.groups-detail-action-btn:hover{background-color:var(--color-primary-light)}.groups-detail-action-btn .material-symbols-outlined{font-size:var(--icon-md)}.groups-detail-members-title{font-size:var(--font-size-h5);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-3) 0}.groups-detail-members-list{gap:var(--spacing-3);max-height:256px;padding-right:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.groups-detail-member{justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.groups-detail-member__info{align-items:center;gap:var(--spacing-3);flex:1;min-width:0;display:flex}.groups-detail-member__avatar{border-radius:var(--radius-full);background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--bg-tertiary);flex-shrink:0;width:40px;height:40px}.groups-detail-member__avatar-icon{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:36px;height:36px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.groups-detail-member__avatar-icon .material-symbols-outlined{font-size:20px}.groups-detail-member__name{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.groups-detail-member__remove{width:36px;height:36px;color:var(--color-danger);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.groups-detail-member__remove:hover{color:var(--color-danger);background-color:#ef44441a}.groups-detail-section{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:var(--border-width-thin) solid var(--border-light)}.groups-detail-section__title{font-size:var(--font-size-h5);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-3) 0}.groups-detail-materials-list{gap:var(--spacing-2);flex-direction:column;display:flex}.groups-detail-material{align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);transition:background-color var(--transition-fast) var(--ease-default);display:flex}.groups-detail-material:hover{background-color:var(--bg-tertiary)}.groups-detail-material__icon{border-radius:var(--radius-md);background-color:var(--color-primary-lighter);width:44px;height:44px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.groups-detail-material__icon .material-symbols-outlined{font-size:22px}.groups-detail-material__info{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.groups-detail-material__name{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.groups-detail-material__date{font-size:var(--font-size-small);color:var(--text-secondary);margin:0}.groups-detail-material__download{border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.groups-detail-material__download:hover{background-color:var(--bg-primary);color:var(--color-primary-dark)}.groups-detail-material__download .material-symbols-outlined{font-size:var(--icon-md)}.groups-detail-materials__empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);padding:var(--spacing-3) 0;text-align:center}.groups-detail-footer{margin-top:var(--spacing-6);justify-content:flex-end;display:flex}.groups-detail-close-btn{padding:var(--spacing-3) var(--spacing-6);background-color:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none}.groups-detail-close-btn:hover{background-color:var(--color-neutral-dark);color:var(--text-on-primary)}@keyframes groups-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes groups-modal-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.groups-page{gap:var(--spacing-4)}.groups-header{margin-bottom:var(--spacing-4);flex-direction:column}.groups-title{font-size:var(--font-size-h1)}.groups-create-btn{justify-content:center;width:100%;margin-left:0}.groups-grid{gap:var(--spacing-4)}.groups-card{padding:var(--spacing-4)}.groups-card__actions{flex-wrap:wrap}.groups-card__btn--detail{width:100%}.groups-modal-content,.groups-detail-content{padding:var(--spacing-4);max-height:94vh}.groups-modal-actions{flex-direction:column}.groups-modal-btn{justify-content:center;width:100%}}.analytics-page{gap:var(--spacing-8);flex-direction:column;display:flex}.analytics-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);display:flex}.analytics-header__content{flex:1}.analytics-title{font-size:var(--font-size-display);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-2) 0}.analytics-subtitle{font-size:var(--font-size-body-sm);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.analytics-student-select{gap:var(--spacing-2);max-width:500px;margin-bottom:var(--spacing-6);flex-direction:column;display:flex}.analytics-student-select__label{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:flex}.analytics-student-select__icon{color:var(--color-primary);font-size:20px}.analytics-student-select__input{width:100%;height:52px;padding:0 var(--spacing-4);font-size:var(--font-size-body);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);transition:all var(--transition-fast) var(--ease-default);box-shadow:var(--shadow-sm);cursor:pointer;outline:none}.analytics-student-select__input:hover{border-color:var(--color-neutral-dark)}.analytics-student-select__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.analytics-empty{padding:var(--spacing-12) var(--spacing-6);background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.analytics-empty__icon{border-radius:var(--radius-full);background-color:var(--bg-tertiary);width:80px;height:80px;color:var(--text-tertiary);margin-bottom:var(--spacing-4);justify-content:center;align-items:center;display:flex}.analytics-empty__icon .material-symbols-outlined{font-size:48px}.analytics-empty__title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-2) 0}.analytics-empty__text{font-size:var(--font-size-body-sm);color:var(--text-secondary);max-width:400px;margin:0}.analytics-tab-bar{gap:var(--spacing-2);background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-1);display:flex}.analytics-tab{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family-primary);color:var(--text-secondary);border-radius:var(--radius-default);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;flex:1;display:flex}.analytics-tab:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.analytics-tab--active{color:var(--color-primary-dark);background-color:var(--bg-primary);box-shadow:var(--shadow-sm)}.analytics-tab__icon{font-size:20px}.analytics-content{gap:var(--spacing-8);flex-direction:column;display:flex}.analytics-chart-section{gap:var(--spacing-6);flex-direction:column;display:flex}.analytics-chart-card{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-md);padding:var(--spacing-8)}.analytics-chart-header{margin-bottom:var(--spacing-6);justify-content:space-between;align-items:center;gap:var(--spacing-4);flex-wrap:wrap;display:flex}.analytics-chart-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.analytics-total-badge{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background-color:var(--color-primary-lighter);color:var(--color-primary-dark);border-radius:var(--radius-full);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);display:flex}.analytics-total-badge .material-symbols-outlined{font-size:20px}.analytics-chart-wrapper{justify-content:center;align-items:center;min-height:320px;display:flex}.analytics-chart-tooltip{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);padding:var(--spacing-3);box-shadow:var(--shadow-lg)}.analytics-chart-tooltip__label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-1) 0}.analytics-chart-tooltip__value{font-size:var(--font-size-body-sm);color:var(--text-secondary);margin:0}.analytics-subject-filter{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);padding:var(--spacing-6)}.analytics-subject-filter__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-4) 0}.analytics-subject-filter__buttons{gap:var(--spacing-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.analytics-subject-btn{padding:var(--spacing-4);background-color:var(--bg-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);justify-content:center;align-items:center;gap:var(--spacing-2);border:2px solid #0000;flex-direction:column;min-height:80px;display:flex}.analytics-subject-btn:hover{background-color:var(--bg-tertiary);border-color:var(--subject-color);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.analytics-subject-btn--active{background-color:var(--subject-color);border-color:var(--subject-color);box-shadow:var(--shadow-md)}.analytics-subject-btn__name{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);text-align:center}.analytics-subject-btn--active .analytics-subject-btn__name{color:#fff}.analytics-subject-btn__percentage{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--subject-color)}.analytics-subject-btn--active .analytics-subject-btn__percentage{color:#fff}.analytics-topics-section{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);padding:var(--spacing-8)}.analytics-topics-header{margin-bottom:var(--spacing-6);justify-content:space-between;align-items:center;gap:var(--spacing-4);display:flex}.analytics-topics-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.analytics-topics-count{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);padding:var(--spacing-2) var(--spacing-4);background-color:var(--bg-tertiary);border-radius:var(--radius-full)}.analytics-topics-list{gap:var(--spacing-4);flex-direction:column;display:flex}.analytics-topic-item{gap:var(--spacing-2);padding:var(--spacing-4);background-color:var(--bg-secondary);border-radius:var(--radius-lg);transition:all var(--transition-fast) var(--ease-default);flex-direction:column;display:flex}.analytics-topic-item:hover{background-color:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.analytics-topic-item__header{justify-content:space-between;align-items:center;gap:var(--spacing-4);display:flex}.analytics-topic-item__name{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-primary);flex:1}.analytics-topic-item__stats{align-items:center;gap:var(--spacing-3);display:flex}.analytics-topic-item__count{font-size:var(--font-size-body-sm);color:var(--text-secondary)}.analytics-topic-item__percentage{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--text-primary);text-align:right;min-width:48px}.analytics-topic-item__bar{background-color:var(--bg-tertiary);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.analytics-topic-item__bar-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-default) var(--ease-default)}.analytics-topics-empty{font-size:var(--font-size-body-sm);color:var(--text-tertiary);text-align:center;padding:var(--spacing-6) 0;margin:0}.analytics-summary{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);padding:var(--spacing-8)}.analytics-summary__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-6) 0}.analytics-summary-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.analytics-summary-card{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-5);text-align:center;transition:all var(--transition-fast) var(--ease-default);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.analytics-summary-card:hover{background-color:var(--bg-tertiary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.analytics-summary-card__color-bar{background-color:var(--card-color);height:4px;position:absolute;top:0;left:0;right:0}.analytics-summary-card__content{align-items:center;gap:var(--spacing-1);flex-direction:column;display:flex}.analytics-summary-card__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.analytics-summary-card__count{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0;line-height:1}.analytics-summary-card__label{font-size:var(--font-size-small);color:var(--text-secondary);margin:0}@media (max-width:1024px){.analytics-chart-card,.analytics-topics-section,.analytics-summary{padding:var(--spacing-6)}.analytics-subject-filter__buttons,.analytics-summary-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media (max-width:768px){.layout-main{padding:var(--spacing-6)}.analytics-page{gap:var(--spacing-6)}.analytics-title{font-size:var(--font-size-h1)}.analytics-student-select{max-width:none}.analytics-chart-card{padding:var(--spacing-5)}.analytics-chart-header{flex-direction:column;align-items:flex-start}.analytics-chart-wrapper{min-height:280px}.analytics-subject-filter__buttons{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.analytics-subject-btn{min-height:70px;padding:var(--spacing-3)}.analytics-topics-header{flex-direction:column;align-items:flex-start}.analytics-summary-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (max-width:480px){.layout-main{padding:var(--spacing-4)}.analytics-page{gap:var(--spacing-5)}.analytics-tab{font-size:var(--font-size-small);padding:var(--spacing-2) var(--spacing-3)}.analytics-tab__icon{font-size:18px}.analytics-chart-card{padding:var(--spacing-4);border-radius:var(--radius-lg)}.analytics-chart-wrapper{min-height:250px}.analytics-subject-filter{padding:var(--spacing-4);border-radius:var(--radius-lg)}.analytics-subject-filter__buttons{grid-template-columns:repeat(2,1fr)}.analytics-topics-section,.analytics-summary{padding:var(--spacing-4);border-radius:var(--radius-lg)}.analytics-summary-grid{gap:var(--spacing-3);grid-template-columns:repeat(2,1fr)}}.materials-page{gap:var(--spacing-6);flex-direction:column;display:flex}.materials-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);display:flex}.materials-header__content{flex:1}.materials-title{font-size:var(--font-size-display);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-2) 0}.materials-subtitle{font-size:var(--font-size-body-sm);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.materials-add-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);margin-left:var(--spacing-4);border:none;display:flex}.materials-add-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.materials-add-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.materials-add-btn .material-symbols-outlined{font-size:20px}.materials-empty{padding:var(--spacing-12) var(--spacing-6);background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.materials-empty__icon{border-radius:var(--radius-full);background-color:var(--bg-tertiary);width:80px;height:80px;color:var(--text-tertiary);margin-bottom:var(--spacing-4);justify-content:center;align-items:center;display:flex}.materials-empty__icon .material-symbols-outlined{font-size:48px}.materials-empty__icon--error{color:var(--color-danger);background-color:#ff70701a}.materials-empty__title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-2) 0}.materials-empty__text{font-size:var(--font-size-body-sm);color:var(--text-secondary);max-width:400px;margin:0}.materials-list{gap:var(--spacing-5);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.material-card{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:var(--border-width-thin) solid var(--border-light);box-shadow:var(--shadow-sm);padding:var(--spacing-5);gap:var(--spacing-4);transition:all var(--transition-fast) var(--ease-default);flex-direction:column;display:flex}.material-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.material-card__icon-wrapper{align-items:center;gap:var(--spacing-3);display:flex}.material-card__icon{border-radius:var(--radius-lg);color:#ff7070;background-color:#ff70701a;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.material-card__icon .material-symbols-outlined{font-size:32px}.material-card__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.material-card__title{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.material-card__filename{font-size:var(--font-size-small);color:var(--text-secondary);margin:0}.material-card__assigned{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) 0;display:flex}.material-card__assigned-icon{color:var(--text-tertiary);flex-shrink:0;font-size:18px}.material-card__assigned-text{font-size:var(--font-size-small);color:var(--text-secondary);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.material-card__files{gap:var(--spacing-2);padding:var(--spacing-3) 0;border-top:var(--border-width-thin) solid var(--border-light);flex-direction:column;display:flex}.material-card__file-link{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-secondary);border-radius:var(--radius-default);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default);text-decoration:none;display:flex}.material-card__file-link:hover{background-color:var(--color-primary-lightest);color:var(--color-primary-dark)}.material-card__file-link-icon{color:var(--color-primary);flex-shrink:0;font-size:18px}.material-card__file-link-name{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.material-card__file-link-action{color:var(--text-tertiary);transition:color var(--transition-fast) var(--ease-default);flex-shrink:0;font-size:16px}.material-card__file-link:hover .material-card__file-link-action{color:var(--color-primary)}.material-card__footer{padding-top:var(--spacing-2);border-top:var(--border-width-thin) solid var(--border-light);justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.material-card__date{align-items:center;gap:var(--spacing-1);font-size:var(--font-size-small);color:var(--text-tertiary);display:flex}.material-card__date .material-symbols-outlined{font-size:16px}.material-card__actions{align-items:center;gap:var(--spacing-1);display:flex}.material-card__action-btn{cursor:pointer;border-radius:var(--radius-default);width:36px;height:36px;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.material-card__action-btn .material-symbols-outlined{font-size:20px}.material-card__action-btn--delete{color:var(--color-danger)}.material-card__action-btn--delete:hover{color:var(--color-danger);background-color:#ff70701a}.materials-modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:var(--spacing-4);background-color:#00000080;justify-content:center;align-items:center;animation:.3s ease-out materials-modal-fade-in;display:flex;position:fixed;inset:0}.materials-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;width:100%;max-width:680px;max-height:85vh;padding:40px;animation:.4s cubic-bezier(.16,1,.3,1) materials-modal-slide-in;display:flex;position:relative;overflow-y:auto}.materials-modal-content--small{max-width:450px}.materials-modal-close{top:var(--spacing-4);right:var(--spacing-4);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.materials-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.materials-modal-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-6) 0;padding-right:var(--spacing-8)}.materials-modal-form{gap:var(--spacing-5);flex-direction:column;display:flex}.materials-modal-field{gap:var(--spacing-2);flex-direction:column;display:flex}.materials-modal-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.materials-modal-input{width:100%;height:48px;padding:0 var(--spacing-4);font-size:var(--font-size-body);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);transition:all var(--transition-fast) var(--ease-default);outline:none}.materials-modal-input:hover{border-color:var(--color-neutral-dark)}.materials-modal-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.materials-modal-char-count{font-size:var(--font-size-small);color:var(--text-tertiary);text-align:right}.materials-file-upload{position:relative}.materials-file-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.materials-file-upload-area{padding:var(--spacing-8);border:2px dashed var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);flex-direction:column;justify-content:center;align-items:center;display:flex}.materials-file-upload-area:hover{border-color:var(--color-primary);background-color:var(--color-primary-lightest)}.materials-file-upload-icon{color:var(--color-primary);margin-bottom:var(--spacing-2);font-size:48px}.materials-file-upload-text{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0 0 var(--spacing-1) 0}.materials-file-upload-hint{font-size:var(--font-size-small);color:var(--text-secondary);margin:0}.materials-modal-tabs{gap:var(--spacing-4);grid-template-columns:1fr 1fr;display:grid}.materials-modal-tab-section{gap:var(--spacing-3);flex-direction:column;display:flex}.materials-modal-tab-title{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;display:flex}.materials-modal-tab-title .material-symbols-outlined{color:var(--color-primary);font-size:20px}.materials-modal-search-wrapper{align-items:center;display:flex;position:relative}.materials-modal-search-icon{left:var(--spacing-3);color:var(--text-tertiary);pointer-events:none;font-size:20px;position:absolute}.materials-modal-search-input{width:100%;height:40px;padding:0 var(--spacing-3) 0 40px;font-size:var(--font-size-body-sm);font-family:var(--font-family-primary);color:var(--text-primary);background-color:var(--bg-secondary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);transition:all var(--transition-fast) var(--ease-default);outline:none}.materials-modal-search-input:focus{border-color:var(--color-primary);background-color:var(--bg-primary)}.materials-modal-list{gap:var(--spacing-2);max-height:200px;padding:var(--spacing-2);background-color:var(--bg-secondary);border-radius:var(--radius-default);border:var(--border-width-thin) solid var(--border-light);flex-direction:column;display:flex;overflow-y:auto}.materials-modal-checkbox-item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);display:flex}.materials-modal-checkbox-item:hover{background-color:var(--bg-tertiary)}.materials-modal-checkbox{cursor:pointer;flex-shrink:0;width:18px;height:18px}.materials-modal-checkbox-label{font-size:var(--font-size-body-sm);color:var(--text-primary);flex:1}.materials-modal-empty{font-size:var(--font-size-small);color:var(--text-tertiary);text-align:center;padding:var(--spacing-3)}.materials-modal-warning{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);border:var(--border-width-thin) solid #ffb0704d;border-radius:var(--radius-default);font-size:var(--font-size-small);color:var(--text-secondary);background-color:#ffb0701a;display:flex}.materials-modal-warning .material-symbols-outlined{color:#ffb070;font-size:20px}.materials-modal-actions{justify-content:flex-end;align-items:center;gap:var(--spacing-3);padding-top:var(--spacing-4);display:flex}.materials-modal-btn{padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;justify-content:center;align-items:center;display:flex}.materials-modal-btn--cancel{background-color:var(--bg-tertiary);color:var(--text-primary)}.materials-modal-btn--cancel:hover{background-color:var(--color-neutral-dark)}.materials-modal-btn--primary{background-color:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.materials-modal-btn--primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.materials-modal-btn--danger{background-color:var(--color-danger);color:#fff;box-shadow:var(--shadow-sm)}.materials-modal-btn--danger:hover{box-shadow:var(--shadow-md);background-color:#e63939;transform:translateY(-1px)}.materials-delete-confirm{text-align:center;padding:var(--spacing-4);flex-direction:column;align-items:center;display:flex}.materials-delete-confirm__icon{border-radius:var(--radius-full);width:64px;height:64px;color:var(--color-danger);margin-bottom:var(--spacing-4);background-color:#ff70701a;justify-content:center;align-items:center;display:flex}.materials-delete-confirm__icon .material-symbols-outlined{font-size:36px}.materials-delete-confirm__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-3) 0}.materials-delete-confirm__text{font-size:var(--font-size-body-sm);color:var(--text-secondary);margin:0 0 var(--spacing-6) 0;max-width:350px}@keyframes materials-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes materials-modal-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.materials-detail-header{gap:var(--spacing-5);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:var(--border-width-thin) solid var(--border-light);display:flex}.materials-detail-badge{border-radius:var(--radius-xl);background-color:var(--bg-secondary);width:72px;height:72px;color:var(--color-primary);box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.materials-detail-badge .material-symbols-outlined{font-size:36px}.materials-detail-header__text{flex-direction:column;flex:1;justify-content:center;display:flex}.materials-detail-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-2) 0;line-height:var(--line-height-tight)}.materials-detail-description{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.materials-detail-info{gap:var(--spacing-6);margin-bottom:var(--spacing-6);padding:var(--spacing-4);background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);flex-wrap:wrap;display:flex}.materials-detail-info-item{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);display:flex}.materials-detail-info-icon{color:var(--text-tertiary);font-size:20px}.materials-detail-info-label{font-weight:var(--font-weight-medium);color:var(--text-secondary)}.materials-detail-info-value{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.materials-detail-section{margin-bottom:var(--spacing-8)}.materials-detail-section:last-child{margin-bottom:var(--spacing-4)}.materials-detail-section__title{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-3) 0;align-items:center;gap:var(--spacing-2);padding-bottom:var(--spacing-2);border-bottom:var(--border-width-thin) solid var(--border-light);display:flex}.materials-detail-section__title .material-symbols-outlined{color:var(--color-primary);font-size:22px}.materials-detail-files{gap:var(--spacing-2);flex-direction:column;display:flex}.materials-detail-chips{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.materials-detail-chip{align-items:center;gap:var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);border:var(--border-width-thin) solid transparent;transition:all var(--transition-fast) var(--ease-default);padding:6px 12px;display:inline-flex}.materials-detail-chip:hover{transform:translateY(-1px)}.materials-detail-chip--group{background-color:var(--color-primary-lightest);color:var(--color-primary-dark);border-color:rgba(var(--color-primary-rgb,100, 100, 255), .2)}.materials-detail-chip--student{background-color:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-light)}.materials-detail-chip__icon{font-size:18px}@media (max-width:1024px){.materials-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width:768px){.layout-main{padding:var(--spacing-6)}.materials-page{gap:var(--spacing-5)}.materials-header{flex-direction:column;align-items:stretch}.materials-title{font-size:var(--font-size-h1)}.materials-add-btn{justify-content:center;width:100%}.materials-list,.materials-modal-tabs{grid-template-columns:1fr}.materials-modal-list{max-height:150px}}@media (max-width:480px){.layout-main{padding:var(--spacing-4)}.materials-modal-overlay{padding:var(--spacing-2)}.materials-modal-content{padding:var(--spacing-5)}.materials-modal-actions{gap:var(--spacing-2);flex-direction:column-reverse}.materials-modal-btn{width:100%}.material-card{padding:var(--spacing-4)}.material-card__icon{width:48px;height:48px}.material-card__icon .material-symbols-outlined{font-size:28px}}.layout-shell{background-color:var(--bg-secondary);min-height:100vh;display:flex}.layout-sidebar{width:var(--sidebar-width);background-color:var(--bg-primary);border-right:var(--border-width-thin) solid var(--border-light);height:100vh;padding:var(--spacing-4);gap:var(--spacing-4);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow-y:auto}.layout-main{padding:var(--spacing-8);flex:1;min-width:0;overflow-x:hidden}.schedule-page{gap:var(--spacing-4);flex-direction:column;width:100%;min-width:0;display:flex}.schedule-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:0;display:flex}.schedule-header-content{flex:1}.schedule-title{font-size:var(--font-size-display);color:var(--text-primary);font-weight:900;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-2) 0}.schedule-subtitle{font-size:var(--font-size-body-sm);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.schedule-add-lesson-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);margin-left:var(--spacing-4);border:none;display:flex}.schedule-add-lesson-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.schedule-add-lesson-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.schedule-add-lesson-btn__icon{font-size:var(--icon-lg)}.schedule-range-toggle{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1);background-color:var(--bg-tertiary);border-radius:var(--radius-xl);width:fit-content;max-width:100%;display:flex}.schedule-range-toggle__btn{height:var(--input-height-sm);padding:0 var(--spacing-4);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap;background:0 0;border:none}.schedule-range-toggle__btn:hover{background-color:var(--color-primary-lightest);color:var(--text-primary)}.schedule-range-toggle__btn--active{background-color:var(--bg-primary);box-shadow:var(--shadow-xs);color:var(--text-primary)}.schedule-calendar-shell{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--spacing-4)}.schedule-calendar-shell__header{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);display:flex}.schedule-calendar-shell__title{font-size:var(--font-size-h5);font-weight:var(--font-weight-semibold);color:var(--text-primary);text-transform:capitalize}.schedule-calendar-shell__nav{border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);justify-content:center;align-items:center;display:flex}.schedule-calendar-shell__nav:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-light);color:var(--text-primary)}.schedule-calendar{gap:var(--spacing-2);flex-direction:column;display:flex}.schedule-calendar__month-title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:capitalize}.schedule-calendar__weekday-row{gap:var(--spacing-2);grid-template-columns:repeat(7,1fr);display:grid}.schedule-calendar__weekday{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-align:center;padding:var(--spacing-1) 0}.schedule-calendar__grid{gap:var(--spacing-2);flex-direction:column;display:flex}.schedule-calendar__week{gap:var(--spacing-2);grid-template-columns:repeat(7,1fr);display:grid}.schedule-calendar__cell{border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light-subtle);background-color:var(--bg-secondary);min-height:96px;padding:var(--spacing-2);gap:var(--spacing-2);flex-direction:column;display:flex}.schedule-calendar__cell--muted{opacity:.5}.schedule-calendar__cell--disabled{opacity:0;pointer-events:none}.schedule-calendar__day-number{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.schedule-calendar__chips{gap:var(--spacing-1);flex-direction:column;min-height:0;display:flex}.schedule-calendar__chip{column-gap:var(--spacing-2);padding:2px var(--spacing-2);border-radius:var(--radius-md);background-color:var(--color-primary-lightest);border:var(--border-width-thin) solid var(--color-primary-light);color:var(--text-primary);grid-template-rows:auto auto;grid-template-columns:auto 1fr;row-gap:1px;display:grid;overflow:hidden}.schedule-calendar__chip-time{font-size:var(--font-size-tiny);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);flex-shrink:0;grid-row:1/span 2;align-self:start}.schedule-calendar__chip-text{font-size:var(--font-size-tiny);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;grid-area:1/2;overflow:hidden}.schedule-calendar__chip-subtext{font-size:var(--font-size-micro);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;grid-area:2/2;overflow:hidden}.schedule-calendar__more{font-size:var(--font-size-tiny);color:var(--text-tertiary);padding-left:var(--spacing-1)}.schedule-calendar-quarter{gap:var(--spacing-4);grid-template-columns:repeat(3,1fr);display:grid}.schedule-calendar--mini .schedule-calendar__cell{min-height:92px}.schedule-calendar--mini .schedule-calendar__chip{padding:1px var(--spacing-1);grid-template-rows:auto;grid-template-columns:1fr;gap:0}.schedule-calendar--mini .schedule-calendar__chip-time{display:none}.schedule-calendar--mini .schedule-calendar__chip-text{white-space:normal;max-width:100%;text-overflow:initial;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;grid-area:1/1;display:-webkit-box;overflow:hidden}.schedule-calendar--mini .schedule-calendar__chip-subtext,.schedule-calendar--mini .schedule-calendar__more{display:none}.schedule-week-nav{align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);display:flex}.schedule-week-nav__btn{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);justify-content:center;align-items:center;display:flex}.schedule-week-nav__btn:hover{background-color:var(--bg-tertiary);color:var(--color-primary);border-color:var(--color-primary)}.schedule-week-nav__label{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);text-align:center;min-width:200px}.schedule-week-nav__today{margin-left:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background-color:var(--color-primary-lighter);border-radius:var(--radius-lg);color:var(--color-primary-dark);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none}.schedule-week-nav__today:hover{background-color:var(--color-primary);color:var(--text-on-primary)}.schedule-grid{align-items:stretch;gap:var(--spacing-4);grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:420px;min-width:0;display:grid}.schedule-day-card{background-color:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--spacing-3);border:var(--border-width-thin) solid var(--border-light);border-left:var(--border-width-thick) solid var(--color-primary);gap:var(--spacing-2);transition:all var(--transition-default);flex-direction:column;min-width:0;height:420px;min-height:200px;display:flex;position:relative;overflow:hidden}.schedule-day-card:hover{box-shadow:var(--shadow-md);border-left-color:var(--color-primary-dark);transform:translateY(-2px)}.schedule-day-card:first-child{border-left-color:var(--color-primary)}.schedule-day-card:nth-child(2){border-left-color:var(--color-primary-dark)}.schedule-day-card:nth-child(3){border-left-color:var(--color-secondary)}.schedule-day-card:nth-child(4){border-left-color:var(--color-primary)}.schedule-day-card:nth-child(5){border-left-color:var(--color-primary-dark)}.schedule-day-card:nth-child(6){border-left-color:var(--color-secondary)}.schedule-day-card:nth-child(7){border-left-color:var(--color-primary)}.schedule-day-title{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.schedule-day-title-row{justify-content:space-between;align-items:baseline;gap:var(--spacing-2);min-width:0;display:flex}.schedule-day-date{font-size:var(--font-size-caption);color:var(--text-tertiary);white-space:nowrap}.schedule-day-lessons{gap:var(--spacing-2);min-height:0;padding-right:var(--spacing-1);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow:hidden auto}.schedule-day-lessons::-webkit-scrollbar{width:4px}.schedule-day-lessons::-webkit-scrollbar-track{background:0 0}.schedule-day-lessons::-webkit-scrollbar-thumb{background-color:var(--color-primary-light,#c7d2fe);border-radius:99px}.schedule-day-lessons::-webkit-scrollbar-thumb:hover{background-color:var(--color-primary,#6366f1)}.schedule-day-lessons{scrollbar-width:thin;scrollbar-color:var(--color-primary-light,#c7d2fe) transparent}.schedule-lesson-card{background-color:var(--color-primary-lightest);padding:var(--spacing-2);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--color-primary-light);gap:var(--spacing-2);cursor:grab;transition:all var(--transition-fast);flex-direction:column;flex-shrink:0;min-width:0;display:flex;position:relative;overflow:hidden}.schedule-lesson-card:hover{background-color:var(--color-primary-lighter);border-color:var(--color-primary);box-shadow:var(--shadow-xs)}.schedule-lesson-card:active{cursor:grabbing;transform:scale(.98)}.schedule-lesson-header{gap:var(--spacing-2);flex-direction:column;display:flex}.schedule-lesson-header__top{justify-content:space-between;align-items:flex-start;gap:var(--spacing-2);display:flex}.schedule-lesson-header__text{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.schedule-lesson-edit{border-radius:var(--radius-full);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.schedule-lesson-edit .material-symbols-outlined,.schedule-lesson-delete .material-symbols-outlined{font-size:18px}.schedule-lesson-actions{align-items:center;gap:var(--spacing-1);flex-shrink:0;display:flex}.schedule-lesson-delete{border-radius:var(--radius-full);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.schedule-lesson-delete:hover{color:var(--color-danger);background-color:#ff70701f}.schedule-lesson-delete:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.schedule-confirm-overlay{z-index:var(--z-modal);padding:var(--spacing-4);animation:fadeIn var(--transition-fast) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.schedule-confirm-content{background-color:var(--bg-primary);border-radius:var(--radius-2xl);width:100%;max-width:480px;box-shadow:var(--shadow-xl);padding:var(--spacing-8);animation:slideUp var(--transition-default) ease-out;position:relative}.schedule-confirm-close{top:var(--spacing-4);right:var(--spacing-4);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);width:40px;height:40px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);justify-content:center;align-items:center;display:flex;position:absolute}.schedule-confirm-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.schedule-confirm-close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.schedule-confirm-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary);margin:0 0 var(--spacing-4) 0}.schedule-confirm-text{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-4) 0;line-height:var(--line-height-relaxed)}.schedule-confirm-warning{margin-top:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-body-sm);line-height:var(--line-height-normal);background-color:#f59e0b1f}.schedule-confirm-actions{justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-8);display:flex}.schedule-confirm-btn{padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none}.schedule-confirm-btn--secondary{background-color:var(--bg-primary);color:var(--text-secondary);border:var(--border-width-thin) solid var(--border-light)}.schedule-confirm-btn--secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.schedule-confirm-btn--danger{background-color:var(--color-danger);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.schedule-confirm-btn--danger:hover{box-shadow:var(--shadow-danger);filter:brightness(.98)}.schedule-lesson-edit:hover{background-color:var(--bg-primary);color:var(--text-primary)}.schedule-lesson-edit:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.schedule-lesson-title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.schedule-lesson-class{font-size:var(--font-size-small);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;white-space:nowrap;margin:0;overflow:hidden}.schedule-lesson-description{font-size:var(--font-size-small);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-tertiary);margin:var(--spacing-1) 0 0 0;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.schedule-lesson-time{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--color-primary-dark);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.schedule-lesson-participants{padding-top:var(--spacing-2);border-top:var(--border-width-thin) solid var(--color-primary-light);margin-top:var(--spacing-2)}.schedule-lesson-participants-title{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal);color:var(--color-primary-dark);margin:0 0 var(--spacing-1) 0}.schedule-lesson-participants-list{max-height:var(--spacing-16);gap:var(--spacing-0-5);padding-right:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.schedule-lesson-participants-item{font-size:var(--font-size-small);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;white-space:nowrap;margin:0;overflow:hidden}.schedule-empty-state{padding:var(--spacing-8) var(--spacing-4);text-align:center;justify-content:center;align-items:center;display:flex}.schedule-empty-text{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-tertiary);margin:0}.schedule-modal-overlay{z-index:var(--z-modal);padding:var(--spacing-4);animation:fadeIn var(--transition-fast) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.schedule-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-2xl);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-8);animation:slideUp var(--transition-default) ease-out;flex-direction:column;display:flex;position:relative;overflow-y:auto}.schedule-modal-close{top:var(--spacing-4);right:var(--spacing-4);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);width:40px;height:40px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);justify-content:center;align-items:center;display:flex;position:absolute}.schedule-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.schedule-modal-close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.schedule-modal-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary);margin:0 0 var(--spacing-6) 0}.schedule-modal-required{color:var(--color-danger);margin-left:var(--spacing-1)}.schedule-modal-form{gap:var(--spacing-4);flex-direction:column;display:flex}.schedule-modal-form-group{gap:var(--spacing-2);padding:0 var(--spacing-1);flex-direction:column;display:flex}.schedule-modal-repeat{gap:var(--spacing-2);margin-top:var(--spacing-2);grid-template-columns:repeat(3,1fr);display:grid}.schedule-modal-repeat-btn{height:var(--input-height-sm);padding:0 var(--spacing-3);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);color:var(--text-secondary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap}.schedule-modal-repeat-btn:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-light);color:var(--text-primary)}.schedule-modal-repeat-btn--active{background-color:var(--color-primary-lighter);border-color:var(--color-primary);color:var(--color-primary-dark)}.schedule-modal-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--text-primary)}.schedule-modal-input,.schedule-modal-select{width:100%;height:var(--input-height-md);padding:0 var(--spacing-5);background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary);transition:all var(--transition-fast)}.schedule-modal-textarea{width:100%;min-height:96px;padding:var(--spacing-3) var(--spacing-5);background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body);color:var(--text-primary);transition:all var(--transition-fast);resize:vertical}.schedule-modal-textarea::placeholder{color:var(--text-tertiary)}.schedule-modal-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.schedule-modal-input::placeholder{color:var(--text-tertiary)}.schedule-modal-input:focus,.schedule-modal-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.schedule-modal-select{cursor:pointer}.schedule-modal-time-row{align-items:flex-end;gap:var(--spacing-2);display:flex}.schedule-modal-time-field{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.schedule-modal-time-label{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.schedule-modal-time-separator{font-size:var(--font-size-body-lg);color:var(--text-tertiary);padding-bottom:var(--spacing-2);flex-shrink:0}.schedule-modal-students,.schedule-modal-groups{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--bg-tertiary);overflow:hidden}.schedule-modal-groups__search{padding:var(--spacing-2);border-bottom:var(--border-width-thin) solid var(--border-light-subtle);background-color:var(--bg-tertiary);position:relative}.schedule-modal-groups__search-icon{left:calc(var(--spacing-2) + var(--spacing-3));color:var(--text-tertiary);font-size:var(--icon-lg);position:absolute;top:50%;transform:translateY(-50%)}.schedule-modal-groups__search-input{width:100%;height:var(--input-height-sm);padding:0 var(--spacing-4) 0 calc(var(--spacing-4) + var(--spacing-6));border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-body-sm);transition:all var(--transition-fast)}.schedule-modal-groups__search-input::placeholder{color:var(--text-tertiary)}.schedule-modal-groups__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.schedule-modal-groups__list{max-height:192px;padding:var(--spacing-2);gap:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.schedule-modal-groups__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);background-color:#fff6;display:flex}.schedule-modal-groups__item:hover{background-color:var(--color-primary-lightest)}.schedule-modal-groups__checkbox{width:var(--checkbox-size);height:var(--checkbox-size);accent-color:var(--color-primary)}.schedule-modal-groups__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.schedule-modal-groups__empty{padding:var(--spacing-4);text-align:center}.schedule-modal-groups__empty-text{font-size:var(--font-size-body-sm);color:var(--text-tertiary)}.schedule-modal-students__search{padding:var(--spacing-2);border-bottom:var(--border-width-thin) solid var(--border-light-subtle);background-color:var(--bg-tertiary);position:relative}.schedule-modal-students__search-icon{left:calc(var(--spacing-2) + var(--spacing-3));color:var(--text-tertiary);font-size:var(--icon-lg);position:absolute;top:50%;transform:translateY(-50%)}.schedule-modal-students__search-input{width:100%;height:var(--input-height-sm);padding:0 var(--spacing-4) 0 calc(var(--spacing-4) + var(--spacing-6));border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-body-sm);transition:all var(--transition-fast)}.schedule-modal-students__search-input::placeholder{color:var(--text-tertiary)}.schedule-modal-students__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.schedule-modal-students__list{max-height:192px;padding:var(--spacing-2);gap:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.schedule-modal-students__item{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);background-color:#fff6;display:flex}.schedule-modal-students__item:hover{background-color:var(--color-primary-lightest)}.schedule-modal-students__checkbox{width:var(--checkbox-size);height:var(--checkbox-size);accent-color:var(--color-primary)}.schedule-modal-students__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.schedule-modal-students__empty{padding:var(--spacing-4);text-align:center}.schedule-modal-students__empty-text{font-size:var(--font-size-body-sm);color:var(--text-tertiary)}.schedule-modal-actions{justify-content:flex-end;align-items:center;gap:var(--spacing-3);margin-top:var(--spacing-8);display:flex}.schedule-modal-button{padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.schedule-modal-button--secondary{background-color:var(--bg-primary);color:var(--text-secondary);border:var(--border-width-thin) solid var(--border-light)}.schedule-modal-button--secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.schedule-modal-button--primary{background-color:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.schedule-modal-button--primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary)}.schedule-detail-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);padding:var(--spacing-4);animation:fadeIn var(--transition-default) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.schedule-detail-content{background-color:var(--bg-primary);border-radius:var(--radius-2xl);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-8);animation:slideIn var(--transition-default) ease-out;position:relative;overflow-y:auto}.schedule-detail-close{top:var(--spacing-4);right:var(--spacing-4);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.schedule-detail-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.schedule-detail-header{align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-6);display:flex}.schedule-detail-badge{border-radius:var(--radius-xl);background-color:var(--color-primary-lighter);width:56px;height:56px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.schedule-detail-badge .material-symbols-outlined{font-size:26px}.schedule-detail-header__text{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.schedule-detail-type{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.schedule-detail-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight);margin:0}.schedule-detail-info-grid{gap:var(--spacing-4);margin-bottom:var(--spacing-6);grid-template-columns:repeat(2,1fr);display:grid}.schedule-detail-info-item{gap:var(--spacing-1);flex-direction:column;display:flex}.schedule-detail-info-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-tertiary)}.schedule-detail-info-value{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.schedule-detail-section{margin-bottom:var(--spacing-6)}.schedule-detail-section__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-3)}.schedule-detail-description{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.schedule-detail-participants{gap:var(--spacing-2);max-height:200px;padding-right:var(--spacing-2);flex-direction:column;display:flex;overflow-y:auto}.schedule-detail-participant{align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-tertiary);border-radius:var(--radius-md);display:flex}.schedule-detail-participant__icon{color:var(--color-primary);font-size:20px}.schedule-detail-participant__name{font-size:var(--font-size-body-sm);color:var(--text-primary)}.schedule-detail-actions{gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:var(--border-width-thin) solid var(--border-light);justify-content:flex-end;display:flex}.schedule-detail-btn{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:inline-flex}.schedule-detail-btn .material-symbols-outlined{font-size:18px}.schedule-detail-btn--secondary{color:var(--color-primary-dark);border:var(--border-width-medium) solid var(--color-primary);background-color:#0000}.schedule-detail-btn--secondary:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-dark)}.schedule-detail-btn--danger{background-color:var(--color-danger);color:var(--text-on-primary)}.schedule-detail-btn--danger:hover{box-shadow:var(--shadow-danger)}.schedule-lesson-card--clickable{cursor:pointer}.schedule-lesson-card--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width:480px){.schedule-detail-content{padding:var(--spacing-6)}.schedule-detail-info-grid{grid-template-columns:1fr}.schedule-detail-actions{flex-direction:column}.schedule-detail-btn{width:100%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1600px){.schedule-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:1100px){.schedule-grid{gap:var(--spacing-3);grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.schedule-grid{gap:var(--spacing-2);grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.schedule-grid{grid-template-columns:1fr}}@media (max-width:768px){.layout-shell{flex-direction:column}.layout-sidebar{border-right:none;border-bottom:var(--border-width-thin) solid var(--border-light);width:100%}.layout-main{padding:var(--spacing-6)}.schedule-header{align-items:stretch;gap:var(--spacing-6);flex-direction:column}.schedule-title{font-size:var(--font-size-h1)}.schedule-add-lesson-btn{justify-content:center}.schedule-range-toggle{justify-content:space-between;width:100%}.schedule-calendar-quarter{grid-template-columns:1fr}.schedule-modal-content{margin:var(--spacing-2);padding:var(--spacing-4)}.schedule-modal-repeat{grid-template-columns:1fr}.schedule-day-card{padding:var(--spacing-2);min-height:160px;max-height:300px}}@media (max-width:480px){.layout-main{padding:var(--spacing-4)}}.approvals-page{gap:var(--spacing-6);flex-direction:column;display:flex;position:relative}.approvals-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-6);display:flex}.approvals-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.approvals-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.approvals-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.approvals-list{gap:var(--spacing-4);flex-direction:column;display:flex}.approvals-card{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-5) var(--spacing-6);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);min-width:0;display:flex}.approvals-card:hover{box-shadow:var(--shadow-md)}.approvals-card__left{align-items:center;gap:var(--spacing-4);min-width:0;display:flex}.approvals-avatar{border-radius:var(--radius-full);background-color:var(--bg-tertiary);background-position:50%;background-size:cover;flex-shrink:0;width:56px;height:56px}.approvals-avatar-icon{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:48px;height:48px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:flex}.approvals-avatar-icon .material-symbols-outlined{font-size:24px}.approvals-card__text{flex-direction:column;gap:2px;min-width:0;display:flex}.approvals-student-name{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.approvals-student-meta{font-size:var(--font-size-body-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.approvals-student-email{font-size:var(--font-size-small);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.approvals-card__actions{align-items:center;gap:var(--spacing-3);flex-shrink:0;display:flex}.approvals-btn{appearance:none;cursor:pointer;border-radius:var(--radius-lg);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast) var(--ease-default);border:none}.approvals-btn--reject{color:var(--color-danger);background:0 0}.approvals-btn--reject:hover{background-color:var(--color-danger-light)}.approvals-btn--accept{background-color:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.approvals-btn--accept:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.approvals-btn--accept:active{box-shadow:var(--shadow-none);transform:translateY(0)}.approvals-empty{padding:var(--spacing-10);border-radius:var(--radius-2xl);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);text-align:center;gap:var(--spacing-3);flex-direction:column;align-items:center;display:flex}.approvals-empty__icon{border-radius:var(--radius-full);background-color:var(--color-primary-lighter);width:72px;height:72px;color:var(--color-primary-dark);justify-content:center;align-items:center;display:flex}.approvals-empty__icon .material-symbols-outlined{font-size:34px}.approvals-empty__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--text-primary)}.approvals-empty__text{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);max-width:520px}@media (max-width:768px){.approvals-header{flex-direction:column}.approvals-card{flex-direction:column;align-items:stretch}.approvals-card__actions{justify-content:stretch}.approvals-btn{justify-content:center;width:100%}}.settings-page{gap:var(--spacing-6);flex-direction:column;display:flex;position:relative}.settings-container{width:100%;max-width:56rem;margin:0 auto}.settings-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:flex}.settings-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.settings-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.settings-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.settings-content{gap:var(--spacing-10);flex-direction:column;display:flex}.settings-section{gap:var(--spacing-4);flex-direction:column;display:flex}.settings-section__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);padding-bottom:var(--spacing-3);border-bottom:var(--border-width-thin) solid var(--border-light);margin:0}.settings-card{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.settings-password-form{gap:var(--spacing-6);flex-direction:column;display:flex}.settings-form-field{gap:var(--spacing-2);flex-direction:column;display:flex}.settings-form-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.settings-form-input{width:100%;height:var(--input-height-md);padding:0 var(--spacing-4);background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);font-size:var(--font-size-body-sm);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default)}.settings-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.settings-form-input::placeholder{color:var(--text-tertiary)}.settings-form-actions{padding-top:var(--spacing-2);justify-content:flex-end;display:flex}.settings-submit-btn{background-color:var(--color-primary);color:var(--text-on-primary);border-radius:var(--radius-lg);padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);border:none}.settings-submit-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.settings-submit-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.settings-pw-rules{background-color:var(--bg-secondary,#f8fafc);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);padding:var(--spacing-4)}.settings-pw-rules__title{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin-bottom:var(--spacing-3);display:flex}.settings-pw-rules__title .material-symbols-outlined{font-size:var(--icon-sm);color:var(--color-primary)}.settings-pw-rules__list{gap:var(--spacing-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-pw-rule{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-body-sm);color:var(--text-secondary);transition:color var(--transition-fast) var(--ease-default);display:flex}.settings-pw-rule--ok{color:var(--color-success,#16a34a)}.settings-pw-rule__icon{font-size:var(--icon-sm);flex-shrink:0}.settings-pw-rule--ok .settings-pw-rule__icon{color:var(--color-success,#16a34a)}.settings-pw-feedback{align-items:flex-start;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-default);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);display:flex}.settings-pw-feedback .material-symbols-outlined{font-size:var(--icon-sm);flex-shrink:0;margin-top:1px}.settings-pw-feedback--error{color:#b91c1c;background-color:#fef2f2;border:1px solid #fca5a5}.settings-pw-feedback--success{color:#15803d;background-color:#f0fdf4;border:1px solid #86efac}.settings-invite{gap:var(--spacing-5);flex-direction:column;display:flex}.settings-invite__desc{font-size:var(--font-size-body-sm);color:var(--text-secondary);margin:0 0 var(--spacing-4) 0;line-height:var(--line-height-normal)}.settings-invite__code-row{align-items:center;gap:var(--spacing-3);background-color:var(--bg-tertiary);border:var(--border-width-thin) dashed var(--border-light);padding:var(--spacing-3) var(--spacing-5);border-radius:var(--radius-lg);width:fit-content;display:flex}.settings-invite__icon{font-size:var(--icon-md);color:var(--color-primary)}.settings-invite__code{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--text-primary);letter-spacing:.12em}.settings-invite__btn{align-items:center;gap:var(--spacing-2);background-color:var(--color-primary);color:var(--text-on-primary);border-radius:var(--radius-lg);padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);border:none;width:fit-content;display:flex}.settings-invite__btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.settings-invite__btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.settings-invite__btn:disabled{opacity:.6;cursor:not-allowed}.settings-invite__btn .material-symbols-outlined{font-size:var(--icon-sm)}.settings-card--links{padding:0}.settings-link-item{padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);transition:background-color var(--transition-fast) var(--ease-default);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.settings-link-item:hover{background-color:var(--bg-tertiary)}.settings-link-item__left{align-items:center;gap:var(--spacing-3);display:flex}.settings-link-item__icon{font-size:var(--icon-md);color:var(--text-secondary)}.settings-link-item__text{font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}.settings-link-item__arrow{font-size:var(--icon-sm);color:var(--text-tertiary)}.settings-link-divider{background-color:var(--border-light);height:1px;margin:0 var(--spacing-6)}.settings-logout-btn{justify-content:center;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-4);border:var(--border-width-thin) solid var(--color-danger,#e53e3e);border-radius:var(--radius-lg);color:var(--color-danger,#e53e3e);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background:0 0;display:flex}.settings-logout-btn:hover:not(:disabled){background-color:var(--color-danger,#e53e3e);color:var(--text-on-primary)}.settings-logout-btn:disabled,.settings-submit-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width:768px){.settings-page{gap:var(--spacing-4)}.settings-header{margin-bottom:var(--spacing-6)}.settings-title{font-size:var(--font-size-h1)}.settings-content{gap:var(--spacing-8)}.settings-card{padding:var(--spacing-4)}.settings-password-form{gap:var(--spacing-4)}.settings-form-field{gap:var(--spacing-1)}.settings-form-actions{padding-top:var(--spacing-4)}.settings-submit-btn,.settings-invite__btn,.settings-invite__code-row{justify-content:center;width:100%}.settings-link-item{padding:var(--spacing-4)}.settings-link-divider{margin:0 var(--spacing-4)}}.profile-page{gap:var(--spacing-6);flex-direction:column;display:flex;position:relative}.profile-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:flex}.profile-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.profile-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.profile-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.profile-container{gap:var(--spacing-8);flex-direction:column;width:100%;max-width:1024px;margin:0 auto;display:flex}.profile-avatar-card{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.profile-avatar-card__content{gap:var(--spacing-6);flex-direction:column;align-items:flex-start;display:flex}@media (min-width:768px){.profile-avatar-card__content{flex-direction:row;align-items:center}}.profile-avatar-wrapper{flex-shrink:0}.profile-avatar{border-radius:var(--radius-full);background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--bg-tertiary);width:128px;height:128px}.profile-avatar-info{gap:var(--spacing-2);flex-direction:column;flex:1;min-width:0;display:flex}.profile-name{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.profile-email{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.profile-invite-code{gap:var(--spacing-2);margin-top:var(--spacing-4);flex-direction:column;display:flex}.profile-invite-code__label{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.profile-invite-code__row{align-items:center;gap:var(--spacing-3);display:flex}.profile-invite-code__badge{align-items:center;gap:var(--spacing-2);background-color:var(--bg-tertiary);border:var(--border-width-thin) dashed var(--border-light);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-lg);display:flex}.profile-invite-code__icon{font-size:var(--icon-sm);color:var(--color-primary)}.profile-invite-code__value{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--text-primary);letter-spacing:.1em}.profile-invite-code__copy{align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-primary);color:var(--text-on-primary);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap;border:none;display:flex}.profile-invite-code__copy:hover{opacity:.9;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.profile-invite-code__copy--copied{background-color:var(--color-success)}.profile-invite-code__copy .material-symbols-outlined{font-size:var(--icon-sm)}.profile-loading{min-height:200px;font-size:var(--font-size-body);color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.profile-photo-btn{min-width:84px;height:40px;padding:0 var(--spacing-4);background-color:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-xl);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap;border:none}.profile-photo-btn:hover:not(:disabled){background-color:var(--color-neutral-dark);color:var(--text-on-primary)}.profile-photo-btn:active:not(:disabled){transform:translateY(0)}.profile-form-card{background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.profile-form-title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);padding-bottom:var(--spacing-5);border-bottom:var(--border-width-thin) solid var(--border-light);margin:0}.profile-form{margin-top:var(--spacing-6)}.profile-form-grid{gap:var(--spacing-6);grid-template-columns:1fr;display:grid}@media (min-width:768px){.profile-form-grid{grid-template-columns:repeat(2,1fr)}}.profile-form-field{gap:var(--spacing-2);flex-direction:column;display:flex}.profile-form-field--full{grid-column:1/-1}@media (min-width:768px){.profile-form-field--full{grid-column:span 2}}.profile-form-label{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-primary);padding-bottom:var(--spacing-2)}.profile-form-input{width:100%;height:48px;padding:0 var(--spacing-4);background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-default);font-size:var(--font-size-body);font-weight:var(--font-weight-normal);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default)}.profile-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.profile-form-input--readonly{background-color:var(--bg-tertiary);color:var(--text-secondary);cursor:not-allowed}.profile-form-input--readonly:focus{border-color:var(--border-light);box-shadow:none}.profile-form-actions{justify-content:flex-end;gap:var(--spacing-4);margin-top:var(--spacing-8);padding-top:var(--spacing-6);border-top:var(--border-width-thin) solid var(--border-light);display:flex}.profile-form-btn{min-width:84px;height:48px;padding:0 var(--spacing-6);border-radius:var(--radius-xl);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);white-space:nowrap;border:none}.profile-form-btn--cancel{background-color:var(--bg-tertiary);color:var(--text-primary)}.profile-form-btn--cancel:hover:not(:disabled){background-color:var(--color-neutral-dark);color:var(--text-on-primary)}.profile-form-btn--save{background-color:var(--color-success);color:var(--text-on-primary)}.profile-form-btn--save:hover:not(:disabled){box-shadow:var(--shadow-success);background-color:#27ae60;transform:translateY(-1px)}.profile-form-btn--save:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.profile-form-btn:disabled{opacity:.5;cursor:not-allowed}.profile-avatar-modal-overlay{z-index:100;padding:var(--spacing-4);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.profile-avatar-modal{background-color:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--spacing-6);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-xl);overflow-y:auto}.profile-avatar-modal__header{margin-bottom:var(--spacing-6);justify-content:space-between;align-items:center;display:flex}.profile-avatar-modal__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.profile-avatar-modal__close{border-radius:var(--radius-full);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.profile-avatar-modal__close:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.profile-avatar-modal__grid{gap:var(--spacing-4);grid-template-columns:repeat(4,1fr);display:grid}.profile-avatar-modal__item{padding:var(--spacing-2);border:2px solid var(--border-light);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);aspect-ratio:1;background:0 0;justify-content:center;align-items:center;display:flex}.profile-avatar-modal__item:hover:not(:disabled){border-color:var(--color-primary);transform:scale(1.05)}.profile-avatar-modal__item--selected{border-color:var(--color-primary);background-color:var(--color-primary-lighter);box-shadow:0 0 0 2px var(--color-primary-lighter)}.profile-avatar-modal__item:disabled{opacity:.5;cursor:not-allowed}.profile-avatar-modal__img{border-radius:var(--radius-lg);object-fit:cover;width:100%;height:100%}.profile-avatar-modal__saving{text-align:center;margin-top:var(--spacing-4);font-size:var(--font-size-body-sm);color:var(--text-secondary)}@media (max-width:768px){.profile-page{gap:var(--spacing-4)}.profile-header{margin-bottom:var(--spacing-6)}.profile-title{font-size:var(--font-size-h1)}.profile-container{gap:var(--spacing-6)}.profile-avatar-card,.profile-form-card{padding:var(--spacing-4)}.profile-avatar{width:96px;height:96px}.profile-form-grid{gap:var(--spacing-4)}.profile-form-actions{margin-top:var(--spacing-6);padding-top:var(--spacing-4);flex-direction:column}.profile-form-btn{justify-content:center;width:100%}.profile-avatar-modal__grid{gap:var(--spacing-3);grid-template-columns:repeat(3,1fr)}.profile-invite-code__row{flex-direction:column;align-items:flex-start}}.question-bank-page{gap:var(--spacing-6);flex-direction:column;display:flex}.question-bank-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-8);display:flex}.question-bank-header__content{gap:var(--spacing-2);flex-direction:column;flex:1;display:flex}.question-bank-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);margin:0}.question-bank-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);line-height:var(--line-height-normal);margin:0}.question-bank-add-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background-color:var(--color-primary);color:var(--text-on-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;flex-shrink:0;display:flex}.question-bank-add-btn:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.question-bank-add-btn:active:not(:disabled){box-shadow:var(--shadow-none);transform:translateY(0)}.question-bank-add-btn__icon{font-size:var(--icon-lg)}.question-bank-tabs{gap:var(--spacing-8);border-bottom:var(--border-width-thin) solid var(--border-light);display:flex}.question-bank-tab{appearance:none;padding:var(--spacing-4) 0;padding-bottom:calc(var(--spacing-3) + 3px);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-bold);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);letter-spacing:var(--letter-spacing-wide);background:0 0;border:none;border-bottom:3px solid #0000}.question-bank-tab:hover{color:var(--text-primary)}.question-bank-tab--active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.question-bank-filters{gap:var(--spacing-3);padding:var(--spacing-4);background-color:var(--bg-primary);border-radius:0 0 var(--radius-lg) var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);margin-bottom:var(--spacing-6);border-top:none;flex-wrap:wrap;align-items:center;display:flex}.question-bank-filter-btn{justify-content:center;align-items:center;gap:var(--spacing-2);height:40px;padding:0 var(--spacing-3);background-color:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;flex-shrink:0;display:flex}.question-bank-filter-btn:hover{background-color:var(--color-primary-lightest)}.question-bank-filter-btn .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-filter-clear{justify-content:center;align-items:center;gap:var(--spacing-2);height:40px;padding:0 var(--spacing-3);color:var(--color-danger);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;display:flex}.question-bank-filter-clear:hover{background-color:#ff70701a}.question-bank-filter-clear .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-search{flex:1;min-width:200px;max-width:400px}.question-bank-search__wrapper{align-items:center;display:flex;position:relative}.question-bank-search__icon{left:var(--spacing-4);color:var(--text-tertiary);pointer-events:none;z-index:1;position:absolute}.question-bank-search__icon .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-search__input{width:100%;height:40px;padding:0 var(--spacing-4) 0 calc(var(--spacing-4) + var(--spacing-6));background-color:var(--bg-tertiary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);color:var(--text-primary);transition:all var(--transition-fast) var(--ease-default)}.question-bank-search__input::placeholder{color:var(--text-tertiary)}.question-bank-search__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.question-bank-filter-dropdown{position:relative}.question-bank-filter-menu{top:calc(100% + var(--spacing-1));background-color:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);z-index:1000;max-height:240px;margin-top:var(--spacing-1);position:absolute;left:0;overflow-y:auto}.question-bank-filter-menu-item{width:100%;padding:var(--spacing-3) var(--spacing-4);text-align:left;color:var(--text-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);background:0 0;border:none;display:block}.question-bank-filter-menu-item:hover{background-color:var(--color-primary-lightest)}.question-bank-filter-menu-item--active{background-color:var(--color-primary-lighter);color:var(--color-primary-dark);font-weight:var(--font-weight-semibold)}.question-bank-content{min-height:400px}.question-bank-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.question-bank-card{align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-3);background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-fast) var(--ease-default);display:flex;position:relative}.question-bank-card:hover{box-shadow:var(--shadow-md)}.question-bank-card__image{border-radius:var(--radius-md);background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--bg-tertiary);flex-shrink:0;width:96px;height:96px}.question-bank-card__content{flex-direction:column;flex:1;justify-content:space-between;min-height:96px;display:flex}.question-bank-card__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);display:flex}.question-bank-card__sender{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0 0 var(--spacing-1) 0}.question-bank-card__date{font-size:var(--font-size-small);color:var(--text-secondary);margin:0}.question-bank-card__add-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-on-primary);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);z-index:10;background-color:#0000004d;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.question-bank-card__add-btn:hover{background-color:var(--color-primary)}.question-bank-card__add-btn--selected{color:var(--text-on-primary);z-index:1;background-color:var(--color-primary)!important}.question-bank-card__add-btn .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-card__image-wrapper{flex-shrink:0;position:relative}.question-bank-card__delete-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;width:28px;height:28px;transition:background-color var(--transition-fast) var(--ease-default);z-index:2;background-color:#00000080;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:-6px;left:-6px}.question-bank-card__delete-btn:hover{background-color:var(--color-danger,#e53e3e)}.question-bank-card__delete-btn .material-symbols-outlined{font-size:16px}.question-bank-card__lesson-badge{top:var(--spacing-1);right:var(--spacing-1);padding:2px var(--spacing-2);font-size:11px;font-weight:var(--font-weight-bold);color:#fff;background-color:var(--color-primary);border-radius:var(--radius-sm);z-index:2;line-height:1.4;position:absolute}.question-bank-card__view-link{margin-top:var(--spacing-1);font-size:var(--font-size-small);color:var(--color-success,#38a169);cursor:pointer;text-align:left;font-weight:var(--font-weight-medium);transition:color var(--transition-fast) var(--ease-default);background:0 0;border:none;padding:0;text-decoration:underline}.question-bank-card__view-link:hover{color:var(--color-success-dark,#2f855a)}.question-bank-card__subtopic{margin:var(--spacing-1) 0 0;font-size:var(--font-size-small);color:var(--text-tertiary)}.question-bank-pdf-list{border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.question-bank-pdf-header{gap:var(--spacing-4);padding:var(--spacing-3);background-color:var(--bg-tertiary);border-bottom:var(--border-width-thin) solid var(--border-light);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-bold);color:var(--text-secondary);grid-template-columns:auto auto 1fr 1fr 1fr auto;align-items:center;display:grid}.question-bank-pdf-row{gap:var(--spacing-4);padding:var(--spacing-3);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-default);grid-template-columns:auto auto 1fr 1fr 1fr auto;align-items:center;display:grid}.question-bank-pdf-row:hover{background-color:var(--bg-tertiary)}.question-bank-pdf-row--selected{background-color:var(--color-primary-lightest);border-left:3px solid var(--color-primary)}.question-bank-pdf-select-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-tertiary);border:var(--border-width-thin) solid var(--border-light);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;display:flex}.question-bank-pdf-select-btn:hover{background-color:var(--bg-tertiary);border-color:var(--color-primary);color:var(--color-primary-dark)}.question-bank-pdf-select-btn--selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-primary);z-index:1}.question-bank-pdf-select-btn .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-pdf-icon{color:var(--color-danger);font-size:var(--icon-lg)}.question-bank-pdf-name,.question-bank-pdf-subject,.question-bank-pdf-topic{font-size:var(--font-size-body-sm);color:var(--text-primary);margin:0}.question-bank-pdf-more{color:var(--text-secondary);font-size:var(--icon-md)}.question-bank-empty{padding:var(--spacing-16) var(--spacing-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.question-bank-empty__icon{font-size:var(--icon-4xl);color:var(--text-tertiary);margin-bottom:var(--spacing-4)}.question-bank-empty__title{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-2) 0}.question-bank-empty__text{font-size:var(--font-size-body);color:var(--text-secondary);margin:0}.question-bank-selection-bar{padding:var(--spacing-4) var(--spacing-6);background-color:var(--bg-primary);border-top:var(--border-width-thin) solid var(--border-light);z-index:50;justify-content:center;align-items:center;gap:var(--spacing-4);display:flex;position:fixed;bottom:0;left:280px;right:0;box-shadow:0 -4px 8px #0000001a}.question-bank-selection-bar__info{left:var(--spacing-6);align-items:center;gap:var(--spacing-3);display:flex;position:absolute}.question-bank-selection-bar__count{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.question-bank-selection-bar__actions{align-items:center;gap:var(--spacing-3);display:flex}.question-bank-selection-bar__clear{right:var(--spacing-6);padding:var(--spacing-2) var(--spacing-4);color:var(--text-secondary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000;position:absolute}.question-bank-selection-bar__clear:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.question-bank-selection-bar__btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-5);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:flex}.question-bank-selection-bar__btn .material-symbols-outlined{font-size:var(--icon-md)}.question-bank-selection-bar__btn--secondary{color:var(--color-primary-dark);border:var(--border-width-medium) solid var(--color-primary);background-color:#0000}.question-bank-selection-bar__btn--secondary:hover{background-color:var(--color-primary-lightest);border-color:var(--color-primary-dark)}.question-bank-selection-bar__btn--primary{background-color:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}.question-bank-selection-bar__btn--primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.question-bank-selection-bar__btn--primary:active{box-shadow:var(--shadow-none);transform:translateY(0)}.question-bank-selected-items{margin-bottom:var(--spacing-6);padding:var(--spacing-4);background-color:var(--bg-tertiary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light)}.question-bank-selected-items__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-3)}.question-bank-selected-items__list{gap:var(--spacing-2);flex-direction:column;max-height:120px;display:flex;overflow-y:auto}.question-bank-selected-item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background-color:var(--bg-primary);border-radius:var(--radius-md);display:flex}.question-bank-selected-item__icon{font-size:var(--icon-md);color:var(--color-primary-dark);flex-shrink:0}.question-bank-selected-item__text{font-size:var(--font-size-body-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.question-bank-modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:101;padding:var(--spacing-4);animation:question-bank-modal-fade-in var(--transition-default) ease-out;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.question-bank-modal-content{background-color:var(--bg-primary);border-radius:var(--radius-2xl);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-xl);padding:var(--spacing-4);animation:question-bank-modal-slide-in var(--transition-default) ease-out;position:relative;overflow-y:auto}.question-bank-modal-content--pdf{flex-direction:column;max-width:1024px;max-height:90vh;display:flex}.question-bank-modal-content--homework{max-width:512px}.question-bank-modal-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.question-bank-modal-title{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.question-bank-modal-close{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-default);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.question-bank-modal-close:hover{background-color:var(--bg-tertiary);color:var(--color-danger)}.question-bank-modal-image{object-fit:contain;border-radius:var(--radius-lg);width:100%;height:auto;max-height:70vh}.question-bank-modal-pdf-preview{min-height:0;margin-bottom:var(--spacing-4);flex:1;overflow-y:auto}.question-bank-modal-pdf-placeholder{background-color:var(--bg-tertiary);border-radius:var(--radius-lg);padding:var(--spacing-8);text-align:center;color:var(--text-tertiary);justify-content:center;align-items:center;height:60vh;display:flex}.question-bank-modal-actions{justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-4);display:flex}.question-bank-modal-btn{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-lg);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none;display:inline-flex}.question-bank-modal-btn--primary{background-color:var(--color-primary);color:var(--text-on-primary)}.question-bank-modal-btn--primary:hover{background-color:var(--color-primary-dark)}.question-bank-modal-btn--secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.question-bank-modal-btn--secondary:hover{background-color:var(--color-neutral-dark)}.question-bank-modal-btn--danger{color:var(--color-danger);background-color:#ff70701a}.question-bank-modal-btn--danger:hover{background-color:#ff707033}.question-bank-homework-form{gap:var(--spacing-4);flex-direction:column;display:flex}.question-bank-homework-field{gap:var(--spacing-1);flex-direction:column;display:flex}.question-bank-homework-label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.question-bank-homework-select{width:100%;padding:var(--spacing-2);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--border-light);color:var(--text-primary);font-size:var(--font-size-body-sm);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);background-color:#0000}.question-bank-homework-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.question-bank-homework-divider{align-items:center;gap:var(--spacing-2);display:flex}.question-bank-homework-divider hr{border:none;border-top:var(--border-width-thin) solid var(--border-light);flex:1;margin:0}.question-bank-homework-divider span{font-size:var(--font-size-small);color:var(--text-tertiary)}.question-bank-homework-new-btn{width:100%;padding:var(--spacing-2);border-radius:var(--radius-lg);background-color:var(--bg-tertiary);color:var(--text-primary);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast) var(--ease-default);border:none}.question-bank-homework-new-btn:hover{background-color:var(--color-primary-lightest)}@keyframes question-bank-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes question-bank-modal-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.question-bank-header{flex-direction:column}.question-bank-add-btn{justify-content:center;width:100%}.question-bank-filters{flex-direction:column;align-items:stretch}.question-bank-search{max-width:100%}.question-bank-filter-dropdown{width:100%}.question-bank-filter-btn{justify-content:space-between;width:100%}.question-bank-filter-menu{width:100%;left:0}.question-bank-grid{grid-template-columns:1fr}.question-bank-pdf-header,.question-bank-pdf-row{gap:var(--spacing-2);grid-template-columns:auto auto 1fr}.question-bank-pdf-header>div:nth-child(3),.question-bank-pdf-header>div:nth-child(4),.question-bank-pdf-row>p:nth-child(3),.question-bank-pdf-row>p:nth-child(4){display:none}.question-bank-selection-bar{align-items:stretch;gap:var(--spacing-3);flex-direction:column;left:0}.question-bank-selection-bar__actions{flex-direction:column;width:100%}.question-bank-selection-bar__clear,.question-bank-selection-bar__add{justify-content:center;width:100%}.question-bank-modal-content{max-width:calc(100vw - (2 * var(--spacing-4)))}}.stat-card-wrapper{box-sizing:border-box;flex:300px;max-width:380px}.stat-card-inner{gap:var(--spacing-4);border-radius:var(--radius-default);padding:var(--spacing-6);border:var(--border-width-thin) solid var(--border-light);background-color:var(--bg-primary);flex-direction:column;display:flex}.stat-card-link{width:18.3em;transition:background-color var(--transition-normal);text-decoration:none;display:block}.stat-card-link:hover .stat-card-inner{background-color:var(--color-primary-lighter)}.stat-card-icon{color:var(--color-primary-dark);font-size:var(--font-size-3xl)}.stat-card-content{gap:var(--spacing-2);flex-direction:column;display:flex}.stat-card-title{color:var(--text-secondary);font-size:var(--font-size-body);font-weight:500}.stat-card-value{color:var(--text-primary);font-size:var(--font-size-3xl);letter-spacing:-.025em;font-weight:700}.stat-card-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:400}[data-theme=dark] .stat-card-inner{background-color:var(--bg-tertiary);border-color:var(--border-light)}[data-theme=dark] .stat-card-link:hover .stat-card-inner{background-color:var(--color-primary-lightest)}[data-theme=dark] .stat-card-icon{color:var(--color-primary)}[data-theme=dark] .stat-card-title,[data-theme=dark] .stat-card-subtitle{color:var(--text-muted)}[data-theme=dark] .stat-card-value{color:var(--text-on-primary)}@media (max-width:768px){.stat-card-inner{padding:var(--spacing-4)}.stat-card-icon,.stat-card-value{font-size:var(--font-size-2xl)}}.dashboard-main{width:100%;padding:var(--spacing-6);gap:var(--spacing-8);flex-direction:column;display:flex}.dashboard-header{gap:var(--spacing-8);flex-direction:column;display:flex}.breadcrumb-container{gap:var(--spacing-2);padding-bottom:var(--spacing-2);flex-wrap:wrap;display:flex}.breadcrumb-link{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;line-height:1.5}.breadcrumb-separator{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500}.breadcrumb-current{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;line-height:1.5}.dashboard-title{color:var(--text-primary);font-size:var(--font-size-3xl);letter-spacing:-.033em;font-weight:900;line-height:1.2}.dashboard-cards-grid{gap:var(--spacing-6);flex-flow:row;align-items:flex-start;display:flex}[data-theme=dark] .breadcrumb-link,[data-theme=dark] .breadcrumb-separator{color:var(--text-muted)}[data-theme=dark] .breadcrumb-current,[data-theme=dark] .dashboard-title{color:var(--text-on-primary)}@media (max-width:768px){.dashboard-main{padding:var(--spacing-4);gap:var(--spacing-6)}.dashboard-cards-grid{gap:var(--spacing-4);flex-direction:column;display:flex}}.teachers-main{width:100%;max-width:100%;padding:var(--spacing-4);box-sizing:border-box;flex-direction:column;gap:0;display:flex}.teachers-title{color:var(--text-primary);font-size:var(--font-size-3xl);letter-spacing:-.033em;min-width:18rem;font-weight:900;line-height:1.2}.teachers-subtitle{color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-2)}.teachers-table-wrapper{padding:var(--spacing-6) 0;width:100%;overflow-x:auto}.teachers-panel{border-radius:var(--radius-lg);background:0 0;overflow:hidden}.teachers-table{border-collapse:collapse;width:100%;min-width:max-content}.teachers-table-header-row{background:var(--bg-secondary)}.teachers-table-header-cell{padding:var(--spacing-4) var(--spacing-6);text-align:left;color:var(--text-secondary);font-size:var(--font-size-xs);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.teachers-table-body-row{border-top:var(--border-width-thin) solid var(--border-light);transition:background-color var(--transition-fast)}.teachers-table-body-row:hover{background:var(--color-primary-lightest)}.teachers-table-cell{height:5rem;padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);font-size:var(--font-size-sm);vertical-align:middle}.teachers-table-secondary-text{color:var(--text-secondary);font-size:var(--font-size-xs)}.teachers-code-text{background:var(--bg-tertiary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-family:monospace;font-size:var(--font-size-xs);color:var(--text-primary)}.teacher-name-cell{flex-direction:column;display:flex}.teacher-name{font-weight:600}.teachers-status-badge{align-items:center;gap:var(--spacing-2);border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-xs);padding:.35rem .75rem;display:inline-flex}.teachers-status-badge.active{color:#065f46;background:var(--color-success-light)}.teachers-status-badge.inactive{color:#991b1b;background:#fef2f2}.teachers-status-badge.pending{color:#92400e;background:#fffbeb}.teachers-actions{gap:var(--spacing-3);align-items:center;display:flex}.action-icon-btn-danger:hover{color:#dc2626;background:#fef2f2}.teachers-loading{padding:var(--spacing-8);text-align:center;color:var(--text-muted)}.invite-code-row{gap:var(--spacing-2);align-items:center;display:flex}.invite-code-row .form-input{letter-spacing:.05em;flex:1;font-family:monospace}.invite-code-generate-btn{align-items:center;gap:var(--spacing-1);white-space:nowrap;flex-shrink:0;display:inline-flex}.invite-code-generate-btn .material-symbols-outlined{font-size:18px}.kp-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.kp-modal-container{background:var(--bg-primary);width:500px;max-width:90%;padding:var(--spacing-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:.3s ease-out modalSlideIn;position:relative}.kp-modal-header{margin-bottom:var(--spacing-6)}.kp-modal-title{font-size:var(--font-size-2xl);color:var(--text-primary);margin:0 0 var(--spacing-2) 0;font-weight:800}.kp-modal-sub{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}@media (max-width:768px){.teachers-main{padding:var(--spacing-4);width:100%}.teachers-table-wrapper{margin:0;padding-left:0;padding-right:0}}.users-main{width:100%;max-width:100%;padding:var(--spacing-4);box-sizing:border-box;flex-direction:column;gap:0;display:flex}.users-title{color:var(--text-primary);font-size:var(--font-size-3xl);letter-spacing:-.033em;min-width:18rem;font-weight:900;line-height:1.2}.users-subtitle{color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-2)}.users-table-wrapper{padding:var(--spacing-6) 0;width:100%;overflow-x:auto}.users-panel{border-radius:var(--radius-lg);background:0 0;overflow:hidden}.users-table{border-collapse:collapse;width:100%;min-width:max-content}.users-table-header-row{background:var(--bg-secondary)}.users-table-header-cell{padding:var(--spacing-4) var(--spacing-6);text-align:left;color:var(--text-secondary);font-size:var(--font-size-xs);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.users-table-body-row{border-top:var(--border-width-thin) solid var(--border-light);transition:background-color var(--transition-fast)}.users-table-body-row:hover{background:var(--color-primary-lightest)}.users-table-cell{height:5rem;padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);font-size:var(--font-size-sm)}.users-table-secondary-text{color:var(--text-secondary)}.users-status-badge{align-items:center;gap:var(--spacing-2);border-radius:var(--radius-full);padding:.35rem .75rem;font-weight:600;display:inline-flex}.users-status-badge.active{color:#065f46;background:var(--color-success-light)}.users-status-badge.inactive{color:#991b1b;background:#fef2f2}.users-status-badge.pending{color:#92400e;background:#fffbeb}.users-name{font-weight:600}.users-actions{gap:var(--spacing-3);align-items:center;display:flex}.users-loading{padding:var(--spacing-8);text-align:center;color:var(--text-muted)}.users-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.users-modal-container{background:var(--bg-primary);width:500px;max-width:90%;padding:var(--spacing-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:.3s ease-out usersModalSlideIn;position:relative}.users-modal-header{margin-bottom:var(--spacing-6)}.users-modal-title{font-size:var(--font-size-2xl);color:var(--text-primary);margin:0 0 var(--spacing-2) 0;font-weight:800}.users-modal-sub{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}@keyframes usersModalSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.users-pagination-shell{padding:var(--spacing-4)}.users-pagination-wrapper{justify-content:center;align-items:center;gap:var(--spacing-1);background:var(--bg-primary);border-radius:var(--radius-full);padding:var(--spacing-1) var(--spacing-4);box-shadow:var(--shadow-xs);display:flex}.pagination-page-link.active{background-color:var(--color-primary);color:var(--text-primary);font-weight:700}[data-theme=dark] .users-title{color:var(--text-on-primary)}[data-theme=dark] .users-table-body-row:hover{background-color:#a8d8b91a}[data-theme=dark] .users-table-cell{color:var(--text-on-primary)}@media (max-width:768px){.users-main{padding:var(--spacing-4)}.users-table-cell{padding:var(--spacing-2);font-size:var(--font-size-sm)}}.subscription-main{width:100%;max-width:100%;padding:var(--spacing-4);box-sizing:border-box;flex-direction:column;gap:0;display:flex}.subscription-header-row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.subscription-title{color:var(--text-primary);font-size:var(--font-size-3xl);letter-spacing:-.033em;min-width:18rem;font-weight:900;line-height:1.2}.subscription-subtitle{color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-2)}.subscription-table-wrapper{padding:var(--spacing-4) 0;width:100%;overflow-x:auto}.subscription-panel{border-radius:var(--radius-lg);background:0 0;overflow:hidden}.subscription-table{border-collapse:collapse;width:100%;min-width:max-content}.subscription-table-header-row{background:var(--bg-secondary)}.subscription-table-header-cell{padding:var(--spacing-4) var(--spacing-6);text-align:left;color:var(--text-secondary);font-size:var(--font-size-xs);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.subscription-table-body-row{border-top:var(--border-width-thin) solid var(--border-light);transition:background-color var(--transition-fast)}.subscription-table-body-row:hover{background:var(--color-primary-lightest)}.subscription-table-cell{height:5rem;padding:var(--spacing-4) var(--spacing-6);color:var(--text-primary);font-size:var(--font-size-sm)}.subscription-table-secondary-text{color:var(--text-secondary);font-size:var(--font-size-xs)}.subscription-status-badge{align-items:center;gap:var(--spacing-2);border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-xs);padding:.35rem .75rem;display:inline-flex}.subscription-status-badge.active{color:#065f46;background:var(--color-success-light)}.subscription-status-badge.passive{color:#991b1b;background:var(--color-danger-light)}.subscription-actions{gap:var(--spacing-4);align-items:center;display:flex}.plan-name,.plan-price{font-weight:700}.limits-summary{font-size:var(--font-size-xs)}.form-section-title{margin-bottom:var(--spacing-2);margin-top:var(--spacing-4);color:var(--text-primary);font-weight:700}.form-checkbox-label{align-items:center;gap:var(--spacing-2);cursor:pointer;display:flex}.btn-save{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);background:var(--color-primary-dark);color:var(--text-on-primary);cursor:pointer;transition:background-color var(--transition-fast);border:none;font-weight:500}.btn-save:hover{background:var(--color-secondary)}.state-message{padding:var(--spacing-12);text-align:center;color:var(--text-muted);font-weight:500}.student-subscriptions-page{box-sizing:border-box;width:100%;max-width:100%;overflow-x:hidden}.student-subs-table-wrap{padding:var(--spacing-4) 0;box-sizing:border-box;width:100%;margin:0}.student-subscriptions-page .users-panel{width:100%;padding-right:0}.student-subscriptions-page .users-table-header-cell:first-child,.student-subscriptions-page .users-table-cell:first-child{width:240px;min-width:240px;max-width:300px;padding-left:var(--spacing-6)}.student-subscriptions-page .users-table-cell:first-child{white-space:normal;overflow:visible}.student-subscriptions-page .users-table-cell:first-child .users-table-secondary-text{word-break:break-word;margin-top:2px;line-height:1.4}.users-status-badge.expired{color:var(--text-secondary);background:var(--bg-tertiary)}.users-status-badge.trial{color:#854d0e;background:var(--color-warning-light)}.wizard-steps{margin-bottom:var(--spacing-8);justify-content:space-between;display:flex;position:relative}.wizard-steps:before{content:"";background:var(--border-light);z-index:0;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.wizard-step{z-index:1;background:var(--bg-primary);padding:0 var(--spacing-2);align-items:center;gap:var(--spacing-2);flex-direction:column;display:flex;position:relative}.step-number{border-radius:var(--radius-full);background:var(--border-light);width:2rem;height:2rem;color:var(--text-muted);font-weight:600;font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.wizard-step.active .step-number,.wizard-step.completed .step-number{background:var(--color-primary-dark);color:var(--text-on-primary)}.step-label{font-size:var(--font-size-xs);color:var(--text-muted);cursor:pointer;font-weight:500}.wizard-step.active .step-label{color:var(--color-primary-dark);font-weight:700}.modal-section-group{gap:var(--spacing-4);flex-direction:column;display:flex}.modal-section-title{color:var(--text-primary);margin-bottom:var(--spacing-2);font-weight:700}.modal-section-subtitle{font-size:var(--font-size-sm);color:var(--text-muted)}.info-box{padding:var(--spacing-4);border-radius:var(--radius-md);margin-top:var(--spacing-2)}.info-box.gray{background-color:var(--bg-secondary);border:var(--border-width-thin) solid var(--border-light)}.info-box.blue{background-color:var(--color-info-light);color:#1d4ed8;border:var(--border-width-thin) solid var(--color-info-light)}.wizard-option-label{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast);display:flex}.wizard-option-label:hover{background-color:var(--bg-secondary)}.wizard-summary-box{text-align:left;padding:var(--spacing-4);background-color:var(--bg-secondary);border-radius:var(--radius-md);gap:var(--spacing-2);flex-direction:column;display:flex}.wizard-summary-text{font-size:var(--font-size-sm);color:var(--text-muted)}.text-bold{font-weight:700}.payments-page{box-sizing:border-box;width:100%;max-width:100%}.payments-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.payments-filter-container{padding:var(--spacing-4)}.payment-date{font-weight:500}.student-name{font-weight:700}.student-email{font-size:var(--font-size-xs);color:var(--text-secondary)}.payment-amount{font-weight:700}.ref-id{font-size:var(--font-size-xs);color:var(--text-secondary);font-family:monospace}.users-status-badge.success{color:#065f46;background:var(--color-success-light)}.users-status-badge.failed{color:#991b1b;background:var(--color-danger-light)}.users-status-badge.refunded{color:var(--text-secondary);background:var(--bg-tertiary)}.payments-page .users-table-header-cell:nth-child(2),.payments-page .users-table-cell:nth-child(2){width:220px;min-width:220px;max-width:280px}.payments-page .users-table-cell:nth-child(2){white-space:normal;overflow:visible}.payments-page .users-table-cell:nth-child(2) .users-table-secondary-text{word-break:break-word;margin-top:2px;line-height:1.4}.payments-modal-body{padding:var(--spacing-2)}.modal-body-row{padding:var(--spacing-3) 0;border-bottom:var(--border-width-thin) solid var(--border-light);font-size:var(--font-size-sm);justify-content:space-between;display:flex}.modal-label{color:var(--text-muted);font-weight:500}.modal-value{color:var(--text-primary);text-align:right;font-weight:600}.modal-value.mono{letter-spacing:-.05em;font-family:monospace}.payment-alert{margin-top:var(--spacing-4);padding:var(--spacing-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.payment-alert.error{background-color:var(--color-danger-light);color:#b91c1c}.payment-alert.refund{background-color:var(--bg-tertiary);color:var(--text-secondary)}
