.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);position:relative;overflow:hidden;padding:1rem}.login-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(236,72,153,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(236,72,153,.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}.login-container{position:relative;z-index:1;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}.login-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.login-brand-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff}.login-brand-text{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.login-card{width:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);border-top:1px solid var(--color-border-primary)}.login-card-header{padding:2rem 2rem 1.5rem;text-align:center;border-bottom:1px solid var(--color-border-primary)}.login-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.login-subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin:0}.login-card-body{padding:1.5rem 2rem}.login-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.01em}.login-google-btn:hover{background:var(--color-bg-hover);border-color:var(--color-accent-primary);box-shadow:0 0 0 1px #ec489933}.login-google-icon{flex-shrink:0}.login-remember-me{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding:.625rem .875rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.login-remember-me:hover{background:var(--color-bg-hover);border-color:var(--color-border-secondary);color:var(--color-text-primary)}.login-remember-me input{position:absolute;opacity:0;width:0;height:0}.login-remember-me:focus-within{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px #ec489940}.login-remember-me .login-remember-me-box{flex-shrink:0;width:1.125rem;height:1.125rem;border:2px solid var(--color-border-secondary);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.login-remember-me input:checked+.login-remember-me-box{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-color:transparent}.login-remember-me .login-remember-me-box svg{opacity:0;color:#fff;transition:opacity var(--transition-fast)}.login-remember-me input:checked+.login-remember-me-box svg{opacity:1}.login-info{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.login-info-item{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--color-text-secondary)}.login-info-item svg{color:var(--color-accent-primary);flex-shrink:0}.login-card-footer{padding:1rem 2rem;background:var(--color-bg-tertiary);border-top:1px solid var(--color-border-primary)}.login-card-footer p{font-size:.8125rem;color:var(--color-text-tertiary);text-align:center;margin:0}.login-footer{margin-top:2rem;text-align:center}.login-footer p{font-size:.8125rem;color:var(--color-text-muted);margin:0}@media(max-width:480px){.login-card-header,.login-card-body{padding-left:1.5rem;padding-right:1.5rem}.login-card-footer{padding:.875rem 1.5rem}}.auth-success-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);color:var(--color-text-primary)}.auth-card{padding:2.5rem 3rem;border-radius:var(--radius-xl);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-lg);text-align:center;max-width:360px;width:90%}.auth-title{margin-bottom:.5rem;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.auth-text{margin-bottom:0;font-size:.9375rem;color:var(--color-text-tertiary)}.auth-spinner{margin-top:1.5rem;width:40px;height:40px;border-radius:50%;border:3px solid var(--color-border-primary);border-top-color:var(--color-accent-primary);margin-inline:auto;animation:spin .8s linear infinite}.complete-reg-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);position:relative;overflow:hidden;padding:1rem}.complete-reg-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(236,72,153,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(236,72,153,.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}.complete-reg-container{position:relative;z-index:1;width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center}.complete-reg-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.complete-reg-brand-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff}.complete-reg-brand-text{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.complete-reg-card{width:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);border-top:1px solid var(--color-border-primary)}.complete-reg-header{padding:1.5rem 2rem;border-bottom:1px solid var(--color-border-primary)}.complete-reg-step{margin-bottom:1rem}.complete-reg-step-badge{display:inline-block;padding:.25rem .75rem;background:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border);border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.complete-reg-title{font-size:1.375rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.375rem}.complete-reg-subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin:0}.complete-reg-form{padding:1.5rem 2rem 2rem}.complete-reg-label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.complete-reg-role-section{margin-bottom:1.5rem}.complete-reg-role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.complete-reg-role-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:center}.complete-reg-role-btn:hover{border-color:var(--color-border-secondary);background:var(--color-bg-hover)}.complete-reg-role-btn.active{border-color:var(--color-accent-primary);background:var(--color-info-bg)}.complete-reg-role-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.complete-reg-role-btn.active .complete-reg-role-icon{background:var(--color-accent-primary);color:#fff}.complete-reg-role-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.complete-reg-role-desc{font-size:.75rem;color:var(--color-text-tertiary)}.complete-reg-fields{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.complete-reg-field{display:flex;flex-direction:column}.complete-reg-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.complete-reg-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);color:var(--color-danger);font-size:.875rem;margin-bottom:1rem}.complete-reg-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;background:var(--color-text-primary);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.complete-reg-submit:hover:not(:disabled){background:var(--color-text-secondary)}.complete-reg-submit:disabled{opacity:.7;cursor:not-allowed}.complete-reg-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.complete-reg-header,.complete-reg-form{padding-left:1.25rem;padding-right:1.25rem}.complete-reg-role-grid,.complete-reg-row{grid-template-columns:1fr}}.pending-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);position:relative;overflow:hidden;padding:1rem}.pending-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(236,72,153,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(236,72,153,.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}.pending-container{position:relative;z-index:1;width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center}.pending-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.pending-brand-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff}.pending-brand-text{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.pending-card{width:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:2rem;text-align:center;box-shadow:var(--shadow-lg);border-top:1px solid var(--color-border-primary)}.pending-status-icon{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:var(--color-warning)}.pending-status-ring{position:absolute;inset:0;border:2px solid var(--color-warning);border-radius:50%;opacity:.2;animation:ping 1.5s ease-out infinite}@keyframes ping{0%{transform:scale(1);opacity:.2}to{transform:scale(1.4);opacity:0}}.pending-header{margin-bottom:1.5rem}.pending-badge{display:inline-block;padding:.25rem .75rem;background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;margin-bottom:1rem}.pending-title{font-size:1.375rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.pending-subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.pending-info{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.pending-info-item{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);text-align:left}.pending-info-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:var(--radius-sm);color:var(--color-text-tertiary);flex-shrink:0}.pending-info-content{display:flex;flex-direction:column;gap:.125rem}.pending-info-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.pending-info-text{font-size:.8125rem;color:var(--color-text-tertiary)}.pending-user{padding:1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);margin-bottom:1.5rem}.pending-user-row{display:flex;justify-content:space-between;padding:.375rem 0}.pending-user-row:not(:last-child){border-bottom:1px solid var(--color-border-primary);margin-bottom:.375rem;padding-bottom:.75rem}.pending-user-label{font-size:.8125rem;color:var(--color-text-tertiary)}.pending-user-value{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.pending-logout-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pending-logout-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-secondary);color:var(--color-text-primary)}.rejected-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);position:relative;overflow:hidden;padding:1rem}.rejected-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(236,72,153,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(236,72,153,.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}.rejected-container{position:relative;z-index:1;width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center}.rejected-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.rejected-brand-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff}.rejected-brand-text{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.rejected-card{width:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:2rem;text-align:center;box-shadow:var(--shadow-lg);border-top:1px solid var(--color-border-primary)}.rejected-status-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:50%;color:var(--color-danger)}.rejected-header{margin-bottom:1.5rem}.rejected-badge{display:inline-block;padding:.25rem .75rem;background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;margin-bottom:1rem}.rejected-title{font-size:1.375rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.rejected-subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.rejected-info{display:flex;gap:.75rem;padding:1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);text-align:left;margin-bottom:1.5rem}.rejected-info-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-danger-bg);border-radius:var(--radius-sm);color:var(--color-danger);flex-shrink:0}.rejected-info-content p{font-size:.875rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.rejected-back-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--color-text-primary);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.rejected-back-btn:hover{background:var(--color-text-secondary)}.dash-layout{display:flex;min-height:100vh;background:var(--color-bg-primary)}.dash-sidebar{width:260px;flex-shrink:0;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-primary);position:sticky;top:0;height:100vh;transition:width var(--transition-normal);box-shadow:1px 0 0 var(--color-border-primary)}.dash-layout.sidebar-collapsed .dash-sidebar{width:72px}.dash-sidebar-inner{display:flex;flex-direction:column;height:100%;padding:1rem .75rem;overflow-x:hidden}.dash-logo{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;margin-bottom:1.5rem}.dash-logo-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff;flex-shrink:0}.dash-logo-text{font-size:1.125rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;white-space:nowrap;overflow:hidden}.dash-layout.sidebar-collapsed .dash-logo-text{opacity:0;width:0}.dash-sidebar-toggle{margin-left:auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.dash-sidebar-toggle:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dash-layout.sidebar-collapsed .dash-logo{justify-content:center;padding:.5rem}.dash-layout.sidebar-collapsed .dash-logo-icon{display:none}.dash-layout.sidebar-collapsed .dash-sidebar-toggle{margin-left:0}.dash-nav{flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.dash-nav::-webkit-scrollbar{display:none}.dash-nav-section{margin-bottom:1.5rem}.dash-nav-label{display:block;padding:0 .75rem;margin-bottom:.5rem;font-size:.6875rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden}.dash-layout.sidebar-collapsed .dash-nav-label{opacity:0;height:0;margin:0}.dash-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.dash-nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;position:relative}.dash-nav-item:hover{background:#ec489912;color:var(--color-text-primary)}.dash-nav-item.active{background:#ec48991f;color:var(--color-accent-primary);border:1px solid rgba(236,72,153,.2)}.dash-nav-icon{font-size:1.125rem;flex-shrink:0;width:20px;text-align:center;display:flex;align-items:center;justify-content:center}.dash-nav-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--color-border-primary)}.dash-nav-avatar-fallback{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary)}.dash-nav-item--avatar .dash-nav-icon{width:28px}.dash-layout.sidebar-collapsed .dash-nav-item--avatar .dash-nav-icon{width:32px}.dash-layout.sidebar-collapsed .dash-nav-item--avatar .dash-nav-avatar,.dash-layout.sidebar-collapsed .dash-nav-item--avatar .dash-nav-avatar-fallback{width:32px;height:32px}.dash-nav-text{flex:1;overflow:hidden;text-overflow:ellipsis}.dash-layout.sidebar-collapsed .dash-nav-text{opacity:0;width:0}.dash-nav-badge{background:var(--color-danger);color:#fff;font-size:.6875rem;font-weight:600;min-width:18px;height:18px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.dash-layout.sidebar-collapsed .dash-nav-badge{position:absolute;top:4px;right:4px;min-width:8px;height:8px;padding:0}.dash-sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.dash-user-section{position:relative}.dash-user-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.dash-user-button:hover{background:var(--color-bg-hover)}.dash-user-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;object-fit:cover}.dash-user-avatar-fallback{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600}.dash-user-info{display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;flex:1}.dash-layout.sidebar-collapsed .dash-user-info{opacity:0;width:0}.dash-user-name{font-size:.875rem;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dash-user-role{font-size:.75rem;color:var(--color-text-tertiary)}.dash-user-chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.dash-layout.sidebar-collapsed .dash-user-chevron{display:none}.dash-layout.sidebar-collapsed .dash-user-button{justify-content:center;padding:.5rem}.dash-layout.sidebar-collapsed .dash-user-avatar,.dash-layout.sidebar-collapsed .dash-user-avatar-fallback{width:40px;height:40px;margin:0 auto}.dash-layout.sidebar-collapsed .dash-sidebar-footer{padding-top:.75rem}.dash-layout.sidebar-collapsed .dash-profile-card{max-width:720px}.dash-user-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--color-bg-elevated);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:.375rem;box-shadow:var(--shadow-lg);z-index:50}.dash-layout.sidebar-collapsed .dash-user-menu{left:100%;right:auto;bottom:0;width:200px;margin-left:8px}.dash-user-menu-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .75rem;background:transparent;border:none;color:var(--color-text-secondary);font-size:.875rem;text-align:left;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.dash-user-menu-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dash-user-menu-item svg{flex-shrink:0;color:var(--color-text-tertiary)}.dash-user-menu-divider{height:1px;background:var(--color-border-primary);margin:.375rem 0}.dash-user-menu-logout{color:var(--color-danger)}.dash-user-menu-logout:hover{background:var(--color-danger-bg);color:var(--color-danger)}.dash-user-menu-logout svg{color:var(--color-danger)}.dash-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.dash-content{flex:1;min-height:0;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.dash-content.dash-content--messages{display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding:0;max-width:none;margin:0}.dash-content.dash-content--workspace{max-width:none;margin:0}.dash-messages-page{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.dash-section-header{margin-bottom:1.5rem}.dash-section-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem;letter-spacing:-.02em}.dash-section-subtitle{font-size:.9375rem;color:var(--color-text-tertiary);margin:0}.dash-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.dash-stat-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem;cursor:pointer;transition:all var(--transition-fast)}.dash-stat-card:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-secondary)}.dash-stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.dash-stat-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ec48991a;border:1px solid rgba(236,72,153,.2);border-radius:var(--radius-md);font-size:1.25rem;color:var(--color-accent-primary)}.dash-stat-value{font-size:2rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;line-height:1;margin-bottom:.25rem}.dash-stat-label{font-size:.8125rem;color:var(--color-text-tertiary)}.dash-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem}.dash-action-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem;cursor:pointer;transition:all var(--transition-fast);text-align:left}.dash-action-card:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-secondary)}.dash-action-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ec48991a;border:1px solid rgba(236,72,153,.2);border-radius:var(--radius-md);font-size:1.25rem;margin-bottom:.75rem;color:var(--color-accent-primary)}.dash-action-title{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.25rem}.dash-action-desc{font-size:.8125rem;color:var(--color-text-tertiary);line-height:1.4}.dash-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.dash-toolbar-left,.dash-toolbar-right{display:flex;align-items:center;gap:.5rem}.dash-filter-tabs{display:flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.dash-filter-tab{padding:.375rem .75rem;background:transparent;border:none;color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.dash-filter-tab:hover{color:var(--color-text-primary)}.dash-filter-tab.active{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.dash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);text-align:center}.dash-empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#ec489914;border:1px solid rgba(236,72,153,.15);border-radius:var(--radius-lg);font-size:1.75rem;margin-bottom:1rem;color:var(--color-accent-primary)}.dash-empty-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.375rem}.dash-empty-text{font-size:.875rem;color:var(--color-text-tertiary);max-width:300px}.dash-profile-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.5rem;max-width:560px;margin-left:auto;margin-right:auto}.dash-profile-header{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border-primary);margin-bottom:1.25rem}.dash-profile-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover}.dash-profile-avatar-fallback{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600}.dash-profile-info h3{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.dash-profile-email{font-size:.875rem;color:var(--color-text-tertiary)}.dash-profile-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.dash-profile-field label{display:block;font-size:.6875rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.dash-profile-field span{font-size:.9375rem;color:var(--color-text-primary)}.dash-profile-field.empty span{color:var(--color-text-muted);font-style:italic}.dash-profile-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.dash-profile-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm)}.dash-profile-badge.badge-student{background:#22c55e33;color:var(--color-success)}.dash-profile-badge.badge-professor{background:#a855f733;color:#a855f7}.dash-profile-badge.badge-admin{background:#f59e0b33;color:#f59e0b}.dash-profile-badge.badge-status{background:#3b82f633;color:#3b82f6}.dash-profile-group{margin-top:1rem}.dash-profile-group-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .75rem}.dash-profile-footer{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.dash-profile-meta{font-size:.8125rem;color:var(--color-text-muted)}.dash-profile-meta-list{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--color-text-muted)}.dash-profile-link{font-size:.9375rem;color:var(--color-accent-primary);text-decoration:none}.dash-profile-link:hover{text-decoration:underline}.dash-profile-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.dash-profile-group-header .dash-profile-group-title{margin:0}.dash-profile-edit-btn{font-size:.75rem;color:var(--color-accent-primary);background:none;border:none;cursor:pointer;padding:.25rem .5rem}.dash-profile-edit-btn:hover{text-decoration:underline}.dash-profile-prefs{display:flex;flex-direction:column;gap:.75rem}.dash-profile-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.dash-profile-toggle-label{font-size:.875rem;color:var(--color-text-secondary)}.dash-profile-toggle{width:44px;height:24px;border-radius:12px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);cursor:pointer;position:relative;flex-shrink:0}.dash-profile-toggle.on{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.dash-profile-toggle-thumb{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform var(--transition-fast)}.dash-profile-toggle.on .dash-profile-toggle-thumb{transform:translate(20px)}.dash-notif-list{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden}.dash-notif-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border-primary);cursor:pointer;transition:background var(--transition-fast)}.dash-notif-item:last-child{border-bottom:none}.dash-notif-item:hover{background:var(--color-bg-tertiary)}.dash-notif-item.unread{background:var(--color-info-bg)}.dash-notif-item.unread:hover{background:#ec489926}.dash-notif-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent-primary);flex-shrink:0;margin-top:.5rem}.dash-notif-dot.read{background:transparent}.dash-notif-body{flex:1;min-width:0}.dash-notif-message{font-size:.875rem;color:var(--color-text-secondary);line-height:1.5}.dash-notif-time{font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.notification-detail-body{padding:0 0 1rem}.notification-detail-message{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:0}.notification-detail-custom{margin-top:1rem;padding:1rem 1.25rem;background:#3b82f614;border-left:4px solid var(--color-accent-primary);border-radius:0 var(--radius-md) var(--radius-md) 0}.notification-detail-custom-label{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.notification-detail-custom-text{font-size:.9375rem;color:var(--color-text-primary);line-height:1.5;font-style:italic;white-space:pre-wrap}.notification-detail-footer{font-size:.8125rem;color:var(--color-text-muted);padding-top:.5rem;border-top:1px solid var(--color-border-primary)}.dash-prof-list{display:flex;flex-direction:column;gap:1rem}.dash-prof-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden}.dash-prof-header{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;cursor:pointer;transition:background var(--transition-fast)}.dash-prof-header:hover{background:var(--color-bg-tertiary)}.dash-prof-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.dash-prof-avatar-fallback{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.dash-prof-info{flex:1;min-width:0}.dash-prof-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.dash-prof-meta{font-size:.8125rem;color:var(--color-text-tertiary)}.dash-prof-topic-count{font-size:.8125rem;color:var(--color-accent-primary);font-weight:500}.dash-prof-topics{border-top:1px solid var(--color-border-primary);padding:.75rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.dash-prof-topic-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.dash-prof-topic-title{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.dash-prof-topic-desc{font-size:.8125rem;color:var(--color-text-tertiary);margin-top:.125rem}.dash-request-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.5rem}.dash-request-status{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.dash-request-detail{margin-bottom:.5rem;font-size:.9375rem;color:var(--color-text-secondary)}.dash-request-detail strong{color:var(--color-text-primary)}.users-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.users-page-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}.users-page-subtitle{font-size:.875rem;color:var(--color-text-tertiary);margin:.25rem 0 0}.users-stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1.5rem}.users-stat-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;cursor:pointer;transition:all var(--transition-fast)}.users-stat-card:hover{border-color:#ec48994d;background:var(--color-bg-tertiary)}.users-stat-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.users-stat-icon-total{background:#ec48991a;color:var(--color-accent-primary);border:1px solid rgba(236,72,153,.2)}.users-stat-icon-students{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.users-stat-icon-professors{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.users-stat-icon-active{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.users-stat-icon-rejected{background:#ef44441a;color:var(--color-danger);border:1px solid rgba(239,68,68,.2)}.users-stat-content{display:flex;flex-direction:column;gap:2px}.users-stat-value{font-size:1.375rem;font-weight:700;color:var(--color-text-primary);line-height:1;letter-spacing:-.02em}.users-stat-label{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.users-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.users-search-wrap{position:relative;flex:1;min-width:200px;max-width:360px}.users-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.users-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-primary);transition:all var(--transition-fast)}.users-search-input::placeholder{color:var(--color-text-muted)}.users-search-input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #ec48991a}.users-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.users-search-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.users-toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.users-filter-pills{display:flex;gap:.375rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.users-filter-pill{padding:.375rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.users-filter-pill:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.users-filter-pill.active{background:#ec489926;color:var(--color-accent-primary)}.users-view-toggle{display:flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.users-view-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.users-view-btn:hover{color:var(--color-text-primary)}.users-view-btn.active{background:#ec489926;color:var(--color-accent-primary)}.users-results-info{font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:1rem;display:flex;align-items:center;gap:.375rem}.users-results-search{color:var(--color-accent-primary);font-weight:500}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.user-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.875rem;transition:all var(--transition-fast)}.user-card:hover{border-color:#ec489940;box-shadow:0 4px 20px #00000026}.user-card-rejected{opacity:.65}.user-card-rejected:hover{opacity:.85}.user-card-top-row{display:flex;align-items:center;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-primary)}.user-card-status-dot{width:8px;height:8px;border-radius:50%}.user-card-status-dot.status-active{background:var(--color-success);box-shadow:0 0 6px #10b98180}.user-card-status-dot.status-rejected{background:var(--color-danger)}.user-card-status-text{font-size:.75rem;font-weight:500;color:var(--color-text-tertiary)}.user-card-role-badge{margin-left:auto;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.user-card-role-badge.role-student{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.user-card-role-badge.role-prof{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.user-card-main{display:flex;align-items:center;gap:.875rem}.user-card-avatar-wrap{flex-shrink:0}.user-card-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border-primary)}.user-card-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:1rem;font-weight:600;border:none}.user-card-identity{flex:1;min-width:0}.user-card-name{font-size:1rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.user-card-email{font-size:.8125rem;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-details{display:flex;flex-direction:column;gap:.375rem;padding:.75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border-primary)}.user-card-detail-row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.user-card-detail-row svg{color:var(--color-text-muted);flex-shrink:0}.user-card-detail-label{color:var(--color-text-tertiary);min-width:60px}.user-card-detail-value{color:var(--color-text-primary);font-weight:500}.user-card-actions{display:flex;gap:.5rem;padding-top:.5rem;margin-top:auto}.user-card-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.user-card-action-edit{background:var(--color-bg-tertiary);border-color:var(--color-border-primary);color:var(--color-text-secondary)}.user-card-action-edit:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-secondary)}.user-card-action-delete{background:#ef444414;border-color:#ef444426;color:var(--color-danger)}.user-card-action-delete:hover{background:#ef444426}.user-card-action-delete:disabled{opacity:.5;cursor:not-allowed}.users-table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th{padding:.875rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-primary)}.users-table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border-primary);vertical-align:middle}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr{transition:background var(--transition-fast)}.users-table tbody tr:hover{background:var(--color-bg-hover)}.users-table tbody tr.row-rejected{opacity:.6}.users-table-user{display:flex;align-items:center;gap:.75rem}.users-table-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.users-table-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.75rem;font-weight:600}.users-table-user-info{display:flex;flex-direction:column;gap:2px}.users-table-name{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.users-table-email{font-size:.75rem;color:var(--color-text-muted)}.users-table-role{display:inline-flex;padding:.25rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.users-table-role.role-student{background:#10b9811a;color:var(--color-success)}.users-table-role.role-prof{background:#3b82f61a;color:#3b82f6}.users-table-status{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500}.users-table-status .status-dot{width:6px;height:6px;border-radius:50%}.users-table-status.status-active{color:var(--color-success)}.users-table-status.status-active .status-dot{background:var(--color-success)}.users-table-status.status-rejected{color:var(--color-danger)}.users-table-status.status-rejected .status-dot{background:var(--color-danger)}.users-table-details{font-size:.8125rem;color:var(--color-text-tertiary)}.users-table-actions{display:flex;gap:.375rem}.users-table-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.users-table-action-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-secondary)}.users-table-action-btn.users-table-action-delete:hover{background:#ef44441a;border-color:#ef444433;color:var(--color-danger)}.users-table-no-actions{color:var(--color-text-muted);font-size:.8125rem}@media(max-width:1200px){.users-stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.users-stats-grid{grid-template-columns:repeat(2,1fr)}.users-toolbar{flex-direction:column;align-items:stretch}.users-search-wrap{max-width:none}.users-toolbar-right{margin-left:0;justify-content:space-between}.users-filter-pills{flex-wrap:wrap}}@media(max-width:600px){.users-stats-grid,.users-grid{grid-template-columns:1fr}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.modal-header-info{display:flex;align-items:center;gap:.875rem}.modal-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .2rem}.modal-subtitle{font-size:.8125rem;color:var(--color-text-tertiary);margin:0}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.modal-edit-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0}.modal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.modal-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);padding:.625rem .875rem;font-size:.875rem;color:var(--color-danger);margin-bottom:1rem}.modal-delete-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:50%;color:var(--color-danger);margin:0 auto 1rem}.topics-summary-row{display:flex;align-items:center;gap:0;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.5rem}.topics-summary-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 1.25rem}.topics-summary-num{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;line-height:1}.topics-summary-available{color:var(--color-success)}.topics-summary-assigned{color:var(--color-accent-primary)}.topics-summary-label{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.topics-summary-divider{width:1px;height:32px;background:var(--color-border-primary)}.topics-add-btn{margin-left:auto}.topics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.topic-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.topic-card:hover{border-color:var(--color-border-secondary)}.topic-card-clickable{cursor:pointer}.topic-card-clickable:hover{border-color:#ec489940;box-shadow:0 2px 12px #00000014}.topic-card-proposed{display:flex;flex-direction:column}.topic-card-header-proposed{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;margin-bottom:.5rem;border-bottom:1px solid var(--color-border-primary)}.topic-badge-proposed{padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:#ec489926;color:var(--color-accent-primary)}.topic-card-body-proposed{flex:1;min-width:0}.topic-card-actions-proposed{margin-top:.75rem;padding-top:.75rem}.topic-card-assigned{border-color:#ec489926;background:var(--color-bg-elevated)}.topic-card-top{display:flex;align-items:center;justify-content:space-between}.topic-card-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#ec48991a;border:1px solid rgba(236,72,153,.2);border-radius:var(--radius-md);color:var(--color-accent-primary);flex-shrink:0}.topic-card-title{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.4}.topic-card-desc{font-size:.8125rem;color:var(--color-text-tertiary);margin:0;line-height:1.5;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.topic-card-student{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.8125rem;color:var(--color-text-tertiary)}.topic-card-student svg{color:var(--color-text-muted);flex-shrink:0}.topic-card-student-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover}.topic-card-student-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.625rem;font-weight:600}.topic-card-student-name{font-size:.8125rem;font-weight:500;color:var(--color-text-primary)}.topic-card-student-removable{cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);border:none;width:100%;text-align:left}.topic-card-student-removable:hover{border-color:#ef444466;background:#ef444414}.topic-card-student-remove{margin-left:auto;color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast);flex-shrink:0}.topic-card-student-removable:hover .topic-card-student-remove{opacity:1;color:#ef4444}.topic-card-assign-section{margin-top:.25rem}.topic-card-assign-btn{width:100%;justify-content:center}.topic-card-assign-dropdown{border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-secondary);overflow:hidden}.topic-card-assign-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;font-size:.75rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-tertiary)}.topic-card-assign-close{background:none;border:none;cursor:pointer;padding:2px;color:var(--color-text-muted);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.topic-card-assign-close:hover{color:var(--color-text-primary);background:#ffffff0f}.topic-card-assign-option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem .75rem;background:none;border:none;border-bottom:1px solid var(--color-border-primary);cursor:pointer;transition:background var(--transition-fast);text-align:left}.topic-card-assign-option:last-child{border-bottom:none}.topic-card-assign-option:hover{background:#ec48990f}.topic-card-assign-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.topic-card-assign-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.6875rem;font-weight:600}.topic-card-assign-info{display:flex;flex-direction:column;min-width:0}.topic-card-assign-name{font-size:.8125rem;font-weight:500;color:var(--color-text-primary)}.topic-card-assign-meta{font-size:.75rem;color:var(--color-text-muted)}.topic-card-actions{display:flex;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border-primary);margin-top:auto}.choose-status-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.75rem;max-width:600px}.choose-status-pending{border-color:#f59e0b40;background:#f59e0b08}.choose-status-approved{border-color:#10b98140;background:#10b98108}.choose-status-badge-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem}.choose-status-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.choose-status-icon-pending{background:#f59e0b1f;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.choose-status-icon-approved{background:#10b9811f;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.choose-status-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.choose-status-info{font-size:.9rem;color:var(--color-text-tertiary);margin:0 0 1.25rem;line-height:1.6}.choose-status-details{display:flex;flex-direction:column;gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--color-border-primary)}.choose-status-detail-row{display:flex;align-items:center;gap:.875rem}.choose-status-detail-avatar-wrap{flex-shrink:0}.choose-status-detail-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover}.choose-status-detail-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.8125rem;font-weight:600}.choose-status-detail-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#ec48991a;border:1px solid rgba(236,72,153,.2);border-radius:var(--radius-md);color:var(--color-accent-primary);flex-shrink:0}.choose-status-detail-label{font-size:.75rem;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.choose-status-detail-value{font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.choose-status-detail-desc{font-size:.8125rem;color:var(--color-text-tertiary);margin-top:2px;line-height:1.5}.choose-change-topic-section{margin-top:2rem}.choose-change-topic-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.choose-change-topic-subtitle{font-size:.875rem;color:var(--color-text-tertiary);margin:0 0 1.25rem}.choose-prof-list{display:flex;flex-direction:column;gap:.75rem}.choose-prof-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-fast)}.choose-prof-card:hover{border-color:#ec489933}.choose-prof-card-open{border-color:var(--color-border-secondary)}.choose-prof-header-row{display:flex;align-items:stretch}.choose-prof-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;flex:1;min-width:0;background:transparent;border:none;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.choose-prof-header-clickable:hover{background:#ec48990a}.choose-prof-info-hint{font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.choose-prof-expand-btn{display:flex;align-items:center;gap:.5rem;padding:0 1rem;background:transparent;border:none;border-left:1px solid var(--color-border-primary);cursor:pointer;transition:background var(--transition-fast)}.choose-prof-expand-btn:hover{background:#ec48990a}.choose-prof-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0}.choose-prof-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.9375rem;font-weight:600}.choose-prof-info{flex:1;min-width:0}.choose-prof-name{font-size:1rem;font-weight:600;color:var(--color-text-primary)}.choose-prof-meta{font-size:.8125rem;color:var(--color-text-tertiary);margin-top:2px}.choose-prof-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.choose-prof-expand-btn .choose-prof-count{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;color:var(--color-accent-primary);background:#ec48991a;border:1px solid rgba(236,72,153,.2);border-radius:var(--radius-full);padding:.25rem .75rem}.choose-prof-chevron{color:var(--color-text-muted);transition:transform var(--transition-fast);flex-shrink:0}.choose-prof-chevron.rotated{transform:rotate(180deg)}.choose-prof-topics{border-top:1px solid var(--color-border-primary);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;background:var(--color-bg-tertiary)}.choose-prof-topics-label{font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:.5rem}.choose-prof-collab-row{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.choose-prof-collab-label{font-size:.875rem;color:var(--color-text-secondary)}.topic-detail-overlay{overflow-y:auto;align-items:flex-start;padding:2rem 1rem}.topic-detail-modal{display:flex;flex-direction:column;max-width:520px;width:100%;max-height:min(85vh,600px);margin:auto;padding:1.25rem 1.5rem}.topic-detail-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:0;border-bottom:1px solid var(--color-border-primary);flex-shrink:0}.topic-detail-modal-header .modal-title{margin:0}.topic-detail-modal-body{flex:1;overflow-y:auto;padding:1rem 0;min-height:80px}.topic-detail-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;margin-top:0;border-top:1px solid var(--color-border-primary);flex-shrink:0;background:var(--color-bg-secondary)}.topic-detail-modal-footer .btn{min-width:120px}.topic-detail-modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:flex-end;width:100%}.topic-detail-modal-actions .btn{min-width:auto;padding:.4rem .75rem;font-size:.8125rem}.topic-detail-prof{margin-bottom:1.25rem}.topic-detail-label{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-bottom:.25rem}.topic-detail-value{font-size:.9375rem;color:var(--color-text-secondary)}.topic-detail-section{margin-bottom:1.25rem}.topic-detail-section:last-child{margin-bottom:0}.topic-detail-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.4}.topic-detail-desc{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin:0;white-space:pre-wrap}.choose-prof-no-topics{padding:.75rem .25rem;color:var(--color-text-tertiary);font-size:.875rem;text-align:center}.choose-topic-row{display:flex;align-items:center}.choose-topic-row-clickable{width:100%;gap:.875rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.875rem 1rem;cursor:pointer;text-align:left;transition:border-color var(--transition-fast),background var(--transition-fast)}.choose-topic-row-clickable:hover:not(:disabled){border-color:#ec489940;background:#ec48990a}.choose-topic-row-clickable:disabled{opacity:.7;cursor:not-allowed}.choose-topic-row-action{font-size:.8125rem;font-weight:600;color:var(--color-accent-primary);flex-shrink:0}.choose-topic-row:hover{border-color:#ec489940}.choose-topic-row-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ec48991a;border:1px solid rgba(236,72,153,.15);border-radius:var(--radius-md);color:var(--color-accent-primary);flex-shrink:0}.choose-topic-row-body{flex:1;min-width:0}.choose-topic-row-title{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.choose-topic-row-desc{font-size:.8125rem;color:var(--color-text-tertiary);margin-top:2px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assignments-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.assignments-page-header-left{flex:1}.assignments-page-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}.assignments-page-subtitle{font-size:.875rem;color:var(--color-text-tertiary);margin:.25rem 0 0}.assignments-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.assignments-stat-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;cursor:pointer;transition:all var(--transition-fast)}.assignments-stat-card:hover{border-color:#ec48994d;background:var(--color-bg-tertiary)}.assignments-stat-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.assignments-stat-icon-total{background:#ec48991a;color:var(--color-accent-primary);border:1px solid rgba(236,72,153,.2)}.assignments-stat-icon-approved{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.assignments-stat-icon-pending{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.assignments-stat-icon-rejected{background:#ef44441a;color:var(--color-danger);border:1px solid rgba(239,68,68,.2)}.assignments-stat-content{display:flex;flex-direction:column;gap:2px}.assignments-stat-value{font-size:1.375rem;font-weight:700;color:var(--color-text-primary);line-height:1;letter-spacing:-.02em}.assignments-stat-label{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.assignments-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.assignments-search-wrap{position:relative;flex:1;min-width:200px;max-width:360px}.assignments-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.assignments-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-primary);transition:all var(--transition-fast)}.assignments-search-input::placeholder{color:var(--color-text-muted)}.assignments-search-input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #ec48991a}.assignments-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.assignments-search-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.assignments-toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.assignments-filter-pills{display:flex;gap:.375rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.assignments-filter-pill{padding:.375rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.assignments-filter-pill:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.assignments-filter-pill.active{background:#ec489926;color:var(--color-accent-primary)}.assignments-view-toggle{display:flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.assignments-view-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.assignments-view-btn:hover{color:var(--color-text-primary)}.assignments-view-btn.active{background:#ec489926;color:var(--color-accent-primary)}.assignments-results-info{font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:1rem;display:flex;align-items:center;gap:.375rem}.assignments-results-search{color:var(--color-accent-primary);font-weight:500}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.assignment-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:all var(--transition-fast)}.assignment-card:hover{border-color:#ec489940;box-shadow:0 4px 20px #00000026}.assignment-card-status-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-primary)}.assignment-card-status-badge{padding:.375rem .75rem;min-width:6.5rem;text-align:center;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.assignment-card-status-badge.assignment-status-approved{background:#10b98126;color:var(--color-success)}.assignment-card-status-badge.assignment-status-pending{background:#f59e0b26;color:#f59e0b}.assignment-card-status-badge.assignment-status-rejected{background:#ef444426;color:var(--color-danger)}.assignment-card-date{font-size:.75rem;color:var(--color-text-muted)}.assignment-card-item{display:flex;flex-direction:column;gap:.5rem}.assignment-card-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.assignment-card-user-row{display:flex;align-items:center;gap:.75rem}.assignment-card-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.assignment-card-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.875rem;font-weight:600}.assignment-card-user-info{flex:1;min-width:0}.assignment-card-user-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-card-user-meta{font-size:.75rem;color:var(--color-text-muted)}.assignment-card-topic{font-size:.875rem;color:var(--color-text-primary);font-weight:500;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assignments-table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden}.assignments-table{width:100%;border-collapse:collapse}.assignments-table th{padding:.875rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-primary)}.assignments-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border-primary);vertical-align:top}.assignments-table td:nth-child(1){min-width:160px}.assignments-table td:nth-child(2){min-width:140px}.assignments-table td:nth-child(3){min-width:300px}.assignments-table td:nth-child(4){min-width:95px;white-space:nowrap}.assignments-table td:nth-child(5){min-width:85px;white-space:nowrap}.assignments-table tbody tr:last-child td{border-bottom:none}.assignments-table tbody tr{transition:background var(--transition-fast)}.assignments-table tbody tr:hover{background:var(--color-bg-hover)}.assignments-table tbody tr.assignment-row-rejected{opacity:.65}.assignments-table-user{display:flex;align-items:center;gap:.75rem}.assignments-table-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.assignments-table-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.75rem;font-weight:600}.assignments-table-name{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.assignments-table-meta{font-size:.75rem;color:var(--color-text-muted);margin-left:.25rem}.assignments-table-user-info{display:flex;flex-direction:column;gap:2px}.assignments-table-topic{font-size:.875rem;color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-wrap:break-word}.assignments-table-status{display:inline-block;padding:.375rem .75rem;min-width:6.5rem;text-align:center;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;line-height:1.2}.assignments-table-status.assignments-status-approved{background:#10b98126;color:var(--color-success)}.assignments-table-status.assignments-status-pending{background:#f59e0b26!important;color:#f59e0b!important}.assignments-table-status.assignments-status-rejected{background:#ef444426;color:var(--color-danger)}.assignments-table-date{font-size:.8125rem;color:var(--color-text-tertiary);white-space:nowrap;display:block}@media(max-width:1200px){.assignments-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.assignments-toolbar{flex-direction:column;align-items:stretch}.assignments-search-wrap{max-width:none}.assignments-toolbar-right{margin-left:0;justify-content:space-between}.assignments-filter-pills{flex-wrap:wrap}}@media(max-width:600px){.assignments-stats-grid,.assignments-grid{grid-template-columns:1fr}}.topics-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.topics-page-header-left{flex:1}.topics-page-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}.topics-page-subtitle{font-size:.875rem;color:var(--color-text-tertiary);margin:.25rem 0 0}.topics-add-btn-main{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.topics-page-header--embedded{justify-content:flex-end;margin-bottom:1rem;align-items:center}.professor-hub-page-header{margin-bottom:.75rem}.professor-hub-panel{min-height:120px}.professor-hub-panel-loading{padding:1.5rem 0}.professor-student-page-loading{padding:2rem 0}.professor-student-workspace--empty{min-height:40vh}.topics-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.topics-stat-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;cursor:pointer;transition:all var(--transition-fast)}.topics-stat-card:hover{border-color:#ec48994d;background:var(--color-bg-tertiary)}.topics-stat-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.topics-stat-icon-total{background:#ec48991a;color:var(--color-accent-primary);border:1px solid rgba(236,72,153,.2)}.topics-stat-icon-available{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.topics-stat-icon-assigned{background:#6366f11a;color:#6366f1;border:1px solid rgba(99,102,241,.2)}.topics-stat-icon-collaborators{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.topics-stat-content{display:flex;flex-direction:column;gap:2px}.topics-stat-value{font-size:1.375rem;font-weight:700;color:var(--color-text-primary);line-height:1;letter-spacing:-.02em}.topics-stat-label{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.topics-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.topics-search-wrap{position:relative;flex:1;min-width:200px;max-width:360px}.topics-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.topics-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-primary);transition:all var(--transition-fast)}.topics-search-input::placeholder{color:var(--color-text-muted)}.topics-search-input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #ec48991a}.topics-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.topics-search-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.topics-toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.topics-filter-pills{display:flex;gap:.375rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.topics-filter-pill{padding:.375rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.topics-filter-pill:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.topics-filter-pill.active{background:#ec489926;color:var(--color-accent-primary)}.topics-view-toggle{display:flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.topics-view-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.topics-view-btn:hover{color:var(--color-text-primary)}.topics-view-btn.active{background:#ec489926;color:var(--color-accent-primary)}.topics-results-info{font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:1rem;display:flex;align-items:center;gap:.375rem}.topics-results-search{color:var(--color-accent-primary);font-weight:500}.topics-grid-new{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.topic-card-new{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;transition:all var(--transition-fast);overflow:hidden}.topic-card-new:hover{border-color:#ec489940;box-shadow:0 4px 20px #00000026}.topic-card-new.topic-card-available{border-left:3px solid var(--color-success)}.topic-card-new.topic-card-assigned{border-left:3px solid #6366f1}.topic-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid var(--color-border-primary)}.topic-card-badge{padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.topic-badge-available{background:#10b98126;color:var(--color-success)}.topic-badge-assigned{background:#6366f126;color:#6366f1}.topic-card-actions-menu{display:flex;align-items:center;gap:.25rem}.topic-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.topic-action-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.topic-action-btn-danger:hover{background:#ef444426;color:var(--color-danger)}.topic-card-body{padding:1rem;flex:1}.topic-card-title-new{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.topic-card-desc-new{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;transition:all var(--transition-fast)}.topic-card-desc-new.topic-card-desc-expanded{display:block;-webkit-line-clamp:unset;-webkit-box-orient:unset;overflow:visible}.topic-card-desc-toggle{display:inline-flex;align-items:center;gap:.25rem;margin-top:.375rem;padding:0;background:none;border:none;font-size:.75rem;font-weight:500;color:var(--color-accent-primary);cursor:pointer;transition:opacity var(--transition-fast)}.topic-card-desc-toggle:hover{opacity:.75}.topic-card-footer{padding:.75rem 1rem 1rem;border-top:1px solid var(--color-border-primary);background:var(--color-bg-tertiary)}.topic-student-chip{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);width:100%}.topic-student-chip:hover{border-color:var(--color-danger);background:#ef44440d}.topic-student-chip:hover .topic-student-remove-icon{opacity:1;color:var(--color-danger)}.topic-student-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.topic-student-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;font-size:.6875rem;font-weight:600}.topic-student-name{flex:1;font-size:.8125rem;font-weight:500;color:var(--color-text-primary);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-student-remove-icon{opacity:0;transition:all var(--transition-fast);flex-shrink:0}.topic-assign-section{width:100%}.topic-assign-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem 1rem;background:transparent;border:1px dashed var(--color-border-secondary);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.topic-assign-btn:hover{border-color:var(--color-accent-primary);background:#ec48990d;color:var(--color-accent-primary)}.topic-assign-dropdown{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);overflow:hidden}.topic-assign-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.625rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-primary);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.topic-assign-close{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.topic-assign-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.topic-assign-list{max-height:200px;overflow-y:auto}.topic-assign-option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem .75rem;background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);text-align:left}.topic-assign-option:hover{background:var(--color-bg-hover)}.topic-assign-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.topic-assign-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.6875rem;font-weight:600}.topic-assign-info{display:flex;flex-direction:column;gap:2px;min-width:0}.topic-assign-name{font-size:.8125rem;font-weight:500;color:var(--color-text-primary)}.topic-assign-meta{font-size:.6875rem;color:var(--color-text-muted)}.topic-no-collaborators{text-align:center;font-size:.75rem;color:var(--color-text-muted);font-style:italic}.topics-list-view{display:flex;flex-direction:column;gap:.75rem}.topic-list-item{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-left:3px solid var(--color-success);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;transition:all var(--transition-fast)}.topic-list-item:hover{border-color:#ec489940;box-shadow:0 2px 12px #0000001a}.topic-list-item-assigned{border-left:3px solid #6366f1}.topic-list-main{flex:1;min-width:0;display:flex;align-items:center;gap:1.5rem}.topic-list-info{flex:1;min-width:0}.topic-list-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.topic-list-title{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-list-badge{padding:.1875rem .5rem;border-radius:var(--radius-full);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.topic-list-desc{font-size:.8125rem;color:var(--color-text-secondary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-list-desc.topic-list-desc-expanded{white-space:normal;text-overflow:unset;overflow:visible}.topic-list-student{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topic-list-student-clickable{padding:.375rem .625rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.topic-list-student-clickable:hover{border-color:var(--color-danger);background:#ef44440d}.topic-list-student-clickable:hover .topic-list-student-remove-icon{opacity:1;color:var(--color-danger)}.topic-list-student-remove-icon{opacity:0;transition:all var(--transition-fast);flex-shrink:0}.topic-list-student-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.topic-list-student-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;font-size:.6875rem;font-weight:600}.topic-list-student-name{font-size:.8125rem;font-weight:500;color:var(--color-text-primary)}.topic-list-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}@media(max-width:1200px){.topics-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.topics-page-header{flex-direction:column;align-items:stretch}.topics-add-btn-main{width:100%;justify-content:center}.topics-toolbar{flex-direction:column;align-items:stretch}.topics-search-wrap{max-width:none}.topics-toolbar-right{margin-left:0;justify-content:space-between}.topics-filter-pills{flex-wrap:wrap}.topic-list-item,.topic-list-main{flex-direction:column;align-items:stretch}.topic-list-actions{justify-content:flex-end;flex-wrap:wrap}}@media(max-width:600px){.topics-stats-grid,.topics-grid-new{grid-template-columns:1fr}}.my-students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.my-student-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem;cursor:pointer;transition:all var(--transition-fast)}.my-student-card:hover{border-color:#ec489959;background:var(--color-bg-tertiary);transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.my-student-card-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.my-student-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0}.my-student-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.875rem;font-weight:600}.my-student-info{flex:1;min-width:0}.my-student-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-student-meta{font-size:.75rem;color:var(--color-text-muted)}.my-student-badge{padding:.25rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;flex-shrink:0}.my-student-topic{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:.8125rem;color:var(--color-text-secondary)}.my-student-topic svg{flex-shrink:0;color:var(--color-text-muted)}.my-student-topic span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-student-topic-empty{color:var(--color-text-muted);font-style:italic}.my-student-proposed-badge{margin-left:auto;padding:.125rem .375rem;background:#ec489926;color:var(--color-accent-primary);border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.student-profile-modal{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;position:relative}.student-profile-header{display:flex;justify-content:flex-end;padding:1rem 1rem 0}.student-profile-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.student-profile-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.student-profile-top{display:flex;flex-direction:column;align-items:center;padding:0 1.5rem 1.5rem;text-align:center}.student-profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;margin-bottom:1rem;border:3px solid var(--color-border-primary)}.student-profile-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:1.5rem;font-weight:600}.student-profile-name{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin:0 0 .5rem}.student-profile-badge{padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.student-profile-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1.5rem;margin-bottom:1.5rem}.student-profile-info-item{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.75rem}.student-profile-info-full{grid-column:span 2}.student-profile-info-label{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin-bottom:.25rem}.student-profile-info-value{font-size:.875rem;color:var(--color-text-primary);word-break:break-word}.student-profile-thesis{margin:0 1.5rem 1.5rem;padding:1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.student-profile-thesis-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.student-profile-thesis-header h3{font-size:.8125rem;font-weight:600;color:var(--color-text-primary);margin:0}.student-profile-proposed-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#ec489926;color:var(--color-accent-primary);border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;text-transform:uppercase}.student-profile-thesis-content{padding-top:.5rem;border-top:1px solid var(--color-border-primary)}.student-profile-thesis-title{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.student-profile-thesis-desc{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.student-profile-thesis-pending{display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:1rem 1.25rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-primary);line-height:1.5}.student-profile-thesis-pending svg{flex-shrink:0;margin-top:.125rem;color:#d97706}.student-profile-thesis-empty{display:flex;align-items:center;gap:.5rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:.8125rem;color:var(--color-text-muted)}.student-profile-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--color-border-primary)}.student-profile-actions .btn{flex:1}.profile-page-card{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);width:100%;max-width:480px;margin-left:auto;margin-right:auto;overflow:hidden}.profile-page-card .student-profile-top{padding:2rem 1.5rem 1.75rem}.profile-page-card .student-profile-avatar{margin-top:0;margin-bottom:1.25rem}.profile-page-card .student-profile-email{font-size:.875rem;color:var(--color-text-tertiary);margin:0 0 .5rem}.profile-page-card .student-profile-badge.badge-student{background:#22c55e33;color:var(--color-success)}.profile-page-card .student-profile-badge.badge-professor{background:#a855f733;color:#a855f7}.profile-page-card .student-profile-badge.badge-admin{background:#f59e0b33;color:#f59e0b}.student-profile-info-link{font-size:.875rem;color:var(--color-accent-primary);text-decoration:none}.student-profile-info-link:hover{text-decoration:underline}.profile-edit-btn{font-size:.75rem;color:var(--color-accent-primary);background:none;border:none;cursor:pointer;padding:.25rem .5rem;font-weight:500}.profile-edit-btn:hover{text-decoration:underline}.profile-contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding-top:.5rem;border-top:1px solid var(--color-border-primary)}.profile-prefs{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--color-border-primary)}.profile-prefs-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.profile-prefs-toggle-label{font-size:.875rem;color:var(--color-text-secondary)}.profile-page-footer{padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--color-border-primary);display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--color-text-muted)}.dash-layout.sidebar-collapsed .profile-page-card{max-width:560px}.students-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.students-search-wrap{position:relative;flex:1;min-width:200px;max-width:360px}.students-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.students-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-primary);transition:all var(--transition-fast)}.students-search-input::placeholder{color:var(--color-text-muted)}.students-search-input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #ec48991a}.students-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.students-search-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.students-toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.students-filter-pills{display:flex;gap:.375rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.students-filter-pill{padding:.375rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.students-filter-pill:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.students-filter-pill.active{background:#ec489926;color:var(--color-accent-primary)}.students-view-toggle{display:flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.25rem}.students-view-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.students-view-btn:hover{color:var(--color-text-primary)}.students-view-btn.active{background:#ec489926;color:var(--color-accent-primary)}.students-results-info{font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:1rem;display:flex;align-items:center;gap:.375rem}.students-results-search{color:var(--color-accent-primary);font-weight:500}.students-cards-container{display:flex;flex-direction:column;gap:.5rem}.student-card-v2{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:all var(--transition-fast)}.student-card-v2:hover{background:var(--color-bg-tertiary);border-color:#ec489933}.student-card-v2-left{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.student-card-v2-avatar{position:relative;width:48px;height:48px;flex-shrink:0}.student-card-v2-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.student-card-v2-avatar span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.875rem;font-weight:600}.student-card-v2-status-dot{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--color-bg-secondary)}.student-card-v2-status-dot.status-success{background:var(--color-success)}.student-card-v2-status-dot.status-warning{background:#f59e0b}.student-card-v2-info{flex:1;min-width:0}.student-card-v2-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-card-v2-details{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.student-card-v2-matricol{font-size:.75rem;color:var(--color-text-muted);font-family:var(--font-mono)}.student-card-v2-badge{padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.student-card-v2-badge.badge-success{background:#10b98126;color:var(--color-success)}.student-card-v2-badge.badge-warning{background:#f59e0b26;color:#f59e0b}.student-card-v2-topic{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-secondary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-card-v2-topic svg{flex-shrink:0;color:var(--color-text-muted)}.student-card-v2-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.student-card-v2-action:hover{background:#ef44441a;border-color:#ef44444d;color:var(--color-danger)}.requests-subsection{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.requests-subsection:last-child{margin-bottom:0}.requests-subsection-pending{border-left:3px solid var(--color-accent-primary)}.requests-subsection-processed{border-left:3px solid var(--color-border-primary)}.requests-subsection-header{margin-bottom:1rem}.requests-subsection-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.requests-subsection-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.25rem;padding:0 .375rem;background:var(--color-accent-primary);color:#fff;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.requests-subsection-badge-muted{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.requests-subsection-desc{font-size:.8125rem;color:var(--color-text-muted);margin:0}.requests-empty-compact{display:flex;align-items:center;gap:.5rem;padding:1.25rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.875rem}.requests-empty-compact svg{flex-shrink:0;opacity:.6}.requests-subsection .table-container{margin:0 -.25rem}.admin-requests-table-wrap{overflow-x:auto;overflow-y:visible}.admin-requests-table th,.admin-requests-table td{padding:.75rem 1rem;vertical-align:middle}.admin-requests-table th{text-align:left}.admin-requests-table .admin-requests-th-date{white-space:nowrap;width:1%}.admin-requests-table .admin-requests-date-cell{white-space:nowrap}.admin-requests-row-clickable{cursor:pointer}.admin-requests-row-clickable:hover td{background:var(--color-bg-hover)}.requests-actions-buttons{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.admin-request-detail-modal{max-width:480px}.admin-request-date{font-size:.8125rem;color:var(--color-text-muted);margin-top:.25rem}.admin-request-form{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.admin-request-form .modal-field label{display:block;font-size:.75rem;font-weight:500;color:var(--color-text-tertiary);margin-bottom:.25rem}.admin-request-form .modal-field input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.875rem}.admin-request-field-readonly{opacity:.7;cursor:not-allowed}.requests-table-row-clickable{cursor:pointer}.requests-table-row-clickable:hover td{background:var(--color-bg-tertiary)}.requests-student-cell{display:flex;align-items:center;gap:.625rem}.requests-student-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.requests-student-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;font-size:.6875rem;font-weight:600;flex-shrink:0}.students-table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden}.students-table{width:100%;border-collapse:collapse}.students-table th{padding:.75rem 1rem;text-align:left;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-primary)}.students-table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border-primary);vertical-align:middle}.students-table tr:last-child td{border-bottom:none}.students-table tr:hover td{background:var(--color-bg-tertiary)}.students-table-user{display:flex;align-items:center;gap:.75rem}.students-table-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0}.students-table-avatar img{width:100%;height:100%;object-fit:cover}.students-table-avatar span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.6875rem;font-weight:600}.students-table-name{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.students-table-matricol{font-size:.8125rem;color:var(--color-text-muted);font-family:var(--font-mono)}.students-table-topic{font-size:.8125rem;color:var(--color-text-secondary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.students-table-status{display:inline-flex;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.students-table-status.status-success{background:#10b98126;color:var(--color-success)}.students-table-status.status-warning{background:#f59e0b26;color:#f59e0b}.students-table-action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.students-table-action:hover{background:#ef444426;color:var(--color-danger)}.student-badge-assigned{background:#10b98126;color:var(--color-success)}.student-badge-unassigned{background:#f59e0b26;color:#f59e0b}@media(max-width:900px){.students-stats-grid{grid-template-columns:repeat(2,1fr)}.students-toolbar{flex-direction:column;align-items:stretch}.students-search-wrap{max-width:none}.students-toolbar-right{margin-left:0;justify-content:space-between}.students-table-container{overflow-x:auto}.students-table{min-width:600px}}@media(max-width:600px){.students-stats-grid{grid-template-columns:1fr}.student-card-v2-left{flex-direction:column;align-items:flex-start}.student-card-v2-topic{white-space:normal}}.dash-mobile-bar,.dash-sidebar-backdrop{display:none}@media(max-width:900px){.dash-layout.dash-layout--compact .dash-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:230;margin:0;padding:0;border:none;background:#0000008c;cursor:pointer;-webkit-tap-highlight-color:transparent}.dash-layout.dash-layout--compact:not(.dash-layout--nav-drawer-open) .dash-sidebar-backdrop{display:none}.dash-layout.dash-layout--compact .dash-sidebar{position:fixed;left:0;top:0;height:100dvh;max-height:100dvh;width:min(292px,90vw);z-index:240;transform:translate(-105%);transition:transform .22s ease;box-shadow:none}.dash-layout.dash-layout--compact.dash-layout--nav-drawer-open .dash-sidebar{transform:translate(0);box-shadow:var(--shadow-lg)}.dash-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);flex-shrink:0;position:sticky;top:0;z-index:25}.dash-mobile-bar-menu{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.dash-mobile-bar-menu:hover{background:var(--color-bg-hover);border-color:var(--color-border-secondary)}.dash-mobile-bar-title{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-content{padding:1rem 1rem 1.5rem}.dash-content.dash-content--messages,.dash-content.dash-content--workspace{padding-left:0;padding-right:0;padding-top:0}.dash-section-title{font-size:1.25rem}.dash-quick-actions{grid-template-columns:1fr}.dash-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-profile-fields{grid-template-columns:1fr}}@media(max-width:480px){.dash-stats-grid{grid-template-columns:1fr}.dash-content{padding:.75rem .75rem 1.25rem}}.messages-panel-root{--chat-bubble-me: #db2777;--chat-bubble-them: #2a2a2e;--chat-bubble-them-border: rgba(255, 255, 255, .08);--chat-bubble-them-highlight: rgba(255, 255, 255, .04);--chat-thread-bg: #141416;--chat-sidebar-width: 328px;--chat-row-radius: 14px;flex:1 1 0;min-height:0;display:flex;flex-direction:column;background:var(--color-bg-secondary);color:var(--color-text-primary);color-scheme:dark}.messages-panel-root--empty{justify-content:center;align-items:center;padding:2rem}.messages-panel{flex:1 1 0;min-height:0;display:grid;grid-template-columns:var(--chat-sidebar-width) 1fr;grid-template-rows:minmax(0,1fr);border:none;border-radius:0;overflow:hidden;background:var(--color-bg-secondary);box-shadow:none;color:var(--color-text-primary)}@media(max-width:900px){.messages-panel{--chat-sidebar-width: min(300px, 44vw)}}@media(max-width:768px){.messages-panel{grid-template-columns:1fr}.messages-panel:not(.messages-panel--thread-hidden) .messages-panel-sidebar{display:none}.messages-panel--thread-hidden .messages-panel-thread{display:none}}.messages-panel-sidebar{display:flex;flex-direction:column;border-right:1px solid var(--color-border-primary);background:linear-gradient(180deg,var(--color-bg-secondary) 0%,#0f0f12 100%);min-width:0;min-height:0}.messages-panel-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.1rem 1rem .85rem;flex-shrink:0}.messages-panel-sidebar-head-title{font-size:1.1875rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:.55rem}.messages-panel-sidebar-head-title svg{color:var(--color-accent-primary)}.messages-panel-conv-count{font-size:.6875rem;font-weight:700;padding:.25rem .55rem;min-width:1.5rem;text-align:center;background:#ec48991f;color:var(--color-accent-secondary);border-radius:var(--radius-full);border:1px solid rgba(236,72,153,.22)}.messages-panel-sidebar-search{position:relative;margin:0 .85rem .85rem;flex-shrink:0}.messages-panel-sidebar-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;opacity:.85}.messages-panel-sidebar-search-input{width:100%;padding:.65rem .85rem .65rem 2.5rem;font-size:.8125rem;border-radius:var(--radius-full);border:1px solid var(--color-border-primary);background:#0a0a0ba6;color:var(--color-text-primary);transition:border-color .15s ease,background .15s ease}.messages-panel-sidebar-search-input::placeholder{color:var(--color-text-muted)}.messages-panel-sidebar-search-input:hover{border-color:var(--color-border-secondary);background:var(--color-bg-primary)}.messages-panel-sidebar-search-input:focus{outline:none;border-color:var(--color-accent-primary);background:var(--color-bg-primary)}.messages-panel-new{padding:0 .85rem .85rem;flex-shrink:0}.messages-panel-new select{width:100%;padding:.6rem .85rem;font-size:.8125rem;font-weight:500;border-radius:var(--chat-row-radius);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;transition:border-color .15s ease}.messages-panel-new select:hover{border-color:var(--color-border-secondary)}.messages-panel-new select:focus{outline:none;border-color:var(--color-accent-primary)}.messages-panel-list{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:0 .6rem 1rem;gap:3px;scrollbar-width:thin;scrollbar-color:rgba(113,113,122,.5) transparent}.messages-panel-list::-webkit-scrollbar{width:6px}.messages-panel-list::-webkit-scrollbar-thumb{background:#71717a73;border-radius:var(--radius-full)}.messages-panel-list>.messages-panel-placeholder{flex:1;justify-content:center}.messages-panel-row{display:flex;align-items:center;gap:.8rem;width:100%;padding:.65rem .75rem;border:none;border-radius:var(--chat-row-radius);background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background .12s ease}.messages-panel-row:hover{background:#ffffff0a}.messages-panel-row.active{background:#ec48991a;box-shadow:inset 3px 0 0 var(--color-accent-primary)}.messages-panel-row--unread:not(.active){background:#ec489912;box-shadow:inset 3px 0 #ec48998c}.messages-panel-row--unread .messages-panel-row-name{font-weight:700}.messages-panel-row--unread .messages-panel-row-preview{color:var(--color-text-secondary);font-weight:600}.messages-panel-unread-badge{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:var(--radius-full);background:#ec489938;color:#fda4af;border:1px solid rgba(236,72,153,.4);line-height:1.2}.messages-panel-row-unread-hint{font-weight:600;color:#fda4af;font-size:.75rem}.messages-panel-row-avatar{width:50px;height:50px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.06)}.messages-panel-row-avatar-fallback{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9375rem;font-weight:700;background:linear-gradient(145deg,#ec4899,#a855f7);color:#fff;flex-shrink:0}.messages-panel-row-body{flex:1;min-width:0}.messages-panel-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.15rem}.messages-panel-row-top-end{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.messages-panel-row-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-panel-row-time{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0;letter-spacing:.02em}.messages-panel-row-preview{font-size:.8125rem;color:var(--color-text-tertiary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.messages-panel-row-preview-text{display:inline}.messages-panel-row-status{font-weight:600;color:var(--color-text-muted);font-size:.75rem}.messages-panel-row.active .messages-panel-row-preview{color:var(--color-text-secondary)}.messages-panel-thread{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--chat-thread-bg)}.messages-panel-thread-head{display:flex;align-items:center;gap:.85rem;padding:.75rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06);background:#111113eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);flex-shrink:0}.messages-panel-back{display:none;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border-radius:var(--radius-full);border:none;background:#ffffff0f;color:var(--color-text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.messages-panel-back:hover{background:#ffffff1a;color:var(--color-text-primary)}@media(max-width:768px){.messages-panel-back{display:inline-flex}}.messages-panel-thread-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.08)}.messages-panel-thread-avatar-fallback{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;background:linear-gradient(145deg,#ec4899,#a855f7);color:#fff;flex-shrink:0}.messages-panel-thread-info{flex:1;min-width:0}.messages-panel-thread-title{font-size:1.0625rem;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-panel-thread-subtitle{display:block;margin-top:.2rem;font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.messages-panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:.75rem 1.35rem 1.5rem;display:flex;flex-direction:column;gap:0;background-color:var(--chat-thread-bg);background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:20px 20px;scrollbar-width:thin;scrollbar-color:rgba(113,113,122,.45) transparent}.messages-panel-scroll::-webkit-scrollbar{width:8px}.messages-panel-scroll::-webkit-scrollbar-thumb{background:#71717a66;border-radius:var(--radius-full)}.messages-panel-day-sep{display:flex;justify-content:center;margin:1rem 0 .5rem;position:sticky;top:0;z-index:1}.messages-panel-day-sep span{padding:.35rem .9rem;font-size:.6875rem;font-weight:700;text-transform:capitalize;letter-spacing:.04em;color:var(--color-text-tertiary);background:#18181beb;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);max-width:90%;text-align:center;line-height:1.35}.messages-panel-bubble{max-width:min(75%,540px);padding:.55rem .95rem .5rem;border-radius:20px;font-size:.90625rem;line-height:1.48;word-break:break-word;display:flex;flex-direction:column;align-items:stretch;gap:.2rem;animation:messagesBubbleIn .2s ease-out}@keyframes messagesBubbleIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.messages-panel-bubble:not(.messages-panel-bubble--grouped){margin-top:.6rem}.messages-panel-bubble--grouped{margin-top:.12rem}.messages-panel-bubble-text{white-space:pre-wrap}.messages-panel-bubble--mine{align-self:flex-end;background:linear-gradient(165deg,#ec4899,#db2777 55%,#be185d);color:#fff;border-bottom-right-radius:5px}.messages-panel-bubble--mine.messages-panel-bubble--grouped{border-top-right-radius:12px;border-bottom-right-radius:12px}.messages-panel-bubble--mine:not(.messages-panel-bubble--grouped){border-top-right-radius:20px}.messages-panel-bubble--theirs{align-self:flex-start;background:linear-gradient(180deg,var(--chat-bubble-them-highlight) 0%,transparent 40%),var(--chat-bubble-them);color:#f4f4f5;border:1px solid var(--chat-bubble-them-border);border-bottom-left-radius:5px}.messages-panel-bubble--theirs.messages-panel-bubble--grouped{border-top-left-radius:12px;border-bottom-left-radius:12px}.messages-panel-bubble--theirs:not(.messages-panel-bubble--grouped){border-top-left-radius:20px}.messages-panel-bubble-meta{align-self:flex-end;font-size:.625rem;font-weight:600;letter-spacing:.03em;opacity:.78;margin-top:.1rem}.messages-panel-bubble--mine .messages-panel-bubble-meta{color:#ffffffd9}.messages-panel-bubble-read{font-weight:600;opacity:.9}.messages-panel-bubble--theirs .messages-panel-bubble-meta{color:var(--color-text-muted);opacity:1}.messages-panel-bubble--theirs.messages-panel-bubble--unread{border-color:#ec48996b;box-shadow:0 0 0 1px #ec48991f;background:linear-gradient(135deg,#ec48991f,#ec48990a 50%),linear-gradient(180deg,var(--chat-bubble-them-highlight) 0%,transparent 40%),var(--chat-bubble-them)}.messages-panel-bubble-new{color:#fda4af;font-weight:700}.messages-panel-typing{flex-shrink:0;display:flex;align-items:center;gap:.4rem;padding:.4rem 1.25rem .15rem;min-height:1.35rem}.messages-panel-typing-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-muted);animation:messagesTypingBounce 1.15s ease-in-out infinite}.messages-panel-typing-dot:nth-child(2){animation-delay:.16s}.messages-panel-typing-dot:nth-child(3){animation-delay:.32s}@keyframes messagesTypingBounce{0%,70%,to{transform:translateY(0);opacity:.45}35%{transform:translateY(-6px);opacity:1}}.messages-panel-compose{display:flex;align-items:flex-end;gap:.75rem;padding:1rem 1.25rem 1.15rem;border-top:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#111113fa,#111113);flex-shrink:0}.messages-panel-compose-input-wrap{flex:1;min-width:0;border-radius:22px;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);transition:border-color .15s ease}.messages-panel-compose-input-wrap:focus-within{border-color:var(--color-accent-primary)}.messages-panel-compose textarea{display:block;width:100%;min-height:46px;max-height:168px;resize:none;padding:.75rem 1.15rem;font-size:.90625rem;font-family:inherit;line-height:1.45;border:none;border-radius:22px;background:transparent;color:var(--color-text-primary)}.messages-panel-compose textarea::placeholder{color:var(--color-text-muted)}.messages-panel-compose textarea:focus{outline:none}.messages-panel-send-btn{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:linear-gradient(145deg,#f472b6,#ec4899 45%,#db2777);color:#fff;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.messages-panel-send-btn:hover:not(:disabled){transform:scale(1.04)}.messages-panel-send-btn:disabled{opacity:.32;cursor:not-allowed;box-shadow:none;transform:none}.messages-panel-error{flex-shrink:0;margin:0;padding:.65rem 1rem;font-size:.8125rem;font-weight:500;color:var(--color-danger);background:var(--color-danger-bg);border-bottom:1px solid var(--color-danger-border)}.messages-panel-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;color:var(--color-text-tertiary);text-align:center;font-size:.875rem;gap:.5rem;line-height:1.55}.messages-panel-placeholder-hint{font-size:.8125rem;color:var(--color-text-muted)}.messages-panel-placeholder-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#ec48991f,#a855f71a);border:1px solid rgba(236,72,153,.2);border-radius:50%;color:var(--color-accent-primary);margin-bottom:.35rem}.messages-panel-placeholder-title{font-size:1.0625rem;font-weight:600;color:var(--color-text-secondary);margin:0;letter-spacing:-.02em}.messages-panel-skeleton-list{width:100%;max-width:280px;display:flex;flex-direction:column;gap:.7rem;margin-bottom:1rem}.messages-panel-skeleton-row{height:58px;border-radius:var(--chat-row-radius);background:linear-gradient(90deg,var(--color-bg-tertiary) 0%,rgba(255,255,255,.06) 50%,var(--color-bg-tertiary) 100%);background-size:200% 100%;animation:messagesShimmer 1.15s ease-in-out infinite}@keyframes messagesShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.messages-panel-root--empty .dash-empty{max-width:360px}@media(prefers-reduced-motion:reduce){.messages-panel-bubble,.messages-panel-skeleton-row{animation:none}.messages-panel-typing-dot{animation:none;opacity:.85}.messages-panel-send-btn:hover:not(:disabled),.messages-panel-row:hover{transform:none}}.note-pdf-export-root{box-sizing:border-box;width:210mm;max-width:210mm;margin:0;padding:0;border:none;font-size:0;line-height:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}.note-pdf-export-root.note-pdf-export--light{background:#fff}.note-pdf-export-root.note-pdf-export--dark{background:#18181b}.note-pdf-export-page{box-sizing:border-box;width:210mm;height:297mm;overflow:hidden;margin:0;padding:18mm 16mm 22mm;font-size:1rem;line-height:1.65}.note-pdf-export-root.note-pdf-export--light .note-pdf-export-page{background:#fff;color:#111827}.note-pdf-export-root.note-pdf-export--dark .note-pdf-export-page{background:#18181b;color:#fafafa}.note-pdf-export-title{margin:0 0 10mm;font-size:1.5rem;font-weight:700;line-height:1.25;padding-bottom:5mm;border-bottom:1px solid #cbd5e1}.note-pdf-export-root.note-pdf-export--dark .note-pdf-export-title{border-bottom-color:#27272a;color:#fafafa}.note-pdf-export-root .note-pdf-page-body.note-rich-content{flex:none!important;min-height:0!important;overflow:hidden!important;padding:0!important;max-width:none!important;width:100%!important;margin:0!important}.note-pdf-export-root .note-pdf-page-body{font-size:1rem;line-height:1.65;outline:none;box-sizing:border-box}.note-pdf-export-root.note-pdf-export--light .note-pdf-page-body{background:transparent;color:#000}.note-pdf-export-root.note-pdf-export--light .note-pdf-page-body :where(p,li,div,h1,h2,h3,h4,h5,h6,strong,b,em,i,u){color:#000}.note-pdf-export-root.note-pdf-export--light .note-pdf-page-body a{color:#2563eb}.note-pdf-export-root.note-pdf-export--dark .note-pdf-page-body a{color:#ec4899}.note-pdf-export-root .note-pdf-page-body p{margin:0 0 .65em}.note-pdf-export-root .note-pdf-page-body ul,.note-pdf-export-root .note-pdf-page-body ol{margin:0 0 .65em 1.35rem;padding:0}.note-pdf-export-root .note-pdf-page-body li{margin:.2em 0}.note-pdf-export-root .note-pdf-page-body a{text-decoration:underline;text-underline-offset:2px}.note-pdf-export-root .note-pdf-page-body .note-rich-img-block{display:block;max-width:100%;margin:.65rem 0;line-height:0;cursor:default}.note-pdf-export-root .note-pdf-page-body .note-rich-img-body{position:relative;display:block;max-width:100%;width:fit-content;min-width:4.5rem;margin:0;resize:none;overflow:visible;border-radius:8px;box-sizing:border-box}.note-pdf-export-root .note-pdf-page-body .note-rich-img-remove{display:none!important}.note-pdf-export-root .note-pdf-page-body .note-rich-img-body img{width:100%;height:auto;display:block;border-radius:8px;vertical-align:middle}.note-pdf-export-root .note-pdf-page-body .note-rich-img-wrap{display:block;max-width:100%;min-width:4.5rem;margin:.65rem 0;resize:none;overflow:visible;border-radius:8px;line-height:0;box-sizing:border-box}.note-pdf-export-root .note-pdf-page-body .note-rich-img-wrap img{width:100%;height:auto;display:block;border-radius:8px}.note-pdf-export-root .note-pdf-page-body img:not(.note-rich-img-wrap img):not(.note-rich-img-body img){max-width:min(260px,100%);height:auto;border-radius:8px;display:block;margin:.65rem 0}.student-notes-tab{width:100%}.student-notes-header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.1rem;padding:.8rem .95rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.student-notes-header-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:var(--color-text-primary)}.student-notes-header-title svg{color:var(--color-accent-primary)}.student-notes-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}.student-notes-add-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.58rem 1rem;font-size:.82rem;font-weight:700;letter-spacing:.01em;border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;border:1px solid transparent}.student-notes-add-btn span{white-space:nowrap}.student-notes-add-btn--folder{background:var(--color-bg-primary);border-color:var(--color-border-primary);color:var(--color-text-primary)}.student-notes-add-btn--folder:hover{background:var(--color-bg-hover);border-color:var(--color-border-secondary);transform:translateY(-1px)}.student-notes-add-btn--note{background:#db2777;border-color:#be185d;color:#fff}.student-notes-add-btn--note:hover{background:#be185d;border-color:#9d174d;transform:translateY(-1px)}.student-notes-add-btn:focus-visible{outline:2px solid color-mix(in srgb,#db2777 45%,var(--color-border-focus));outline-offset:1px}.student-notes-library-hint{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 1rem;padding:.6rem .8rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);max-width:44rem}.student-notes-library-hint svg{flex-shrink:0;margin-top:.1rem;color:var(--color-accent-primary)}.student-notes-library-hint-body{margin:0;font-size:.78rem;line-height:1.5;color:var(--color-text-muted)}.student-notes-library-hint-body strong{color:var(--color-text-secondary);font-weight:600}.student-notes-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--color-text-tertiary);margin-bottom:1.25rem;padding:.55rem .8rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.student-notes-crumb-wrap{display:inline-flex;align-items:center;border-radius:var(--radius-md);transition:all var(--transition-fast)}.student-notes-crumb-wrap--drop{outline:2px dashed var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 10%,var(--color-bg-primary))}.student-notes-crumb-sep{-webkit-user-select:none;user-select:none;color:var(--color-text-muted);margin:0 .15rem}.student-notes-crumb{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.3rem .5rem;border-radius:var(--radius-md);font-weight:500;transition:all .15s ease}.student-notes-crumb:hover{color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 9%,var(--color-bg-primary))}.student-notes-crumb--current{color:var(--color-text-primary);font-weight:600;cursor:default;background:var(--color-bg-primary);border:1px solid var(--color-border-primary)}.student-notes-crumb--current:hover{background:var(--color-bg-primary);color:var(--color-text-primary)}.student-notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.25rem 1rem}@media(min-width:640px){.student-notes-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media(min-width:1024px){.student-notes-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.5rem 1.25rem}}.student-notes-library-card{position:relative;text-align:center;cursor:pointer;padding:1.1rem .65rem .65rem;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);transition:opacity var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.student-notes-library-card--dragging{opacity:.65;cursor:grabbing}.student-notes-drag-handle{position:absolute;left:6px;top:6px;z-index:12;width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-muted);cursor:grab;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.student-notes-library-card:hover .student-notes-drag-handle,.student-notes-drag-handle:focus-visible{opacity:1}.student-notes-drag-handle:hover{color:var(--color-accent-primary);border-color:var(--color-border-secondary)}.student-notes-drag-handle:active{cursor:grabbing}.student-notes-folder-drop-surface{display:flex;flex-direction:column;align-items:center;width:100%;border-radius:var(--radius-md);transition:box-shadow var(--transition-fast),background var(--transition-fast)}.student-notes-folder-drop-surface--over{border:1px dashed var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-primary))}.student-notes-library-card:hover{border-color:var(--color-border-secondary);background:var(--color-bg-secondary)}.student-notes-library-card:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.student-notes-folder-graphic{--folder-c: #3b82f6;position:relative;width:100%;max-width:140px;margin:0 auto .75rem;aspect-ratio:1.2 / 1;transition:transform var(--transition-fast),filter var(--transition-fast)}.student-notes-library-card:hover .student-notes-folder-graphic{transform:scale(1.01);filter:none}.student-notes-folder-back-svg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}.student-notes-folder-badge{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff40;border-radius:8px;z-index:2}.student-notes-folder-badge-icon{color:#ffffffe6}.student-notes-note-graphic{--note-color: #64748b;position:relative;width:100%;max-width:120px;margin:0 auto .75rem;aspect-ratio:.85 / 1;transition:transform var(--transition-fast)}.student-notes-library-card:hover .student-notes-note-graphic{transform:scale(1.01)}.note-paper-graphic{position:relative;width:100%;height:100%;background:linear-gradient(180deg,#fefefe,#f8f8f8);border-radius:4px 12px 12px 4px;box-shadow:0 1px 3px #00000014,inset 0 0 0 1px #0000000f;overflow:hidden}.note-paper-corner{position:absolute;top:0;right:0;width:24px;height:24px;background:linear-gradient(135deg,transparent 50%,#e5e5e5 50%,#d4d4d4 100%);border-radius:0 12px 0 0;z-index:2}.note-paper-lines{position:absolute;top:32px;left:12px;right:12px;display:flex;flex-direction:column;gap:10px}.note-paper-lines span{display:block;height:1px;background:#0000000f;border-radius:1px}.note-paper-lines span:nth-child(1){width:85%}.note-paper-lines span:nth-child(2){width:70%}.note-paper-lines span:nth-child(3){width:90%}.note-paper-lines span:nth-child(4){width:60%}.note-paper-lines span:nth-child(5){width:75%}.note-paper-graphic:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--note-color);border-radius:4px 0 0 4px}.note-paper-icon{position:absolute;bottom:12px;right:10px;color:var(--note-color);opacity:.6}.student-notes-library-caption{padding:0 .25rem}.student-notes-library-title{font-size:.8125rem;font-weight:600;line-height:1.35;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.125rem}.student-notes-library-meta{font-size:.6875rem;color:var(--color-text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-notes-library-card--note:hover{background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.student-notes-modal-hint{font-size:.75rem;color:var(--color-text-muted);margin:0 0 .5rem;line-height:1.4}.student-notes-card-menu{position:absolute;top:8px;right:8px;display:flex;gap:4px;z-index:10}.student-notes-card-menu button:not(.student-notes-privacy-lock){width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.student-notes-library-card:hover .student-notes-card-menu button:not(.student-notes-privacy-lock),.student-notes-card-menu button:not(.student-notes-privacy-lock):focus-visible{opacity:1}.student-notes-card-menu button:not(.student-notes-privacy-lock):hover{color:var(--color-text-primary);background:var(--color-bg-hover);border-color:var(--color-border-secondary)}.student-notes-card-menu button:not(.student-notes-privacy-lock):last-child:hover{color:var(--color-danger);background:var(--color-danger-bg);border-color:#ef44444d}.student-notes-editor-shell{--sn-note-frame: var(--student-note-accent, var(--color-accent-primary));display:flex;flex-direction:column;min-height:min(82vh,880px);max-height:calc(100vh - 5rem);background:var(--color-bg-secondary);border:2px solid color-mix(in srgb,var(--sn-note-frame) 34%,var(--color-border-primary));border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 6px #0000000f}.student-notes-editor-shell:fullscreen{width:100%;max-width:none;min-height:100%;max-height:100%;border-radius:0;box-sizing:border-box;border-width:2px;border-color:color-mix(in srgb,var(--sn-note-frame) 38%,var(--color-border-primary));box-shadow:none}.student-notes-editor-shell:-webkit-full-screen{width:100%;max-width:none;min-height:100%;max-height:100%;border-radius:0;box-sizing:border-box;border-width:2px;border-color:color-mix(in srgb,var(--sn-note-frame) 38%,var(--color-border-primary));box-shadow:none}.student-notes-editor-shell--pseudo-fullscreen{position:fixed;inset:0;z-index:200;width:100vw;max-width:none;min-height:100vh;max-height:none;margin:0;border-radius:0;box-sizing:border-box;border-width:2px;border-color:color-mix(in srgb,var(--sn-note-frame) 38%,var(--color-border-primary));box-shadow:none}.student-notes-editor-main{flex:1;min-height:0;display:flex;flex-direction:column}.sn-preview-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.65rem clamp(.35rem,2vw,1rem);display:flex;flex-direction:column;align-items:center;gap:12px;background:color-mix(in srgb,var(--color-bg-primary) 62%,#080808)}.sn-preview-scroll--light{background:#4b4e52}.sn-preview-scroll--light .sn-preview-page-frame{border-color:color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 45%,rgba(15,23,42,.14))}.sn-preview-page-frame{width:210mm;max-width:min(210mm,100%);height:297mm;min-height:297mm;box-sizing:border-box;padding:18mm 16mm 22mm;border-radius:2px;flex-shrink:0;overflow:hidden;border:2px solid color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 38%,rgba(255,255,255,.08));box-shadow:0 2px 8px #0000001a,0 8px 28px #0000001f}.sn-preview-scroll:not(.sn-preview-scroll--light) .sn-preview-page-frame{background:var(--color-bg-tertiary)}.sn-preview-scroll--light .sn-preview-page-frame{background:#fff}.sn-preview-title{margin:0 0 1rem;font-size:1.5rem;font-weight:700;line-height:1.25;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-primary)}.sn-preview-scroll--light .sn-preview-title{color:#0f172a;border-bottom-color:#e2e8f0}.sn-preview-body.note-rich-content{flex:none;min-height:0;max-width:none;width:100%;padding:0;margin:0;overflow:hidden}.sn-preview-body .note-rich-img-remove{display:none!important}.sn-preview-body .note-rich-img-block{cursor:default}.sn-editor-header{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(180deg,var(--color-bg-secondary) 0%,color-mix(in srgb,var(--color-bg-secondary) 95%,var(--color-bg-primary)) 100%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-primary)}.sn-editor-header--professor{padding-bottom:.85rem;gap:0}.sn-title-display{flex:1;min-width:0;margin:0;padding:.35rem 0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary);line-height:1.25}.sn-editor-actions-group--professor-header{flex-shrink:0}.sn-editor-header-top{display:flex;align-items:center;gap:.75rem}.sn-back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.sn-back-btn:hover{color:var(--color-text-primary);background:var(--color-bg-hover);border-color:var(--color-accent-primary);transform:translate(-3px);box-shadow:0 2px 8px #0000001a}.sn-title-input{flex:1;min-width:0;padding:.5rem .75rem;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary);background:var(--color-bg-primary);border:2px solid transparent;border-radius:var(--radius-md);outline:none;transition:all .2s ease}.sn-title-input::placeholder{color:var(--color-text-muted);font-weight:500}.sn-title-input:hover:not(:focus):not(:disabled){border-color:var(--color-border-secondary)}.sn-title-input:focus{border-color:var(--student-note-accent, var(--color-accent-primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 15%,transparent)}.sn-title-input:disabled{opacity:.65;cursor:default;background:transparent}.sn-save-status{display:flex;align-items:center;gap:.5rem;flex-shrink:0;min-width:max-content;padding:.35rem .65rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-full)}.sn-save-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s ease,box-shadow .3s ease}.sn-save-dot--idle{background:var(--color-text-muted);opacity:.35}.sn-save-dot--saving{background:#f59e0b;box-shadow:0 0 10px #f59e0b99;animation:sn-pulse 1s ease-in-out infinite}.sn-save-dot--saved{background:#22c55e;box-shadow:0 0 8px #22c55e80}.sn-save-dot--error{background:#ef4444;box-shadow:0 0 8px #ef444499}@keyframes sn-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.sn-save-text{font-size:.7rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.sn-save-text--ok{color:#22c55e}.sn-save-text--err{color:#ef4444}.sn-editor-header-bottom{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.sn-mode-tabs{display:inline-flex;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:4px;gap:4px;box-shadow:inset 0 1px 2px #0000000f}.sn-mode-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;white-space:nowrap}.sn-mode-tab:hover:not(.sn-mode-tab--active){color:var(--color-text-primary);background:var(--color-bg-hover)}.sn-mode-tab--active{background:color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 16%,var(--color-bg-primary));color:var(--student-note-accent, var(--color-accent-primary));border:1px solid color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 38%,var(--color-border-primary));box-shadow:none}.sn-mode-tab--active svg{color:inherit}.sn-editor-actions-group{display:flex;align-items:center;gap:.5rem}.sn-action-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.sn-action-btn:hover{color:var(--color-text-primary);background:var(--color-bg-hover);border-color:var(--color-border-secondary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.sn-action-btn--active{color:var(--color-text-primary);background:var(--color-bg-hover);border-color:var(--color-border-secondary);transform:none;box-shadow:0 4px 12px #0000001a}.sn-action-btn--danger:hover{color:#ef4444;background:#ef44441a;border-color:#ef444466;box-shadow:0 4px 12px #ef444426}.note-rich-editor{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg-primary);border:none;border-radius:0}.student-note-pdf-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;flex-shrink:0}.student-note-pdf-page{flex:1;min-height:0;overflow:auto;max-width:48rem;width:100%;margin:0 auto;padding:clamp(1.25rem,4vw,2.25rem) clamp(1rem,4vw,2rem);border-radius:var(--radius-md);border:1px solid var(--color-border-primary)}.student-note-pdf-page--light{background:#fff;color:#111827;box-shadow:0 4px 24px #00000014}.student-note-pdf-page--dark{background:var(--color-bg-tertiary);color:var(--color-text-primary);box-shadow:0 4px 28px #00000059}.student-note-pdf-title{margin:0 0 1.25rem;font-size:1.5rem;font-weight:700;line-height:1.25;padding-bottom:.75rem;border-bottom-width:1px;border-bottom-style:solid}.student-note-pdf-page--light .student-note-pdf-title{color:#0f172a;border-bottom-color:#e2e8f0}.student-note-pdf-page--dark .student-note-pdf-title{color:var(--color-text-primary);border-bottom-color:var(--color-border-primary)}.student-note-pdf-body{font-size:.95rem;line-height:1.65}.student-note-pdf-page--light .student-note-pdf-body{color:#1e293b}.student-note-pdf-page--dark .student-note-pdf-body{color:var(--color-text-primary)}.student-note-pdf-page--dark .student-note-pdf-body :where(p,li,div,h1,h2,h3,h4,h5,h6,strong,b,em,i,u){color:inherit}.student-note-pdf-body p{margin:0 0 .75em}.student-note-pdf-body ul,.student-note-pdf-body ol{margin:0 0 .75em 1.25rem;padding:0}.student-note-pdf-page--light .student-note-pdf-body a{color:#2563eb;text-decoration:underline}.student-note-pdf-page--dark .student-note-pdf-body a{color:var(--color-accent-primary);text-decoration:underline;text-underline-offset:2px}.student-note-pdf-body .note-rich-img-remove{display:none!important}.student-note-pdf-body .note-rich-img-block{display:block;max-width:100%;margin:.65rem 0;line-height:0}.student-note-pdf-body .note-rich-img-body{position:relative;display:block;max-width:100%;width:fit-content;min-width:4.5rem;margin:0;border-radius:8px;box-sizing:border-box}.student-note-pdf-body .note-rich-img-body img{width:100%;height:auto;display:block;border-radius:8px}.student-note-pdf-body .note-rich-img-wrap{display:block;max-width:100%;min-width:4.5rem;margin:.65rem 0;border-radius:8px;line-height:0;box-sizing:border-box}.student-note-pdf-body .note-rich-img-wrap img{width:100%;height:auto;display:block;border-radius:8px}.student-note-pdf-body img:not(.note-rich-img-wrap img):not(.note-rich-img-body img){max-width:min(260px,100%);height:auto;border-radius:8px;display:block;margin:.65rem 0}.student-note-pdf-body-chunk--page{margin-top:1.35rem;padding-top:1.35rem;border-top:1px solid color-mix(in srgb,var(--color-border-primary) 85%,transparent)}.student-note-pdf-page--light .student-note-pdf-body-chunk--page{border-top-color:#e2e8f0}@media print{.student-notes-no-print,.student-notes-tab>.modal-error{display:none!important}body *{visibility:hidden!important}.student-notes-print-surface,.student-notes-print-surface *{visibility:visible!important}.student-notes-print-surface{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:1.25cm!important;box-shadow:none!important;border:none!important;background:#fff!important;color:#000!important;overflow:visible!important}.student-note-pdf-title{color:#000!important;border-bottom-color:#ccc!important}.student-note-pdf-body{color:#000!important}.student-note-pdf-body-chunk--page{page-break-before:always;margin-top:0!important;padding-top:.6cm!important;border-top:none!important}}.note-rich-toolbar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem .75rem;border-bottom:1px solid var(--color-border-primary);background:linear-gradient(180deg,var(--color-bg-secondary) 0%,color-mix(in srgb,var(--color-bg-secondary) 92%,var(--color-bg-primary)) 100%)}.note-rich-shortcuts-bar{flex-shrink:0;margin:0;padding:.2rem .65rem;font-size:.625rem;line-height:1.4;color:var(--color-text-muted);border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 60%,transparent);letter-spacing:.01em}.note-rich-shortcuts-bar kbd{display:inline-block;padding:.05rem .22rem;margin:0 .04rem;font-size:.6rem;font-family:inherit;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:3px}.note-rich-shortcuts-sep{margin:0 .35rem;opacity:.4}.note-rich-page-scroll{--note-page-gap: 12px;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.65rem clamp(.35rem,2vw,1rem);background:var(--note-rich-gutter-bg);display:flex;flex-direction:column;align-items:center;gap:var(--note-page-gap)}.note-rich-page-frame{width:210mm;max-width:min(210mm,100%);height:297mm;min-height:297mm;box-sizing:border-box;padding:18mm 16mm 22mm;margin:0;background:var(--note-page-sheet-bg);box-shadow:0 4px 14px #0000001f,0 12px 40px #00000024;border-radius:4px;flex-shrink:0;overflow:hidden;border:2px solid color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 36%,rgba(255,255,255,.06))}.note-rich-page-body{flex:1;width:100%;height:100%;min-height:0;margin:0;padding:0;overflow:hidden;max-width:none;box-sizing:border-box;font-size:1rem;line-height:1.65;color:var(--color-text-primary);outline:none;transition:box-shadow .22s ease}.note-rich-page-body--stuck-overflow{overflow-y:auto;outline:1px dashed var(--note-editor-focus-line, rgba(255, 255, 255, .22));outline-offset:-1px}.note-rich-page-scroll--surface-light{--note-page-sheet-bg: #ffffff;--note-rich-gutter-bg: #4b4e52;--note-editor-focus-line: color-mix(in srgb, #1e293b 15%, transparent);--note-editor-focus-feather: color-mix(in srgb, #1e293b 5%, transparent)}.note-rich-page-scroll--surface-light .note-rich-page-frame{border-width:2px;border-color:color-mix(in srgb,var(--student-note-accent, var(--color-accent-primary)) 45%,rgba(15,23,42,.14));box-shadow:0 4px 14px #0000001a,0 12px 36px #0000001f}.note-rich-page-scroll:not(.note-rich-page-scroll--surface-light){--note-page-sheet-bg: var(--color-bg-tertiary);--note-rich-gutter-bg: color-mix(in srgb, var(--color-bg-primary) 62%, #080808);--note-editor-focus-line: color-mix(in srgb, #fafafa 14%, rgba(255, 255, 255, .04));--note-editor-focus-feather: color-mix(in srgb, #fafafa 5%, transparent)}.note-rich-tool--icon{display:inline-flex;align-items:center;justify-content:center;padding:0;min-width:34px}.note-rich-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:auto}.note-rich-tool{min-width:34px;height:34px;padding:0 .5rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.875rem;font-weight:600;transition:all .15s ease}.note-rich-tool:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-primary)}.note-rich-tool:active:not(:disabled){transform:scale(.95)}.note-rich-tool:disabled{opacity:.35;cursor:not-allowed}.note-rich-tool-u{text-decoration:underline}.note-rich-tool--image{display:inline-flex;align-items:center;gap:.4rem;min-width:unset;height:auto;min-height:34px;padding:.35rem .75rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:.75rem;font-weight:600;box-shadow:none}.note-rich-tool--image .note-rich-tool--image-label{line-height:1}.note-rich-tool--image:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-hover);border-color:var(--color-border-primary);transform:none;box-shadow:none}.note-rich-tool--image:disabled{border-color:var(--color-border-primary);color:var(--color-text-muted);background:transparent}.note-rich-toolbar-sep{width:1px;height:24px;background:linear-gradient(180deg,transparent 0%,var(--color-border-primary) 20%,var(--color-border-primary) 80%,transparent 100%);margin:0 .35rem}.note-rich-img-size-group{display:inline-flex;align-items:center;gap:.2rem;padding:0 .15rem}.note-rich-img-size-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-right:.15rem}.note-rich-tool--img-size{min-width:28px;padding:0 .35rem;font-weight:600}.note-rich-tool--img-size-wide{min-width:40px;font-size:.7rem;padding:0 .4rem}.note-rich-content .note-rich-img-block{display:block;max-width:100%;margin:.65rem 0;-webkit-user-select:none;user-select:none;cursor:grab;line-height:0}.note-rich-content .note-rich-img-block:active{cursor:grabbing}.note-rich-content .note-rich-img-body{position:relative;display:block;max-width:100%;width:fit-content;min-width:4.5rem;margin:0;resize:horizontal;overflow:auto;border-radius:8px;box-sizing:border-box}.note-rich-content .note-rich-img-remove{position:absolute;top:4px;right:4px;z-index:3;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);box-shadow:none}.note-rich-content .note-rich-img-remove:hover{color:var(--color-danger);background:var(--color-danger-bg);border-color:#ef44444d}.note-rich-content .note-rich-img-remove svg{flex-shrink:0}.note-rich-content .note-rich-img-body img{width:100%;height:auto;display:block;border-radius:8px;pointer-events:none}.note-rich-content .note-rich-img-wrap{display:block;max-width:100%;min-width:4.5rem;margin:.65rem 0;resize:horizontal;overflow:auto;border-radius:8px;line-height:0;box-sizing:border-box}.note-rich-content .note-rich-img-wrap img{width:100%;height:auto;display:block;border-radius:8px;pointer-events:none}.note-rich-content img:not(.note-rich-img-wrap img):not(.note-rich-img-body img){max-width:min(260px,100%);height:auto;border-radius:8px;display:block;margin:.65rem 0}.note-rich-content{flex:1;min-height:280px;overflow-y:auto;overflow-x:hidden;padding:1.5rem clamp(1rem,4vw,2rem) 2rem;max-width:44rem;width:100%;margin:0 auto;font-size:1rem;line-height:1.7;color:var(--color-text-primary);outline:none;transition:box-shadow .22s ease}.note-rich-page-body:focus,.note-rich-content:focus{box-shadow:inset 0 0 0 1px var(--note-editor-focus-line, rgba(250, 250, 250, .14)),inset 0 0 0 2px var(--note-editor-focus-feather, rgba(250, 250, 250, .045))}.note-rich-content--surface-light{background:#fff;color:#000}.note-rich-page-body.note-rich-content--surface-light{background:transparent}.note-rich-content--surface-light :where(p,li,div,h1,h2,h3,h4,h5,h6,strong,b,em,i,u){color:#000}.note-rich-content--surface-light a{color:#2563eb}.note-rich-content--surface-light a:hover{color:#1d4ed8}.note-rich-content--surface-light::selection{background:color-mix(in srgb,#2563eb 22%,#e2e8f0)}.note-rich-tool--surface-active{background:color-mix(in srgb,#f59e0b 18%,var(--color-bg-hover));border:1px solid color-mix(in srgb,#f59e0b 35%,var(--color-border-primary))}.note-rich-content p{margin:0 0 .65em}.note-rich-content ul,.note-rich-content ol{margin:0 0 .65em 1.35rem;padding:0}.note-rich-content li{margin:.2em 0}.note-rich-content a{color:var(--color-accent-primary);text-decoration:underline;text-underline-offset:2px}.note-rich-content a:hover{text-decoration-thickness:2px}.folder-style-modal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin-top:.75rem;padding:.75rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.student-notes-note-modal,.student-notes-folder-modal{width:min(92vw,560px);max-height:min(86vh,760px);overflow-y:auto}.folder-style-swatch{width:100%;aspect-ratio:1;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}.folder-style-swatch:hover{transform:scale(1.18);box-shadow:0 3px 10px #00000040}.folder-style-swatch.selected{border-color:#ffffffd9;box-shadow:0 0 0 2px var(--color-bg-primary),0 3px 10px #0000004d;transform:scale(1.1)}.folder-icon-pick{display:grid;grid-template-columns:repeat(8,1fr);gap:.35rem;margin-top:.5rem;max-height:180px;overflow-y:auto}.folder-icon-btn{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);cursor:pointer;padding:0}.folder-icon-btn-svg{color:var(--color-text-secondary)}.folder-icon-btn.selected{border-color:var(--color-accent-primary);background:var(--color-info-bg)}.student-notes-empty{text-align:center;padding:3rem 1.5rem;color:var(--color-text-muted);font-size:.9rem;background:var(--color-bg-secondary);border:2px dashed var(--color-border-primary);border-radius:var(--radius-xl);line-height:1.5}.sn-color-picker-wrap{position:relative}.sn-color-popover{position:absolute;bottom:calc(100% + 10px);right:0;width:240px;background:var(--color-bg-elevated, var(--color-bg-secondary));border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);box-shadow:0 16px 48px #0000004d,0 4px 12px #00000026,0 0 0 1px #ffffff0a;z-index:60;overflow:hidden;animation:sn-pop-up .18s cubic-bezier(.34,1.56,.64,1)}@keyframes sn-pop-up{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.sn-color-popover-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .875rem .6rem;border-bottom:1px solid var(--color-border-primary)}.sn-color-popover-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.sn-color-popover-current{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 6px #0000004d;flex-shrink:0;transition:background .2s ease}.sn-color-popover-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;padding:.8rem .875rem}.sn-color-swatch{width:28px;height:28px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}.sn-color-swatch:hover{transform:scale(1.22);box-shadow:0 3px 12px #00000059}.sn-color-swatch--active{border-color:#ffffffd9;box-shadow:0 0 0 2px var(--color-bg-elevated, var(--color-bg-secondary)),0 3px 12px #0006;transform:scale(1.15)}.student-notes-pdf-export-overlay{z-index:10050}.student-notes-pdf-export-modal .student-notes-pdf-export-lead{margin:0 0 1rem;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.student-notes-pdf-export-options{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.25rem}.student-notes-pdf-export-card{display:flex;align-items:flex-start;gap:.75rem;width:100%;margin:0;padding:.75rem .85rem;text-align:left;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);color:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;box-shadow:0 1px #0000000a}.student-notes-pdf-export-card:hover:not(:disabled){border-color:var(--color-border-secondary);background:var(--color-bg-tertiary)}.student-notes-pdf-export-card:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.student-notes-pdf-export-card:disabled{opacity:.65;cursor:not-allowed}.student-notes-pdf-export-card--selected{border-color:color-mix(in srgb,var(--color-accent-primary) 55%,var(--color-border-primary));background:color-mix(in srgb,var(--color-accent-primary) 9%,var(--color-bg-primary));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent-primary) 28%,transparent)}.student-notes-pdf-export-card-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.student-notes-pdf-export-card--selected .student-notes-pdf-export-card-icon{background:color-mix(in srgb,var(--color-accent-primary) 16%,var(--color-bg-tertiary));color:var(--color-text-primary)}.student-notes-pdf-export-card-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.student-notes-pdf-export-card-title{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.student-notes-pdf-export-card-desc{font-size:.75rem;line-height:1.45;color:var(--color-text-muted)}.student-notes-pdf-export-actions{margin-top:0}.student-notes-privacy-lock{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;line-height:1;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.student-notes-privacy-lock:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-secondary, var(--color-border-primary))}.student-notes-privacy-lock:focus-visible{outline:2px solid var(--color-border-focus, var(--color-accent-primary));outline-offset:2px}.student-notes-privacy-lock--open{border-color:color-mix(in srgb,var(--color-accent-primary) 55%,var(--color-border-primary));color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent-primary) 18%,transparent)}.student-notes-privacy-lock--open:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary);background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-tertiary))}.activity-task-date-field{position:relative;width:100%;--activity-date-accent: var(--color-accent-primary)}.activity-task-detail-modal .activity-task-date-field{--activity-date-accent: var(--activity-task-column)}.activity-task-date-wrap{display:flex;align-items:center;gap:.5rem;width:100%;max-width:100%;padding:.4rem .45rem .4rem .5rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:linear-gradient(145deg,color-mix(in srgb,var(--activity-date-accent) 10%,var(--color-bg-primary)) 0%,var(--color-bg-primary) 52%,var(--color-bg-secondary) 100%);box-shadow:inset 0 1px color-mix(in srgb,var(--color-text-primary) 5%,transparent),0 1px 2px #0000000a;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.activity-task-date-wrap--trigger:hover{border-color:color-mix(in srgb,var(--activity-date-accent) 32%,var(--color-border-primary))}.activity-task-date-field--open .activity-task-date-wrap--trigger,.activity-task-date-wrap--trigger:focus-within{border-color:color-mix(in srgb,var(--activity-date-accent) 58%,var(--color-border-primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--activity-date-accent) 22%,transparent),inset 0 1px color-mix(in srgb,var(--color-text-primary) 6%,transparent)}.activity-task-date-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--activity-date-accent) 16%,var(--color-bg-tertiary));color:var(--activity-date-accent);flex-shrink:0;box-shadow:inset 0 1px color-mix(in srgb,var(--color-text-primary) 4%,transparent)}.activity-task-date-icon svg{display:block}.activity-task-date-trigger{flex:1;min-width:0;margin:0;padding:.45rem .25rem;font-size:.9375rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:left;color:var(--color-text-primary);font-family:inherit;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:color var(--transition-fast)}.activity-task-date-trigger--placeholder{color:var(--color-text-muted);font-weight:500}.activity-task-date-clear{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:none;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted);font-size:1.1rem;line-height:1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.activity-task-date-clear:hover{background:var(--color-danger-bg);color:var(--color-danger)}.activity-task-calendar{position:fixed;z-index:200;box-sizing:border-box;max-width:calc(100vw - 16px);padding:.65rem .7rem .75rem;border-radius:var(--radius-lg);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);box-shadow:0 12px 40px #00000024,0 4px 12px #00000014,inset 0 1px color-mix(in srgb,var(--color-text-primary) 4%,transparent);animation:activity-task-cal-in .18s ease-out}@keyframes activity-task-cal-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.activity-task-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:.55rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border-primary)}.activity-task-calendar-title{flex:1;text-align:center;font-size:.8125rem;font-weight:700;text-transform:capitalize;color:var(--color-text-primary);letter-spacing:.02em}.activity-task-calendar-nav{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:1.1rem;line-height:1;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.activity-task-calendar-nav:hover{background:color-mix(in srgb,var(--activity-date-accent) 12%,var(--color-bg-tertiary));border-color:color-mix(in srgb,var(--activity-date-accent) 35%,var(--color-border-primary));color:var(--color-text-primary)}.activity-task-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:.35rem}.activity-task-calendar-wd{text-align:center;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:.2rem 0}.activity-task-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.2rem}.activity-task-calendar-day{aspect-ratio:1;max-height:2.35rem;display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform .12s ease}.activity-task-calendar-day:hover{background:color-mix(in srgb,var(--activity-date-accent) 14%,var(--color-bg-secondary));border-color:color-mix(in srgb,var(--activity-date-accent) 25%,transparent)}.activity-task-calendar-day--outside{color:var(--color-text-muted);font-weight:500;opacity:.55}.activity-task-calendar-day--outside:hover{opacity:.85}.activity-task-calendar-day--today:not(.activity-task-calendar-day--selected){border-color:color-mix(in srgb,var(--activity-date-accent) 45%,var(--color-border-primary));background:color-mix(in srgb,var(--activity-date-accent) 8%,var(--color-bg-primary))}.activity-task-calendar-day--selected{background:var(--activity-date-accent);color:#fff;border-color:color-mix(in srgb,var(--activity-date-accent) 80%,#000);box-shadow:0 2px 8px color-mix(in srgb,var(--activity-date-accent) 45%,transparent)}.activity-task-calendar-day--selected:hover{background:color-mix(in srgb,var(--activity-date-accent) 88%,#000);color:#fff}.activity-task-calendar-day:active{transform:scale(.94)}.drive-collab{max-width:48rem;padding:.25rem 0 1rem}.drive-collab-head{margin-bottom:1.25rem}.drive-collab-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;color:var(--color-text-primary)}.drive-collab-lead{margin:0;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.drive-collab-guide{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:1rem 1.15rem;margin-bottom:1.25rem}.drive-collab-guide-title{margin:0 0 .65rem;font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.drive-collab-steps{margin:0 0 1rem;padding-left:1.25rem;font-size:.8125rem;line-height:1.55;color:var(--color-text-secondary)}.drive-collab-steps li{margin-bottom:.35rem}.drive-collab-steps code{font-size:.75rem;background:var(--color-bg-tertiary);padding:.1rem .3rem;border-radius:var(--radius-sm)}.drive-collab-email-box{padding-top:.75rem;border-top:1px solid var(--color-border-primary)}.drive-collab-email-label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.35rem}.drive-collab-email-value{font-size:.875rem;word-break:break-all;color:var(--color-accent-primary)}.drive-collab-email-missing{font-size:.8125rem;color:var(--color-text-tertiary)}.drive-collab-error{margin-bottom:1rem}.drive-collab-loading{margin:.5rem 0}.drive-collab-empty{font-size:.875rem;color:var(--color-text-tertiary);margin:0 0 1rem}.drive-collab-list{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.drive-collab-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;padding:.65rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm)}.drive-collab-row-main{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1}.drive-collab-row-title{font-weight:600;font-size:.875rem;color:var(--color-text-primary)}.drive-collab-row-link{font-size:.8125rem;font-weight:500}.drive-collab-remove{flex-shrink:0}.drive-collab-form{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.drive-collab-form-title{margin:0 0 .75rem;font-size:.9rem;font-weight:600}.drive-collab-label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.75rem}.drive-collab-input{padding:.5rem .65rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.875rem}.drive-collab-form .btn{margin-top:.25rem}.student-workspace{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.student-workspace-activities{width:100%}.student-workspace-activities-hint{font-size:.8125rem;color:var(--color-text-tertiary);margin:0 0 .75rem;line-height:1.45;max-width:42rem}.student-workspace-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.3rem,1.5vw,.75rem);width:100%;min-width:0;padding:.5rem 0;margin-bottom:1rem;align-items:stretch}.trello-column{min-width:0;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.trello-column-header{border-top:3px solid #ef4444;padding:clamp(.4rem,2vw,.85rem);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-primary)}.trello-column-title-row{display:flex;align-items:center;gap:clamp(.2rem,1vw,.45rem);min-width:0}.trello-column-color{width:clamp(6px,1.2vw,10px);height:clamp(6px,1.2vw,10px);border-radius:50%;flex-shrink:0}.trello-column-title{font-size:clamp(.65rem,2.4vw,.875rem);font-weight:600;color:var(--color-text-primary);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.trello-column-count{font-size:clamp(.58rem,2vw,.7rem);font-weight:600;color:var(--color-text-muted);background:var(--color-bg-secondary);padding:.12rem .35rem;border-radius:var(--radius-full);flex-shrink:0}.trello-tasks-list{flex:1;min-height:0;padding:clamp(.3rem,1.5vw,.65rem);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:clamp(.35rem,1.2vw,.65rem);min-height:clamp(120px,28vh,200px)}.trello-card{--trello-card-accent: var(--color-accent-primary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);border-left:3px solid var(--trello-card-accent);padding:.625rem .65rem;cursor:grab;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),opacity var(--transition-fast);box-shadow:0 1px 2px #0000000d;display:flex;flex-direction:column;gap:0;min-width:0}.trello-card--dragging{opacity:.72;box-shadow:0 4px 14px #0000001f}.trello-card:active{cursor:grabbing}.trello-card:hover{box-shadow:0 2px 10px #00000014;border-color:color-mix(in srgb,var(--trello-card-accent) 45%,var(--color-border-primary))}.trello-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:0}.trello-card-title{font-size:clamp(.75rem,2.2vw,.8125rem);font-weight:600;color:var(--color-text-primary);margin:0;flex:1;min-width:0;line-height:1.35;word-break:break-word}.trello-card-desc{font-size:.75rem;color:var(--color-text-secondary);margin:.35rem 0 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.trello-card-footer{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border-primary);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem .65rem}.trello-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0}.trello-card-meta-item{display:inline-flex;align-items:center;gap:.28rem;font-size:.6875rem;font-weight:600;letter-spacing:.01em;color:var(--color-text-secondary);background:var(--color-bg-secondary);padding:.22rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-primary);line-height:1.2}.trello-card-meta-item svg{flex-shrink:0;opacity:.88;color:var(--color-text-muted)}.trello-card-meta-check{gap:.4rem}.trello-card-meta-check-label{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:600}.trello-card-mini-progress{width:2.25rem;height:5px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-border-primary) 85%,transparent);overflow:hidden;flex-shrink:0}.trello-card-mini-progress-fill{display:block;height:100%;border-radius:inherit;background:var(--trello-card-accent);min-width:0;transition:width var(--transition-fast)}.trello-card-deadline{display:inline-flex;align-items:center;gap:.35rem;font-size:.6875rem;font-weight:600;color:var(--color-text-muted);margin-left:auto;padding:.2rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-text-muted) 18%,transparent);white-space:nowrap;line-height:1}.trello-card-deadline svg{flex-shrink:0;opacity:.9}.trello-card-deadline--upcoming{color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-text-secondary) 8%,transparent);border-color:color-mix(in srgb,var(--color-text-secondary) 18%,transparent)}.trello-card-deadline--soon{color:#b45309;background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,transparent)}.trello-card-deadline--today{color:#b45309;background:color-mix(in srgb,#f59e0b 20%,transparent);border-color:color-mix(in srgb,#f59e0b 50%,transparent);animation:trello-deadline-pulse 2.4s ease-in-out infinite}.trello-card-deadline--overdue{color:#b91c1c;background:color-mix(in srgb,#ef4444 16%,transparent);border-color:color-mix(in srgb,#ef4444 45%,transparent)}.trello-card-deadline--done{color:#15803d;background:color-mix(in srgb,#22c55e 14%,transparent);border-color:color-mix(in srgb,#22c55e 35%,transparent)}@keyframes trello-deadline-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,#f59e0b 30%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,#f59e0b 0%,transparent)}}.trello-card--overdue{border-color:color-mix(in srgb,#ef4444 55%,var(--color-border-primary));box-shadow:0 0 0 1px color-mix(in srgb,#ef4444 25%,transparent)}.trello-card--due-today{border-color:color-mix(in srgb,#f59e0b 55%,var(--color-border-primary))}[data-theme=dark] .trello-card-deadline--soon,[data-theme=dark] .trello-card-deadline--today{color:#fbbf24}[data-theme=dark] .trello-card-deadline--overdue{color:#fca5a5}[data-theme=dark] .trello-card-deadline--done{color:#86efac}.activity-task-deadline-status{display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;padding:.35rem .6rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;line-height:1.2;border:1px solid transparent}.activity-task-deadline-status svg{flex-shrink:0}.activity-task-deadline-status--upcoming{color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-text-secondary) 8%,transparent);border-color:color-mix(in srgb,var(--color-text-secondary) 20%,transparent)}.activity-task-deadline-status--soon{color:#b45309;background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,transparent)}.activity-task-deadline-status--today{color:#b45309;background:color-mix(in srgb,#f59e0b 22%,transparent);border-color:color-mix(in srgb,#f59e0b 50%,transparent)}.activity-task-deadline-status--overdue{color:#b91c1c;background:color-mix(in srgb,#ef4444 16%,transparent);border-color:color-mix(in srgb,#ef4444 45%,transparent)}.activity-task-deadline-status--done{color:#15803d;background:color-mix(in srgb,#22c55e 14%,transparent);border-color:color-mix(in srgb,#22c55e 35%,transparent)}[data-theme=dark] .activity-task-deadline-status--soon,[data-theme=dark] .activity-task-deadline-status--today{color:#fbbf24}[data-theme=dark] .activity-task-deadline-status--overdue{color:#fca5a5}[data-theme=dark] .activity-task-deadline-status--done{color:#86efac}.student-workspace-privacy-lock-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;line-height:1;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.student-workspace-privacy-lock-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-secondary, var(--color-border-primary))}.student-workspace-privacy-lock-btn:focus-visible{outline:2px solid var(--color-border-focus, var(--color-accent-primary));outline-offset:2px}.student-workspace-privacy-lock-btn--open{border-color:color-mix(in srgb,var(--color-accent-primary) 55%,var(--color-border-primary));color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent-primary) 18%,transparent)}.student-workspace-privacy-lock-btn--open:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary);background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-tertiary))}.trello-card-privacy-lock{width:22px;height:22px}.trello-card-delete{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.trello-card:hover .trello-card-delete,.trello-card:focus-within .trello-card-delete{opacity:1}.trello-card-delete:hover{background:var(--color-danger-bg);color:var(--color-danger)}.trello-card-author-row{display:inline-flex;align-items:center;gap:.3rem;margin-top:.35rem}.trello-card-assigned-badge{display:inline-flex;align-items:center;gap:.3rem;margin-top:.35rem;padding:.2rem .5rem;border-radius:999px;font-size:.65rem;font-weight:600;line-height:1.2;letter-spacing:.01em;color:color-mix(in srgb,var(--color-accent-primary) 80%,var(--color-text-primary));background:color-mix(in srgb,var(--color-accent-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-accent-primary) 35%,transparent);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trello-card-assigned-badge svg{flex-shrink:0;opacity:.95}.trello-card-assigned-badge span{overflow:hidden;text-overflow:ellipsis}.activity-task-detail-note{font-size:.75rem;color:var(--color-text-muted);font-style:italic;line-height:1.4;padding:.4rem 0}.trello-card-last-edit{display:inline-flex;align-items:center;gap:.3rem;margin-top:.3rem;padding:.15rem .45rem;border-radius:999px;font-size:.625rem;font-weight:500;line-height:1.2;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-text-muted) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-text-muted) 18%,transparent);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trello-card-last-edit svg{flex-shrink:0;opacity:.8}.trello-card-last-edit span{overflow:hidden;text-overflow:ellipsis}.trello-card-last-edit--professor{color:color-mix(in srgb,var(--color-accent-primary) 75%,var(--color-text-primary));background:color-mix(in srgb,var(--color-accent-primary) 10%,transparent);border-color:color-mix(in srgb,var(--color-accent-primary) 28%,transparent)}.trello-card-last-edit--student{color:color-mix(in srgb,#0ea5e9 75%,var(--color-text-primary));background:color-mix(in srgb,#0ea5e9 10%,transparent);border-color:color-mix(in srgb,#0ea5e9 28%,transparent)}[data-theme=dark] .trello-card-last-edit--student{color:#7dd3fc}.activity-task-last-edit{display:inline-flex;align-items:center;gap:.4rem;margin-top:.6rem;padding:.3rem .55rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;line-height:1.35;color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary)}.activity-task-last-edit svg{flex-shrink:0}.activity-task-last-edit--professor{color:color-mix(in srgb,var(--color-accent-primary) 80%,var(--color-text-primary));background:color-mix(in srgb,var(--color-accent-primary) 10%,var(--color-bg-tertiary));border-color:color-mix(in srgb,var(--color-accent-primary) 35%,var(--color-border-primary))}.activity-task-last-edit--student{color:color-mix(in srgb,#0284c7 80%,var(--color-text-primary));background:color-mix(in srgb,#0ea5e9 10%,var(--color-bg-tertiary));border-color:color-mix(in srgb,#0ea5e9 30%,var(--color-border-primary))}[data-theme=dark] .activity-task-last-edit--student{color:#7dd3fc}.trello-add-card-btn{margin:clamp(.3rem,1.2vw,.65rem);padding:.625rem;display:flex;align-items:center;justify-content:center;gap:.375rem;background:var(--color-bg-tertiary);border:2px dashed var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:clamp(.65rem,1.8vw,.8125rem);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.trello-add-card-btn:hover{background:var(--color-bg-hover);border-color:var(--color-accent-primary);color:var(--color-text-primary);box-shadow:0 2px 6px #00000014}.trello-add-card-btn svg{width:clamp(12px,3vw,14px);height:clamp(12px,3vw,14px);flex-shrink:0}.activity-task-modal-overlay{align-items:flex-start;justify-content:center;padding:1.25rem 1rem 2rem;overflow-y:auto;overscroll-behavior:contain}.activity-task-detail-modal{--activity-task-column: var(--color-text-muted);position:relative;padding-top:0;max-height:min(92vh,920px);display:flex;flex-direction:column;overflow:hidden;margin-bottom:auto}.activity-task-detail-modal-accent{height:3px;width:calc(100% + 3rem);margin:-1.5rem -1.5rem 0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--activity-task-column);flex-shrink:0}.activity-task-detail-modal-header{align-items:flex-start;gap:1rem;margin-bottom:1.125rem;padding-top:1.25rem}.activity-task-detail-header-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}.activity-task-status-chip{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .65rem;border-radius:var(--radius-full);color:var(--color-text-secondary);border:1px solid color-mix(in srgb,var(--activity-task-column) 42%,var(--color-border-primary));background:color-mix(in srgb,var(--activity-task-column) 12%,var(--color-bg-tertiary))}@supports not (background: color-mix(in srgb,red 10%,blue)){.activity-task-status-chip{border-color:var(--color-border-secondary);background:var(--color-bg-tertiary)}}.activity-task-status-dot{width:7px;height:7px;border-radius:50%;background:var(--activity-task-column);flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--activity-task-column) 25%,transparent)}.activity-task-detail-title{margin:0;font-size:1.125rem;letter-spacing:-.02em;line-height:1.3}.activity-task-detail-lead{margin:0;font-size:.8125rem;color:var(--color-text-tertiary);line-height:1.5;max-width:36rem}.activity-task-detail-panel{padding:1rem 1.05rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.activity-task-panel-head{margin-bottom:.75rem}.activity-task-panel-head:last-child{margin-bottom:0}.activity-task-panel-kicker{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);margin:0 0 .25rem;letter-spacing:.01em}.activity-task-panel-desc{font-size:.75rem;color:var(--color-text-muted);margin:0;line-height:1.45}.activity-task-detail-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.activity-task-field--full,.activity-task-field--deadline{grid-column:1 / -1}@media(min-width:480px){.activity-task-field--deadline{grid-column:auto;max-width:220px}}.activity-task-detail-panel .modal-field{margin-bottom:.85rem}.activity-task-detail-panel .modal-field:last-child{margin-bottom:0}.activity-task-empty-inline{font-size:.8125rem;color:var(--color-text-muted);margin:0 0 .75rem;line-height:1.45;padding:.65rem .75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px dashed var(--color-border-primary)}.activity-task-add-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;margin-bottom:.75rem}.activity-task-add-row .student-workspace-select,.activity-task-add-row>input:first-child{flex:1;min-width:160px}.activity-task-detail-modal-header,.activity-task-detail-modal-footer{flex-shrink:0}.activity-task-detail-modal-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:.875rem;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-right:.35rem;margin-right:-.15rem}.trello-add-task-modal{max-height:min(88vh,640px);display:flex;flex-direction:column;overflow:hidden}.trello-add-task-modal-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:.25rem}.trello-add-task-modal-body .modal-field{margin-bottom:1.25rem}.trello-add-task-modal-body label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-primary);margin-bottom:.5rem}.trello-add-task-modal-body input[type=text],.trello-add-task-modal-body textarea{width:100%;padding:.625rem .75rem;font-size:.875rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.trello-add-task-modal-body input[type=text]:focus,.trello-add-task-modal-body textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:inset 0 0 0 1px var(--color-accent-primary),0 0 0 3px #ec48991a;background:var(--color-bg-primary)}.trello-add-task-modal-body textarea{resize:vertical;min-height:70px}.activity-task-detail-modal .modal-actions.activity-task-detail-modal-footer,.trello-add-task-modal .modal-actions.activity-task-detail-modal-footer{margin-top:0}.activity-task-detail-modal .modal-field input,.activity-task-detail-modal .modal-field textarea{width:100%;box-sizing:border-box}.activity-task-section-hint{font-size:.75rem;color:var(--color-text-muted);margin:0 0 .65rem;line-height:1.4}.activity-task-attach-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.activity-task-attach-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.6rem .7rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:.8125rem;transition:border-color var(--transition-fast)}.activity-task-attach-row:hover{border-color:var(--color-border-secondary)}.activity-task-attach-main{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.activity-task-attach-link{color:var(--color-accent-primary);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.activity-task-attach-link:hover{text-decoration:underline}.activity-task-attach-title-only{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.activity-task-attach-missing{color:var(--color-text-muted);font-style:italic}.activity-task-attach-remove{flex-shrink:0}.activity-task-github-commit-add{margin-bottom:.85rem;padding-bottom:.85rem;border-bottom:1px solid var(--color-border-primary)}.activity-task-github-commit-row{display:flex;flex-direction:column;gap:.45rem}.activity-task-github-commit-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.activity-task-github-repo{font-weight:600;color:var(--color-text-primary);word-break:break-all}.activity-task-github-commit-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.activity-task-github-commit-controls .student-workspace-select{flex:1;min-width:min(100%,12rem)}.activity-task-link-add{display:grid;grid-template-columns:1fr;gap:.5rem;padding-top:.25rem;border-top:1px solid var(--color-border-primary);margin-top:.25rem}@media(min-width:440px){.activity-task-link-add{grid-template-columns:1fr 1fr auto;align-items:end}.activity-task-link-add .btn{min-height:2.375rem}}.activity-task-link-add input{width:100%;box-sizing:border-box;padding:.5rem .65rem;font-size:.875rem;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-secondary);color:var(--color-text-primary)}.activity-task-link-add input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-info-bg)}.activity-task-add-row>input:first-child{padding:.5rem .65rem;font-size:.875rem;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-secondary);color:var(--color-text-primary)}.activity-task-add-row>input:first-child:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-info-bg)}.activity-task-check-progress{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.5rem .65rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.activity-task-check-progress-bar{flex:1;height:10px;background:color-mix(in srgb,var(--color-bg-primary) 55%,var(--color-bg-secondary));border-radius:var(--radius-full);overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}.activity-task-check-progress-fill{height:100%;border-radius:var(--radius-full);transition:width .35s cubic-bezier(.33,1,.68,1);background:linear-gradient(90deg,color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 75%,#1a1a1e),var(--activity-task-column, var(--color-accent-primary)))}.activity-task-check-progress-label{font-size:.7rem;font-weight:700;letter-spacing:.02em;color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.activity-task-check-list{list-style:none;margin:0 0 .65rem;padding:.5rem;display:flex;flex-direction:column;gap:.4rem;background:color-mix(in srgb,var(--color-bg-tertiary) 55%,var(--color-bg-secondary));border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.activity-task-check-row{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem .55rem .6rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.activity-task-check-row:hover{border-color:color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 28%,var(--color-border-secondary));box-shadow:0 1px #ffffff0a}.activity-task-check-row--done{border-color:color-mix(in srgb,var(--color-success) 32%,var(--color-border-primary));background:color-mix(in srgb,var(--color-success) 7%,var(--color-bg-primary))}.activity-task-check-row--done:hover{border-color:color-mix(in srgb,var(--color-success) 42%,var(--color-border-primary))}@supports not (border-color: color-mix(in srgb,red 35%,blue)){.activity-task-check-row--done{border-color:var(--color-success-border);background:var(--color-bg-primary)}}.activity-task-check-input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.3rem;height:1.3rem;margin:0;border-radius:7px;border:2px solid color-mix(in srgb,var(--color-text-muted) 45%,var(--color-border-primary));background:var(--color-bg-secondary);cursor:pointer;display:grid;place-content:center;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .12s ease}.activity-task-check-input:hover{border-color:color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 55%,var(--color-border-primary))}.activity-task-check-input:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg-primary),0 0 0 4px color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 45%,transparent)}.activity-task-check-input:active{transform:scale(.94)}.activity-task-check-input:checked{background:var(--activity-task-column, var(--color-accent-primary));border-color:color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 65%,#0a0a0b)}.activity-task-check-input:checked:after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-.5px,-1px);box-sizing:border-box}.activity-task-check-title-input{flex:1;min-width:0;padding:.45rem .65rem;font-size:.8125rem;line-height:1.35;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);transition:border-color .15s ease,background .15s ease,color .15s ease}.activity-task-check-title-input:hover{border-color:var(--color-border-primary);background:color-mix(in srgb,var(--color-bg-secondary) 40%,transparent)}.activity-task-check-title-input:focus{outline:none;border-color:color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 35%,var(--color-border-primary));background:var(--color-bg-secondary)}.activity-task-check-row--done .activity-task-check-title-input{color:var(--color-text-muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--color-text-muted) 70%,transparent)}.activity-task-check-row--done .activity-task-check-title-input:focus{text-decoration:none;color:var(--color-text-primary)}.activity-task-check-remove{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s ease,background .15s ease}.activity-task-check-remove:hover{color:var(--color-danger);background:var(--color-danger-bg)}.activity-task-check-remove:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-danger) 35%,transparent)}.activity-task-check-add{display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;margin-top:.35rem;padding:.55rem .6rem;background:var(--color-bg-tertiary);border:1px dashed color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 22%,var(--color-border-primary));border-radius:var(--radius-lg)}.activity-task-check-add-input{flex:1;min-width:140px;padding:.5rem .75rem;font-size:.875rem;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .15s ease,box-shadow .15s ease}.activity-task-check-add-input:focus{outline:none;border-color:color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 40%,var(--color-border-primary));box-shadow:0 0 0 2px color-mix(in srgb,var(--activity-task-column, var(--color-accent-primary)) 12%,transparent)}.activity-task-check-add-btn{align-self:stretch;min-height:2.375rem}.activity-task-detail-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem}.activity-task-detail-modal h3.activity-task-detail-title{margin-bottom:0}.activity-task-detail-actions-right{display:flex;gap:.5rem;margin-left:auto}.trello-add-card-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-secondary);color:var(--color-text-primary)}.student-workspace-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);width:fit-content}.student-workspace-tabs--three{width:100%;max-width:560px;flex-wrap:wrap}.student-workspace-tabs--four{width:100%;max-width:720px;flex-wrap:wrap}.student-workspace-tabs--five{width:100%;max-width:880px;flex-wrap:wrap}.student-workspace-drive-wrap{margin-top:.25rem}.student-workspace-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.student-workspace-tab:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.student-workspace-tab.active{background:#ec489926;color:var(--color-accent-primary);box-shadow:none}.student-workspace-tab-badge{min-width:1.25rem;height:1.25rem;padding:0 .35rem;margin-left:.15rem;font-size:.65rem;font-weight:700;line-height:1.25rem;text-align:center;color:#fff;background:var(--color-accent-primary);border-radius:var(--radius-full);flex-shrink:0}.student-workspace-panels{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}.student-workspace-card--notes{grid-column:1 / -1}@media(max-width:960px){.student-workspace-panels{grid-template-columns:1fr}.student-workspace-card--notes{grid-column:auto}.student-workspace-docs-layout{grid-template-columns:1fr;gap:1rem}.student-workspace-board{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:.65rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:.5rem}.student-workspace-board .trello-column{--student-workspace-col-w: max(220px, min(280px, calc(100vw - 2.5rem) ));flex:0 0 var(--student-workspace-col-w);width:var(--student-workspace-col-w);min-width:var(--student-workspace-col-w)}.student-workspace-board .trello-tasks-list{min-height:clamp(130px,30vh,210px)}}.student-workspace-notes-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.student-workspace-notes-shell{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:1rem;align-items:start}@media(max-width:640px){.student-workspace-notes-shell{grid-template-columns:1fr}}.student-workspace-notebook-list{display:flex;flex-direction:column;gap:.35rem;max-height:420px;overflow-y:auto;padding-right:.25rem}.student-workspace-notebook-item-wrap{display:flex;align-items:stretch;gap:.25rem}.student-workspace-notebook-item{flex:1;min-width:0;text-align:left;padding:.5rem .65rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:.8125rem;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.student-workspace-notebook-item:hover{border-color:var(--color-border-secondary);color:var(--color-text-primary)}.student-workspace-notebook-item.active{border-color:var(--color-accent-primary);background:var(--color-info-bg);color:var(--color-text-primary)}.student-workspace-notebook-item-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-workspace-notebook-delete{flex-shrink:0;width:28px;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-muted);font-size:1.1rem;line-height:1;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.student-workspace-notebook-delete:hover{color:var(--color-danger);background:var(--color-danger-bg)}.student-workspace-notebook-editor{min-width:0}.student-workspace-notebook-title-input{width:100%;padding:.5rem .75rem;font-size:1rem;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);margin-bottom:.35rem}.student-workspace-notebook-title-input:focus{outline:none;border-color:var(--color-border-focus)}.student-workspace-save-row{min-height:1.25rem;margin-bottom:.5rem}.student-workspace-save-hint{font-size:.75rem;color:var(--color-text-muted)}.student-workspace-save-hint--ok{color:var(--color-success)}.student-workspace-save-hint--err{color:var(--color-danger)}.student-workspace-board-saving{margin-left:.35rem;font-size:.8125rem;color:var(--color-text-muted)}.student-workspace-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem 1.35rem}.student-workspace-card-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .35rem}.student-workspace-card-desc{font-size:.8125rem;color:var(--color-text-tertiary);margin:0 0 1rem;line-height:1.45}.student-workspace-notes{width:100%;min-height:280px;padding:.875rem 1rem;font-family:var(--font-sans);font-size:.875rem;line-height:1.55;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);resize:vertical}.student-workspace-notes:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px #ec489933}.student-workspace-docs-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:1.25rem;align-items:stretch}.student-workspace-docs-aside{display:flex;flex-direction:column;min-width:0}.student-workspace-docs-aside .student-workspace-card-title{margin-top:0}.student-workspace-docs-aside .student-workspace-external-btns{margin-bottom:.75rem}.student-workspace-docs-add-btn{width:100%;justify-content:center;gap:.45rem;padding-top:.55rem;padding-bottom:.55rem}.student-workspace-docs-list-panel{display:flex;flex-direction:column;min-height:12rem;padding:1rem 1.1rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.student-workspace-docs-list-heading{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);margin:0 0 .65rem}.student-workspace-docs-list-panel .student-workspace-doc-list{flex:1;max-height:min(52vh,420px);overflow-y:auto}.student-workspace-doc-remove-msg{font-size:.875rem;color:var(--color-text-primary);margin:0 0 .25rem;word-break:break-word}@media(max-width:768px){.student-workspace{padding-left:clamp(.75rem,3.5vw,1rem);padding-right:clamp(.75rem,3.5vw,1rem)}.student-workspace-tabs{width:100%;max-width:none;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.student-workspace-tab{flex:0 0 auto}.student-workspace-card{padding:1rem}.student-workspace-github-card{padding:1rem;max-width:none}.student-workspace-github-input{min-width:0;flex:1 1 12rem}.student-workspace-card.student-workspace-card--docs{padding:.9rem .8rem}.student-workspace-docs-list-panel{padding:.85rem .75rem;min-height:10rem}.student-workspace-docs-list-panel .student-workspace-doc-list{max-height:min(50vh,380px)}.student-workspace-doc-row{flex-direction:column;align-items:stretch;gap:.65rem;padding:.75rem .65rem}.student-workspace-doc-main{align-items:flex-start;flex-wrap:wrap;row-gap:.35rem}.student-workspace-doc-title{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;line-height:1.4;flex:1 1 10rem;min-width:0}.student-workspace-doc-actions{width:100%;justify-content:flex-end;flex-wrap:wrap;gap:.45rem}.student-workspace-external-link.student-workspace-external-link--full{font-size:.8125rem;line-height:1.35;min-height:2.5rem;padding-top:.45rem;padding-bottom:.45rem;white-space:normal;word-break:break-word}}@media(max-width:480px){.student-workspace-card.student-workspace-card--docs,.student-workspace-docs-list-panel{padding:.75rem .65rem}.student-workspace-doc-row{padding:.65rem .55rem}.student-workspace-card--docs .student-workspace-card-title{font-size:.9375rem}}.student-workspace-external-btns{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.student-workspace-external-btns .btn+.btn{margin-left:0;margin-inline-start:0}.student-workspace-external-link{justify-content:flex-start;text-align:left;gap:.65rem}.student-workspace-external-link--full{width:100%;min-width:0;box-sizing:border-box;min-height:2.75rem;justify-content:flex-start;align-items:center}.student-workspace-external-icon-slot{flex:0 0 32px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent}.student-workspace-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;flex-shrink:0}.student-workspace-google-logo{display:block;flex-shrink:0;background:transparent}.student-workspace-badge--ol{background:#2e5a3c;color:#b8e0c8;font-size:.6rem}.student-workspace-empty-hint{font-size:.8125rem;color:var(--color-text-muted);margin:0}.student-workspace-doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.student-workspace-doc-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.student-workspace-doc-main{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.student-workspace-doc-pill{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .45rem;border-radius:var(--radius-sm);flex-shrink:0}.student-workspace-doc-pill--google{background:#4285f426;color:#7ab4ff}.student-workspace-doc-pill--overleaf{background:#2e5a3c59;color:#9fd4b0}.student-workspace-doc-pill--pdf{background:color-mix(in srgb,#dc2626 22%,var(--color-bg-tertiary));color:#fca5a5}.student-workspace-doc-pill--github{background:color-mix(in srgb,#238636 28%,var(--color-bg-tertiary));color:#7ee787}.student-workspace-doc-pill--other{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.student-workspace-doc-title{font-size:.875rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-workspace-doc-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.student-workspace-pdf-file-input{width:100%;box-sizing:border-box;padding:.5rem .65rem;font-size:.8125rem;border-radius:var(--radius-md);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);color:var(--color-text-primary)}.student-workspace-icon-btn{padding:.35rem .5rem;min-width:auto}.student-workspace-activities-empty{min-height:min(40vh,320px);display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.student-workspace-activities-empty-text{margin:0;font-size:.875rem;color:var(--color-text-tertiary);text-align:center;line-height:1.55;max-width:28rem}.student-workspace-board-wrap{display:flex;flex-direction:column;gap:1rem;min-height:min(70vh,640px)}.student-workspace-board-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.student-workspace-board-hint{font-size:.8125rem;color:var(--color-text-tertiary);margin:0;max-width:42rem;line-height:1.45}.student-workspace-column{background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:.75rem;min-height:200px}.student-workspace-column-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.student-workspace-column-title{font-size:.8125rem;font-weight:600;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:.03em}.student-workspace-column-count{font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--color-bg-primary);padding:.15rem .45rem;border-radius:var(--radius-full)}.student-workspace-column-hint{font-size:.7rem;color:var(--color-text-muted);margin:0 0 .75rem}.student-workspace-column-cards{display:flex;flex-direction:column;gap:.5rem}.student-workspace-task-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:.65rem .75rem;box-shadow:var(--shadow-sm)}.student-workspace-task-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.35rem}.student-workspace-task-title{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.35}.student-workspace-task-edit{border:none;background:transparent;color:var(--color-text-tertiary);padding:.2rem;cursor:pointer;border-radius:var(--radius-sm);line-height:0;flex-shrink:0}.student-workspace-task-edit:hover{color:var(--color-accent-primary);background:var(--color-info-bg)}.student-workspace-task-desc{font-size:.75rem;color:var(--color-text-tertiary);margin:.4rem 0 0;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.student-workspace-task-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.65rem;padding-top:.5rem;border-top:1px solid var(--color-border-primary)}.student-workspace-task-move{display:flex;gap:.25rem}.student-workspace-task-move .btn{min-width:2rem;padding:.25rem .4rem}.student-workspace-task-delete{border:none;background:none;font-size:.75rem;color:var(--color-text-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.student-workspace-task-delete:hover{color:var(--color-danger)}.student-workspace-select{width:100%;padding:.5rem .65rem;font-size:.875rem;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.student-workspace-select:focus{outline:none;border-color:var(--color-border-focus)}.user-avatar-badge{display:inline-flex;align-items:center;gap:.35rem;line-height:1;color:var(--color-text-secondary);vertical-align:middle}.user-avatar-badge-img-wrap{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;overflow:hidden;flex-shrink:0;background:color-mix(in srgb,var(--color-text-muted) 30%,var(--color-bg-tertiary));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-border-primary) 70%,transparent)}.user-avatar-badge--xs .user-avatar-badge-img-wrap{width:20px;height:20px}.user-avatar-badge--sm .user-avatar-badge-img-wrap{width:24px;height:24px}.user-avatar-badge--md .user-avatar-badge-img-wrap{width:30px;height:30px}.user-avatar-badge-img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar-badge-initials{font-size:.62rem;font-weight:700;letter-spacing:.02em;color:#fff;text-transform:uppercase;line-height:1}.user-avatar-badge--sm .user-avatar-badge-initials{font-size:.7rem}.user-avatar-badge--md .user-avatar-badge-initials{font-size:.8rem}.user-avatar-badge--professor .user-avatar-badge-img-wrap{background:linear-gradient(135deg,#a78bfa,#7c3aed);box-shadow:0 0 0 1px color-mix(in srgb,#7c3aed 35%,transparent)}.user-avatar-badge--student .user-avatar-badge-img-wrap{background:linear-gradient(135deg,#38bdf8,#0284c7);box-shadow:0 0 0 1px color-mix(in srgb,#0284c7 35%,transparent)}.user-avatar-badge--professor .user-avatar-badge-img-wrap:has(.user-avatar-badge-img),.user-avatar-badge--student .user-avatar-badge-img-wrap:has(.user-avatar-badge-img){background:var(--color-bg-tertiary)}.user-avatar-badge--solo{padding:0;background:transparent;border:none}.user-avatar-badge-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14rem}.student-workspace-doc-author{margin-left:.25rem;opacity:.82}.activity-task-check-author{margin-left:auto;margin-right:.35rem;opacity:.82}.student-workspace-doc-author:hover,.activity-task-check-author:hover{opacity:1}.activity-task-check-row .user-avatar-badge{flex-shrink:0}.activity-task-check-row--locked .activity-task-check-title-input{background:color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent);cursor:default;color:color-mix(in srgb,var(--color-text-primary) 85%,transparent)}.activity-task-check-row--foreign .activity-task-check-title-input{font-style:normal}.task-authorship-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .6rem .25rem .3rem;background:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent);border:1px solid color-mix(in srgb,var(--color-border-primary) 80%,transparent);border-radius:999px;font-size:.75rem;color:var(--color-text-secondary);line-height:1.25;max-width:100%}.task-authorship-chip--compact{padding:0;background:transparent;border:none;gap:.35rem;font-size:.7rem}.task-authorship-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.task-authorship-chip-text strong{color:var(--color-text-primary);font-weight:600}.task-authorship-chip-muted{color:var(--color-text-muted)}.task-authorship-chip-time{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.task-authorship-avatar-stack{display:inline-flex;align-items:center;position:relative}.task-authorship-avatar-stack>.user-avatar-badge+.user-avatar-badge{margin-left:-7px}.task-authorship-avatar-stack>.user-avatar-badge--xs+.user-avatar-badge--xs{margin-left:-6px}.task-authorship-avatar-stack>.user-avatar-badge+.user-avatar-badge .user-avatar-badge-img-wrap{box-shadow:0 0 0 2px var(--color-bg-secondary),0 0 0 3px color-mix(in srgb,var(--color-border-primary) 70%,transparent)}.trello-card .task-authorship-avatar-stack>.user-avatar-badge+.user-avatar-badge .user-avatar-badge-img-wrap{box-shadow:0 0 0 2px var(--color-bg-tertiary),0 0 0 3px color-mix(in srgb,var(--color-border-primary) 70%,transparent)}.activity-task-detail-author-row{display:inline-flex;align-items:center;margin-top:.55rem;max-width:100%}.activity-task-detail-author-row:empty{display:none}.activity-task-detail-locked-spacer{flex:1}.student-workspace-github{margin-top:.25rem}.student-workspace-github-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.875rem;line-height:1.45}.student-workspace-github-banner--ok{background:color-mix(in srgb,var(--color-accent-success, #10b981) 12%,var(--color-bg-secondary));border:1px solid color-mix(in srgb,var(--color-accent-success, #10b981) 35%,transparent);color:var(--color-text-primary)}.student-workspace-github-banner--err{background:color-mix(in srgb,#ef4444 10%,var(--color-bg-secondary));border:1px solid color-mix(in srgb,#ef4444 30%,transparent);color:var(--color-text-primary)}.student-workspace-github-banner-dismiss{flex-shrink:0;border:none;background:transparent;color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;text-decoration:underline;padding:0}.student-workspace-github-banner-dismiss:hover{color:var(--color-text-primary)}.student-workspace-github-prof-hint{font-size:.8125rem;color:var(--color-text-tertiary);margin:0 0 1rem;max-width:44rem;line-height:1.45}.student-workspace-github-error{margin-bottom:1rem}.student-workspace-github-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.25rem 1.35rem;max-width:52rem}.student-workspace-github-connected-as{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text-secondary)}.student-workspace-github-muted{margin:.5rem 0 0;font-size:.8125rem;color:var(--color-text-tertiary)}.student-workspace-github-manual{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;align-items:center}.student-workspace-github-input{flex:1;min-width:200px;padding:.5rem .65rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.875rem}.student-workspace-github-subtitle{margin:1.25rem 0 .5rem;font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.student-workspace-github-repo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.student-workspace-github-repo-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .65rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm)}.student-workspace-github-repo-name{font-size:.875rem;font-weight:500;color:var(--color-text-primary);word-break:break-all}.student-workspace-github-badge{margin-left:.35rem;font-size:.65rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);vertical-align:middle}.student-workspace-github-more{margin-top:.75rem}.student-workspace-github-actions-row{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.student-workspace-github-repo-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.student-workspace-github-repo-link{font-size:.9375rem;font-weight:600;color:var(--color-accent-primary);text-decoration:none;word-break:break-all}.student-workspace-github-repo-link:hover{text-decoration:underline}.student-workspace-github-repo-actions{display:flex;flex-wrap:wrap;gap:.5rem}.student-workspace-github-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem}.student-workspace-github-filter-label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em}.student-workspace-github-select{min-width:12rem;padding:.45rem .6rem;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.875rem}.student-workspace-github-table-wrap{overflow-x:auto;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary)}.student-workspace-github-table{width:100%;border-collapse:collapse;font-size:.8125rem}.student-workspace-github-table th,.student-workspace-github-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid var(--color-border-primary);vertical-align:top}.student-workspace-github-table th{font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-tertiary);white-space:nowrap}.student-workspace-github-table tr:last-child td{border-bottom:none}.student-workspace-github-sha{font-size:.75rem;background:var(--color-bg-secondary);padding:.12rem .35rem;border-radius:var(--radius-sm)}.student-workspace-github-msg{max-width:22rem;word-break:break-word}.student-workspace-github-date{white-space:nowrap;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.student-workspace-github-external{font-weight:600;font-size:.8125rem;white-space:nowrap}.class-hub{display:flex;flex-direction:column;gap:1.25rem}.class-hub-tabs{display:flex;gap:.4rem;padding:.3rem;background:color-mix(in srgb,var(--color-bg-secondary) 90%,transparent);border:1px solid var(--color-border-primary);border-radius:14px;align-self:flex-start;flex-wrap:wrap}.class-hub-tab-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .9rem;background:transparent;border:1px solid transparent;border-radius:10px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.class-hub-tab-btn:hover{color:var(--color-text-primary);background:color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent)}.class-hub-tab-btn.is-active{color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 12%,var(--color-bg-tertiary));border-color:color-mix(in srgb,var(--color-accent-primary) 40%,transparent)}.class-hub-panel{display:flex;flex-direction:column}.class-hub-tab{display:flex;flex-direction:column;gap:1rem}.class-hub-tab-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.class-hub-tab-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--color-text-primary)}.class-hub-tab-subtitle{margin:.2rem 0 0;color:var(--color-text-muted);font-size:.85rem}.class-hub-empty{padding:2.5rem 1rem;text-align:center;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-bg-tertiary) 60%,transparent);border:1px dashed var(--color-border-primary);border-radius:12px;font-size:.9rem}.class-hub-error{padding:.7rem .95rem;background:var(--color-danger-bg);color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 40%,transparent);border-radius:10px;font-size:.85rem}.class-hub-muted{color:var(--color-text-muted);font-size:.85rem;margin:0}.class-hub-btn-danger-ghost{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 30%,var(--color-border-primary))}.class-hub-btn-danger-ghost:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 60%,transparent)}.class-hub-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.class-hub-field-label{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.class-hub-input,.class-hub-textarea{width:100%;padding:.55rem .75rem;background:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:8px;font-size:.9rem;font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.class-hub-input:focus,.class-hub-textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent-primary) 18%,transparent)}.class-hub-textarea{resize:vertical;min-height:88px}.class-hub-modal-body{max-height:70vh;overflow-y:auto}.class-hub-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem}.class-hub-field--col-2{grid-column:1 / -1}.class-hub-announce-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.class-hub-announce-card{padding:1rem 1.15rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:12px;display:flex;flex-direction:column;gap:.65rem;box-shadow:0 1px 2px color-mix(in srgb,var(--color-text-primary) 6%,transparent)}.class-hub-announce-card--panel{border-left:4px solid var(--color-accent-primary);background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent-primary) 5%,var(--color-bg-secondary)),var(--color-bg-secondary) 48%)}.class-hub-announce-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.class-hub-announce-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--color-text-primary);line-height:1.3;letter-spacing:-.01em}.class-hub-announce-date-pill{font-size:.72rem;font-weight:600;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);padding:.28rem .65rem;border-radius:999px;white-space:nowrap}.class-hub-announce-body{margin:0;color:var(--color-text-secondary);line-height:1.58;font-size:.9rem;white-space:pre-wrap}.class-hub-announce-author{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--color-text-muted)}.class-hub-announce-author--top{padding-bottom:.15rem;border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 85%,transparent)}.class-hub-announce-author-name{font-weight:500;color:var(--color-text-secondary)}.class-hub-announce-files{margin-top:.25rem;padding-top:.65rem;border-top:1px solid color-mix(in srgb,var(--color-border-primary) 75%,transparent)}.class-hub-announce-files-head{display:flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.45rem}.class-hub-announce-files-icon{display:inline-flex;opacity:.85}.class-hub-announce-files-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.class-hub-announce-file-pill{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--color-border-primary);background:color-mix(in srgb,var(--color-bg-primary) 55%,var(--color-bg-secondary));color:var(--color-text-primary);text-decoration:none;font-size:.84rem;transition:border-color .15s ease,background .15s ease}.class-hub-announce-file-pill:hover{border-color:color-mix(in srgb,var(--color-accent-primary) 45%,var(--color-border-primary));background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-secondary))}.class-hub-announce-file-type{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent-primary);flex-shrink:0}.class-hub-announce-file-label{flex:1;min-width:0;font-weight:600}.class-hub-announce-file-meta{font-size:.72rem;color:var(--color-text-muted);font-weight:500}.class-hub-announce-file-arrow{font-size:.85rem;opacity:.65}.class-hub-announce-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.35rem}.class-hub-announce-modal .modal-body{max-height:min(72vh,680px);overflow-y:auto}.class-hub-announce-edit-attach{margin-top:.35rem;padding:.85rem .95rem;border-radius:10px;border:1px dashed color-mix(in srgb,var(--color-border-primary) 92%,var(--color-accent-primary));background:color-mix(in srgb,var(--color-bg-primary) 40%,transparent)}.class-hub-announce-edit-attach-head{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.35rem}.class-hub-announce-edit-attach-cap{font-size:.75rem;font-weight:600;color:var(--color-text-muted)}.class-hub-announce-edit-hint{margin:0 0 .65rem;font-size:.78rem;color:var(--color-text-muted);line-height:1.45}.class-hub-announce-edit-list{list-style:none;margin:0 0 .65rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.class-hub-announce-edit-list li{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.82rem}.class-hub-announce-edit-kind{font-size:.62rem;font-weight:800;letter-spacing:.05em;color:var(--color-accent-primary)}.class-hub-announce-edit-item-title{flex:1;min-width:0;font-weight:600;color:var(--color-text-secondary)}.class-hub-announce-edit-size{font-weight:500;color:var(--color-text-muted)}.class-hub-announce-link-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.45rem;align-items:center;margin-bottom:.55rem}@media(max-width:560px){.class-hub-announce-link-row{grid-template-columns:1fr}}.class-hub-announce-file-add{position:relative;display:inline-block}.class-hub-announce-file-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.class-hub-doc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.class-hub-doc-card{display:flex;align-items:center;gap:.7rem;padding:.7rem .95rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:10px;transition:border-color .12s ease}.class-hub-doc-card:hover{border-color:color-mix(in srgb,var(--color-accent-primary) 30%,var(--color-border-primary))}.class-hub-doc-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;flex-shrink:0}.class-hub-doc-pill--google{background:#1a73e810;color:#1a73e8;border:1px solid #1a73e830}.class-hub-doc-pill--overleaf{background:#0f8f4810;color:#0f8f48;border:1px solid #0f8f4830}.class-hub-doc-pill--pdf{background:#e8461010;color:#e84610;border:1px solid #e8461030}.class-hub-doc-pill--other{background:color-mix(in srgb,var(--color-text-muted) 15%,transparent);color:var(--color-text-secondary);border:1px solid var(--color-border-primary)}.class-hub-doc-title{flex:1;min-width:0;color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-hub-doc-actions{display:flex;gap:.4rem;flex-shrink:0}.class-hub-cal-list{display:flex;flex-direction:column;gap:1.1rem}.class-hub-cal-day-head{padding:.3rem .25rem .5rem;border-bottom:1px solid var(--color-border-primary);margin-bottom:.7rem}.class-hub-cal-day-label{font-size:.88rem;font-weight:700;color:var(--color-text-primary);text-transform:capitalize}.class-hub-cal-day-head--past .class-hub-cal-day-label{color:var(--color-text-muted)}.class-hub-cal-day-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}.class-hub-event-card{display:flex;align-items:flex-start;gap:1rem;padding:.95rem 1.1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:10px;position:relative;flex-wrap:wrap}.class-hub-event-card--past{opacity:.7}.class-hub-event-card:before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--color-accent-primary);border-radius:10px 0 0 10px}.class-hub-event-card--past:before{background:var(--color-text-muted)}.class-hub-event-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.45rem;padding-left:.25rem}.class-hub-event-title-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.class-hub-event-title{margin:0;font-size:1rem;font-weight:700;color:var(--color-text-primary)}.class-hub-event-kind{display:inline-flex;align-items:center;padding:.15rem .55rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px}.class-hub-event-kind--direct{background:color-mix(in srgb,var(--color-accent-primary) 14%,transparent);color:var(--color-accent-primary);border:1px solid color-mix(in srgb,var(--color-accent-primary) 35%,transparent)}.class-hub-event-kind--signup{background:color-mix(in srgb,#0ea5e9 14%,transparent);color:#0284c7;border:1px solid color-mix(in srgb,#0ea5e9 35%,transparent)}[data-theme=dark] .class-hub-event-kind--signup{color:#7dd3fc}.class-hub-event-meta{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.8rem;color:var(--color-text-muted)}.class-hub-event-desc{margin:0;color:var(--color-text-secondary);font-size:.88rem;line-height:1.45;white-space:pre-wrap}.class-hub-event-parts{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.class-hub-event-part{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem .2rem .25rem;background:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent);border:1px solid var(--color-border-primary);border-radius:999px;font-size:.78rem;color:var(--color-text-secondary)}.class-hub-event-part-name{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-hub-event-part-remove{background:transparent;border:none;color:var(--color-text-muted);font-size:1rem;line-height:1;cursor:pointer;padding:0 .2rem;border-radius:4px}.class-hub-event-part-remove:hover{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 15%,transparent)}.class-hub-event-actions{display:flex;flex-direction:column;gap:.35rem;align-items:stretch;min-width:180px}.class-hub-event-controls{display:flex;gap:.3rem;flex-wrap:wrap}.class-hub-kind-choice{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.class-hub-kind-option{display:flex;flex-direction:column;gap:.25rem;padding:.7rem .85rem;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:10px;cursor:pointer;transition:border-color .12s ease,background .12s ease}.class-hub-kind-option:hover{border-color:color-mix(in srgb,var(--color-accent-primary) 40%,var(--color-border-primary))}.class-hub-kind-option.is-selected{border-color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-primary))}.class-hub-kind-option input{display:none}.class-hub-kind-title{font-size:.88rem;font-weight:700;color:var(--color-text-primary)}.class-hub-kind-hint{font-size:.75rem;color:var(--color-text-muted)}.class-hub-student-picker{display:flex;flex-wrap:wrap;gap:.35rem;max-height:200px;overflow-y:auto;padding:.35rem;border:1px solid var(--color-border-primary);border-radius:8px;background:var(--color-bg-primary)}.class-hub-student-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;background:color-mix(in srgb,var(--color-bg-tertiary) 60%,transparent);border:1px solid var(--color-border-primary);border-radius:999px;cursor:pointer;font-size:.82rem;color:var(--color-text-secondary);transition:border-color .12s ease,background .12s ease}.class-hub-student-chip input{display:none}.class-hub-student-chip:hover{border-color:color-mix(in srgb,var(--color-accent-primary) 40%,var(--color-border-primary))}.class-hub-student-chip.is-selected{background:color-mix(in srgb,var(--color-accent-primary) 10%,transparent);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.class-hub-picker-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem;max-height:50vh;overflow-y:auto}.class-hub-picker-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .7rem;background:transparent;border:1px solid var(--color-border-primary);border-radius:8px;color:var(--color-text-primary);cursor:pointer;text-align:left;font-size:.88rem;transition:border-color .12s ease,background .12s ease}.class-hub-picker-item:hover{border-color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 8%,transparent)}.class-hub-cal-pro{display:flex;flex-direction:column;gap:1rem}.class-hub-cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1rem;background:color-mix(in srgb,var(--color-accent-primary) 6%,var(--color-bg-secondary));border:1px solid var(--color-border-primary);border-radius:16px}.class-hub-cal-toolbar-nav{display:flex;align-items:center;gap:.55rem}.class-hub-cal-toolbar-title{margin:0;font-size:1.12rem;font-weight:800;color:var(--color-text-primary);text-transform:capitalize;min-width:14rem;text-align:center;letter-spacing:-.02em}.class-hub-cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:12px;border:1px solid color-mix(in srgb,var(--color-border-primary) 85%,transparent);background:color-mix(in srgb,var(--color-bg-primary) 88%,transparent);color:var(--color-text-secondary);cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease,transform .12s ease}.class-hub-cal-nav-btn:hover{border-color:color-mix(in srgb,var(--color-accent-primary) 42%,transparent);color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 11%,var(--color-bg-primary))}.class-hub-cal-nav-btn:active{transform:scale(.96)}.class-hub-cal-toolbar-meta{display:inline-flex;align-items:center;gap:.65rem;flex-wrap:wrap}.class-hub-cal-meta-pill{font-size:.76rem;font-weight:700;color:var(--color-text-secondary);padding:.45rem .75rem;background:color-mix(in srgb,var(--color-bg-primary) 72%,transparent);border-radius:999px;border:1px solid color-mix(in srgb,var(--color-border-primary) 70%,transparent)}.class-hub-cal-today-btn{flex-shrink:0;border-radius:999px!important;padding-left:.85rem!important;padding-right:.85rem!important}.class-hub-cal-legend{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;padding:0 .1rem}.class-hub-cal-legend-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .75rem;font-size:.74rem;font-weight:600;color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-bg-secondary) 75%,transparent);border-radius:999px;border:1px solid color-mix(in srgb,var(--color-border-primary) 75%,transparent)}.class-hub-cal-legend-dot{width:9px;height:9px;border-radius:999px;flex-shrink:0}.class-hub-cal-legend-dot--direct{background:var(--color-accent-primary);border:1px solid color-mix(in srgb,var(--color-accent-primary) 45%,var(--color-border-primary))}.class-hub-cal-legend-dot--signup{background:#0284c7;border:1px solid color-mix(in srgb,#0284c7 50%,var(--color-border-primary))}[data-theme=dark] .class-hub-cal-legend-dot--signup{background:#38bdf8}.class-hub-cal-pro-layout{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(288px,1fr);gap:1.35rem;align-items:start}.class-hub-cal-month-wrap{border-radius:16px;border:1px solid var(--color-border-primary);background:var(--color-bg-secondary)}.class-hub-cal-month-wrap .class-hub-cal-month{border:none;border-radius:16px}.class-hub-cal-month{border:none;border-radius:15px;overflow:hidden;background:var(--color-bg-secondary)}.class-hub-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;background:linear-gradient(180deg,color-mix(in srgb,var(--color-bg-tertiary) 78%,transparent),color-mix(in srgb,var(--color-bg-secondary) 40%,transparent));border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 88%,transparent)}.class-hub-cal-weekday{padding:.52rem .25rem;text-align:center;font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.class-hub-cal-weekday:first-child{padding-left:.35rem}.class-hub-cal-weekday:last-child{padding-right:.35rem}.class-hub-cal-weeks{display:flex;flex-direction:column}.class-hub-cal-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 82%,transparent)}.class-hub-cal-week:last-child{border-bottom:none}.class-hub-cal-cell{min-height:98px;padding:.42rem .32rem .48rem;border-right:1px solid color-mix(in srgb,var(--color-border-primary) 78%,transparent);background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:stretch;gap:.22rem;transition:background .14s ease,transform .12s ease;border-radius:12px}.class-hub-cal-cell:last-child{border-right:none}.class-hub-cal-cell:hover:not(:disabled){background:color-mix(in srgb,var(--color-accent-primary) 9%,var(--color-bg-secondary))}.class-hub-cal-cell:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:-2px;border-radius:12px;z-index:2}.class-hub-cal-cell--muted{background:color-mix(in srgb,var(--color-bg-primary) 82%,transparent);opacity:.68}.class-hub-cal-cell--muted .class-hub-cal-cell-num{color:var(--color-text-muted)}.class-hub-cal-cell--today:not(.class-hub-cal-cell--selected){background:color-mix(in srgb,var(--color-accent-primary) 6%,var(--color-bg-secondary));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent-primary) 45%,transparent)}.class-hub-cal-cell--today .class-hub-cal-cell-num{display:inline-flex;align-items:center;justify-content:center;width:1.72rem;height:1.72rem;border-radius:999px;background:color-mix(in srgb,var(--color-accent-primary) 28%,transparent);color:var(--color-accent-primary);font-weight:800;border:1px solid color-mix(in srgb,var(--color-accent-primary) 40%,transparent)}.class-hub-cal-cell--selected{background:color-mix(in srgb,var(--color-accent-primary) 22%,var(--color-bg-secondary));box-shadow:inset 0 0 0 3px var(--color-accent-primary)}.class-hub-cal-cell--today.class-hub-cal-cell--selected .class-hub-cal-cell-num{background:color-mix(in srgb,var(--color-accent-primary) 38%,transparent);color:var(--color-text-primary);border-color:color-mix(in srgb,var(--color-accent-primary) 55%,transparent)}.class-hub-cal-cell--past:not(.class-hub-cal-cell--muted){opacity:.86}.class-hub-cal-cell-num{font-size:.84rem;font-weight:700;color:var(--color-text-primary);line-height:1.2;font-variant-numeric:tabular-nums}.class-hub-cal-cell-events{display:flex;flex-direction:column;gap:.18rem;min-height:0;flex:1}.class-hub-cal-cell-pill{display:block;font-size:.64rem;line-height:1.3;padding:.2rem .34rem;border-radius:6px;border:1px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.class-hub-cal-cell-pill--direct{background:color-mix(in srgb,var(--color-accent-primary) 16%,transparent);border-color:color-mix(in srgb,var(--color-accent-primary) 32%,transparent);color:var(--color-text-primary)}.class-hub-cal-cell-pill--signup{background:color-mix(in srgb,#0ea5e9 17%,transparent);border-color:color-mix(in srgb,#0ea5e9 38%,transparent);color:#0369a1}[data-theme=dark] .class-hub-cal-cell-pill--signup{color:#bae6fd}.class-hub-cal-cell-pill-title{font-weight:600}.class-hub-cal-cell-more{font-size:.64rem;font-weight:700;color:var(--color-text-muted);padding:.08rem 0 0 .12rem}.class-hub-cal-side{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.15rem;border:1px solid var(--color-border-primary);border-radius:16px;background:var(--color-bg-secondary);min-height:292px;max-height:min(70vh,640px);position:sticky;top:.5rem}.class-hub-cal-side-head{padding-bottom:.5rem;border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 82%,transparent)}.class-hub-cal-side-hero{display:flex;align-items:flex-start;gap:.85rem;padding:.55rem .65rem;margin:-.15rem -.35rem .55rem;border-radius:14px;background:color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-secondary));border:1px solid var(--color-border-primary)}.class-hub-cal-side-daynum{flex-shrink:0;font-size:2.5rem;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--color-accent-primary);font-variant-numeric:tabular-nums}.class-hub-cal-side-hero-text{display:flex;flex-direction:column;gap:.18rem;min-width:0;padding-top:.28rem}.class-hub-cal-side-weekday{font-size:.74rem;font-weight:700;text-transform:capitalize;letter-spacing:.03em;color:var(--color-text-muted)}.class-hub-cal-side-datefull{font-size:.9rem;font-weight:600;color:var(--color-text-primary);text-transform:capitalize;line-height:1.28}.class-hub-cal-side-title{margin:0;font-size:.95rem;font-weight:700;color:var(--color-text-primary);text-transform:capitalize}.class-hub-cal-side-sub{margin:.55rem 0 0;font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.class-hub-cal-empty-hint{font-size:.82rem;color:var(--color-text-muted);line-height:1.45;padding:.5rem .35rem;background:color-mix(in srgb,var(--color-bg-tertiary) 50%,transparent);border-radius:10px;border:1px dashed var(--color-border-primary)}.class-hub-cal-side-empty-day{margin:0;font-size:.82rem;color:var(--color-text-muted)}.class-hub-cal-side-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem;overflow-y:auto;flex:1;min-height:0}.class-hub-cal-side-list .class-hub-event-card--panel{flex-direction:column;border-radius:13px;border-color:var(--color-border-primary)}.class-hub-cal-side-list .class-hub-event-card--panel .class-hub-event-actions{width:100%;min-width:0}.class-hub-cal-pro--loading .class-hub-cal-skel-line{height:1.1rem;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent),color-mix(in srgb,var(--color-accent-primary) 12%,var(--color-bg-tertiary)),color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent));background-size:200% 100%;animation:class-hub-skel 1.1s ease-in-out infinite}.class-hub-cal-skel-btn{display:inline-block;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent)}.class-hub-cal-cell--skeleton{min-height:72px;background:color-mix(in srgb,var(--color-bg-tertiary) 45%,transparent);border-right:1px solid var(--color-border-primary);animation:class-hub-skel 1.1s ease-in-out infinite}.class-hub-cal-month--skeleton .class-hub-cal-weekdays{background:color-mix(in srgb,var(--color-bg-tertiary) 40%,transparent)}.class-hub-cal-month--skeleton .class-hub-cal-cells{display:grid;grid-template-columns:repeat(7,1fr)}.class-hub-cal-side--skeleton{min-height:320px;background:color-mix(in srgb,var(--color-bg-tertiary) 35%,transparent);border-radius:14px}@keyframes class-hub-skel{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}@media(max-width:720px){.class-hub-form-grid,.class-hub-kind-choice{grid-template-columns:1fr}.class-hub-event-card{flex-direction:column}.class-hub-event-actions{width:100%;min-width:0}.class-hub-cal-pro-layout{grid-template-columns:1fr}.class-hub-cal-side{position:static;max-height:none}.class-hub-cal-toolbar-title{min-width:0;flex:1}.class-hub-cal-cell{min-height:72px;padding:.28rem .2rem}.class-hub-cal-cell-pill-title{display:none}.class-hub-cal-cell-pill{white-space:nowrap}}@media(max-width:480px){.class-hub-cal-toolbar{flex-direction:column;align-items:stretch}.class-hub-cal-toolbar-meta{justify-content:space-between;width:100%}}.prof-collab-hero{display:flex;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent-primary) 12%,var(--color-bg-secondary)) 0%,var(--color-bg-secondary) 60%);border:1px solid var(--color-border-primary);border-radius:16px;position:relative;overflow:hidden;flex-wrap:wrap}.prof-collab-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--color-accent-primary) 18%,transparent),transparent 60%);pointer-events:none}.prof-collab-hero-avatar{width:84px;height:84px;border-radius:50%;overflow:hidden;flex-shrink:0;border:3px solid var(--color-bg-secondary);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent-primary) 40%,transparent),0 6px 18px -6px color-mix(in srgb,var(--color-accent-primary) 30%,transparent);background:var(--color-bg-tertiary);position:relative}.prof-collab-hero-avatar img{width:100%;height:100%;object-fit:cover;display:block}.prof-collab-hero-avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;color:var(--color-accent-primary);background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent-primary) 20%,var(--color-bg-tertiary)),color-mix(in srgb,var(--color-accent-primary) 8%,var(--color-bg-tertiary)));text-transform:uppercase}.prof-collab-hero-body{flex:1;min-width:240px;display:flex;flex-direction:column;gap:.3rem;position:relative;z-index:1}.prof-collab-hero-badge{align-self:flex-start;display:inline-flex;align-items:center;padding:.2rem .6rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--color-accent-primary) 35%,transparent);border-radius:999px}.prof-collab-hero-name{margin:0;font-size:1.45rem;font-weight:700;color:var(--color-text-primary);line-height:1.2}.prof-collab-hero-meta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:.25rem}.prof-collab-hero-meta-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text-secondary)}.prof-collab-hero-meta-item svg{opacity:.7;flex-shrink:0}.prof-collab-hero-meta-link{color:var(--color-text-secondary);text-decoration:none;transition:color .12s ease}.prof-collab-hero-meta-link:hover{color:var(--color-accent-primary)}.prof-collab-hero-actions{display:flex;gap:.5rem;flex-shrink:0;position:relative;z-index:1}.prof-collab-hero-end-btn{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border-primary));background:var(--color-bg-secondary)}.prof-collab-hero-end-btn:hover{color:var(--color-danger);background:var(--color-danger-bg);border-color:color-mix(in srgb,var(--color-danger) 60%,transparent)}.prof-collab-main{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.prof-collab-tabs{display:flex;gap:.35rem;padding:.3rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:14px;align-self:flex-start;flex-wrap:wrap}.prof-collab-tab{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .95rem;background:transparent;border:1px solid transparent;border-radius:10px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.prof-collab-tab:hover{color:var(--color-text-primary);background:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent)}.prof-collab-tab.is-active{color:var(--color-accent-primary);background:color-mix(in srgb,var(--color-accent-primary) 12%,var(--color-bg-tertiary));border-color:color-mix(in srgb,var(--color-accent-primary) 40%,transparent)}.prof-collab-panel{display:flex;flex-direction:column}.prof-collab-profile{display:flex;flex-direction:column;gap:1rem}.prof-collab-profile-card{padding:1.15rem 1.35rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:12px}.prof-collab-profile-head{margin-bottom:.9rem;padding-bottom:.6rem;border-bottom:1px solid var(--color-border-primary)}.prof-collab-profile-head h3{margin:0;font-size:.95rem;font-weight:700;color:var(--color-text-primary)}.prof-collab-profile-head p{margin:.3rem 0 0;font-size:.8rem;color:var(--color-text-muted)}.prof-collab-profile-empty{padding:1.5rem;text-align:center;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-bg-tertiary) 60%,transparent);border:1px dashed var(--color-border-primary);border-radius:12px;font-size:.88rem}.prof-collab-profile .student-profile-info-grid,.prof-collab-profile .profile-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem 1.2rem}@media(max-width:720px){.prof-collab-hero{flex-direction:column;align-items:flex-start;text-align:left}.prof-collab-hero-actions{width:100%}.prof-collab-hero-end-btn{width:100%;justify-content:center}.prof-collab-tabs{align-self:stretch;width:100%;max-width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.prof-collab-tab{flex:0 0 auto}}.prof-collab-hero--account{flex-direction:column;align-items:stretch}.prof-collab-hero-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;width:100%;position:relative;z-index:1}.prof-collab-hero-stats{display:flex;flex-wrap:wrap;gap:.55rem;padding-top:1rem;margin-top:.35rem;border-top:1px solid color-mix(in srgb,var(--color-border-primary) 85%,transparent);width:100%;position:relative;z-index:1}.prof-collab-hero-stat-chip{display:inline-flex;align-items:center;gap:.42rem;padding:.35rem .65rem;font-size:.76rem;font-weight:500;color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-bg-primary) 75%,transparent);border:1px solid var(--color-border-primary);border-radius:999px}.prof-collab-hero-stat-chip svg{opacity:.65;flex-shrink:0}.prof-account-hero-edit{display:inline-flex;align-items:center;gap:.42rem}.prof-account-view{display:flex;flex-direction:column;gap:1.25rem}.prof-account-grid{display:flex;flex-direction:column;gap:1rem}.prof-account-head-with-action{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;flex-wrap:wrap}.prof-account-head-with-action>div{flex:1;min-width:200px}.prof-account-head-with-action .btn{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.prof-account-meta{display:flex;gap:1.1rem;flex-wrap:wrap;padding:.65rem 1rem;font-size:.78rem;color:var(--color-text-muted);border-top:1px dashed var(--color-border-primary)}.prof-account-meta-item{display:inline-flex;align-items:center;gap:.4rem}.prof-account-meta-item svg{opacity:.6}.prof-account-prefs-rows{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border-primary);border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--color-bg-primary) 85%,transparent)}.prof-account-prefs-rows .profile-prefs-toggle-row{padding:.85rem 1rem;margin:0;border-bottom:1px solid color-mix(in srgb,var(--color-border-primary) 75%,transparent)}.prof-account-prefs-rows .profile-prefs-toggle-row:last-child{border-bottom:none}.prof-account-prefs-card .prof-collab-profile-head{margin-bottom:.75rem}.prof-account-view .student-profile-info-grid,.prof-account-view .profile-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem 1.2rem}@media(max-width:720px){.prof-collab-hero-row .prof-collab-hero-actions{width:100%;margin-top:.35rem}.prof-collab-hero-row .prof-collab-hero-actions .prof-account-hero-edit,.prof-account-head-with-action .btn{width:100%;justify-content:center}}:root{--color-bg-primary: #0a0a0b;--color-bg-secondary: #111113;--color-bg-tertiary: #18181b;--color-bg-elevated: #1c1c1f;--color-bg-hover: #27272a;--color-border-primary: #27272a;--color-border-secondary: #3f3f46;--color-border-focus: #ec4899;--color-text-primary: #fafafa;--color-text-secondary: #a1a1aa;--color-text-tertiary: #71717a;--color-text-muted: #52525b;--color-accent-primary: #ec4899;--color-accent-primary-hover: #db2777;--color-accent-secondary: #f472b6;--color-success: #22c55e;--color-success-bg: rgba(34, 197, 94, .1);--color-success-border: rgba(34, 197, 94, .2);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-warning-border: rgba(245, 158, 11, .2);--color-danger: #ef4444;--color-danger-bg: rgba(239, 68, 68, .1);--color-danger-border: rgba(239, 68, 68, .2);--color-info: #ec4899;--color-info-bg: rgba(236, 72, 153, .1);--color-info-border: rgba(236, 72, 153, .2);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-.02em;line-height:1.25}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}p{color:var(--color-text-secondary);line-height:1.6}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-primary-hover)}input,select,textarea{font-family:inherit;font-size:.9375rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-primary);padding:.625rem .875rem;width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-border-focus)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.05em}button{font-family:inherit;cursor:pointer;border:none;background:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--color-accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-primary-hover)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-secondary)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn+.btn{margin-left:.5rem}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{border-color:var(--color-border-secondary)}.card-elevated{background:var(--color-bg-elevated)}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);border:1px solid}.badge-success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.badge-pending{background:#6366f11f;color:#818cf8;border-color:#6366f140}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.badge-info{background:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}.badge-neutral{background:var(--color-bg-hover);color:var(--color-text-secondary);border-color:var(--color-border-primary)}.table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:hidden}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-tertiary)}.table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border-primary);color:var(--color-text-secondary);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-bg-tertiary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:1.5rem;max-width:480px;width:100%;box-shadow:var(--shadow-lg)}.modal h3{margin-bottom:1rem;font-size:1.125rem}.modal-field{margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border-primary)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.modal-header-info{display:flex;align-items:center;gap:.75rem}.modal-title{font-size:1.0625rem;font-weight:600;color:var(--color-text-primary);margin-bottom:0}.modal-subtitle{font-size:.8125rem;color:var(--color-text-tertiary);margin-top:2px}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-muted);flex-shrink:0;transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.modal-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);font-size:.8125rem;padding:.625rem .875rem;border-radius:var(--radius-md);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.modal-wide{max-width:560px}.modal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem}.modal-field-full{grid-column:1 / -1}.modal-edit-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.modal-edit-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;font-size:.875rem;font-weight:600}.modal-delete-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);margin:0 auto 1rem}.confirm-modal-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.confirm-modal-icon-danger{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.confirm-modal-icon-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.confirm-modal-icon-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.confirm-modal-title{text-align:center;font-size:1.0625rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.confirm-modal-text{text-align:center;font-size:.9rem;color:var(--color-text-secondary);margin-bottom:1.5rem;line-height:1.5}.confirm-modal-text strong{color:var(--color-text-primary)}.confirm-modal-actions{display:flex;gap:.625rem;justify-content:center}.confirm-modal-actions .btn{min-width:120px}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-sm{width:28px;height:28px}.avatar-lg{width:48px;height:48px}.avatar-xl{width:64px;height:64px}.avatar-fallback{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8125rem}.avatar-fallback.avatar-sm{font-size:.6875rem}.avatar-fallback.avatar-lg{font-size:1rem}.avatar-fallback.avatar-xl{font-size:1.25rem}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);padding:1rem}.app-loading-card{display:flex;flex-direction:column;align-items:center;padding:2.5rem 3rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center}.app-loading-spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--color-border-primary);border-top-color:var(--color-accent-primary);animation:spin .7s linear infinite;margin-bottom:1.25rem}.app-loading-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.app-loading-subtitle{font-size:.875rem;color:var(--color-text-tertiary);margin:0}.loading-text{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--color-text-tertiary);padding:2.5rem;text-align:center}.loading-text:before{content:"";width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border-primary);border-top-color:var(--color-accent-primary);animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-border-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:640px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.0625rem}.modal-overlay{align-items:flex-end;padding:.5rem}.modal{max-width:100%;width:100%;max-height:min(92dvh,100%);overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.1rem 1rem 1.25rem}.modal-grid-2{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-actions .btn{width:100%;margin-left:0}.confirm-modal-actions{flex-direction:column-reverse;align-items:stretch}.confirm-modal-actions .btn{width:100%;min-width:0;margin-left:0}.btn{white-space:normal;text-align:center}}
