@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap";.toast-container{z-index:9999;flex-direction:column;gap:.5rem;width:calc(100% - 2rem);max-width:400px;display:flex;position:fixed;top:1rem;right:1rem}.toast{border-radius:var(--radius-md);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);align-items:center;gap:.75rem;padding:.85rem 1rem;font-size:.875rem;font-weight:500;display:flex}.toast-success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.toast-error{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.toast-warning{background:var(--color-warning-light);color:var(--color-warning);border-color:var(--color-warning)}.toast-info{background:var(--color-info-light);color:var(--color-info);border-color:var(--color-info)}.toast-icon{letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-full);background:color-mix(in srgb, currentColor 10%, transparent);border:1px solid;flex-shrink:0;justify-content:center;align-items:center;min-width:1.9rem;height:1.9rem;font-size:.65rem;font-weight:800;display:inline-flex}.toast-message{flex:1}.toast-close{border-radius:var(--radius-sm);width:24px;height:24px;color:inherit;opacity:.6;transition:opacity var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.toast-close:hover{opacity:1}.sidebar{width:var(--sidebar-width);background:var(--color-bg-secondary);border-right:1px solid var(--color-border);z-index:50;transition:width var(--transition-normal), transform var(--transition-normal);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{height:var(--topbar-height);padding:0 var(--spacing-md);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.sidebar-brand{align-items:center;gap:.75rem;text-decoration:none;display:flex}.brand-logo{border-radius:var(--radius-md);background:var(--color-btn-primary-bg);width:36px;height:36px;color:var(--color-btn-primary-text);border:1px solid var(--color-btn-primary-border);justify-content:center;align-items:center;font-size:1.2rem;font-weight:800;display:flex}.brand-text{flex-direction:column;display:flex}.brand-title{color:var(--color-text-primary);font-size:1.05rem;font-weight:700;line-height:1.1}.brand-subtitle{color:var(--color-text-secondary);letter-spacing:.04em;font-size:.7rem;font-weight:600}.sidebar-collapse-btn{color:var(--color-text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;padding:4px 8px;font-size:.9rem}.sidebar-collapse-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.sidebar-nav{padding:var(--spacing-md) var(--spacing-sm);gap:var(--spacing-md);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group-title{color:var(--color-text-tertiary);letter-spacing:.08em;margin-bottom:2px;padding:.25rem .75rem;font-size:.65rem;font-weight:700}.nav-link{border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);text-align:left;border:1px solid #0000;align-items:center;gap:.7rem;width:100%;padding:.55rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-hover);transform:translate(1px)}.nav-link.active{background:var(--color-accent-subtle);color:var(--color-text-primary);border-color:var(--color-accent);font-weight:600}.nav-icon{justify-content:center;align-items:center;width:24px;font-size:1.15rem;display:flex}.nav-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-link{position:relative}.nav-badge-pill{color:#fff;background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:.7rem;font-weight:700;animation:2s ease-in-out infinite pulse-red;display:inline-flex;box-shadow:0 0 8px #ef444499}.nav-unread-dot{background:#ef4444;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-red;position:absolute;top:6px;right:6px;box-shadow:0 0 6px #ef4444cc}@keyframes pulse-red{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-error) 70%, transparent);transform:scale(.95)}70%{box-shadow:0 0 0 8px color-mix(in srgb, var(--color-error) 0%, transparent);transform:scale(1)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-error) 0%, transparent);transform:scale(.95)}}.admin-group{border-top:1px dashed var(--color-border);padding-top:var(--spacing-sm)}.admin-link.active{color:var(--color-burgundy);background:#5b23331f;border-color:#5b233359}.sidebar-footer{padding:var(--spacing-sm);border-top:1px solid var(--color-border);flex-direction:column;gap:2px;display:flex}.logout-btn{color:var(--color-error);cursor:pointer;background:0 0}.logout-btn:hover{background:var(--color-error-light);color:var(--color-error)}@media (width<=768px){.sidebar{width:260px;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;position:fixed;inset:0}}.avatar{border-radius:var(--radius-full);object-fit:cover;flex-shrink:0}.avatar-initials{color:#fff;letter-spacing:.03em;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar-sm{width:28px;height:28px;font-size:.65rem}.avatar-md{width:36px;height:36px;font-size:.75rem}.avatar-lg{width:48px;height:48px;font-size:.9rem}.avatar-xl{width:72px;height:72px;font-size:1.2rem}.badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.badge-sm{padding:.15rem .55rem;font-size:.7rem}.badge-md{padding:.25rem .7rem;font-size:.8rem}.badge-default{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-error{background:var(--color-error-light);color:var(--color-error)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-accent{background:var(--color-accent-light);color:var(--color-accent)}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.count-badge{color:#fff;background:var(--color-error);border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.notification-list{flex-direction:column;max-height:380px;display:flex;overflow-y:auto}.empty-notifications{text-align:center;color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.4rem;padding:2.5rem 1rem;font-size:.85rem;display:flex}.empty-notifications span{border-radius:var(--radius-full);background:var(--color-bg-tertiary);width:3rem;height:3rem;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:inline-flex}.notification-item{border-bottom:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.notification-item:hover{background:var(--color-bg-tertiary)}.notification-item.unread{background:var(--color-accent-subtle)}.notification-status-dot{background:0 0;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notification-item.unread .notification-status-dot{background:var(--color-accent)}.notification-body{flex-direction:column;flex:1;gap:.2rem;display:flex}.notification-title{color:var(--color-text-primary);font-size:.85rem;font-weight:700}.notification-text{color:var(--color-text-secondary);font-size:.8rem;line-height:1.35}.notification-time{color:var(--color-text-tertiary);margin-top:.2rem;font-size:.7rem}.notification-bell-container{position:relative}.notification-bell-btn{color:var(--color-text-secondary);border-radius:var(--radius-full);width:38px;height:38px;transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.notification-bell-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.bell-icon{font-size:1.15rem}.bell-badge{position:absolute;top:4px;right:4px}.notification-dropdown{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);width:360px;max-width:90vw;box-shadow:var(--shadow-xl);z-index:100;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-dropdown-header{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.notification-dropdown-header h4{margin:0;font-size:.95rem;font-weight:700}.unread-pill{color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-full);padding:2px 8px;font-size:.7rem;font-weight:700}.desktop-notification-prompt{background:var(--color-accent-subtle);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.prompt-text strong{color:var(--color-accent);font-size:.825rem;font-weight:700;display:block}.prompt-text p{color:var(--color-text-secondary);margin:.15rem 0 0;font-size:.75rem;line-height:1.3}.enable-alerts-btn{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border:1px solid var(--color-btn-primary-border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);padding:.4rem .85rem;font-size:.775rem;font-weight:700}.enable-alerts-btn:hover{background:var(--color-btn-primary-hover);transform:translateY(-1px)}.topbar{top:0;right:0;left:var(--sidebar-width);height:var(--topbar-height);background:var(--color-bg-glass);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--color-border);padding:0 var(--spacing-lg);z-index:40;transition:left var(--transition-normal);justify-content:space-between;align-items:center;display:flex;position:fixed}.sidebar-collapsed .topbar{left:var(--sidebar-collapsed-width)}@media (width<=768px){.topbar{padding:0 var(--spacing-sm);background:var(--color-bg-primary);left:0}}.topbar-left{align-items:center;gap:var(--spacing-md);flex:1;max-width:500px;display:flex}.topbar-toggle-btn{color:var(--color-text-secondary);border-radius:var(--radius-md);background:0 0;justify-content:center;align-items:center;padding:8px;display:flex}.topbar-toggle-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.topbar-search{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.45rem .9rem;display:flex}.topbar-search:hover{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.search-icon{color:var(--color-text-tertiary)}.search-placeholder{color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85rem;overflow:hidden}.search-shortcut{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);padding:2px 6px;font-family:inherit;font-size:.7rem}.topbar-right{align-items:center;gap:.75rem;display:flex}.topbar-action-btn{color:var(--color-text-secondary);border-radius:var(--radius-md);width:38px;height:38px;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:relative}.topbar-action-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-hover);transform:translateY(-1px)}.topbar-unread-badge{color:#fff;background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;animation:2s ease-in-out infinite pulse-red;display:flex;position:absolute;top:2px;right:2px;box-shadow:0 0 8px #ef444499}.topbar-divider{background:var(--color-border);width:1px;height:24px;margin:0 4px}.topbar-profile{border-radius:var(--radius-md);transition:background var(--transition-fast);border:1px solid #0000;align-items:center;gap:.75rem;padding:4px 8px;text-decoration:none;display:flex}.topbar-profile:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover)}.topbar-profile-info{flex-direction:column;display:flex}.profile-name{color:var(--color-text-primary);font-size:.875rem;font-weight:600;line-height:1.2}.profile-role-row{margin-top:2px}.mobile-only{display:none}@media (width<=768px){.mobile-only{display:flex}.desktop-only{display:none}.topbar-left{gap:var(--spacing-sm);flex:0 auto}.topbar-search{background:0 0;border-color:#0000;justify-content:center;width:38px;height:38px;padding:0}.topbar-search:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover);box-shadow:none}.search-placeholder,.search-shortcut{display:none}.topbar-right{gap:.25rem}.topbar-action-btn{width:34px;height:34px}.topbar-profile{padding:2px}}.bottom-nav{height:calc(var(--bottomnav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-bg-glass);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--color-border);z-index:40;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--color-text-tertiary);border-radius:var(--radius-lg);transition:all var(--transition-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 12px;font-size:.7rem;font-weight:500;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--color-accent);font-weight:700}.bottom-nav-item:active{background:var(--color-bg-tertiary);transform:scale(.95)}.bottom-nav-icon{transition:transform var(--transition-fast);line-height:0}.bottom-nav-item.active .bottom-nav-icon{transform:translateY(-2px)}@media (width>=769px){.bottom-nav{display:none}}.app-shell{background:var(--color-bg-primary);min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);transition:margin-left var(--transition-normal);flex-direction:column;flex:1;min-width:0;max-width:100%;display:flex}.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed-width)}.app-content{padding:var(--spacing-lg);padding-top:calc(var(--topbar-height) + var(--spacing-lg));flex:1;min-width:0;overflow:hidden auto}.app-content-inner{max-width:var(--content-max-width);width:100%;min-width:0;margin:0 auto;overflow:hidden}@media (width<=768px){.app-main{margin-left:0}.app-content{padding:var(--spacing-md);padding-top:calc(var(--topbar-height) + var(--spacing-md));padding-bottom:calc(var(--bottomnav-height) + env(safe-area-inset-bottom,0px) + var(--spacing-lg))}}.spinner{justify-content:center;align-items:center;display:inline-flex}.spinner-ring{border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:.7s linear infinite spin}.spinner-sm .spinner-ring{border-width:2px;width:16px;height:16px}.spinner-md .spinner-ring{width:28px;height:28px}.spinner-lg .spinner-ring{border-width:4px;width:42px;height:42px}.page-spinner{justify-content:center;align-items:center;width:100%;min-height:300px;display:flex}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sm{border-radius:var(--radius-sm);padding:.45rem .9rem;font-size:.8125rem}.btn-md{border-radius:var(--radius-md);padding:.65rem 1.35rem;font-size:.875rem}.btn-lg{border-radius:var(--radius-lg);letter-spacing:.02em;padding:.85rem 1.85rem;font-size:1rem}.btn-primary{box-shadow:var(--color-btn-primary-glow);text-shadow:0 1px 1px #00000026;font-weight:700;background:var(--color-btn-primary-bg)!important;color:var(--color-btn-primary-text)!important;border:1px solid var(--color-btn-primary-border)!important}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-glow), var(--color-btn-primary-glow);transform:translateY(-1px);background:var(--color-btn-primary-hover)!important}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-elevated);border-color:var(--color-accent);color:var(--color-accent)}.btn-outline{border:1.5px solid var(--color-border);color:var(--color-text-primary);background:0 0}.btn-outline:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-subtle)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn-full{width:100%}.btn-spinner{border:2px solid #ffffff4d;border-top-color:currentColor;border-radius:50%;width:1em;height:1em;animation:.6s linear infinite spin}.btn-icon{align-items:center;font-size:1.1em;display:flex}.input-group{flex-direction:column;gap:.375rem;display:flex}.input-label{color:var(--color-text-secondary);letter-spacing:.01em;font-size:.8125rem;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--color-text-tertiary);pointer-events:none;transition:color var(--transition-fast);font-size:1.1rem;display:flex;position:absolute;left:.85rem}.input-field{width:100%;color:var(--color-text-primary);background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:.65rem .9rem;font-size:.9rem}.input-field.has-icon{padding-left:2.6rem}.input-field.has-password-toggle{padding-right:2.6rem}.input-password-toggle{cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:.2rem;line-height:1;display:flex;position:absolute;right:.75rem}.input-password-toggle:hover{color:var(--color-accent);background:var(--color-accent-subtle)}.input-password-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.input-field::placeholder{color:var(--color-text-tertiary)}.input-field:hover{border-color:var(--color-border-hover)}.input-field:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-subtle)}.input-field:focus~.input-icon,.input-wrapper:focus-within .input-icon{color:var(--color-accent)}.textarea-field{resize:vertical;min-height:100px;line-height:1.5}.input-error .input-field{border-color:var(--color-error)}.input-error .input-field:focus{box-shadow:0 0 0 3px var(--color-error-light)}.input-error-text{color:var(--color-error);font-size:.75rem;font-weight:500}.input-hint{color:var(--color-text-tertiary);font-size:.75rem}.turnstile-widget-container{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:65px;margin:.5rem 0;display:flex}.turnstile-slot{justify-content:center;align-items:center;display:flex}.turnstile-verified-text{color:var(--color-success);font-size:.75rem;font-weight:700}.auth-form{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-xl);padding:2rem 2.25rem}.auth-form-header{text-align:center;margin-bottom:1.75rem}.auth-title{color:var(--color-text-primary);margin-bottom:.35rem;font-size:1.5rem;font-weight:800}.auth-subtitle{color:var(--color-text-secondary);font-size:.85rem}.form-fields{flex-direction:column;gap:1rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=480px){.form-row{grid-template-columns:1fr}}.form-extra-row{justify-content:flex-end;display:flex}.forgot-link{color:var(--color-accent);font-size:.8rem;font-weight:500}.turnstile-wrapper{justify-content:center;align-items:center;display:flex}.turnstile-badge{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.75rem;display:flex}.two-factor-banner{background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-md);align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem 1rem;font-size:.8rem;display:flex}.two-factor-banner strong{color:var(--color-text-primary);display:block}.auth-footer{text-align:center;color:var(--color-text-secondary);border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.25rem;font-size:.85rem}.auth-link{color:var(--color-accent);font-weight:600}.zu-helper-box{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:.75rem .85rem;font-size:.8rem;display:flex}.zu-helper-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.zu-btn-fetch{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#0284c7,#0369a1);border:none;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.75rem;font-weight:600;transition:opacity .2s;display:inline-flex}.zu-btn-fetch:hover:not(:disabled){opacity:.9}.zu-btn-fetch:disabled{opacity:.6;cursor:not-allowed}.zu-portal-link{color:var(--color-accent);align-items:center;gap:.3rem;font-size:.75rem;text-decoration:underline;transition:opacity .2s;display:inline-flex}.zu-portal-link:hover{opacity:.8}.zu-feedback-success{border-radius:var(--radius-sm);color:#22c55e;background:#22c55e1a;border:1px solid #22c55e4d;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;line-height:1.4;display:flex}.zu-feedback-warn{border-radius:var(--radius-sm);color:#eab308;background:#eab3081a;border:1px solid #eab3084d;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;line-height:1.4;display:flex}.auth-page{background:radial-gradient(circle at top, var(--color-accent-subtle), transparent 70%), var(--color-bg-primary);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex;position:relative;overflow:hidden}.auth-brand-header{align-items:center;gap:.75rem;margin-bottom:2rem;text-decoration:none;display:flex}.auth-brand-logo{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--color-accent), var(--color-info));color:#fff;width:44px;height:44px;box-shadow:0 4px 16px var(--color-accent-glow);justify-content:center;align-items:center;font-size:1.5rem;font-weight:800;display:flex}.auth-brand-text h1{color:var(--color-text-primary);font-size:1.5rem;font-weight:800;line-height:1.1}.auth-brand-text p{color:var(--color-accent);letter-spacing:.05em;font-size:.75rem;font-weight:600}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:hidden}.card-pad-sm{padding:.75rem}.card-pad-md{padding:1.25rem}.card-pad-lg{padding:1.75rem}@media (width<=600px){.card-pad-md{padding:.85rem}.card-pad-lg{padding:1rem}}.card-hoverable{cursor:pointer}.card-hoverable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.tag{border-radius:var(--radius-full);background:color-mix(in srgb, var(--tag-color) 12%, transparent);color:var(--tag-color);border:1px solid color-mix(in srgb, var(--tag-color) 25%, transparent);align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.tag-sm{padding:.15rem .55rem;font-size:.7rem}.tag-md{padding:.25rem .7rem;font-size:.8rem}.tag-icon{letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;min-width:1.35rem;font-size:.62rem;font-weight:800;display:inline-flex}.tag-label{letter-spacing:.01em}.embedded-material{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);transition:all var(--transition-fast);margin:.75rem 0;overflow:hidden}.embedded-material:hover{border-color:var(--color-accent)}.embedded-header{flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.embedded-icon{background:var(--color-bg-secondary);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:38px;height:38px;font-size:1.5rem;display:flex}.embedded-info{flex-direction:column;flex:1;display:flex}.embedded-title{color:var(--color-text-primary);font-size:.875rem;font-weight:600}.embedded-domain{color:var(--color-text-tertiary);font-size:.75rem}.embedded-open-btn{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:.4rem .85rem;font-size:.8rem;font-weight:600;text-decoration:none}.embedded-open-btn:hover{background:var(--color-accent);color:#fff}.confirm-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-modal-content{background-color:var(--color-bg-elevated,#fff);border-radius:var(--radius-lg,12px);width:90%;max-width:400px;box-shadow:var(--shadow-xl,0 10px 25px #0003);border:1px solid var(--color-border);padding:1.5rem}.confirm-modal-title{color:var(--color-text-primary);margin:0 0 .75rem;font-size:1.25rem}.confirm-modal-message{color:var(--color-text-secondary);margin:0 0 1.5rem;line-height:1.5}.confirm-modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.comment-thread-section{border-top:1px solid var(--color-border);flex-direction:column;gap:1rem;padding-top:1rem;display:flex}.add-comment-box{align-items:flex-end;gap:.5rem;display:flex}.add-comment-box .input-group{flex:1}.comments-list{flex-direction:column;gap:1rem;display:flex}.comment-item-wrap{flex-direction:column;gap:.5rem;display:flex}.comment-bubble{background:var(--color-bg-tertiary);border-radius:var(--radius-md);align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.comment-body-content{flex:1}.comment-author-header{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.comment-author{color:var(--color-text-primary);font-size:.85rem;font-weight:700}.comment-date{color:var(--color-text-tertiary);font-size:.7rem}.comment-text{color:var(--color-text-secondary);font-size:.875rem;line-height:1.4}.reply-action-btn{color:var(--color-accent);background:0 0;margin-top:.35rem;font-size:.75rem;font-weight:600}.reply-form-wrap{background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;gap:.5rem;margin-left:2rem;padding:.75rem;display:flex}.nested-replies-list{border-left:2px solid var(--color-border);flex-direction:column;gap:.5rem;margin-left:2rem;padding-left:.75rem;display:flex}.reply-bubble{background:var(--color-bg-secondary);border:1px solid var(--color-border)}.task-countdown-compact{color:var(--color-warning,#d97706);background:var(--color-warning-light,#d977061f);border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:.35rem;padding:.2rem .6rem;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;display:inline-flex}.task-countdown-expired{color:var(--color-error,#dc2626);background:var(--color-error-light,#dc26261f);border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.task-countdown-detailed{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:center;gap:.4rem;padding:.5rem .85rem;display:inline-flex}.countdown-box{flex-direction:column;justify-content:center;align-items:center;min-width:38px;display:flex}.countdown-value{color:var(--color-accent);font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:800;line-height:1}.countdown-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-top:2px;font-size:.62rem;font-weight:700}.countdown-sep{color:var(--color-border-hover);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:800}.task-card-link{text-decoration:none;display:block}.task-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.task-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.task-card-header{justify-content:space-between;align-items:center;display:flex}.task-type-badge{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:.4rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.task-badge-icon{align-items:center;display:flex}.task-title{color:var(--color-text-primary);margin:0;font-size:1.15rem;font-weight:700;line-height:1.35}.task-description-preview{color:var(--color-text-secondary);max-height:110px;font-size:.875rem;line-height:1.6;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000 100%);mask-image:linear-gradient(#000 70%,#0000 100%)}.task-description-preview *{margin-top:0!important;margin-bottom:.35rem!important}.task-description-preview p{color:var(--color-text-secondary)!important;font-size:.875rem!important;line-height:1.6!important}.task-description-preview h1,.task-description-preview h2,.task-description-preview h3,.task-description-preview h4{color:var(--color-text-primary)!important;font-size:.925rem!important;font-weight:600!important}.task-card-footer{border-top:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;margin-top:.25rem;padding-top:.75rem;font-size:.85rem;display:flex}.task-deadline{color:var(--color-text-secondary);align-items:center;gap:.4rem;font-weight:500;display:flex}.task-action-hint{color:var(--color-accent);transition:transform var(--transition-fast);align-items:center;gap:.35rem;font-weight:600;display:flex}.task-card-link:hover .task-action-hint{transform:translate(3px)}.task-delete-btn{color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.task-delete-btn:hover{color:#ef4444;background-color:#ef44441a}.quiz-card-feed{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);padding:1.25rem;transition:all .2s}.quiz-card-feed:hover{border-color:var(--color-primary);transform:translateY(-1px)}.quiz-card-feed-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.quiz-badge-wrap{color:var(--color-primary);align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;display:inline-flex}.quiz-card-feed-title{color:var(--color-text-primary);margin:0 0 .75rem;font-size:1.15rem;font-weight:700}.quiz-meta-pills{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.quiz-meta-pill{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:.25rem .6rem;font-size:.8rem;font-weight:600}.quiz-card-feed-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.quiz-deadline-text{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.quiz-delete-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem}.quiz-delete-btn:hover{color:var(--color-error)}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.post-card{box-sizing:border-box;flex-direction:column;gap:.75rem;width:100%;min-width:0;max-width:100%;margin-bottom:1rem;display:flex;overflow:hidden}.post-card-header{align-items:flex-start;gap:.75rem;width:100%;min-width:0;max-width:100%;display:flex}.post-header-content{flex:1;min-width:0;max-width:100%}.post-header-top{justify-content:space-between;align-items:flex-start;gap:.5rem;width:100%;min-width:0;max-width:100%;margin-bottom:4px;display:flex}.post-header-author{flex-direction:column;gap:2px;min-width:0;max-width:100%;display:flex}.post-author-line{align-items:center;gap:.4rem;min-width:0;max-width:100%;display:flex}.author-name{color:var(--color-text-primary);overflow-wrap:anywhere;word-break:break-word;font-size:.95rem;font-weight:600}.post-time{color:var(--color-text-tertiary);white-space:nowrap;font-size:.8rem}.post-dot-separator{color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none;font-size:.65rem}.post-meta-row{flex-wrap:wrap;align-items:center;gap:.4rem;width:100%;min-width:0;max-width:100%;line-height:1.6;display:flex}.post-course-label{color:var(--color-accent);overflow-wrap:anywhere;word-break:break-word;font-size:.78rem;font-weight:500}.post-role-badge{background:var(--color-bg-tertiary);color:var(--color-text-tertiary);text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:.65rem;font-weight:700}.post-header-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.post-delete-btn{color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex}.post-delete-btn:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.post-card-body{width:100%;min-width:0;max-width:100%;padding:0;overflow:hidden}.post-title{color:var(--color-text-primary);overflow-wrap:anywhere;word-break:break-word;margin-bottom:.4rem;font-size:1.05rem;font-weight:700;line-height:1.4}.post-content-text{color:var(--color-text-secondary);overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;font-size:.925rem;line-height:1.65}.post-see-more-btn{color:var(--color-accent);cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;padding:.3rem 0;font-size:.85rem;font-weight:600}.post-see-more-btn:hover{opacity:.8}.post-content-collapsed{max-height:130px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.post-card-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:1rem;width:100%;min-width:0;max-width:100%;padding-top:.5rem;display:flex}.post-interaction-btn{color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:4px 8px;font-size:.8rem;font-weight:600;text-decoration:none;display:flex}.post-interaction-btn:hover{background:var(--color-bg-tertiary);color:var(--color-accent)}@media (width<=600px){.post-card,.post-card-header{gap:.5rem}.author-name{font-size:.88rem}.post-time,.post-course-label{font-size:.72rem}.post-role-badge{padding:1px 4px;font-size:.58rem}.post-title{font-size:.95rem}.post-content-text{font-size:.875rem}}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1.5rem;display:flex}.empty-state-icon{border-radius:var(--radius-full);background:var(--color-bg-tertiary);width:4rem;height:4rem;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:.9rem;font-weight:800;display:inline-flex}.empty-state-title{color:var(--color-text-primary);font-size:1.1rem;font-weight:600}.empty-state-desc{color:var(--color-text-tertiary);max-width:360px;font-size:.875rem}.empty-state-action{margin-top:1rem}.skeleton{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-border) 50%, var(--color-bg-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-line{height:.875rem}.skeleton-avatar{border-radius:var(--radius-full);width:48px;height:48px}.skeleton-group{flex-direction:column;gap:.6rem;display:flex}.skeleton-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.admin-composer-wrapper{margin-bottom:1.5rem}.admin-open-composer-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.admin-open-composer-btn:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.admin-composer-trigger-content{align-items:center;gap:1rem;display:flex}.composer-plus-icon{background:var(--color-accent-subtle);color:var(--color-accent);border-radius:var(--radius-lg);border:1px solid var(--color-accent-light);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;display:flex}.composer-trigger-text strong{color:var(--color-accent);font-size:1.05rem;font-weight:700;display:block}.composer-trigger-text p{color:var(--color-text-secondary);margin:.2rem 0 0;font-size:.85rem}.composer-publish-badge{color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-full);padding:.35rem .85rem;font-size:.85rem;font-weight:600}.admin-composer-card{border:1px solid var(--color-accent);box-shadow:var(--shadow-md)}.admin-composer-header{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.admin-composer-title-group h3{color:var(--color-text-primary);margin:0;font-size:1.15rem;font-weight:700}.admin-composer-title-group p{color:var(--color-text-secondary);margin:.25rem 0 0;font-size:.85rem}.admin-composer-close-btn{color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;padding:.25rem;font-size:1.25rem}.admin-composer-close-btn:hover{color:var(--color-text-primary)}.composer-form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.composer-field-group{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.composer-field-label{color:var(--color-text-secondary);font-size:.825rem;font-weight:600}.composer-select,.composer-text-input,.composer-textarea{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);transition:border-color var(--transition-fast);padding:.65rem .85rem;font-family:inherit;font-size:.925rem}.composer-select:focus,.composer-text-input:focus,.composer-textarea:focus{border-color:var(--color-brand-primary);outline:none;box-shadow:0 0 0 2px #6366f133}.composer-textarea{resize:vertical;min-height:100px;line-height:1.5}.admin-composer-actions{border-top:1px solid var(--color-border-subtle);justify-content:flex-end;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}.modal{background:0 0;border:none;justify-content:center;align-items:center;width:100%;max-width:100vw;height:100%;max-height:100vh;padding:0;display:flex}.modal::backdrop{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--color-bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--color-border);flex-direction:column;max-height:85vh;display:flex;overflow:hidden}.modal-sm .modal-content{width:min(380px,90vw)}.modal-md .modal-content{width:min(520px,90vw)}.modal-lg .modal-content{width:min(720px,90vw)}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{color:var(--color-text-primary);font-size:1.1rem;font-weight:700}.modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;font-size:1rem;display:flex}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-body{padding:1.5rem;overflow-y:auto}.onboarding-content{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;display:flex}.onboarding-icon-wrapper{border-radius:var(--radius-full);background:var(--color-accent-subtle);justify-content:center;align-items:center;width:72px;height:72px;display:flex}.onboarding-step-icon{letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);font-size:.88rem;font-weight:800}.onboarding-step-title{color:var(--color-text-primary);font-size:1.3rem;font-weight:800}.onboarding-step-desc{color:var(--color-text-secondary);max-width:380px;font-size:.9rem;line-height:1.5}.onboarding-dots{gap:.5rem;margin:.5rem 0;display:flex}.onboarding-dot{border-radius:var(--radius-full);background:var(--color-border);width:8px;height:8px;transition:all var(--transition-fast)}.onboarding-dot.active{background:var(--color-accent);width:24px}.onboarding-actions{justify-content:space-between;align-items:center;width:100%;margin-top:.5rem;display:flex}.home-feed-page{max-width:680px;margin:0 auto}.feed-controls{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem .75rem;display:flex}.feed-title{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.course-card-link{text-decoration:none;display:block}.course-card{flex-direction:column;justify-content:space-between;gap:1.25rem;height:100%;display:flex}.course-card-top{justify-content:space-between;align-items:center;display:flex}.course-code-badge{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);border:1px solid var(--color-accent-light);padding:.25rem .6rem;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700}.course-name{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.15rem;font-weight:700;line-height:1.3}.course-department{color:var(--color-text-tertiary);font-size:.8rem}.course-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:.75rem;display:flex}.course-meta-item{color:var(--color-text-secondary);align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;display:flex}.course-badges{gap:.35rem;display:flex}.courses-page{flex-direction:column;gap:1.5rem;display:flex}.courses-page-header{flex-direction:column;gap:1rem;display:flex}.courses-page-header h2{font-size:1.5rem;font-weight:800}.courses-page-header p{color:var(--color-text-secondary);font-size:.875rem}.courses-filters{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.search-filter-input{width:100%;max-width:400px}.courses-filter-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.year-pill-group{flex-wrap:wrap;gap:.5rem;display:flex}.year-pill{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;padding:.5rem 1.15rem;font-size:.85rem;font-weight:600;display:inline-flex}.year-pill:hover{background:var(--color-bg-elevated);border-color:var(--color-accent);color:var(--color-text-primary)}.year-pill.active{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent);box-shadow:0 2px 10px var(--color-accent-subtle);font-weight:700}.followed-filter-toggle{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:.4rem;padding:.5rem 1.15rem;font-size:.85rem;font-weight:600;display:inline-flex}.followed-filter-toggle:hover{background:var(--color-bg-elevated);border-color:var(--color-accent);color:var(--color-text-primary)}.followed-filter-toggle.active{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent);box-shadow:0 2px 10px var(--color-accent-subtle);font-weight:700}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;display:grid}.course-materials-container{flex-direction:column;gap:1.25rem;display:flex}.materials-scope-tabs{flex-wrap:wrap;gap:.5rem;width:fit-content;display:flex}.scope-tab{color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600}.scope-tab.active{background:var(--color-bg-secondary);color:var(--color-accent);box-shadow:var(--shadow-xs)}.materials-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.material-item-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:.75rem;padding:1rem;display:flex}.material-item-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.material-item-icon{font-size:1.5rem}.material-item-details{flex-direction:column;flex:1;gap:.2rem;display:flex}.material-item-title{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.material-week-badge{color:var(--color-text-tertiary);font-size:.7rem;font-weight:500}.material-view-link{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:.35rem .75rem;font-size:.8rem;font-weight:600;text-decoration:none}.material-view-link:hover{background:var(--color-accent);color:#fff}@media (width<=600px){.materials-scope-tabs{width:100%}.scope-tab{text-align:center;flex:1;padding:.45rem .5rem;font-size:.78rem}.materials-grid{grid-template-columns:1fr}.material-item-card{padding:.75rem}.material-item-title{word-break:break-word;font-size:.82rem}}:root,.light,.light-theme{--blue-1:#fbfdff;--blue-2:#f4faff;--blue-3:#e6f4fe;--blue-4:#d5efff;--blue-5:#c2e5ff;--blue-6:#acd8fc;--blue-7:#8ec8f6;--blue-8:#5eb1ef;--blue-9:#0090ff;--blue-10:#0588f0;--blue-11:#0d74ce;--blue-12:#113264}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--blue-1:color(display-p3 .986 .992 .999);--blue-2:color(display-p3 .96 .979 .998);--blue-3:color(display-p3 .912 .956 .991);--blue-4:color(display-p3 .853 .932 1);--blue-5:color(display-p3 .788 .894 .998);--blue-6:color(display-p3 .709 .843 .976);--blue-7:color(display-p3 .606 .777 .947);--blue-8:color(display-p3 .451 .688 .917);--blue-9:color(display-p3 .247 .556 .969);--blue-10:color(display-p3 .234 .523 .912);--blue-11:color(display-p3 .15 .44 .84);--blue-12:color(display-p3 .102 .193 .379)}}}.dark,.dark-theme{--blue-1:#0d1520;--blue-2:#111927;--blue-3:#0d2847;--blue-4:#003362;--blue-5:#004074;--blue-6:#104d87;--blue-7:#205d9e;--blue-8:#2870bd;--blue-9:#0090ff;--blue-10:#3b9eff;--blue-11:#70b8ff;--blue-12:#c2e6ff}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--blue-1:color(display-p3 .057 .081 .122);--blue-2:color(display-p3 .072 .098 .147);--blue-3:color(display-p3 .078 .154 .27);--blue-4:color(display-p3 .033 .197 .37);--blue-5:color(display-p3 .08 .245 .441);--blue-6:color(display-p3 .14 .298 .511);--blue-7:color(display-p3 .195 .361 .6);--blue-8:color(display-p3 .239 .434 .72);--blue-9:color(display-p3 .247 .556 .969);--blue-10:color(display-p3 .344 .612 .973);--blue-11:color(display-p3 .49 .72 1);--blue-12:color(display-p3 .788 .898 .99)}}}:root,.light,.light-theme{--slate-1:#fcfcfd;--slate-2:#f9f9fb;--slate-3:#f0f0f3;--slate-4:#e8e8ec;--slate-5:#e0e1e6;--slate-6:#d9d9e0;--slate-7:#cdced6;--slate-8:#b9bbc6;--slate-9:#8b8d98;--slate-10:#80838d;--slate-11:#60646c;--slate-12:#1c2024}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--slate-1:color(display-p3 .988 .988 .992);--slate-2:color(display-p3 .976 .976 .984);--slate-3:color(display-p3 .94 .941 .953);--slate-4:color(display-p3 .908 .909 .925);--slate-5:color(display-p3 .88 .881 .901);--slate-6:color(display-p3 .85 .852 .876);--slate-7:color(display-p3 .805 .808 .838);--slate-8:color(display-p3 .727 .733 .773);--slate-9:color(display-p3 .547 .553 .592);--slate-10:color(display-p3 .503 .512 .549);--slate-11:color(display-p3 .379 .392 .421);--slate-12:color(display-p3 .113 .125 .14)}}}.dark,.dark-theme{--slate-1:#111113;--slate-2:#18191b;--slate-3:#212225;--slate-4:#272a2d;--slate-5:#2e3135;--slate-6:#363a3f;--slate-7:#43484e;--slate-8:#5a6169;--slate-9:#696e77;--slate-10:#777b84;--slate-11:#b0b4ba;--slate-12:#edeef0}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--slate-1:color(display-p3 .067 .067 .074);--slate-2:color(display-p3 .095 .098 .105);--slate-3:color(display-p3 .13 .135 .145);--slate-4:color(display-p3 .156 .163 .176);--slate-5:color(display-p3 .183 .191 .206);--slate-6:color(display-p3 .215 .226 .244);--slate-7:color(display-p3 .265 .28 .302);--slate-8:color(display-p3 .357 .381 .409);--slate-9:color(display-p3 .415 .431 .463);--slate-10:color(display-p3 .469 .483 .514);--slate-11:color(display-p3 .692 .704 .728);--slate-12:color(display-p3 .93 .933 .94)}}}:root,.light,.light-theme{--grass-1:#fbfefb;--grass-2:#f5fbf5;--grass-3:#e9f6e9;--grass-4:#daf1db;--grass-5:#c9e8ca;--grass-6:#b2ddb5;--grass-7:#94ce9a;--grass-8:#65ba74;--grass-9:#46a758;--grass-10:#3e9b4f;--grass-11:#2a7e3b;--grass-12:#203c25}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--grass-1:color(display-p3 .986 .996 .985);--grass-2:color(display-p3 .966 .983 .964);--grass-3:color(display-p3 .923 .965 .917);--grass-4:color(display-p3 .872 .94 .865);--grass-5:color(display-p3 .811 .908 .802);--grass-6:color(display-p3 .733 .864 .724);--grass-7:color(display-p3 .628 .803 .622);--grass-8:color(display-p3 .477 .72 .482);--grass-9:color(display-p3 .38 .647 .378);--grass-10:color(display-p3 .344 .598 .342);--grass-11:color(display-p3 .263 .488 .261);--grass-12:color(display-p3 .151 .233 .153)}}}:root,.light,.light-theme{--cyan-1:#fafdfe;--cyan-2:#f2fafb;--cyan-3:#def7f9;--cyan-4:#caf1f6;--cyan-5:#b5e9f0;--cyan-6:#9ddde7;--cyan-7:#7dcedc;--cyan-8:#3db9cf;--cyan-9:#00a2c7;--cyan-10:#0797b9;--cyan-11:#107d98;--cyan-12:#0d3c48}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--cyan-1:color(display-p3 .982 .992 .996);--cyan-2:color(display-p3 .955 .981 .984);--cyan-3:color(display-p3 .888 .965 .975);--cyan-4:color(display-p3 .821 .941 .959);--cyan-5:color(display-p3 .751 .907 .935);--cyan-6:color(display-p3 .671 .862 .9);--cyan-7:color(display-p3 .564 .8 .854);--cyan-8:color(display-p3 .388 .715 .798);--cyan-9:color(display-p3 .282 .627 .765);--cyan-10:color(display-p3 .264 .583 .71);--cyan-11:color(display-p3 .08 .48 .63);--cyan-12:color(display-p3 .108 .232 .277)}}}:root,.light,.light-theme{--amber-1:#fefdfb;--amber-2:#fefbe9;--amber-3:#fff7c2;--amber-4:#ffee9c;--amber-5:#fbe577;--amber-6:#f3d673;--amber-7:#e9c162;--amber-8:#e2a336;--amber-9:#ffc53d;--amber-10:#ffba18;--amber-11:#ab6400;--amber-12:#4f3422}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--amber-1:color(display-p3 .995 .992 .985);--amber-2:color(display-p3 .994 .986 .921);--amber-3:color(display-p3 .994 .969 .782);--amber-4:color(display-p3 .989 .937 .65);--amber-5:color(display-p3 .97 .902 .527);--amber-6:color(display-p3 .936 .844 .506);--amber-7:color(display-p3 .89 .762 .443);--amber-8:color(display-p3 .85 .65 .3);--amber-9:color(display-p3 1 .77 .26);--amber-10:color(display-p3 .959 .741 .274);--amber-11:color(display-p3 .64 .4 0);--amber-12:color(display-p3 .294 .208 .145)}}}:root,.light,.light-theme{--red-1:#fffcfc;--red-2:#fff7f7;--red-3:#feebec;--red-4:#ffdbdc;--red-5:#ffcdce;--red-6:#fdbdbe;--red-7:#f4a9aa;--red-8:#eb8e90;--red-9:#e5484d;--red-10:#dc3e42;--red-11:#ce2c31;--red-12:#641723}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--red-1:color(display-p3 .998 .989 .988);--red-2:color(display-p3 .995 .971 .971);--red-3:color(display-p3 .985 .925 .925);--red-4:color(display-p3 .999 .866 .866);--red-5:color(display-p3 .984 .812 .811);--red-6:color(display-p3 .955 .751 .749);--red-7:color(display-p3 .915 .675 .672);--red-8:color(display-p3 .872 .575 .572);--red-9:color(display-p3 .83 .329 .324);--red-10:color(display-p3 .798 .294 .285);--red-11:color(display-p3 .744 .234 .222);--red-12:color(display-p3 .36 .115 .143)}}}.mdxeditor .cm-editor{--sp-font-mono:var(--font-mono);--sp-font-body:var(--font-body);padding:var(--sp-space-4) 0}.mdxeditor .sp-editor .cm-editor{padding-bottom:0}.mdxeditor .cm-scroller{padding:0!important}.mdxeditor .cm-focused{outline:none}.mdxeditor .sp-wrapper{overflow:hidden}.mdxeditor .sp-layout{border:none}.mdxeditor .sp-cm pre{white-space:break-spaces;word-break:break-word;overflow-wrap:anywhere;flex-shrink:1}.mdxeditor .cm-mergeView .cm-scroller,.mdxeditor .cm-sourceView .cm-scroller{font-family:var(--font-mono);line-height:1.3rem;font-size:var(--text-xs)}.mdxeditor .cm-gutters{font-size:var(--text-xxs);background:0 0}.mdxeditor .cm-activeLine{background:0 0}.mdxeditor .cm-tooltip-autocomplete{background:var(--baseBgSubtle)}.mdxeditor hr.selected[data-lexical-decorator=true]{outline:2px solid highlight}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--blue-1:#fbfdff;--blue-2:#f4faff;--blue-3:#e6f4fe;--blue-4:#d5efff;--blue-5:#c2e5ff;--blue-6:#acd8fc;--blue-7:#8ec8f6;--blue-8:#5eb1ef;--blue-9:#0090ff;--blue-10:#0588f0;--blue-11:#0d74ce;--blue-12:#113264}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--blue-1:color(display-p3 .986 .992 .999);--blue-2:color(display-p3 .96 .979 .998);--blue-3:color(display-p3 .912 .956 .991);--blue-4:color(display-p3 .853 .932 1);--blue-5:color(display-p3 .788 .894 .998);--blue-6:color(display-p3 .709 .843 .976);--blue-7:color(display-p3 .606 .777 .947);--blue-8:color(display-p3 .451 .688 .917);--blue-9:color(display-p3 .247 .556 .969);--blue-10:color(display-p3 .234 .523 .912);--blue-11:color(display-p3 .15 .44 .84);--blue-12:color(display-p3 .102 .193 .379)}}}._dark_6j9u9_1,._dark-theme_6j9u9_1{--blue-1:#0d1520;--blue-2:#111927;--blue-3:#0d2847;--blue-4:#003362;--blue-5:#004074;--blue-6:#104d87;--blue-7:#205d9e;--blue-8:#2870bd;--blue-9:#0090ff;--blue-10:#3b9eff;--blue-11:#70b8ff;--blue-12:#c2e6ff}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){._dark_6j9u9_1,._dark-theme_6j9u9_1{--blue-1:color(display-p3 .057 .081 .122);--blue-2:color(display-p3 .072 .098 .147);--blue-3:color(display-p3 .078 .154 .27);--blue-4:color(display-p3 .033 .197 .37);--blue-5:color(display-p3 .08 .245 .441);--blue-6:color(display-p3 .14 .298 .511);--blue-7:color(display-p3 .195 .361 .6);--blue-8:color(display-p3 .239 .434 .72);--blue-9:color(display-p3 .247 .556 .969);--blue-10:color(display-p3 .344 .612 .973);--blue-11:color(display-p3 .49 .72 1);--blue-12:color(display-p3 .788 .898 .99)}}}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--slate-1:#fcfcfd;--slate-2:#f9f9fb;--slate-3:#f0f0f3;--slate-4:#e8e8ec;--slate-5:#e0e1e6;--slate-6:#d9d9e0;--slate-7:#cdced6;--slate-8:#b9bbc6;--slate-9:#8b8d98;--slate-10:#80838d;--slate-11:#60646c;--slate-12:#1c2024}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--slate-1:color(display-p3 .988 .988 .992);--slate-2:color(display-p3 .976 .976 .984);--slate-3:color(display-p3 .94 .941 .953);--slate-4:color(display-p3 .908 .909 .925);--slate-5:color(display-p3 .88 .881 .901);--slate-6:color(display-p3 .85 .852 .876);--slate-7:color(display-p3 .805 .808 .838);--slate-8:color(display-p3 .727 .733 .773);--slate-9:color(display-p3 .547 .553 .592);--slate-10:color(display-p3 .503 .512 .549);--slate-11:color(display-p3 .379 .392 .421);--slate-12:color(display-p3 .113 .125 .14)}}}._dark_6j9u9_1,._dark-theme_6j9u9_1{--slate-1:#111113;--slate-2:#18191b;--slate-3:#212225;--slate-4:#272a2d;--slate-5:#2e3135;--slate-6:#363a3f;--slate-7:#43484e;--slate-8:#5a6169;--slate-9:#696e77;--slate-10:#777b84;--slate-11:#b0b4ba;--slate-12:#edeef0}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){._dark_6j9u9_1,._dark-theme_6j9u9_1{--slate-1:color(display-p3 .067 .067 .074);--slate-2:color(display-p3 .095 .098 .105);--slate-3:color(display-p3 .13 .135 .145);--slate-4:color(display-p3 .156 .163 .176);--slate-5:color(display-p3 .183 .191 .206);--slate-6:color(display-p3 .215 .226 .244);--slate-7:color(display-p3 .265 .28 .302);--slate-8:color(display-p3 .357 .381 .409);--slate-9:color(display-p3 .415 .431 .463);--slate-10:color(display-p3 .469 .483 .514);--slate-11:color(display-p3 .692 .704 .728);--slate-12:color(display-p3 .93 .933 .94)}}}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--grass-1:#fbfefb;--grass-2:#f5fbf5;--grass-3:#e9f6e9;--grass-4:#daf1db;--grass-5:#c9e8ca;--grass-6:#b2ddb5;--grass-7:#94ce9a;--grass-8:#65ba74;--grass-9:#46a758;--grass-10:#3e9b4f;--grass-11:#2a7e3b;--grass-12:#203c25}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--grass-1:color(display-p3 .986 .996 .985);--grass-2:color(display-p3 .966 .983 .964);--grass-3:color(display-p3 .923 .965 .917);--grass-4:color(display-p3 .872 .94 .865);--grass-5:color(display-p3 .811 .908 .802);--grass-6:color(display-p3 .733 .864 .724);--grass-7:color(display-p3 .628 .803 .622);--grass-8:color(display-p3 .477 .72 .482);--grass-9:color(display-p3 .38 .647 .378);--grass-10:color(display-p3 .344 .598 .342);--grass-11:color(display-p3 .263 .488 .261);--grass-12:color(display-p3 .151 .233 .153)}}}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--cyan-1:#fafdfe;--cyan-2:#f2fafb;--cyan-3:#def7f9;--cyan-4:#caf1f6;--cyan-5:#b5e9f0;--cyan-6:#9ddde7;--cyan-7:#7dcedc;--cyan-8:#3db9cf;--cyan-9:#00a2c7;--cyan-10:#0797b9;--cyan-11:#107d98;--cyan-12:#0d3c48}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--cyan-1:color(display-p3 .982 .992 .996);--cyan-2:color(display-p3 .955 .981 .984);--cyan-3:color(display-p3 .888 .965 .975);--cyan-4:color(display-p3 .821 .941 .959);--cyan-5:color(display-p3 .751 .907 .935);--cyan-6:color(display-p3 .671 .862 .9);--cyan-7:color(display-p3 .564 .8 .854);--cyan-8:color(display-p3 .388 .715 .798);--cyan-9:color(display-p3 .282 .627 .765);--cyan-10:color(display-p3 .264 .583 .71);--cyan-11:color(display-p3 .08 .48 .63);--cyan-12:color(display-p3 .108 .232 .277)}}}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--amber-1:#fefdfb;--amber-2:#fefbe9;--amber-3:#fff7c2;--amber-4:#ffee9c;--amber-5:#fbe577;--amber-6:#f3d673;--amber-7:#e9c162;--amber-8:#e2a336;--amber-9:#ffc53d;--amber-10:#ffba18;--amber-11:#ab6400;--amber-12:#4f3422}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--amber-1:color(display-p3 .995 .992 .985);--amber-2:color(display-p3 .994 .986 .921);--amber-3:color(display-p3 .994 .969 .782);--amber-4:color(display-p3 .989 .937 .65);--amber-5:color(display-p3 .97 .902 .527);--amber-6:color(display-p3 .936 .844 .506);--amber-7:color(display-p3 .89 .762 .443);--amber-8:color(display-p3 .85 .65 .3);--amber-9:color(display-p3 1 .77 .26);--amber-10:color(display-p3 .959 .741 .274);--amber-11:color(display-p3 .64 .4 0);--amber-12:color(display-p3 .294 .208 .145)}}}:root,._light_6j9u9_1,._light-theme_6j9u9_1{--red-1:#fffcfc;--red-2:#fff7f7;--red-3:#feebec;--red-4:#ffdbdc;--red-5:#ffcdce;--red-6:#fdbdbe;--red-7:#f4a9aa;--red-8:#eb8e90;--red-9:#e5484d;--red-10:#dc3e42;--red-11:#ce2c31;--red-12:#641723}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,._light_6j9u9_1,._light-theme_6j9u9_1{--red-1:color(display-p3 .998 .989 .988);--red-2:color(display-p3 .995 .971 .971);--red-3:color(display-p3 .985 .925 .925);--red-4:color(display-p3 .999 .866 .866);--red-5:color(display-p3 .984 .812 .811);--red-6:color(display-p3 .955 .751 .749);--red-7:color(display-p3 .915 .675 .672);--red-8:color(display-p3 .872 .575 .572);--red-9:color(display-p3 .83 .329 .324);--red-10:color(display-p3 .798 .294 .285);--red-11:color(display-p3 .744 .234 .222);--red-12:color(display-p3 .36 .115 .143)}}}._bold_6j9u9_10{font-weight:700}._italic_6j9u9_14{font-style:italic}._underline_6j9u9_18{text-decoration:underline}._strikethrough_6j9u9_34{text-decoration:line-through}._underlineStrikethrough_6j9u9_38{text-decoration:underline line-through}._subscript_6j9u9_42{font-size:.8em;vertical-align:sub!important}._superscript_6j9u9_47{vertical-align:super;font-size:.8em}._code_6j9u9_52{background-color:var(--baseBg);font-family:var(--font-mono);padding:1px .25rem;font-size:94%}._quote_6j9u9_59{border-inline-start:3px solid var(--baseBorder);color:var(--baseText);margin-inline-start:0;padding-inline-start:var(--spacing-4)}._nestedListItem_6j9u9_66{list-style:none}._listitem_6j9u9_76{margin:var(--spacing-2) 0}._listItemChecked_6j9u9_80,._listItemUnchecked_6j9u9_81{margin-left:0;margin-right:0;padding-left:var(--spacing-6);padding-right:var(--spacing-6);outline:none;margin-inline-start:-1rem;list-style-type:none;position:relative}._listItemChecked_6j9u9_80{text-decoration:line-through}._listItemUnchecked_6j9u9_81:before,._listItemChecked_6j9u9_80:before{content:"";width:var(--spacing-4);height:var(--spacing-4);cursor:pointer;background-size:cover;display:block;position:absolute;top:0;left:0}._listItemUnchecked_6j9u9_81[dir=rtl]:before,._listItemChecked_6j9u9_80[dir=rtl]:before{left:auto;right:0}._listItemUnchecked_6j9u9_81:focus:before,._listItemChecked_6j9u9_80:focus:before{box-shadow:0 0 0 2px var(--accentBgActive);border-radius:var(--radius-small)}._listItemUnchecked_6j9u9_81:before{border:1px solid var(--baseBorder);border-radius:var(--radius-small)}._listItemChecked_6j9u9_80:before{border:1px solid var(--accentBorder);border-radius:var(--radius-small);background-color:var(--accentSolid);background-repeat:no-repeat}._listItemChecked_6j9u9_80:after{content:"";cursor:pointer;border-color:var(--baseBase);top:var(--spacing-0_5);width:var(--spacing-1);left:var(--spacing-1_5);right:var(--spacing-1_5);height:var(--spacing-2);border-style:solid;border-width:0 var(--spacing-0_5) var(--spacing-0_5) 0;display:block;position:absolute;transform:rotate(45deg)}._nestedListItem_6j9u9_66{list-style-type:none}._nestedListItem_6j9u9_66:before,._nestedListItem_6j9u9_66:after{display:none}._admonitionDanger_6j9u9_158,._admonitionInfo_6j9u9_159,._admonitionNote_6j9u9_160,._admonitionTip_6j9u9_161,._admonitionCaution_6j9u9_162{padding:var(--spacing-2);margin-top:var(--spacing-2);margin-bottom:var(--spacing-2);border-left:3px solid var(--admonitionBorder);background-color:var(--admonitionBg)}._admonitionInfo_6j9u9_159{--admonitionBorder:var(--admonitionInfoBorder);--admonitionBg:var(--admonitionInfoBg)}._admonitionTip_6j9u9_161{--admonitionBorder:var(--admonitionTipBorder);--admonitionBg:var(--admonitionTipBg)}._admonitionCaution_6j9u9_162{--admonitionBorder:var(--admonitionCautionBorder);--admonitionBg:var(--admonitionCautionBg)}._admonitionDanger_6j9u9_158{--admonitionBorder:var(--admonitionDangerBorder);--admonitionBg:var(--admonitionDangerBg)}._admonitionNote_6j9u9_160{--admonitionBorder:var(--admonitionNoteBorder);--admonitionBg:var(--admonitionNoteBg)}._mdxExpression_6j9u9_195{font-family:var(--font-mono);color:var(--accentText);font-size:84%}._mdxExpression_6j9u9_195 input:focus-visible{outline:none}._editorRoot_er3ed_53{--accentBase:var(--blue-1);--accentBgSubtle:var(--blue-2);--accentBg:var(--blue-3);--accentBgHover:var(--blue-4);--accentBgActive:var(--blue-5);--accentLine:var(--blue-6);--accentBorder:var(--blue-7);--accentBorderHover:var(--blue-8);--accentSolid:var(--blue-9);--accentSolidHover:var(--blue-10);--accentText:var(--blue-11);--accentTextContrast:var(--blue-12);--basePageBg:white;--baseBase:var(--slate-1);--baseBgSubtle:var(--slate-2);--baseBg:var(--slate-3);--baseBgHover:var(--slate-4);--baseBgActive:var(--slate-5);--baseLine:var(--slate-6);--baseBorder:var(--slate-7);--baseBorderHover:var(--slate-8);--baseSolid:var(--slate-9);--baseSolidHover:var(--slate-10);--baseText:var(--slate-11);--baseTextContrast:var(--slate-12);--admonitionTipBg:var(--cyan-4);--admonitionTipBorder:var(--cyan-8);--admonitionInfoBg:var(--grass-4);--admonitionInfoBorder:var(--grass-8);--admonitionCautionBg:var(--amber-4);--admonitionCautionBorder:var(--amber-8);--admonitionDangerBg:var(--red-4);--admonitionDangerBorder:var(--red-8);--admonitionNoteBg:var(--slate-4);--admonitionNoteBorder:var(--slate-8);--error-color:var(--red-10);--spacing-0:0px;--spacing-px:1px;--spacing-0_5:.125rem;--spacing-1:.25rem;--spacing-1_5:.375rem;--spacing-2:.5rem;--spacing-2_5:.625rem;--spacing-3:.75rem;--spacing-3_5:.875rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-7:1.75rem;--spacing-8:2rem;--spacing-9:2.25rem;--spacing-10:2.5rem;--spacing-11:2.75rem;--spacing-12:3rem;--spacing-14:3.5rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-28:7rem;--spacing-32:8rem;--spacing-36:9rem;--spacing-40:10rem;--spacing-44:11rem;--spacing-48:12rem;--spacing-52:13rem;--spacing-56:14rem;--spacing-60:15rem;--spacing-64:16rem;--spacing-72:18rem;--spacing-80:20rem;--spacing-96:24rem;--radius-none:0px;--radius-small:var(--spacing-0_5);--radius-base:var(--spacing-1);--radius-medium:var(--spacing-1_5);--radius-large:var(--spacing-2);--radius-extra-large:var(--spacing-3);--radius-full:9999px;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--text-base:1rem;--text-sm:.875rem;--text-xs:.75rem;--text-xxs:.6rem;font-family:var(--font-body);color:var(--baseText)}._nestedListItem_er3ed_158{list-style:none}._toolbarRoot_er3ed_162{z-index:2;gap:var(--spacing-1);border-radius:var(--radius-medium);padding:var(--spacing-1_5);background-color:var(--baseBg);width:inherit;flex-direction:row;align-items:center;display:flex;position:sticky;top:0;overflow-x:auto}._toolbarRoot_er3ed_162 div[role=separator]{margin:var(--spacing-2) var(--spacing-1);border-left:1px solid var(--baseBorder);border-right:1px solid var(--baseBase);height:var(--spacing-4)}._toolbarRoot_er3ed_162 svg{color:var(--baseTextContrast);display:block}._readOnlyToolbarRoot_er3ed_189{pointer-events:none;background:var(--baseBase)}._readOnlyToolbarRoot_er3ed_189>div{opacity:.5}._toolbarModeSwitch_er3ed_198{border:1px solid var(--baseBg);border-radius:var(--radius-medium);font-size:var(--text-xs);align-self:stretch;align-items:stretch;margin-left:auto;display:flex;opacity:1!important}._toolbarModeSwitch_er3ed_198 ._toolbarToggleItem_er3ed_208{padding-inline-start:var(--spacing-4);padding-inline-end:var(--spacing-4)}._toolbarModeSwitch_er3ed_198 ._toolbarToggleItem_er3ed_208:active,._toolbarModeSwitch_er3ed_198 ._toolbarToggleItem_er3ed_208[data-state=on]{background-color:var(--baseBorder)}._toolbarGroupOfGroups_er3ed_219{margin:0 var(--spacing-1);display:flex}._toolbarToggleSingleGroup_er3ed_224:first-of-type ._toolbarToggleItem_er3ed_208:only-child,._toolbarToggleSingleGroup_er3ed_224:only-child ._toolbarToggleItem_er3ed_208:first-child,._toolbarModeSwitch_er3ed_198 ._toolbarToggleItem_er3ed_208:first-child{border-top-left-radius:var(--radius-base);border-bottom-left-radius:var(--radius-base)}._toolbarToggleSingleGroup_er3ed_224:last-of-type ._toolbarToggleItem_er3ed_208:only-child,._toolbarToggleSingleGroup_er3ed_224:only-child ._toolbarToggleItem_er3ed_208:last-child,._toolbarModeSwitch_er3ed_198 ._toolbarToggleItem_er3ed_208:last-child{border-top-right-radius:var(--radius-base);border-bottom-right-radius:var(--radius-base)}._toolbarToggleItem_er3ed_208,._toolbarButton_er3ed_239{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-0_5)}@media (hover:hover){._toolbarToggleItem_er3ed_208:hover,._toolbarButton_er3ed_239:hover{background-color:var(--baseBgActive)}}._toolbarToggleItem_er3ed_208:active svg,._toolbarButton_er3ed_239:active svg{transform:translate(1px,1px)}._toolbarToggleItem_er3ed_208[data-state=on],._toolbarButton_er3ed_239[data-state=on],._toolbarToggleItem_er3ed_208:active,._toolbarButton_er3ed_239:active{color:var(--baseTextContrast);background-color:var(--baseBgActive)}._toolbarToggleItem_er3ed_208[data-disabled],._toolbarButton_er3ed_239[data-disabled]{pointer-events:none}._toolbarToggleItem_er3ed_208[data-disabled] svg,._toolbarButton_er3ed_239[data-disabled] svg{color:var(--baseBorderHover)}._toolbarButton_er3ed_239{border-radius:var(--radius-base)}._toolbarButton_er3ed_239+._toolbarButton_er3ed_239{margin-left:var(--spacing-1)}._activeToolbarButton_er3ed_275{color:var(--accentText)}._toolbarToggleSingleGroup_er3ed_224{white-space:nowrap;align-items:center;display:flex}._toolbarNodeKindSelectContainer_er3ed_285,._toolbarButtonDropdownContainer_er3ed_286,._toolbarCodeBlockLanguageSelectContent_er3ed_287,._selectContainer_er3ed_288{filter:drop-shadow(0 2px 2px #0003);z-index:3;width:var(--spacing-36);border-bottom-left-radius:var(--radius-base);border-bottom-right-radius:var(--radius-base);background-color:var(--basePageBg);font-size:var(--text-sm)}._toolbarButtonDropdownContainer_er3ed_286,._toolbarButtonDropdownContainer_er3ed_286 ._selectItem_er3ed_301:first-child{border-top-right-radius:var(--radius-base)}._toolbarNodeKindSelectTrigger_er3ed_306,._toolbarButtonSelectTrigger_er3ed_307,._selectTrigger_er3ed_308{color:inherit;width:var(--spacing-36);padding:var(--spacing-0_5) var(--spacing-1);border-radius:var(--radius-medium);white-space:nowrap;font-size:var(--text-sm);background-color:#0000;background-color:var(--basePageBg);margin:0 var(--spacing-1);border:0;flex-wrap:nowrap;align-items:center;padding-inline-start:var(--spacing-2);display:flex}._toolbarNodeKindSelectTrigger_er3ed_306[data-state=open],._toolbarButtonSelectTrigger_er3ed_307[data-state=open],._selectTrigger_er3ed_308[data-state=open]{filter:drop-shadow(0 2px 2px #0003);border-bottom-right-radius:var(--radius-none);border-bottom-left-radius:var(--radius-none)}._selectTrigger_er3ed_308[data-placeholder]>span:first-child{color:var(--baseBorderHover)}._toolbarButtonSelectTrigger_er3ed_307{width:auto;padding-inline-start:var(--spacing-2);padding-inline-end:var(--spacing-1);padding-block:var(--spacing-0_5)}._toolbarCodeBlockLanguageSelectTrigger_er3ed_342,._toolbarCodeBlockLanguageSelectContent_er3ed_287{width:var(--spacing-48)}._toolbarNodeKindSelectItem_er3ed_347,._selectItem_er3ed_301{cursor:default;padding:var(--spacing-2);display:flex}._toolbarNodeKindSelectItem_er3ed_347[data-highlighted],._selectItem_er3ed_301[data-highlighted]{background-color:var(--baseBg)}._toolbarNodeKindSelectItem_er3ed_347[data-state=checked],._selectItem_er3ed_301[data-state=checked]{color:var(--baseTextContrast);background-color:var(--baseBg)}._toolbarNodeKindSelectItem_er3ed_347[data-highlighted],._selectItem_er3ed_301[data-highlighted]{outline:none}._toolbarNodeKindSelectItem_er3ed_347:last-child,._selectItem_er3ed_301:last-child{border-bottom-left-radius:var(--radius-base);border-bottom-right-radius:var(--radius-base)}._toolbarNodeKindSelectDropdownArrow_er3ed_372,._selectDropdownArrow_er3ed_373{align-items:center;margin-left:auto;display:flex}._contentEditable_er3ed_379{box-sizing:border-box;width:100%;color:var(--baseTextContrast);padding:var(--spacing-3)}._contentEditable_er3ed_379:focus{outline:none}._codeMirrorWrapper_er3ed_391{margin-bottom:var(--spacing-5);border:1px solid var(--baseLine);border-radius:var(--radius-medium);padding:.8rem;position:relative;overflow:hidden}._sandPackWrapper_er3ed_400{margin-bottom:var(--spacing-5);border:1px solid var(--baseLine);border-radius:var(--radius-medium);position:relative;overflow:hidden}._codeMirrorToolbar_er3ed_408{gap:var(--spacing-1);padding:var(--spacing-1);z-index:1;background-color:var(--baseBase);border-bottom-left-radius:var(--radius-base);display:flex;position:absolute;top:0;right:0}._frontmatterWrapper_er3ed_412{border-radius:var(--radius-medium);padding:var(--spacing-3);background-color:var(--baseBgSubtle)}._frontmatterWrapper_er3ed_412[data-expanded=true]{margin-bottom:var(--spacing-10)}._frontmatterToggleButton_er3ed_422{all:unset;box-sizing:border-box;cursor:default;align-items:center;gap:var(--spacing-1);font-size:var(--text-sm);display:flex}._propertyPanelTitle_er3ed_430{font-size:var(--text-xs);padding-top:var(--spacing-2);padding-left:var(--spacing-2);margin:0;font-weight:400}._propertyEditorTable_er3ed_438{table-layout:fixed;border-spacing:var(--spacing-2)}._propertyEditorTable_er3ed_438 th{text-align:left;font-size:var(--text-sm);padding:var(--spacing-2) var(--spacing-3)}._propertyEditorTable_er3ed_438 col:first-child{width:30%}._propertyEditorTable_er3ed_438 col:nth-child(2){width:70%}._propertyEditorTable_er3ed_438 td:last-child ._iconButton_er3ed_456{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}._propertyEditorTable_er3ed_438 ._readOnlyColumnCell_er3ed_461{padding-left:0}._propertyEditorLabelCell_er3ed_466{font-weight:400}._readOnlyColumnCell_er3ed_461{padding-left:0}._buttonsFooter_er3ed_474{justify-content:flex-end;gap:var(--spacing-2);display:flex}._propertyEditorInput_er3ed_480{all:unset;box-sizing:border-box;cursor:default;width:100%;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-base);border:1px solid var(--baseBorder);background-color:var(--baseBase);font-size:var(--text-sm)}._iconButton_er3ed_456{all:unset;box-sizing:border-box;cursor:default;color:var(--baseText)}@media (hover:hover){._iconButton_er3ed_456:hover{color:var(--baseTextContrast)}}._iconButton_er3ed_456:disabled,._iconButton_er3ed_456:disabled:hover{color:var(--baseLine)}._primaryButton_er3ed_506,._secondaryButton_er3ed_507{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--accentBorder);background-color:var(--accentSolidHover);color:var(--baseBase);font-size:var(--text-xs);border-radius:var(--radius-medium)}._primaryButton_er3ed_506:disabled,._secondaryButton_er3ed_507:disabled{background:var(--accentLine);border-color:var(--accentBg)}._smallButton_er3ed_522{font-size:var(--text-xs);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-base)}._secondaryButton_er3ed_507{border:1px solid var(--baseBorder);background-color:var(--baseSolidHover);color:var(--baseBase)}._dialogForm_er3ed_534{gap:var(--spacing-2);flex-direction:row;display:flex}._linkDialogEditForm_er3ed_540{align-items:stretch;gap:var(--spacing-2);flex-direction:column;padding:0;display:flex}._linkDialogInputContainer_er3ed_548{flex-direction:column;align-items:stretch;display:flex}._linkDialogInputWrapper_er3ed_554{background-color:var(--baseBase);border-radius:var(--radius-base);border:1px solid var(--baseBorder);align-items:center;display:flex}._linkDialogInputWrapper_er3ed_554[data-visible-dropdown=true]{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);border-bottom-width:0}._linkDialogInputWrapper_er3ed_554>button{all:unset;box-sizing:border-box;cursor:default;padding-right:var(--spacing-2)}._linkDialogInput_er3ed_548,._dialogInput_er3ed_575{all:unset;box-sizing:border-box;cursor:default;width:20rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}._linkDialogInput_er3ed_548::-moz-placeholder{color:var(--baseBorder)}._dialogInput_er3ed_575::-moz-placeholder{color:var(--baseBorder)}._linkDialogInput_er3ed_548::placeholder,._dialogInput_er3ed_575::placeholder{color:var(--baseBorder)}._linkDialogAnchor_er3ed_586{z-index:-1;background-color:highlight;position:fixed}._linkDialogAnchor_er3ed_586[data-visible=true]{visibility:visible}._linkDialogAnchor_er3ed_586[data-visible=false]{visibility:hidden}._linkDialogPopoverContent_er3ed_600,._tableColumnEditorPopoverContent_er3ed_601,._dialogContent_er3ed_602{filter:drop-shadow(0 2px 2px #0003);align-items:center;gap:var(--spacing-0_5);border-radius:var(--radius-medium);border:1px solid var(--baseBg);background-color:var(--basePageBg);padding:var(--spacing-1) var(--spacing-1);font-size:var(--text-sm);display:flex}._largeDialogContent_er3ed_614{filter:drop-shadow(0 2px 2px #0003);gap:var(--spacing-0_5);border-radius:var(--radius-medium);border:1px solid var(--baseBorder);background-color:var(--baseBgSubtle);padding:var(--spacing-4);font-size:var(--text-sm)}._dialogTitle_er3ed_624{font-size:var(--text-base);padding-left:var(--spacing-2);font-weight:600}._dialogCloseButton_er3ed_630{all:unset;box-sizing:border-box;cursor:default;position:absolute;top:10px;right:10px}._popoverContent_er3ed_637{filter:drop-shadow(0 2px 2px #0003);align-items:center;gap:var(--spacing-0_5);border-radius:var(--radius-medium);background-color:var(--baseBgSubtle);padding:var(--spacing-2) var(--spacing-2);font-size:var(--text-sm);z-index:1;display:flex}._popoverArrow_er3ed_649{fill:var(--basePageBg)}._linkDialogPreviewAnchor_er3ed_653{margin-right:var(--spacing-1);color:var(--accentText);border:1px solid #0000;align-items:center;text-decoration:none;display:flex}@media (hover:hover){._linkDialogPreviewAnchor_er3ed_653:hover{color:var(--accentSolidHover)}}._linkDialogPreviewAnchor_er3ed_653 span{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow-x:hidden}._tooltipTrigger_er3ed_676{align-self:center}._tooltipContent_er3ed_680{z-index:2;border-radius:var(--radius-medium);padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs);background-color:var(--baseText);color:var(--baseBase);position:relative}._tooltipContent_er3ed_680 svg{fill:var(--baseText)}._actionButton_er3ed_694{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-1);color:var(--baseTextContrast);padding:var(--spacing-1) var(--spacing-1);border-radius:var(--radius-medium)}._actionButton_er3ed_694 svg{display:block}@media (hover:hover){._actionButton_er3ed_694:hover{background-color:var(--baseBg)}}._actionButton_er3ed_694:active svg{transform:translate(1px,1px)}._actionButton_er3ed_694[data-state=on],._actionButton_er3ed_694:active{background-color:var(--baseBg);color:var(--baseTextContrast)}._primaryActionButton_er3ed_701{background-color:var(--accentSolid);color:var(--baseBase)}@media (hover:hover){._primaryActionButton_er3ed_701:hover{background-color:var(--accentSolidHover);color:var(--baseBase)}}._tableEditor_er3ed_713{table-layout:fixed;border-spacing:0;border-collapse:collapse;width:100%;height:100%}._tableEditor_er3ed_713 thead>tr>th{text-align:right}._tableEditor_er3ed_713>tbody>tr>td:not(._toolCell_er3ed_724),._tableEditor_er3ed_713>tbody>tr>th:not(._toolCell_er3ed_724):not([data-tool-cell=true]){border:1px solid var(--baseBgActive);padding:var(--spacing-1) var(--spacing-2);white-space:normal}:is(._tableEditor_er3ed_713>tbody>tr>td:not(._toolCell_er3ed_724),._tableEditor_er3ed_713>tbody>tr>th:not(._toolCell_er3ed_724):not([data-tool-cell=true]))>div{outline:none}:is(._tableEditor_er3ed_713>tbody>tr>td:not(._toolCell_er3ed_724),._tableEditor_er3ed_713>tbody>tr>th:not(._toolCell_er3ed_724):not([data-tool-cell=true]))>div>p{margin:0}[data-active=true]:is(._tableEditor_er3ed_713>tbody>tr>td:not(._toolCell_er3ed_724),._tableEditor_er3ed_713>tbody>tr>th:not(._toolCell_er3ed_724):not([data-tool-cell=true])){outline:solid 1px var(--baseSolid)}._tableEditor_er3ed_713 ._tableColumnEditorTrigger_er3ed_743,._tableEditor_er3ed_713 ._tableRowEditorTrigger_er3ed_744,._tableEditor_er3ed_713 ._addRowButton_er3ed_745,._tableEditor_er3ed_713 ._addColumnButton_er3ed_746,._tableEditor_er3ed_713 ._iconButton_er3ed_456{opacity:.15}@media (hover:hover){._tableEditor_er3ed_713:hover ._tableColumnEditorTrigger_er3ed_743,._tableEditor_er3ed_713:hover ._tableRowEditorTrigger_er3ed_744,._tableEditor_er3ed_713:hover ._addRowButton_er3ed_745,._tableEditor_er3ed_713:hover ._addColumnButton_er3ed_746,._tableEditor_er3ed_713:hover ._iconButton_er3ed_456{opacity:.3}._tableEditor_er3ed_713:hover ._tableColumnEditorTrigger_er3ed_743:hover,._tableEditor_er3ed_713:hover ._tableRowEditorTrigger_er3ed_744:hover,._tableEditor_er3ed_713:hover ._addRowButton_er3ed_745:hover,._tableEditor_er3ed_713:hover ._addColumnButton_er3ed_746:hover,._tableEditor_er3ed_713:hover ._iconButton_er3ed_456:hover{opacity:1}}._toolCell_er3ed_724{text-align:right}._toolCell_er3ed_724 button{margin:auto;display:block}._tableColumnEditorTrigger_er3ed_743{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-1);color:var(--baseTextContrast);padding:var(--spacing-1);border-radius:var(--radius-full);opacity:.2}._tableColumnEditorTrigger_er3ed_743 svg{display:block}@media (hover:hover){._tableColumnEditorTrigger_er3ed_743:hover{background-color:var(--baseBg)}}._tableColumnEditorTrigger_er3ed_743:active svg{transform:translate(1px,1px)}._tableColumnEditorTrigger_er3ed_743[data-state=on],._tableColumnEditorTrigger_er3ed_743:active{background-color:var(--baseBg);color:var(--baseTextContrast)}._tableColumnEditorTrigger_er3ed_743[data-active=true]{opacity:1!important}._tableColumnEditorToolbar_er3ed_788{display:flex}._tableColumnEditorToolbar_er3ed_788>button{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-1);color:var(--baseTextContrast)}._tableColumnEditorToolbar_er3ed_788>button svg{display:block}@media (hover:hover){._tableColumnEditorToolbar_er3ed_788>button:hover{background-color:var(--baseBg)}}._tableColumnEditorToolbar_er3ed_788>button:active svg{transform:translate(1px,1px)}._tableColumnEditorToolbar_er3ed_788>button[data-state=on],._tableColumnEditorToolbar_er3ed_788>button:active{background-color:var(--baseBg);color:var(--baseTextContrast)}._tableColumnEditorToolbar_er3ed_788 [role=separator]{margin-left:var(--spacing-1);margin-right:var(--spacing-1)}._toggleGroupRoot_er3ed_801{display:inline-flex}._toggleGroupRoot_er3ed_801 button{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-1);color:var(--baseTextContrast)}._toggleGroupRoot_er3ed_801 button svg{display:block}@media (hover:hover){._toggleGroupRoot_er3ed_801 button:hover{background-color:var(--baseBg)}}._toggleGroupRoot_er3ed_801 button:active svg{transform:translate(1px,1px)}._toggleGroupRoot_er3ed_801 button[data-state=on],._toggleGroupRoot_er3ed_801 button:active{background-color:var(--baseBg);color:var(--baseTextContrast)}._toggleGroupRoot_er3ed_801 button:first-child{border-top-left-radius:var(--radius-base);border-bottom-left-radius:var(--radius-base)}._toggleGroupRoot_er3ed_801 button:last-child{border-top-right-radius:var(--radius-base);border-bottom-right-radius:var(--radius-base)}._tableToolsColumn_er3ed_819{width:2rem}._tableToolsColumn_er3ed_819 button{margin:auto;display:block}._leftAlignedCell_er3ed_828{text-align:left}._rightAlignedCell_er3ed_832{text-align:right}._centeredCell_er3ed_836{text-align:center}._addColumnButton_er3ed_746,._addRowButton_er3ed_745{all:unset;box-sizing:border-box;cursor:default;padding:var(--spacing-1);color:var(--baseTextContrast);background-color:var(--baseBase);align-items:center;display:flex}._addColumnButton_er3ed_746 svg,._addRowButton_er3ed_745 svg{display:block}@media (hover:hover){._addColumnButton_er3ed_746:hover,._addRowButton_er3ed_745:hover{background-color:var(--baseBg)}}._addColumnButton_er3ed_746:active svg,._addRowButton_er3ed_745:active svg{transform:translate(1px,1px)}._addColumnButton_er3ed_746[data-state=on],._addRowButton_er3ed_745[data-state=on],._addColumnButton_er3ed_746:active,._addRowButton_er3ed_745:active{background-color:var(--baseBg);color:var(--baseTextContrast)}._addColumnButton_er3ed_746 svg,._addRowButton_er3ed_745 svg{margin:auto}._addRowButton_er3ed_745{width:100%;margin-top:var(--spacing-px);box-sizing:border-box;border-bottom-right-radius:var(--radius-medium);border-bottom-left-radius:var(--radius-medium)}._addColumnButton_er3ed_746{margin-left:var(--spacing-px);border-top-right-radius:var(--radius-medium);border-bottom-right-radius:var(--radius-medium);height:100%}._dialogOverlay_er3ed_869{background-color:var(--baseBase);z-index:51;opacity:.5;animation:.15s cubic-bezier(.16,1,.3,1) _overlayShow_er3ed_1;position:fixed;inset:0}._dialogContent_er3ed_602,._largeDialogContent_er3ed_614{z-index:52;animation:.15s cubic-bezier(.16,1,.3,1) _contentShow_er3ed_1;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}._dialogContent_er3ed_602:focus,._largeDialogContent_er3ed_614:focus{outline:none}@keyframes _overlayShow_er3ed_1{0%{opacity:0}to{opacity:.5}}@keyframes _contentShow_er3ed_1{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}._focusedImage_er3ed_915{outline:2px solid highlight}._imageWrapper_er3ed_919{display:inline-block;position:relative}._imageWrapper_er3ed_919[draggable=true]{cursor:move;cursor:grab;cursor:-webkit-grab}._editImageToolbar_er3ed_932{gap:var(--spacing-1);padding:var(--spacing-1);z-index:1;background-color:var(--baseBase);border-bottom-left-radius:var(--radius-base);display:flex;position:absolute;top:0;right:0}._editImageButton_er3ed_936 svg{display:block}._inlineEditor_er3ed_942{border-radius:var(--radius-medium);padding:var(--spacing-1);gap:var(--spacing-2);background:var(--baseBg);align-items:center;display:inline-flex}._blockEditor_er3ed_951{border-radius:var(--radius-medium);padding:var(--spacing-2);justify-content:stretch;gap:var(--spacing-2);background:var(--baseBg);align-items:center;display:flex}._blockEditor_er3ed_951 ._nestedEditor_er3ed_960{flex-grow:1}._nestedEditor_er3ed_960{background:var(--basePageBg);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-medium)}._nestedEditor_er3ed_960>p{margin:0}._nestedEditor_er3ed_960:focus{outline:none}._genericComponentName_er3ed_979{font-size:var(--text-sm);color:var(--baseText);padding-right:var(--spacing-2)}._diffSourceToggleWrapper_er3ed_985{pointer-events:auto;opacity:1;margin-left:auto;position:sticky;right:0}._diffSourceToggle_er3ed_985{border-radius:var(--radius-medium);background-color:var(--baseBase);display:flex}._diffSourceToggle_er3ed_985 ._toolbarToggleItem_er3ed_208{padding:0}._diffSourceToggle_er3ed_985 ._toolbarToggleItem_er3ed_208>span{padding:var(--spacing-1) var(--spacing-1);display:block}._selectWithLabel_er3ed_1011{align-items:center;gap:var(--spacing-2);margin-left:var(--spacing-2);display:flex}._selectWithLabel_er3ed_1011>label{font-size:var(--text-sm)}._selectWithLabel_er3ed_1011 ._selectTrigger_er3ed_308{border:1px solid var(--baseBorder)}._toolbarTitleMode_er3ed_1026{font-size:var(--text-sm);margin-left:var(--spacing-2)}._imageControlWrapperResizing_er3ed_1031{touch-action:none}._imageResizer_er3ed_1035{background-color:var(--accentText);border:1px solid var(--baseBg);width:7px;height:7px;display:block;position:absolute}._imageResizer_er3ed_1035._imageResizerN_er3ed_1044{cursor:n-resize;top:-6px;left:48%}._imageResizer_er3ed_1035._imageResizerNe_er3ed_1050{cursor:ne-resize;top:-6px;right:-6px}._imageResizer_er3ed_1035._imageResizerE_er3ed_1056{cursor:e-resize;bottom:48%;right:-6px}._imageResizer_er3ed_1035._imageResizerSe_er3ed_1062{cursor:nwse-resize;bottom:-2px;right:-6px}._imageResizer_er3ed_1035._imageResizerS_er3ed_1062{cursor:s-resize;bottom:-2px;left:48%}._imageResizer_er3ed_1035._imageResizerSw_er3ed_1074{cursor:sw-resize;bottom:-2px;left:-6px}._imageResizer_er3ed_1035._imageResizerW_er3ed_1080{cursor:w-resize;bottom:48%;left:-6px}._imageResizer_er3ed_1035._imageResizerNw_er3ed_1086{cursor:nw-resize;top:-6px;left:-6px}._imagePlaceholder_er3ed_1092{border:2px dashed;width:fit-content;height:fit-content;margin:12px;padding:48px}._imageDimensionsContainer_er3ed_1100{gap:var(--spacing-4);display:flex}._placeholder_er3ed_1105{color:var(--baseSolid);padding:var(--spacing-3);text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap;pointer-events:none;display:inline-block;position:absolute;top:0;overflow:hidden}._rootContentEditableWrapper_er3ed_1118{position:relative}._downshiftContainer_er3ed_1122{flex-direction:column;align-items:stretch;display:flex}._downshiftInputWrapper_er3ed_1128{background-color:var(--baseBase);border-radius:var(--radius-base);border:1px solid var(--baseBorder);align-items:center;display:flex}._downshiftInputWrapper_er3ed_1128[data-visible-dropdown=true]{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);border-bottom-width:0}._downshiftInputWrapper_er3ed_1128>button{all:unset;box-sizing:border-box;cursor:default;padding-right:var(--spacing-2)}._downshiftInput_er3ed_1128{all:unset;box-sizing:border-box;cursor:default;width:20rem;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-sm)}._downshiftInput_er3ed_1128::placeholder{color:var(--baseBorder)}._downshiftAutocompleteContainer_er3ed_1159{position:relative}._downshiftAutocompleteContainer_er3ed_1159 ul{all:unset;box-sizing:border-box;font-size:var(--text-sm);border-bottom-left-radius:var(--radius-medium);border-bottom-right-radius:var(--radius-medium);width:100%;max-height:var(--spacing-48);border:1px solid var(--baseBorder);background-color:var(--baseBase);border-top-width:0;display:none;position:absolute;overflow:hidden auto}._downshiftAutocompleteContainer_er3ed_1159 ul[data-visible=true]{display:block}._downshiftAutocompleteContainer_er3ed_1159 ul li{padding:var(--spacing-2) var(--spacing-3);white-space:nowrap;margin-bottom:var(--spacing-1);text-overflow:ellipsis;overflow-x:hidden}._downshiftAutocompleteContainer_er3ed_1159 ul li[data-selected=true]{background-color:var(--baseBgSubtle)}._downshiftAutocompleteContainer_er3ed_1159 ul li[data-highlighted=true]{background-color:var(--baseBgHover)}._downshiftAutocompleteContainer_er3ed_1159 ul li:last-of-type{border-bottom-left-radius:var(--radius-medium);border-bottom-right-radius:var(--radius-medium)}._textInput_er3ed_1205{all:unset;border-radius:var(--radius-base);border:1px solid var(--baseBorder);background-color:var(--baseBase);padding:var(--spacing-2) var(--spacing-3)}form._multiFieldForm_er3ed_1213{padding:var(--spacing-2);gap:var(--spacing-2);flex-direction:column;display:flex}form._multiFieldForm_er3ed_1213 ._formField_er3ed_1219{gap:var(--spacing-2);flex-direction:column;display:flex}form._multiFieldForm_er3ed_1213 ._formField_er3ed_1219 label{font-size:var(--text-xs)}._markdownParseError_er3ed_1230{border-radius:var(--radius-base);border:1px solid var(--error-color);padding:var(--spacing-2);margin-block:var(--spacing-2);color:var(--error-color);font-size:var(--text-xs)}._popupContainer_er3ed_1239{z-index:2;position:relative}._inputSizer_er3ed_1244{vertical-align:baseline;align-items:center;display:inline-grid;position:relative}._inputSizer_er3ed_1244:after,._inputSizer_er3ed_1244 input{width:auto;min-width:1rem;font:inherit;resize:none;appearance:none;color:inherit;background:0 0;border:none;grid-area:1/2;margin:0;padding:0 2px}._inputSizer_er3ed_1244 span{padding:.25em}._inputSizer_er3ed_1244:after{content:attr(data-value);white-space:pre-wrap}.mdxeditor.mdxeditor-full-height{flex-direction:column;display:flex}.mdxeditor-full-height .mdxeditor-toolbar{flex-shrink:0}.mdxeditor-full-height .mdxeditor-root-contenteditable{flex-direction:column;flex-grow:1;min-height:0;display:flex;overflow:auto}.mdxeditor-full-height .mdxeditor-contenteditable-wrapper{flex-direction:column;flex-grow:1;display:flex}.mdxeditor-full-height .mdxeditor-contenteditable-wrapper ._contentEditable_er3ed_379{flex-grow:1}.mdxeditor-full-height .mdxeditor-diff-source-wrapper{flex-direction:column;flex-grow:1;min-height:0;display:flex}.mdxeditor-full-height .mdxeditor-rich-text-editor{flex-grow:1;min-height:0}.mdxeditor-full-height .mdxeditor-rich-text-editor .mdxeditor-root-contenteditable{box-sizing:border-box;height:100%}.mdxeditor-full-height .mdxeditor-source-editor,.mdxeditor-full-height .mdxeditor-diff-editor{flex-grow:1;min-height:0;overflow:auto}.mdxeditor-full-height .mdxeditor-source-editor .cm-editor{height:100%}.rich-text-editor-container{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-primary);flex-direction:column;min-height:200px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.rich-text-editor-container:focus-within{border-color:var(--color-border-focus);box-shadow:var(--shadow-glow)}.rich-text-editor-container .mdxeditor{flex-direction:column;flex:1;font-family:IBM Plex Sans Arabic,Cairo,Inter,-apple-system,sans-serif;display:flex}.rich-text-editor-container .mdxeditor-root-contenteditable{outline:none;flex:1;min-height:150px;padding:1rem}.rich-text-editor-container [role=textbox],.rich-text-editor-container .mdxeditor-root-contenteditable{text-align:start;unicode-bidi:plaintext}.rich-text-editor-container .mdxeditor-toolbar{border-bottom:1px solid var(--color-border);background-color:var(--color-bg-elevated);padding:.5rem}.dark-theme.rich-text-editor-container,[data-theme=dark] .rich-text-editor-container{--mdxeditor-toolbar-bg:var(--color-bg-elevated);--mdxeditor-toolbar-border:var(--color-border);--mdxeditor-toolbar-icon-color:var(--color-text-secondary);--mdxeditor-toolbar-icon-active-bg:var(--color-bg-overlay);--mdxeditor-content-bg:var(--color-bg-primary);--mdxeditor-content-color:var(--color-text-primary);--mdxeditor-dialog-bg:var(--color-bg-elevated);--mdxeditor-dialog-border:var(--color-border);--mdxeditor-dialog-text:var(--color-text-primary)}.rich-text-editor-container .mdxeditor-toolbar button{border-radius:var(--radius-sm)}.rich-text-editor-container .mdxeditor-toolbar button:hover{background-color:var(--color-bg-tertiary)}[data-theme=dark] .rich-text-editor-container .mdxeditor-toolbar button:hover{background-color:var(--color-bg-overlay)}.composer-placeholder-card{cursor:pointer;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.placeholder-icon{font-size:1.4rem}.placeholder-text{color:var(--color-text-tertiary);flex:1;font-size:.9rem}.course-post-composer{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.composer-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.composer-header h4{font-size:1.05rem;font-weight:700}.composer-close-btn{color:var(--color-text-tertiary);background:0 0;padding:4px;font-size:1rem}.composer-form{flex-direction:column;gap:1rem;display:flex}.composer-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=600px){.composer-row{grid-template-columns:1fr}}.composer-select-group{flex-direction:column;gap:.35rem;display:flex}.composer-select-group label{color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.composer-select{color:var(--color-text-primary);background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;padding:.6rem .85rem;font-size:.875rem}.composer-select:focus{border-color:var(--color-accent)}.composer-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.student-composer-card{margin-bottom:1.5rem}.student-composer-form{flex-direction:column;gap:1rem;display:flex}.composer-user-row{align-items:flex-start;gap:.75rem;display:flex}.composer-textarea-wrap{flex:1}.student-composer-textarea{width:100%;color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);resize:none;transition:all var(--transition-fast);outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.9rem}.student-composer-textarea:focus{background:var(--color-bg-secondary);border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.student-composer-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:.75rem;display:flex}.composer-disclaimer{color:var(--color-text-tertiary);font-size:.75rem}.student-post-card{box-sizing:border-box;flex-direction:column;gap:.75rem;width:100%;min-width:0;max-width:100%;margin-bottom:1rem;display:flex;overflow:hidden}.student-post-header{align-items:flex-start;gap:.75rem;width:100%;min-width:0;max-width:100%;display:flex}.student-header-content{flex:1;min-width:0;max-width:100%}.student-header-top{justify-content:space-between;align-items:flex-start;gap:.5rem;width:100%;min-width:0;max-width:100%;margin-bottom:4px;display:flex}.student-header-author{flex-direction:column;gap:2px;min-width:0;max-width:100%;display:flex}.student-author-line{align-items:center;gap:.4rem;min-width:0;max-width:100%;display:flex}.student-author-name{color:var(--color-text-primary);overflow-wrap:anywhere;word-break:break-word;font-size:.95rem;font-weight:600}.student-post-time{color:var(--color-text-tertiary);white-space:nowrap;font-size:.8rem}.student-meta-row{flex-wrap:wrap;align-items:center;gap:.4rem;width:100%;min-width:0;max-width:100%;line-height:1.6;display:flex}.student-post-body{width:100%;min-width:0;max-width:100%;padding:0;overflow:hidden}.student-post-text{color:var(--color-text-primary);overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;font-size:.925rem;line-height:1.65}.student-post-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:1rem;width:100%;min-width:0;max-width:100%;padding-top:.5rem;display:flex}.toggle-comments-btn{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:.4rem;padding:4px 8px;font-size:.8rem;font-weight:600;display:flex}.toggle-comments-btn:hover{background:var(--color-bg-tertiary);color:var(--color-accent)}@media (width<=600px){.student-post-card,.student-post-header{gap:.5rem}.student-author-name{font-size:.88rem}.student-post-time{font-size:.72rem}.student-meta-row{gap:.3rem}.student-post-text{font-size:.875rem}}.code-editor-wrapper{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#0d1117;border:1px solid #30363d;flex-direction:column;display:flex;overflow:hidden}.code-editor-header{background:#161b22;border-bottom:1px solid #30363d;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.editor-dots{gap:6px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.editor-lang-badge{color:#8b949e;letter-spacing:.05em;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700}.code-editor-body{min-height:240px;max-height:480px;display:flex;overflow-y:auto}.line-numbers{color:#484f58;text-align:right;-webkit-user-select:none;user-select:none;background:#0d1117;border-right:1px solid #21262d;min-width:38px;padding:1rem .5rem 1rem .75rem;font-family:JetBrains Mono,monospace;font-size:.85rem;line-height:1.5}.code-textarea{color:#e6edf3;resize:none;white-space:pre;tab-size:2;background:0 0;border:none;outline:none;flex:1;padding:1rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875rem;line-height:1.5}.code-textarea::placeholder{color:#484f58}.mode-pill{transition:all .2s}.mode-pill:hover{opacity:.9}.mode-pill.active{box-shadow:0 2px 8px #6366f140}.mcq-option-row:hover{border-color:var(--color-primary)!important}.xml-importer-pane textarea{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:var(--radius-md);padding:.75rem}.attendance-grid-card{box-sizing:border-box;flex-direction:column;gap:1rem;width:100%;min-width:0;max-width:100%;display:flex;overflow:hidden}.attendance-table-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.attendance-table-header h4{color:var(--color-text-primary);font-size:1rem;font-weight:700}.table-course-name{color:var(--color-accent);font-size:.85rem;font-weight:600}.attendance-grid{box-sizing:border-box;grid-template-columns:repeat(5,1fr);gap:10px;width:100%;min-width:0;max-width:100%;margin-top:10px;display:grid}@media (width<=600px){.attendance-grid{grid-template-columns:repeat(3,1fr);gap:8px}}.attendance-week-box{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-tertiary);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:60px;padding:10px 4px;transition:all .2s;display:flex}.week-num{color:var(--color-text-secondary);margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700}.week-status-icon{font-size:1.1rem;font-weight:800}.attendance-week-box.present{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.attendance-week-box.present .week-num{color:var(--color-success)}.attendance-week-box.absent{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.attendance-week-box.absent .week-num{color:var(--color-error)}.attendance-week-box.excused{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info)}.attendance-week-box.excused .week-num{color:var(--color-info)}.attendance-week-box.pending{color:var(--color-text-tertiary);background:var(--color-bg-tertiary)}.attendance-week-box.pending .week-num{color:var(--color-text-tertiary)}.attendance-legend{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px;font-size:.8rem;font-weight:500;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{background:var(--color-border);border-radius:50%;width:10px;height:10px}.legend-dot.present{background:var(--color-success)}.legend-dot.absent{background:var(--color-error)}.legend-dot.excused{background:var(--color-info)}.legend-dot.pending{background:var(--color-text-tertiary)}.ultrasonic-radar-card{text-align:center;background:radial-gradient(circle at center, var(--color-accent-subtle), var(--color-bg-secondary));border:1.5px solid var(--color-accent);box-shadow:0 4px 24px var(--color-accent-glow);flex-direction:column;align-items:center;gap:1.5rem;padding:2rem 1.5rem;display:flex;position:relative;overflow:hidden}.radar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.radar-status-tag{letter-spacing:.06em;color:var(--color-accent);align-items:center;gap:.5rem;font-size:.75rem;font-weight:800;display:flex}.radar-live-dot{background:var(--color-accent);border-radius:50%;width:10px;height:10px;animation:1.4s infinite radar-pulse;box-shadow:0 0 #6366f1b3}@keyframes radar-pulse{0%{box-shadow:0 0 0 0 var(--color-accent-glow);transform:scale(.95)}70%{transform:scale(1);box-shadow:0 0 0 10px #6366f100}to{transform:scale(.95);box-shadow:0 0 #6366f100}}.screen-awake-pill{border-radius:var(--radius-full);padding:3px 10px;font-size:.75rem;font-weight:700}.screen-awake-pill.active{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.screen-awake-pill.fallback{background:var(--color-warning-light);color:var(--color-warning);border:1px solid var(--color-warning)}.sonar-wrapper{justify-content:center;align-items:center;width:140px;height:140px;margin:.5rem 0;display:flex;position:relative}.sonar-center-icon{background:var(--color-accent);color:#fff;z-index:5;width:60px;height:60px;box-shadow:0 4px 16px var(--color-accent-glow);border-radius:50%;justify-content:center;align-items:center;font-size:1.75rem;display:flex}.sonar-wave{border:2px solid var(--color-accent);opacity:0;border-radius:50%;animation:2.4s cubic-bezier(.1,.2,.4,1) infinite sonar-expand;position:absolute}.wave-1{width:70px;height:70px;animation-delay:0s}.wave-2{width:70px;height:70px;animation-delay:.8s}.wave-3{width:70px;height:70px;animation-delay:1.6s}@keyframes sonar-expand{0%{opacity:.8;transform:scale(.8)}50%{opacity:.4}to{opacity:0;transform:scale(2.3)}}.radar-instructions{flex-direction:column;align-items:center;gap:.75rem;max-width:480px;display:flex}.radar-main-title{color:var(--color-text-primary);font-size:1.15rem;font-weight:800;line-height:1.3}.radar-warning-box{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);text-align:left;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.warning-icon{font-size:1.4rem}.warning-text-group strong{color:var(--color-warning);margin-bottom:.15rem;font-size:.9rem;display:block}.warning-text-group p{color:var(--color-text-secondary);font-size:.78rem;line-height:1.35}.ultrasonic-confirmed-card{text-align:center;background:radial-gradient(circle at center, var(--color-success-light), var(--color-bg-secondary));border:2px solid var(--color-success);flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 1.5rem;display:flex;box-shadow:0 4px 24px #22c55e33}.confirmed-icon-pulse{background:var(--color-success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:2.5rem;font-weight:900;animation:.4s cubic-bezier(.175,.885,.32,1.275) pop-in;display:flex;box-shadow:0 4px 18px #22c55e66}@keyframes pop-in{0%{transform:scale(0)}70%{transform:scale(1.15)}to{transform:scale(1)}}.confirmed-title-ar{color:var(--color-success);margin-bottom:.25rem;font-size:1.4rem;font-weight:800}.confirmed-title-en{color:var(--color-text-primary);font-size:1rem;font-weight:700}.confirmed-time{color:var(--color-text-tertiary);margin-top:.25rem;font-size:.8rem}.ultrasonic-idle-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.idle-header{flex:1;align-items:center;gap:1rem;min-width:260px;display:flex}.idle-icon-wrap{background:var(--color-accent-subtle);border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;display:flex}.idle-info h4{margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.idle-info p{color:var(--color-text-secondary);font-size:.825rem}.ultrasonic-error-banner{background:var(--color-error-light);border:1px solid var(--color-error);width:100%;color:var(--color-error);border-radius:var(--radius-md);text-align:left;padding:.6rem 1rem;font-size:.85rem}.absence-warning-banner{border-radius:var(--radius-lg);border:1px solid #0000;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;display:flex}.absence-warning-banner.warning{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.absence-warning-banner.danger{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.banner-icon{border-radius:var(--radius-full);background:color-mix(in srgb, currentColor 10%, transparent);letter-spacing:.1em;text-transform:uppercase;border:1px solid;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:.72rem;font-weight:800;display:inline-flex}.banner-content strong{margin-bottom:.2rem;font-size:.95rem;display:block}.banner-content p{color:inherit;opacity:.9;font-size:.825rem;line-height:1.4}.course-grades-card{flex-direction:column;gap:1.25rem;margin-bottom:1.5rem;display:flex}.grades-card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.grades-course-title{font-size:1.2rem;font-weight:800}.grades-summary-subtitle{color:var(--color-text-tertiary);font-size:.8rem}.grades-total-badge{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.total-score{color:var(--color-accent);font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:800}.total-score span{color:var(--color-text-tertiary);font-size:.85rem;font-weight:500}.total-percentage{color:var(--color-success);font-size:.75rem;font-weight:700}.grades-breakdown-table{border-collapse:collapse;text-align:left;width:100%}.grades-breakdown-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.grades-breakdown-table td{border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.875rem}.grade-type-badge{border-radius:var(--radius-sm);padding:2px 8px;font-size:.7rem;font-weight:700}.grade-type-badge.task{background:var(--color-accent-subtle);color:var(--color-accent)}.grade-type-badge.quiz{background:color-mix(in srgb, var(--tag-quiz) 14%, transparent);color:var(--tag-quiz)}.grade-type-badge.practical{background:color-mix(in srgb, var(--tag-practical) 14%, transparent);color:var(--tag-practical)}.grade-type-badge.oral{background:color-mix(in srgb, var(--tag-oral) 14%, transparent);color:var(--tag-oral)}.grade-type-badge.exam{background:color-mix(in srgb, var(--tag-exam) 14%, transparent);color:var(--tag-exam)}.pct-tag{border-radius:var(--radius-sm);padding:2px 6px;font-size:.75rem;font-weight:700}.pct-tag.high{background:var(--color-success-light);color:var(--color-success)}.pct-tag.med{background:var(--color-warning-light);color:var(--color-warning)}.pct-tag.low{background:var(--color-error-light);color:var(--color-error)}.table-responsive-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=600px){.grades-card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.grades-total-badge{text-align:left;align-items:flex-start}.total-score{font-size:1.1rem}.grades-course-title{font-size:1rem}.grades-breakdown-table th,.grades-breakdown-table td{padding:.5rem .6rem;font-size:.78rem}}.settings-section{flex-direction:column;gap:1.5rem;display:flex}.settings-card{border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;background:var(--color-bg-elevated)!important;box-shadow:var(--shadow-sm)!important;padding:1.75rem!important}.settings-card-header{align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.settings-card-icon{flex-shrink:0;margin-top:.1rem;font-size:1.4rem;line-height:1}.settings-card-title{color:var(--color-text-primary);margin:0 0 .3rem;font-size:1.05rem;font-weight:600}.settings-card-desc{color:var(--color-text-tertiary);margin:0;font-size:.875rem;line-height:1.55}.settings-form-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.settings-field{flex-direction:column;gap:.4rem;display:flex}.settings-field--grow{flex:1;min-width:160px}.settings-field--btn{justify-content:flex-end;padding-bottom:0}.settings-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);font-size:.78rem;font-weight:600}.settings-input,.settings-select{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;width:100%;padding:.6rem .875rem;font-family:inherit;font-size:.9rem}.settings-input:focus,.settings-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-light)}.settings-input::placeholder{color:var(--color-text-tertiary);opacity:.7}.settings-input--time{width:auto;min-width:120px}.settings-input--location{flex:1}.settings-sub-section{padding:0 .25rem}.settings-sub-title{color:var(--color-text-primary);border-bottom:1px solid var(--color-border);margin-bottom:.75rem;padding-bottom:.6rem;font-size:1.05rem;font-weight:600}.settings-empty{color:var(--color-text-tertiary);padding:.5rem 0;font-size:.88rem;font-style:italic}.settings-exception-list{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.settings-exception-row{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);transition:background var(--transition-fast);justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.25rem;display:flex}.settings-exception-row:hover{background:var(--color-accent-subtle);border-color:var(--color-border-hover)}.settings-exception-info{align-items:center;gap:.75rem;display:flex}.settings-exception-week{color:var(--color-text-primary);font-size:.92rem;font-weight:600}.settings-exception-reason{color:var(--color-text-tertiary);font-size:.875rem}.settings-schedule-list{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.settings-schedule-row{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);transition:background var(--transition-fast);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.875rem 1.1rem;display:flex}.settings-schedule-row:hover{background:var(--color-accent-subtle);border-color:var(--color-border-hover)}.settings-schedule-badge{flex-shrink:0;font-size:1.2rem}.settings-select{flex-shrink:0;min-width:120px}.settings-time-group{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.settings-time-sep{color:var(--color-text-tertiary);font-size:.85rem;font-weight:500}.settings-remove-btn{border:1.5px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-sm);cursor:pointer;width:2rem;height:2rem;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:.8rem;font-weight:700;display:flex}.settings-remove-btn:hover{background:var(--color-error);color:#fff}.settings-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.full-export-card{transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid var(--color-border)!important;background:var(--color-bg-elevated)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm)!important;padding:1.75rem!important}.full-export-card:hover{border-color:#6366f166!important;box-shadow:0 4px 20px -2px #6366f114!important}.full-export-icon-badge{border-radius:var(--radius-md);color:#818cf8;background:linear-gradient(135deg,#6366f126,#a855f726);border:1px solid #6366f140;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.full-export-title-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.full-export-tag{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-sm);color:#34d399;background:#10b9811f;border:1px solid #10b98140;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.full-export-breakdown-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;margin:1.25rem 0 1.5rem;display:grid}.export-spec-item{border-radius:var(--radius-md);background:var(--color-bg-primary);border:1px solid var(--color-border);transition:transform var(--transition-fast), border-color var(--transition-fast);align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.export-spec-item:hover{border-color:var(--color-border-hover);transform:translateY(-1px)}.spec-icon-box{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:.1rem;display:flex}.spec-icon--students{color:#60a5fa;background:#3b82f61f}.spec-icon--attendance{color:#818cf8;background:#6366f11f}.spec-icon--tasks{color:#34d399;background:#10b9811f}.spec-icon--quizzes{color:#c084fc;background:#a855f71f}.spec-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.spec-title{color:var(--color-text-primary);font-size:.825rem;font-weight:600}.spec-desc{color:var(--color-text-tertiary);font-size:.75rem;line-height:1.35}.full-export-action-bar{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;padding-top:1.25rem;display:flex}.full-export-download-btn{transition:all var(--transition-fast);align-items:center;gap:.6rem;font-weight:600;display:inline-flex;box-shadow:0 4px 14px #6366f140;padding:.65rem 1.35rem!important}.full-export-download-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #6366f159}.bulk-uploader-content{flex-direction:column;gap:1rem;display:flex}.form-group label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}.ui-select{border:1px solid var(--border-color);background:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:6px;padding:.5rem;font-size:.875rem}.file-drop-zone{border:2px dashed var(--border-color);text-align:center;background:#00000005;border-radius:8px;padding:1.5rem}.help-text{color:var(--text-tertiary);margin-top:.5rem;font-size:.75rem}.upload-summary{text-align:center}.summary-stats{justify-content:center;gap:2rem;margin:1.5rem 0;display:flex}.stat-box{background:var(--bg-secondary);border-radius:8px;flex-direction:column;align-items:center;min-width:100px;padding:1rem;display:flex}.stat-box.success{color:#22c55e;background:#22c55e1a}.stat-value{font-size:2rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.05em;opacity:.8;font-size:.75rem}.error-list{text-align:left;background:#ef44441a;border-left:4px solid #ef4444;border-radius:8px;padding:1rem}.code-chips{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.code-chip{background:var(--bg-surface);border:1px solid #ef44444d;border-radius:4px;padding:.25rem .5rem;font-family:monospace;font-size:.75rem}.follow-requests-tab{flex-direction:column;gap:1.5rem;display:flex}.requests-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.requests-title{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.requests-subtitle{color:var(--color-text-secondary);font-size:.875rem}.requests-filter-card{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.requests-filter-grid{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.search-input-wrap{flex:1;align-items:center;min-width:260px;display:flex;position:relative}.search-input-wrap svg{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:.75rem}.requests-search-input{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text-primary);padding:.6rem .75rem .6rem 2.4rem;font-size:.875rem}.requests-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-subtle);outline:none}.filter-controls-group{flex-wrap:wrap;gap:.5rem;display:flex}.requests-select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;padding:.6rem 1rem;font-size:.85rem}.multi-actions-bar{border-radius:var(--radius-md);background:var(--color-primary-subtle,#3b82f61a);border:1px solid var(--color-primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.selection-count{color:var(--color-primary);font-size:.875rem;font-weight:600}.multi-actions-buttons{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.requests-table-card{padding:0;overflow:hidden}.table-responsive{width:100%;overflow-x:auto}.requests-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.requests-table th{background:var(--color-bg-secondary);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);padding:.85rem 1rem;font-size:.775rem;font-weight:600}.requests-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle;padding:1rem}.requests-table tr:hover{background:var(--color-surface-hover,#ffffff05)}.requests-table tr.row-selected{background:var(--color-primary-subtle,#3b82f60f)}.requests-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.student-name-text{color:var(--color-text-primary);font-weight:600}.student-email-sub{color:var(--color-text-secondary);margin-top:.15rem;font-size:.775rem}.code-badge{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:4px;padding:.2rem .5rem;font-family:monospace;font-size:.8rem}.nid-badge{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:4px;padding:.2rem .5rem;font-family:monospace;font-size:.775rem}.year-badge{background:var(--color-surface);border:1px solid var(--color-border);border-radius:9999px;padding:.2rem .5rem;font-size:.775rem}.time-text{color:var(--color-text-secondary);font-size:.8rem}.row-actions-group{justify-content:flex-end;gap:.4rem;display:inline-flex}.text-muted-italic{color:var(--color-text-tertiary);font-size:.75rem;font-style:italic}.requests-loading,.requests-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 1.5rem}.empty-icon{color:var(--color-success,#10b981);margin-bottom:.5rem;font-size:2rem}.course-detail-page{box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;min-width:0;max-width:960px;margin:0 auto;display:flex}.course-unavailable-page{place-items:center;min-height:min(620px,100vh - 180px);padding:2rem 0;display:grid}.course-unavailable-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:min(680px,100%);box-shadow:var(--shadow-md);align-items:center;gap:2.5rem;padding:3rem;display:flex;position:relative;overflow:hidden}.course-unavailable-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-accent-light), transparent 85%);height:4px;position:absolute;inset:0 0 auto}.course-unavailable-card:after{content:"";border:1px solid var(--color-accent-light);opacity:.55;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-130px;right:-110px}.course-unavailable-art{width:112px;height:112px;color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);box-shadow:0 14px 30px color-mix(in srgb, var(--color-accent-subtle) 80%, transparent);border-radius:2rem;flex:0 0 112px;place-items:center;display:grid;position:relative}.course-unavailable-art-ring{border:1px dashed var(--color-accent-light);opacity:.8;border-radius:2.5rem;position:absolute;inset:-12px}.course-unavailable-content{z-index:1;position:relative}.course-unavailable-eyebrow{color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.65rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;font-weight:800;display:block}.course-unavailable-content h2{color:var(--color-text-primary);margin-bottom:.65rem;font-size:clamp(1.35rem,2.5vw,1.8rem);font-weight:800;line-height:1.2}.course-unavailable-content p{max-width:420px;color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.92rem;line-height:1.7}.course-unavailable-action{text-decoration:none;display:inline-flex}.course-hero-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:1.75rem 2rem;position:relative;overflow:hidden}.course-hero-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), transparent 80%);height:3px;position:absolute;top:0;left:0;right:0}.course-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-width:0;max-width:100%;margin-bottom:1rem;display:flex}.course-hero-code{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);border:1px solid var(--color-accent-light);letter-spacing:.05em;padding:.35rem .85rem;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}.course-hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.course-hero-title{color:var(--color-text-primary);word-break:break-word;overflow-wrap:anywhere;margin-bottom:.35rem;font-size:1.75rem;font-weight:800;line-height:1.25}.course-hero-dept{color:var(--color-text-secondary);word-break:break-word;overflow-wrap:anywhere;margin-bottom:1.25rem;font-size:.9rem}.course-hero-meta{flex-wrap:wrap;gap:.6rem;width:100%;min-width:0;max-width:100%;display:flex}.meta-pill{color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.35rem .85rem;font-size:.8rem;font-weight:600}.course-nav-wrapper{box-sizing:border-box;width:100%;min-width:0;max-width:100%;position:relative}.course-nav-wrapper:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-primary) 90%);pointer-events:none;z-index:1;opacity:1;width:40px;transition:opacity .2s;position:absolute;top:0;bottom:0;right:0}.course-detail-nav{border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;scrollbar-width:thin;box-sizing:border-box;align-items:center;gap:.6rem;width:100%;min-width:0;max-width:100%;padding:.25rem 2rem .85rem .25rem;display:flex;overflow-x:auto}.course-detail-nav::-webkit-scrollbar{height:3px}.course-detail-nav::-webkit-scrollbar-track{background:0 0}.course-detail-nav::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.detail-nav-tab{text-transform:uppercase;letter-spacing:.05em;color:#1e5b8a;background:var(--color-bg-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;cursor:pointer;border:1px solid #d5c7b3;flex-shrink:0;justify-content:center;align-items:center;gap:.4rem;padding:.35rem .85rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;font-weight:700;display:inline-flex}.detail-nav-tab-label{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;line-height:1.2}.detail-tab-refresh{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:.15rem;line-height:0;display:inline-flex}.detail-tab-refresh:hover:not(:disabled){background:#00000014}.detail-tab-refresh:disabled{opacity:.55;cursor:not-allowed}.detail-tab-refresh .spin-anim{animation:.6s linear infinite course-tab-refresh-spin}@keyframes course-tab-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.detail-nav-tab:hover{background:var(--color-bg-tertiary);color:#1e5b8a;border-color:var(--color-accent)}.detail-nav-tab.active{color:#b89355;background:#f3e9d2;border-color:#b89355;font-weight:700}.course-tasks-list,.course-tasks-grid{flex-direction:column;gap:1rem;width:100%;min-width:0;max-width:100%;display:flex}.course-quizzes-list{flex-direction:column;gap:.85rem;width:100%;min-width:0;max-width:100%;display:flex}.quiz-list-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);box-sizing:border-box;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-width:0;max-width:100%;padding:1.25rem;display:flex}.quiz-list-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.quiz-list-card-info h4{color:var(--color-text-primary);overflow-wrap:anywhere;word-break:break-word;margin-bottom:.25rem;font-size:1rem;font-weight:700}.quiz-list-card-info p{color:var(--color-text-secondary);margin:0;font-size:.825rem}.quiz-list-card-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.course-tab-content,.course-posts-tab,.course-materials-tab,.course-attendance-tab,.course-settings-tab{box-sizing:border-box;width:100%;min-width:0;max-width:100%}@media (width<=640px){.course-unavailable-page{min-height:calc(100vh - 150px);padding:1rem 0}.course-unavailable-card{text-align:center;flex-direction:column;align-items:center;gap:1.75rem;padding:2.25rem 1.25rem}.course-unavailable-content p{margin-left:auto;margin-right:auto}.course-unavailable-action{justify-content:center}.course-detail-page{gap:1rem}.course-hero-card{border-radius:var(--radius-lg);padding:1rem .85rem}.course-hero-top{flex-direction:column;align-items:flex-start;gap:.75rem}.course-hero-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.course-hero-title{word-break:break-word;overflow-wrap:anywhere;font-size:1.25rem}.course-hero-dept{word-break:break-word;overflow-wrap:anywhere;margin-bottom:.85rem;font-size:.82rem}.course-hero-meta{gap:.4rem}.meta-pill{padding:.25rem .65rem;font-size:.72rem}.course-detail-nav{gap:.4rem;padding:.2rem 0 .6rem}.detail-nav-tab{border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:.78rem}.course-tasks-grid{grid-template-columns:1fr}.quiz-list-card{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.quiz-list-card-info h4{font-size:.9rem}.quiz-list-card-actions{justify-content:space-between;width:100%}}.students-feed-page{flex-direction:column;max-width:680px;margin:0 auto;display:flex}.lounge-header-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem;display:flex}.lounge-icon{background:var(--color-accent-subtle);border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;display:flex}.lounge-header-card h2{font-size:1.25rem;font-weight:800}.lounge-header-card p{color:var(--color-text-secondary);font-size:.825rem}.student-posts-list{flex-direction:column;display:flex}@media (width<=600px){.students-feed-page{padding:0 .5rem}.lounge-header-card{text-align:center;flex-direction:column;padding:1rem}}.chat-thread-list{flex-direction:column;flex:1;display:flex;overflow-y:auto}.empty-threads{text-align:center;color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1.5rem;font-size:.88rem;display:flex}.thread-item{border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary,#fff);cursor:pointer;border-left:3px solid #0000;align-items:center;gap:.85rem;padding:.95rem 1.15rem;transition:all .18s;display:flex}.thread-item:hover{background:var(--color-bg-tertiary,#f1ede2)}.thread-item.selected{background:var(--color-accent-light,#b893551f);border-left-color:var(--color-brass,#b89355)}.thread-details{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.thread-top-row{justify-content:space-between;align-items:center;display:flex}.thread-name{color:var(--color-text-primary);font-size:.92rem;font-weight:700;line-height:1.25}.thread-time{color:var(--color-text-tertiary);flex-shrink:0;font-size:.72rem;font-weight:500}.thread-bottom-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.thread-preview{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.thread-course-badge{color:var(--color-brass-dark,#967438);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:600;overflow:hidden}.thread-unread-pill{border-radius:999px;padding:1px 6px;font-size:.68rem;font-weight:700;box-shadow:0 0 6px #ef444466;color:#fff!important;background:#ef4444!important}.thread-item.has-unread .thread-name{color:var(--color-text-primary)}.thread-item.has-unread .thread-preview{color:var(--color-text-primary);font-weight:600}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.4"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}.markdown-solution-viewer{color:var(--color-text-primary);word-break:break-word;font-family:inherit;font-size:.95rem;line-height:1.7}.markdown-solution-viewer h1,.markdown-solution-viewer h2,.markdown-solution-viewer h3,.markdown-solution-viewer h4{color:var(--color-text-primary);margin:1.25rem 0 .5rem;font-weight:700;line-height:1.35}.markdown-solution-viewer h1{border-bottom:1px solid var(--color-border);padding-bottom:.4rem;font-size:1.45rem}.markdown-solution-viewer h2{border-bottom:1px solid var(--color-border);padding-bottom:.3rem;font-size:1.25rem}.markdown-solution-viewer h3{font-size:1.1rem}.markdown-solution-viewer p{margin:.6rem 0}.markdown-solution-viewer ul,.markdown-solution-viewer ol{margin:.6rem 0;padding-left:1.5rem}.markdown-solution-viewer li{margin:.25rem 0}.markdown-solution-viewer blockquote{border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-secondary);background:#6366f112;border-left:3px solid #6366f1;margin:.85rem 0;padding:.5rem 1rem;font-style:italic}.markdown-solution-viewer .inline-code{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#a5b4fc;padding:.15rem .4rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85em}.code-block-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);background:#0d1117;margin:1rem 0;position:relative;overflow:hidden}.code-lang-tag{text-transform:uppercase;color:#64748b;letter-spacing:.05em;-webkit-user-select:none;user-select:none;font-size:.7rem;font-weight:700;position:absolute;top:.4rem;right:.6rem}.code-block-wrapper pre{margin:0;padding:1rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875rem;line-height:1.5;overflow-x:auto}.katex-display{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto hidden;margin:1rem 0!important;padding:.75rem!important}.solution-image-container{text-align:center;flex-direction:column;align-items:center;margin:1.25rem 0;display:flex}.solution-embedded-img{border-radius:var(--radius-md);border:1px solid var(--color-border);max-width:100%;max-height:480px;box-shadow:var(--shadow-md);object-fit:contain;transition:transform var(--transition-fast);background:#0f172a}.solution-embedded-img:hover{transform:scale(1.01)}.solution-image-caption{color:var(--color-text-tertiary);margin-top:.35rem;font-size:.8rem;font-style:italic}.solution-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);margin:1rem 0;overflow-x:auto}.solution-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.solution-table th,.solution-table td{border-bottom:1px solid var(--color-border);padding:.6rem .85rem}.solution-table th{background:var(--color-bg-elevated);color:var(--color-text-primary);font-weight:600}.solution-table tr:last-child td{border-bottom:none}.mermaid-rendered-container{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#0f172a;justify-content:center;margin:1rem 0;padding:1rem;display:flex;overflow-x:auto}.mermaid-error{color:#f87171;padding:.5rem;font-size:.85rem}.solution-viewer-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem;font-style:italic}.message-bubble-row{align-items:flex-end;gap:.65rem;width:100%;margin-bottom:1rem;animation:.2s cubic-bezier(.16,1,.3,1) bubbleSlideIn;display:flex}@keyframes bubbleSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message-bubble-row.mine{justify-content:flex-end}.message-bubble-row.theirs{justify-content:flex-start}.message-bubble-avatar-wrap{flex-shrink:0;justify-content:center;align-items:center;margin-bottom:3px;display:flex}.message-bubble-avatar-wrap.mine-avatar{margin-left:.35rem}.message-bubble-avatar-wrap:not(.mine-avatar){margin-right:.35rem}.message-bubble-body{word-break:break-word;flex-direction:column;gap:.35rem;min-width:90px;max-width:72%;padding:.75rem 1rem .6rem;display:flex;position:relative}.message-bubble-row.mine .message-bubble-body{color:#fff;background:linear-gradient(135deg,#10233b 0%,#1a385c 100%);border:1px solid #b8935559;border-radius:18px 18px 4px;box-shadow:0 4px 14px #10233b2e}[data-theme=dark] .message-bubble-row.mine .message-bubble-body{background:linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 100%);border:1px solid #bfdbfe33;box-shadow:0 4px 16px #00000059}.message-bubble-row.mine .message-text-content,.message-bubble-row.mine .chat-bubble-markdown,.message-bubble-row.mine .markdown-solution-viewer,.message-bubble-row.mine .markdown-solution-viewer p,.message-bubble-row.mine .markdown-solution-viewer span,.message-bubble-row.mine .markdown-solution-viewer strong,.message-bubble-row.mine .markdown-solution-viewer em,.message-bubble-row.mine .markdown-solution-viewer li,.message-bubble-row.mine .markdown-solution-viewer h1,.message-bubble-row.mine .markdown-solution-viewer h2,.message-bubble-row.mine .markdown-solution-viewer h3,.message-bubble-row.mine .markdown-solution-viewer h4{color:#fff!important}.message-bubble-row.mine .markdown-solution-viewer .inline-code{background:#00000059;border:1px solid #ffffff40;color:#fff!important}.message-bubble-row.mine .markdown-solution-viewer a{font-weight:600;text-decoration:underline;color:#93c5fd!important}.message-bubble-row.mine .markdown-solution-viewer blockquote{border-left:3px solid var(--color-brass,#b89355);background:#0003;color:#f1f5f9!important}.message-bubble-row.mine .code-block-wrapper{background:#09101d;border-color:#ffffff26}.message-bubble-row.theirs .message-bubble-body{background:var(--color-bg-secondary,#fff);color:var(--color-text-primary,#101c2a);border:1px solid var(--color-border,#e4ddd0);border-radius:18px 18px 18px 4px;box-shadow:0 2px 10px #0000000a}[data-theme=dark] .message-bubble-row.theirs .message-bubble-body{background:var(--color-bg-secondary,#142032);border:1px solid var(--color-border,#1e2c40);box-shadow:0 4px 14px #00000040}.message-bubble-header{align-items:center;gap:.4rem;margin-bottom:.15rem;display:flex}.message-sender-name{color:var(--color-brass-dark,#967438);letter-spacing:.02em;font-size:.78rem;font-weight:700}[data-theme=dark] .message-sender-name{color:#38bdf8}.message-role-tag{text-transform:uppercase;color:#0284c7;letter-spacing:.03em;background:#0284c714;border:1px solid #0284c733;border-radius:4px;padding:.05rem .35rem;font-size:.65rem;font-weight:700}.message-text-content{word-break:break-word;font-size:.93rem;line-height:1.55}.chat-bubble-markdown{font-size:.93rem}.chat-bubble-markdown p{margin:0 0 .35rem}.chat-bubble-markdown p:last-child{margin-bottom:0}.chat-bubble-markdown .solution-image-container{margin:.4rem 0;display:block}.chat-bubble-markdown .solution-embedded-img{object-fit:contain;background:#09101d;border:1px solid #ffffff26;border-radius:10px;max-width:100%;max-height:300px;box-shadow:0 4px 12px #00000026}.chat-bubble-markdown .solution-viewer-empty{display:none}.message-footer{align-items:center;gap:.35rem;margin-top:.1rem;display:flex}.message-bubble-row.mine .message-footer{justify-content:flex-end}.message-bubble-row.theirs .message-footer{justify-content:flex-start}.message-time{-webkit-user-select:none;user-select:none;font-size:.69rem;font-weight:500}.message-bubble-row.mine .message-time{color:#ffffffb8}.message-bubble-row.theirs .message-time{color:var(--color-text-tertiary,#748092)}.message-status-check{color:#ffffff8c;align-items:center;gap:.25rem;display:flex}.message-status-check.delivered{color:#ffffffa6}.message-status-check.seen{color:#38bdf8}.seen-label{letter-spacing:.02em;color:#38bdf8;font-size:.65rem;font-weight:700}@media (width<=768px){.message-bubble-body{max-width:86%}}.drawing-modal-body{flex-direction:column;gap:1rem;display:flex}.drawing-toolbar{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .85rem;display:flex}.tool-group{align-items:center;gap:.35rem;display:flex}.draw-tool-btn,.draw-icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.draw-tool-btn:hover,.draw-icon-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.draw-tool-btn.active,.draw-icon-btn.active{color:#818cf8;background:#6366f12e;border-color:#6366f166}.draw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.draw-divider{background:var(--color-border);width:1px;height:24px}.color-group{align-items:center;gap:.4rem;display:flex}.color-dot-btn{cursor:pointer;width:20px;height:20px;transition:transform var(--transition-fast), border-color var(--transition-fast);border:2px solid #0000;border-radius:50%}.color-dot-btn:hover{transform:scale(1.15)}.color-dot-btn.active{border-color:#fff;box-shadow:0 0 0 2px #6366f1}.width-group{align-items:center;gap:.4rem;display:flex}.width-btn{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.width-btn:hover{background:var(--color-bg-hover)}.width-btn.active{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.canvas-container{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#0f172a;width:100%;height:460px;position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #0006}.canvas-container.grid-bg{background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:20px 20px}.drawing-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.drawing-modal-footer{justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.5rem;display:flex}.chat-window{background:var(--color-bg-primary,#f8f6f0);flex-direction:column;height:100%;display:flex}.chat-window-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary,#fff);z-index:5;align-items:center;gap:.95rem;padding:.95rem 1.35rem;display:flex;box-shadow:0 1px 3px #00000005}.chat-back-btn{background:var(--color-bg-tertiary,#f1ede2);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.chat-back-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-brass)}.chat-header-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.chat-header-name-row{align-items:center;gap:.55rem;display:flex}.chat-partner-name{color:var(--color-text-primary);font-size:1.02rem;font-weight:800;line-height:1.2}.chat-role-badge{color:#0284c7;text-transform:uppercase;letter-spacing:.04em;background:#0284c71a;border:1px solid #0284c740;border-radius:4px;padding:.12rem .5rem;font-size:.65rem;font-weight:800}.chat-course-context{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.chat-course-code-tag{color:var(--color-brass-dark,#967438);background:var(--color-accent-light,#b893551f);border:1px solid var(--color-border-subtle);letter-spacing:.02em;border-radius:4px;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.chat-course-name-text{color:var(--color-text-secondary);font-size:.8rem;font-weight:500}.chat-messages-stream{background:var(--color-bg-primary,#f8f6f0);flex-direction:column;flex:1;padding:1.35rem 1.5rem;display:flex;overflow-y:auto}[data-theme=dark] .chat-messages-stream{background:#0d1522}.empty-chat-state{text-align:center;color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.65rem;max-width:400px;margin:auto;padding:2rem;display:flex}.empty-chat-icon{background:var(--color-accent-light,#b893551f);width:4rem;height:4rem;color:var(--color-brass-dark,#967438);border:1px solid var(--color-border-subtle);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.35rem;display:inline-flex}.empty-chat-state h4{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:700}.empty-chat-state p{color:var(--color-text-secondary);margin:0;font-size:.86rem;line-height:1.5}.chat-quick-toolbar{background:var(--color-bg-tertiary,#f1ede2);border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.45rem;padding:.45rem 1.35rem;display:flex}.chat-tool-btn{color:var(--color-text-primary);background:var(--color-bg-secondary,#fff);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;align-items:center;gap:.35rem;padding:.28rem .65rem;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.chat-tool-btn:hover{background:var(--color-bg-elevated);color:var(--color-brass-dark);border-color:var(--color-brass)}.chat-tool-divider{background:var(--color-border);width:1px;height:18px;margin:0 .25rem}.chat-chip-btn{color:var(--color-text-secondary);background:var(--color-bg-secondary,#fff);border:1px dashed var(--color-border);cursor:pointer;border-radius:6px;padding:.22rem .58rem;font-family:monospace;font-size:.74rem;font-weight:700;transition:all .15s}.chat-chip-btn:hover{background:var(--color-accent-light);color:var(--color-brass-dark);border-color:var(--color-brass)}.chat-input-bar{border-top:1px solid var(--color-border);background:var(--color-bg-secondary,#fff);align-items:flex-end;gap:.75rem;padding:.85rem 1.35rem 1rem;display:flex}.chat-textarea-input{min-height:44px;max-height:120px;color:var(--color-text-primary);background:var(--color-bg-primary,#f8f6f0);border:1px solid var(--color-border);resize:none;border-radius:12px;outline:none;flex:1;padding:.7rem 1rem;font-family:inherit;font-size:.92rem;line-height:1.45;transition:all .18s}[data-theme=dark] .chat-textarea-input{background:#0d1522}.chat-textarea-input:focus{background:var(--color-bg-secondary);border-color:var(--color-brass,#b89355);box-shadow:0 0 0 3px var(--color-accent-light,#b8935526)}.chat-send-btn{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:.45rem;height:44px;padding:0 1.25rem;font-weight:700;display:inline-flex}.new-chat-overlay{-webkit-backdrop-filter:blur(8px);z-index:1050;background:#0e1b2c99;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.new-chat-modal{background:var(--color-bg-primary,#f8f6f0);width:100%;max-width:480px;max-height:85vh;box-shadow:0 25px 70px #0e1b2c59, 0 0 0 1px var(--color-border);border:1px solid var(--color-border);border-radius:1.25rem;flex-direction:column;display:flex;position:relative;overflow:hidden}.new-chat-header{background:var(--color-bg-secondary,#fff);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.15rem 1.35rem;display:flex}.new-chat-header-title{align-items:center;gap:.75rem;display:flex}.new-chat-title-icon{background:var(--color-accent-light,#b8935524);width:38px;height:38px;color:var(--color-brass-dark,#967438);border:1px solid var(--color-border-subtle);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.new-chat-header h3{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:700;line-height:1.2}.new-chat-subtitle{color:var(--color-text-secondary);margin:.15rem 0 0;font-size:.76rem}.new-chat-close{background:var(--color-bg-tertiary,#f1ede2);border:1px solid var(--color-border);cursor:pointer;width:32px;height:32px;color:var(--color-text-secondary);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.new-chat-close:hover{background:var(--color-error-light,#8b25391f);color:var(--color-error,#8b2539);border-color:#8b25394d;transform:scale(1.05)}.new-chat-body{flex-direction:column;flex:1;gap:.75rem;padding:1.15rem 1.35rem 1.35rem;display:flex;overflow-y:auto}.new-chat-hint{color:var(--color-text-secondary);margin-bottom:.2rem;font-size:.84rem;font-weight:600}.new-chat-search-wrap{align-items:center;width:100%;margin-bottom:.35rem;display:flex;position:relative}.new-chat-search-wrap .search-icon-svg{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:.85rem}.new-chat-search-input{background:var(--color-bg-secondary,#fff);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);border-radius:10px;outline:none;padding:.65rem .85rem .65rem 2.35rem;font-size:.88rem;transition:all .18s;box-shadow:0 1px 2px #00000005}.new-chat-search-input:focus{border-color:var(--color-brass,#b89355);box-shadow:0 0 0 3px var(--color-accent-light,#b893552e)}.new-chat-back{background:var(--color-bg-secondary,#fff);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.45rem;width:fit-content;margin-bottom:.25rem;padding:.45rem .75rem;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.new-chat-back:hover{background:var(--color-bg-tertiary);border-color:var(--color-brass);color:var(--color-brass-dark)}.selected-course-badge-banner{background:var(--color-bg-secondary,#fff);border:1px solid var(--color-border);border-left:3px solid var(--color-brass,#b89355);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.35rem;padding:.65rem .85rem;display:flex}.selected-course-label{text-transform:uppercase;color:var(--color-text-tertiary);letter-spacing:.04em;font-size:.74rem;font-weight:700}.selected-course-name{color:var(--color-text-primary);font-size:.88rem;font-weight:700}.selected-course-code{color:var(--color-brass-dark);background:var(--color-accent-light);border:1px solid var(--color-border-subtle);border-radius:4px;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.new-chat-list{flex-direction:column;gap:.55rem;display:flex}.new-chat-list-item{text-align:left;border:1px solid var(--color-border);background:var(--color-bg-secondary,#fff);cursor:pointer;border-radius:12px;align-items:center;gap:.85rem;width:100%;padding:.85rem 1rem;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 1px 3px #00000005}.new-chat-list-item:hover{background:var(--color-bg-elevated,#fff);border-color:var(--color-brass,#b89355);transform:translateY(-2px);box-shadow:0 6px 16px #b8935524}.new-chat-list-item:hover .new-chat-card-arrow{color:var(--color-brass-dark);transform:translate(4px)}.new-chat-card-icon{background:var(--color-accent-light,#b893551f);width:42px;height:42px;color:var(--color-brass-dark,#967438);border:1px solid var(--color-border-subtle);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.new-chat-list-item:hover .new-chat-card-icon{background:var(--color-brass,#b89355);color:#fff;border-color:var(--color-brass)}.new-chat-course-info{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.new-chat-course-name{color:var(--color-text-primary);word-break:break-word;font-size:.92rem;font-weight:700;line-height:1.35}.new-chat-course-code-pill{color:var(--color-brass-dark,#967438);background:var(--color-bg-tertiary,#f1ede2);border:1px solid var(--color-border);letter-spacing:.02em;border-radius:4px;width:fit-content;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.new-chat-card-arrow{color:var(--color-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:transform .2s,color .2s;display:flex}.new-chat-user-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.new-chat-user-name{color:var(--color-text-primary);font-size:.92rem;font-weight:700;line-height:1.3}.new-chat-user-meta-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.new-chat-role-pill{text-transform:uppercase;color:#0284c7;letter-spacing:.03em;background:#0284c71a;border:1px solid #0284c740;border-radius:4px;padding:.08rem .4rem;font-size:.68rem;font-weight:700}.new-chat-user-tag{color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;padding:.08rem .45rem;font-family:monospace;font-size:.72rem;font-weight:600}.new-chat-user-email{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.new-chat-empty-state{text-align:center;background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:12px;padding:2rem 1rem}.new-chat-empty{color:var(--color-text-secondary);margin:0;font-size:.85rem}.chat-page-layout{height:calc(100vh - var(--topbar-height) - 3rem);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);grid-template-columns:320px 1fr;display:grid;overflow:hidden}.chat-sidebar-pane{border-right:1px solid var(--color-border);flex-direction:column;height:100%;display:flex}.chat-sidebar-header{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.chat-sidebar-header h3{font-size:1.1rem;font-weight:800}.chat-main-pane{flex-direction:column;height:100%;display:flex;position:relative}.no-chat-selected{text-align:center;color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.5rem;margin:auto;padding:2rem;display:flex}.no-chat-selected span{border-radius:var(--radius-full);background:var(--color-bg-tertiary);width:4.5rem;height:4.5rem;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex}.no-chat-selected h3{color:var(--color-text-primary)}.no-chat-selected p{max-width:340px;font-size:.875rem}.new-chat-trigger{align-self:flex-start}@media (width<=768px){.chat-page-layout{height:calc(100vh - var(--topbar-height) - var(--bottomnav-height) - 2rem);grid-template-columns:1fr}.chat-main-pane{display:none}.chat-main-pane.open-mobile{inset:0;top:var(--topbar-height);bottom:var(--bottomnav-height);z-index:45;display:flex;position:fixed}.new-chat-trigger{width:100%}}.feed-refresh-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:background .2s,color .2s;display:flex}.student-qr-card{text-align:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-sizing:border-box;flex-direction:column;align-items:center;width:100%;max-width:100%;height:100%;padding:1.5rem;display:flex;overflow:hidden}.qr-card-header{text-align:left;align-items:center;gap:.75rem;width:100%;margin-bottom:1.25rem;display:flex}.qr-badge-icon{border-radius:var(--radius-lg);background:var(--color-info-light);width:40px;height:40px;color:var(--color-info);flex-shrink:0;justify-content:center;align-items:center;display:flex}.qr-card-header h4{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:700}.qr-card-header p{color:var(--color-text-secondary);margin:.15rem 0 0;font-size:.8rem}.qr-code-frame{border-radius:var(--radius-lg);background:#fff;flex-direction:column;align-items:center;margin-bottom:1.25rem;padding:1rem;display:flex;box-shadow:0 4px 16px #00000014}.qr-canvas-wrapper{justify-content:center;align-items:center;display:flex}.qr-canvas{border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.qr-security-tag{color:var(--color-text-secondary);letter-spacing:.02em;align-items:center;gap:.35rem;margin-top:.65rem;font-size:.725rem;font-weight:600;display:flex}.qr-student-info{flex-direction:column;gap:.2rem;margin-bottom:.75rem;display:flex}.qr-student-name{color:var(--color-text-primary);font-size:1.05rem;font-weight:700}.qr-student-code{color:var(--color-text-secondary);font-family:monospace;font-size:.875rem}.qr-offline-note{color:var(--color-text-tertiary);margin:.5rem 0 0;font-size:.775rem;line-height:1.4}.batch-qr-scanner-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 36px #00000059}.batch-qr-scanner-container.modal-mode{width:100%;max-width:960px;margin:0 auto}.batch-qr-scanner-container.inline-mode{width:100%}.batch-qr-header{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.header-info h3{align-items:center;gap:.5rem;margin:0;font-size:1.2rem;display:flex}.badge-live-pulse{color:var(--color-text-primary);align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:inline-flex}.pulse-dot{background:#10b981;border-radius:50%;width:10px;height:10px;animation:1.8s cubic-bezier(.66,0,0,1) infinite pulse-ring;box-shadow:0 0 #10b981b3}@keyframes pulse-ring{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.scanner-subtitle{color:var(--color-text-secondary);margin:.25rem 0 0;font-size:.85rem}.close-scanner-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:#ffffff14;border-radius:50%;place-items:center;width:34px;height:34px;font-size:1.1rem;transition:all .2s;display:grid}.close-scanner-btn:hover{color:#ef4444;background:#ef444426;border-color:#ef44444d}.scanner-session-toolbar{background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:1rem;padding:.875rem 1.5rem;display:flex}.toolbar-item{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.toolbar-item label{color:var(--color-text-secondary);font-weight:600}.course-name-tag{color:var(--color-accent);border-radius:var(--radius-sm);background:#0ea5e91a;border:1px solid #0ea5e933;padding:.25rem .6rem;font-weight:700}.session-select{border-radius:var(--radius-md);background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;outline:none;padding:.35rem .75rem;font-size:.875rem;font-weight:500}.week-select{min-width:90px}.scanner-viewport-grid{grid-template-columns:1.15fr .85fr;min-height:440px;display:grid}@media (width<=768px){.scanner-viewport-grid{grid-template-columns:1fr}}.camera-view-panel{border-right:1px solid var(--color-border);background:#000;flex-direction:column;display:flex}.camera-feed-box{background:#090d16;flex:1;justify-content:center;align-items:center;min-height:360px;transition:box-shadow .3s;display:flex;position:relative;overflow:hidden}.camera-feed-box.flash-success{box-shadow:inset 0 0 0 6px #10b981}.camera-feed-box.flash-warning{box-shadow:inset 0 0 0 6px #f59e0b}.camera-video{object-fit:cover;width:100%;height:100%}.camera-error-message{text-align:center;color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.viewfinder-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.viewfinder-box{border-radius:12px;width:240px;height:240px;position:relative;box-shadow:0 0 0 4000px #00000073}.corner{border-style:solid;border-color:#38bdf8;width:24px;height:24px;position:absolute}.corner.tl{border-width:4px 0 0 4px;border-top-left-radius:8px;top:0;left:0}.corner.tr{border-width:4px 4px 0 0;border-top-right-radius:8px;top:0;right:0}.corner.bl{border-width:0 0 4px 4px;border-bottom-left-radius:8px;bottom:0;left:0}.corner.br{border-width:0 4px 4px 0;border-bottom-right-radius:8px;bottom:0;right:0}.laser-scan-line{background:linear-gradient(90deg,#38bdf800 0%,#38bdf8 50%,#38bdf800 100%);height:2px;animation:2.2s ease-in-out infinite alternate laser-sweep;position:absolute;top:0;left:4px;right:4px;box-shadow:0 0 10px #38bdf8}@keyframes laser-sweep{0%{top:4px}to{top:calc(100% - 6px)}}.camera-overlay-controls{z-index:10;gap:.5rem;display:flex;position:absolute;top:12px;right:12px}.cam-control-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:var(--radius-md);cursor:pointer;background:#0f172abf;border:1px solid #fff3;padding:.35rem .65rem;font-size:.75rem;font-weight:600;transition:all .2s}.cam-control-btn:hover{background:#0f172af2;border-color:#fff6}.cam-control-btn.active{color:#000;background:#f59e0b;border-color:#f59e0b}.processing-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#38bdf8;z-index:10;background:#0f172ad9;border:1px solid #38bdf866;border-radius:9999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.8rem;font-weight:600;display:flex;position:absolute;bottom:16px}.spinner-mini{border:2px solid #38bdf84d;border-top-color:#38bdf8;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.camera-status-bar{background:#0f172a;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.6rem 1rem;font-size:.75rem;display:flex}.status-live{color:#10b981;align-items:center;gap:.4rem;font-weight:600;display:flex}.live-ring{background:#10b981;border-radius:50%;width:8px;height:8px}.batch-hint{color:var(--color-text-secondary)}.scanned-roster-panel{background:var(--color-bg-primary);flex-direction:column;max-height:480px;display:flex}.roster-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);justify-content:space-between;align-items:center;padding:.875rem 1.25rem;display:flex}.roster-header h4{margin:0;font-size:.95rem;font-weight:600}.scanned-list-scroll{flex-direction:column;flex:1;gap:.5rem;padding:.75rem;display:flex;overflow-y:auto}.empty-scanned-state{text-align:center;height:100%;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:3rem 1rem;display:flex}.empty-scanned-state svg{opacity:.4;margin-bottom:.75rem}.empty-scanned-state p{color:var(--color-text-primary);margin:0;font-size:.9rem;font-weight:600}.empty-scanned-state span{margin-top:.25rem;font-size:.75rem}.scanned-item-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:.65rem .85rem;transition:transform .15s;display:flex}.scanned-item-card.status-success{border-left:3px solid #10b981}.scanned-item-card.status-already_attended{border-left:3px solid #f59e0b}.scanned-item-card.status-error{border-left:3px solid #ef4444}.item-main{flex-direction:column;gap:.2rem;display:flex}.item-name-row{align-items:center;gap:.5rem;display:flex}.item-student-name{color:var(--color-text-primary);font-size:.875rem}.item-student-code{color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:.1rem .4rem;font-family:monospace;font-size:.75rem}.item-sub-row{align-items:center;gap:.6rem;font-size:.75rem;display:flex}.item-status-text{color:var(--color-text-secondary)}.item-time{color:var(--color-text-muted,#64748b)}.item-badge{font-size:.9rem;font-weight:700}.icon-success{color:#10b981}.icon-warning{color:#f59e0b}.icon-error{color:#ef4444}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.attendance-overview-page{flex-direction:column;gap:1.5rem;display:flex}.attendance-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.attendance-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.attendance-page-header p{color:var(--color-text-secondary);margin:0;font-size:.875rem}.faculty-header-actions{align-items:center;gap:.75rem;display:flex}.attendance-overview-grid{grid-template-columns:340px 1fr;align-items:flex-start;gap:1.5rem;display:grid}@media (width<=900px){.attendance-overview-grid{grid-template-columns:1fr}}@media (width<=768px){.attendance-page-header{flex-direction:column;align-items:flex-start}.faculty-header-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}}.attendance-right-col{flex-direction:column;gap:1rem;display:flex}.attendance-course-tabs{gap:.5rem;padding-bottom:4px;display:flex;overflow-x:auto}.attendance-course-tab{background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);white-space:nowrap;cursor:pointer;padding:.5rem 1rem;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}.attendance-course-tab.active{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent);font-weight:700}.faculty-scanner-card{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.faculty-card-header h4{margin:0 0 .25rem;font-size:1rem;font-weight:700}.faculty-card-header p{color:var(--color-text-secondary);margin:0;font-size:.8rem}.faculty-scan-form{flex-direction:column;gap:.75rem;display:flex}.faculty-scan-success{border-radius:var(--radius-md);color:var(--color-success);background:#10b9811f;border:1px solid #10b9814d;padding:.65rem .85rem;font-size:.85rem}.live-attendance-hub{width:100%}.live-counter-card{text-align:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:var(--radius-xl);flex-direction:column;align-items:center;padding:2rem;display:flex}.live-indicator-header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.pulsing-live-dot{background:var(--color-error);width:10px;height:10px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-error) 70%, transparent);border-radius:50%;animation:1.5s infinite pulse-red}.live-label{letter-spacing:.08em;color:var(--color-error);font-size:.75rem;font-weight:800}.live-counter-display{align-items:baseline;gap:.35rem;margin-bottom:.25rem;font-family:JetBrains Mono,monospace;display:flex}.counter-number{color:var(--color-accent);font-size:3.5rem;font-weight:800;line-height:1}.counter-slash{color:var(--color-text-tertiary);font-size:2rem}.counter-total{color:var(--color-text-secondary);font-size:2rem;font-weight:700}.counter-caption{color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.85rem}.live-progress-bar{background:var(--color-bg-tertiary);border-radius:var(--radius-full);width:100%;max-width:320px;height:8px;overflow:hidden}.live-progress-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-success));border-radius:var(--radius-full);height:100%;transition:width .5s}.live-progress-text{color:var(--color-text-tertiary);margin-top:.5rem;font-size:.75rem;font-weight:600}.live-roster-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.5rem}.roster-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.roster-header h4{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:700}.roster-header p{color:var(--color-text-secondary);margin:.2rem 0 0;font-size:.8rem}.roster-search-bar{margin-bottom:1rem}.roster-empty-state{text-align:center;flex-direction:column;align-items:center;padding:3rem 1.5rem;display:flex}.empty-radar-icon{background:var(--color-bg-tertiary);width:48px;height:48px;color:var(--color-text-secondary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.roster-empty-state h5{color:var(--color-text-primary);margin:0 0 .35rem;font-size:1rem;font-weight:700}.roster-empty-state p{color:var(--color-text-secondary);max-width:380px;margin:0;font-size:.85rem}.roster-table-container{overflow-x:auto}.roster-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.roster-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.75rem;font-weight:600}.roster-table td{border-bottom:1px solid var(--color-border-subtle,var(--color-border));color:var(--color-text-primary);vertical-align:middle;padding:.85rem 1rem}.student-cell{align-items:center;gap:.75rem;display:flex}.student-avatar-circle{background:linear-gradient(135deg, var(--color-accent), var(--color-info));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;font-weight:700;display:flex}.student-info{flex-direction:column;display:flex}.student-name{color:var(--color-text-primary);font-size:.875rem}.student-email{color:var(--color-text-tertiary);font-size:.75rem}.method-pill{border-radius:var(--radius-full);align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.method-pill.ultrasonic{background:var(--color-info-light);color:var(--color-info);border:1px solid color-mix(in srgb, var(--color-info) 28%, transparent)}.method-pill.qr{background:var(--color-success-light);color:var(--color-success);border:1px solid color-mix(in srgb, var(--color-success) 28%, transparent)}.time-text{color:var(--color-text-secondary);font-family:JetBrains Mono,monospace;font-size:.8rem}.doctor-session-page{flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto;display:flex}.session-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.session-page-header p{color:var(--color-text-secondary);font-size:.875rem}.session-grid{grid-template-columns:1fr 1fr;align-items:flex-start;gap:1.5rem;display:grid}@media (width<=768px){.session-grid{grid-template-columns:1fr}}.scanner-card{flex-direction:column;gap:1rem;display:flex}.scanner-card h4{font-size:1.05rem;font-weight:700}.scanner-card p{color:var(--color-text-secondary);font-size:.85rem}.scanner-form{flex-direction:column;gap:.75rem;display:flex}.scanned-success-banner{background:var(--color-success-light);color:var(--color-success);border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.scanner-mode-switch-bar{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.35rem;margin-bottom:.75rem;padding:.35rem;display:flex}.mode-tab-btn{border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem .75rem;font-size:.825rem;font-weight:600;transition:all .2s}.mode-tab-btn:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.mode-tab-btn.active{background:var(--color-accent);color:#fff}.security-badge-pill{color:var(--color-success);border-radius:var(--radius-full);background:#22c55e1f;border:1px solid #22c55e4d;align-items:center;gap:.35rem;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.interactive-solution-editor{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.solution-editor-header{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .85rem;display:flex}.view-mode-tabs{background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:.25rem;padding:.2rem;display:flex}.view-tab-btn{border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.8rem;font-weight:500;display:flex}.view-tab-btn:hover{color:var(--color-text-primary)}.view-tab-btn.active{color:#818cf8;background:#6366f126;font-weight:600}.editor-quick-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.action-pill-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.8rem;font-weight:500;display:flex}.action-pill-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-hover)}.action-pill-btn.active{color:#818cf8;background:#6366f126;border-color:#6366f166}.action-pill--draw{color:#a5b4fc;background:linear-gradient(135deg,#6366f11f,#a855f71f);border-color:#6366f14d}.action-pill--draw:hover{color:#fff;background:linear-gradient(135deg,#6366f138,#a855f738)}.solution-editor-toolbar{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);align-items:center;padding:.4rem .85rem;display:flex;overflow-x:auto}.formatting-group{align-items:center;gap:.25rem;display:flex}.toolbar-btn{border-radius:var(--radius-sm);min-width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 .4rem;font-family:inherit;font-size:.825rem;display:flex}.toolbar-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.math-palette-bar{border-bottom:1px solid var(--color-border);background:#6366f10a;flex-direction:column;gap:.4rem;padding:.6rem .85rem;display:flex}.math-palette-title{text-transform:uppercase;letter-spacing:.05em;color:#818cf8;font-size:.75rem;font-weight:600}.math-chips-list{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.math-chip-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);padding:.25rem .55rem;font-family:JetBrains Mono,monospace;font-size:.775rem}.math-chip-btn:hover{color:#c7d2fe;background:#6366f11f;border-color:#818cf8}.editor-content-grid{width:100%;display:grid}.editor-content-grid.mode--write{grid-template-columns:1fr}.editor-content-grid.mode--split{grid-template-columns:1fr 1fr}.editor-content-grid.mode--preview{grid-template-columns:1fr}.textarea-container{background:var(--color-bg-primary);border-right:1px solid var(--color-border);flex-direction:column;display:flex}.solution-textarea{width:100%;color:var(--color-text-primary);resize:vertical;background:0 0;border:none;outline:none;flex:1;padding:1rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.9rem;line-height:1.6}.textarea-hint{color:var(--color-text-tertiary);border-top:1px solid var(--color-border);background:var(--color-bg-elevated);padding:.4rem .85rem;font-size:.725rem}.preview-container{background:var(--color-bg-elevated);flex-direction:column;display:flex;overflow-y:auto}.preview-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);padding:.4rem .85rem;font-size:.75rem;font-weight:600}.preview-body{flex:1;padding:1rem 1.25rem}@media (width<=768px){.editor-content-grid.mode--split{grid-template-columns:1fr}.textarea-container{border-right:none;border-bottom:1px solid var(--color-border)}}.task-submission-card{flex-direction:column;gap:1.25rem;display:flex}.submission-form-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.submission-form-header h4{font-size:1.05rem;font-weight:700}.submission-badge{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);padding:.2rem .6rem;font-size:.75rem;font-weight:600}.task-submission-form{flex-direction:column;gap:1.25rem;display:flex}.submission-instruction{color:var(--color-text-secondary);margin-bottom:.75rem;font-size:.85rem}.pdf-drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex}.pdf-drop-zone:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.drop-zone-icon{border-radius:var(--radius-full);background:var(--color-bg-secondary);width:3.25rem;height:3.25rem;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:.8rem;font-weight:800;display:inline-flex}.drop-zone-title{color:var(--color-text-primary);font-size:.95rem;font-weight:700}.drop-zone-hint{color:var(--color-text-tertiary);margin-top:.25rem;font-size:.75rem}.submission-actions{justify-content:flex-end;display:flex}.task-detail-page{flex-direction:column;gap:1.5rem;max-width:760px;margin:0 auto;display:flex}.task-detail-header-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;gap:.75rem;padding:1.75rem 2rem;display:flex}.task-header-meta{justify-content:space-between;align-items:center;display:flex}.task-type-badge{color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-sm);padding:.25rem .65rem;font-size:.8rem;font-weight:700}.doctor-review-link{color:var(--color-accent);font-size:.85rem;font-weight:700;text-decoration:none}.task-detail-title{color:var(--color-text-primary);font-size:1.5rem;font-weight:800}.task-detail-desc{color:var(--color-text-secondary);font-size:.95rem;line-height:1.6}.task-deadline-pill{color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-radius:var(--radius-md);align-items:center;gap:.5rem;width:fit-content;padding:.4rem .85rem;font-size:.85rem;display:flex}.task-deadline-pill strong{color:var(--color-text-primary)}.pdf-preview-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);flex-direction:column;display:flex;overflow:hidden}.pdf-preview-header{background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.pdf-icon{border-radius:var(--radius-sm);background:var(--color-bg-secondary);min-width:2rem;height:2rem;color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.68rem;font-weight:800;display:inline-flex}.pdf-title{flex:1;margin-left:.5rem;font-size:.875rem;font-weight:600}.pdf-external-btn{color:var(--color-accent);font-size:.8rem;font-weight:600;text-decoration:none}.pdf-iframe-frame{width:100%;height:520px}.pdf-iframe{border:none;width:100%;height:100%}.review-table-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.review-table-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1.25rem;display:flex}.review-table-header h4{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:800}.review-table-header p{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.85rem}.review-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.review-search-wrap{flex:1;align-items:center;min-width:260px;max-width:380px;display:flex;position:relative}.review-search-wrap svg{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:.85rem}.review-search-input{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);padding:.5rem 2rem .5rem 2.35rem;font-size:.875rem;transition:all .2s}.review-search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle);outline:none}.clear-search-btn{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.8rem;position:absolute;right:.75rem}.clear-search-btn:hover{color:var(--color-text-primary)}.review-filters-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.status-pill-group{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:2px;padding:3px;display:flex}.status-filter-pill{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:all .15s}.status-filter-pill:hover{color:var(--color-text-primary)}.status-filter-pill.active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-xs)}.status-filter-pill.active.pending{color:var(--color-warning)}.status-filter-pill.active.accepted{color:var(--color-success)}.status-filter-pill.active.resubmit{color:var(--color-info)}.status-filter-pill.active.declined{color:var(--color-error)}.review-select{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;padding:.45rem .85rem;font-size:.82rem;font-weight:600}.bulk-actions-banner{background:var(--color-accent-subtle,#3b82f61f);border:1px solid var(--color-accent);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.bulk-selection-info{color:var(--color-text-primary);align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;display:flex}.bulk-count-badge{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);padding:.15rem .5rem;font-size:.75rem;font-weight:800}.bulk-inputs-row{flex:1;align-items:center;gap:.75rem;max-width:480px;display:flex}.bulk-grade-input-wrap{color:var(--color-text-secondary);align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;display:flex}.bulk-grade-input{border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);width:65px;color:var(--color-text-primary);padding:.35rem .5rem;font-size:.85rem;font-weight:700}.bulk-comment-input{border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);flex:1;padding:.35rem .65rem;font-size:.82rem}.bulk-action-buttons{align-items:center;gap:.5rem;display:flex}.review-table{border-collapse:collapse;text-align:left;width:100%}.review-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;padding:.75rem 1rem;font-size:.75rem;font-weight:700}.sortable-th{cursor:pointer;transition:color .15s}.sortable-th:hover{color:var(--color-text-primary)}.sort-arrow-active{color:var(--color-accent);margin-left:.25rem;font-size:.7rem}.sort-arrow-inactive{color:var(--color-border-hover);margin-left:.25rem;font-size:.75rem}.table-checkbox{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.review-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.85rem 1rem;font-size:.875rem}.review-table tbody tr{transition:background .15s}.review-table tbody tr:hover{background:var(--color-bg-tertiary)}.flagged-row{background:#ef44440f}.student-name-col strong{color:var(--color-text-primary);font-size:.92rem}.sim-pill{border-radius:var(--radius-full);padding:2px 8px;font-size:.75rem;font-weight:700}.sim-pill.high{background:var(--color-error-light,#dc26261f);color:var(--color-error)}.sim-pill.med{background:var(--color-warning-light,#d977061f);color:var(--color-warning)}.sim-pill.low{background:var(--color-success-light,#16a34a1f);color:var(--color-success)}.sim-pill.none{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.grade-col strong{font-family:JetBrains Mono,monospace}.submission-inspect-modal{flex-direction:column;gap:1.25rem;display:flex}.inspect-meta-row{color:var(--color-text-secondary);justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.grading-inputs-row{grid-template-columns:140px 1fr;gap:1rem;display:grid}.inspect-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding-top:.5rem;display:flex}.task-review-page{flex-direction:column;gap:1.5rem;max-width:1000px;margin:0 auto;display:flex}.review-page-header{flex-direction:column;gap:.35rem;display:flex}.back-to-task-link{color:var(--color-accent);margin-bottom:.25rem;font-size:.85rem;font-weight:600;text-decoration:none}.review-page-header h2{font-size:1.5rem;font-weight:800}.review-page-header p{color:var(--color-text-secondary);font-size:.875rem}.quiz-start-card{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;max-width:600px;margin:0 auto;padding:2.5rem 2rem;display:flex}.quiz-icon-badge{margin-bottom:.5rem;font-size:2.5rem}.quiz-start-header h2{font-size:1.6rem;font-weight:800}.quiz-subtitle{color:var(--color-text-secondary);margin-top:.25rem;font-size:.9rem}.quiz-parameters-grid{grid-template-columns:repeat(3,1fr);gap:1rem;width:100%;display:grid}@media (width<=500px){.quiz-parameters-grid{grid-template-columns:1fr}}.param-box{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:.25rem;padding:1rem .75rem;display:flex}.param-icon{font-size:1.25rem}.param-label{color:var(--color-text-tertiary);text-transform:uppercase;font-size:.75rem}.param-value{color:var(--color-text-primary);font-size:.9rem}.quiz-instructions-banner{background:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning);border-radius:var(--radius-md);text-align:left;width:100%;padding:1.25rem;font-size:.85rem}.quiz-instructions-banner h4{color:inherit;margin-bottom:.5rem;font-size:.9rem}.quiz-instructions-banner ul{color:var(--color-text-primary);flex-direction:column;gap:.35rem;padding-left:1.25rem;list-style:outside;display:flex}.quiz-question-card{flex-direction:column;gap:1.25rem;display:flex}.question-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.question-index-badge{color:var(--color-accent);font-size:.9rem;font-weight:700}.question-type-badge{color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem}.question-prompt-box{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:1.25rem}.question-text{color:var(--color-text-primary);font-size:1.05rem;font-weight:600;line-height:1.5}.fullscreen-quiz-runner{background:var(--color-bg-primary);z-index:99999;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.quiz-runner-header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.runner-title-group{align-items:center;gap:1rem;display:flex}.runner-title-group h3{font-size:1.15rem;font-weight:800}.security-status-tag{color:var(--color-success);background:var(--color-success-light);border-radius:var(--radius-full);padding:2px 8px;font-size:.75rem;font-weight:700}.runner-stats-group{align-items:center;gap:1rem;display:flex}.runner-timer-pill{color:var(--color-accent);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:.35rem .85rem;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:800}.runner-timer-pill.urgent{color:var(--color-error);background:var(--color-error-light);border-color:var(--color-error);animation:1s infinite pulse}.runner-violations-pill{color:var(--color-warning);background:var(--color-warning-light);border-radius:var(--radius-md);padding:.35rem .75rem;font-size:.8rem;font-weight:700}.quiz-runner-body{flex:1;width:100%;max-width:860px;margin:0 auto;padding:2rem;overflow-y:auto}.quiz-runner-footer{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex}.question-nav-dots{gap:.4rem;display:flex}.question-dot{border-radius:var(--radius-sm);background:var(--color-bg-tertiary);width:32px;height:32px;color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.question-dot.answered{border:2px solid var(--color-accent);color:var(--color-accent)}.question-dot.active{background:var(--color-accent);color:#fff}.quiz-locked-screen{background:var(--color-bg-primary);z-index:99999;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex;position:fixed;inset:0}.lock-icon{font-size:4rem}.quiz-locked-screen h2{color:var(--color-error);font-size:1.75rem;font-weight:800}.quiz-locked-screen p{max-width:440px;color:var(--color-text-secondary);font-size:.95rem}.quiz-attempt-page{max-width:680px;margin:0 auto;padding:1rem 0}.quiz-finished-page{text-align:center;max-width:520px;margin:2rem auto}.finished-card{flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.finished-icon{border-radius:var(--radius-full);background:var(--color-success-light);width:4rem;height:4rem;color:var(--color-success);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.finished-card h2{font-size:1.5rem;font-weight:800}.finished-card p{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5}.quiz-results-card{flex-direction:column;gap:1.25rem;display:flex}.results-card-header h4{font-size:1.1rem;font-weight:700}.results-card-header p{color:var(--color-text-tertiary);font-size:.8rem}.quiz-results-table{border-collapse:collapse;text-align:left;width:100%}.quiz-results-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.quiz-results-table td{border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.875rem}.suspicious-row{background:#ef44440d}.exit-count-badge{border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-text-secondary);padding:2px 8px;font-size:.75rem;font-weight:700}.exit-count-badge.warning{background:var(--color-warning-light);color:var(--color-warning)}.quiz-results-page{flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto;display:flex}.results-page-header{flex-direction:column;gap:.25rem;display:flex}.back-link{color:var(--color-accent);margin-bottom:.25rem;font-size:.85rem;font-weight:600;text-decoration:none}.results-page-header h2{font-size:1.5rem;font-weight:800}.results-page-header p{color:var(--color-text-secondary);font-size:.875rem}.quiz-qr-scanner-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);border:1px solid var(--color-border);flex-direction:column;display:flex;overflow:hidden}.quiz-qr-header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem;display:flex}.quiz-qr-header h3{margin:0;font-size:1.1rem}.close-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.25rem}.quiz-qr-body{background:#000;justify-content:center;align-items:center;min-height:400px;display:flex;position:relative}.camera-view-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.camera-video{object-fit:cover;width:100%;height:100%;transition:filter .3s;position:absolute;top:0;left:0}.scan-target{z-index:10;color:#fff;text-shadow:0 2px 4px #00000080;flex-direction:column;align-items:center;gap:1rem;display:flex;position:absolute}.target-box{border:2px dashed #ffffffb3;border-radius:20px;width:250px;height:250px;box-shadow:0 0 0 4000px #0006}.grade-overlay{z-index:20;background:var(--color-bg-primary);border-radius:var(--radius-lg);text-align:center;width:90%;max-width:400px;padding:2rem;position:absolute;box-shadow:0 8px 30px #0000004d}.scanned-code-display{background:var(--color-bg-secondary);border-radius:var(--radius-md);word-break:break-all;margin:1rem 0;padding:.5rem;font-family:monospace}.grade-form{flex-direction:column;gap:1rem;display:flex}.grade-form input{border-radius:var(--radius-md);border:2px solid var(--color-primary);text-align:center;padding:.75rem;font-size:1.2rem;font-weight:700}.grade-form-actions{justify-content:space-between;gap:1rem;display:flex}.grade-form-actions button{flex:1}.grades-page{flex-direction:column;gap:1.5rem;max-width:860px;margin:0 auto;display:flex}.grades-page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.grades-header-title-area h2{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.grades-header-title-area p{color:var(--color-text-secondary);margin:0;font-size:.875rem}.grades-list-container{flex-direction:column;display:flex}.doctor-gradebook-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.doctor-gradebook-table{border-collapse:collapse;text-align:left;width:100%}.doctor-gradebook-table th{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);padding:1rem;font-size:.8125rem;font-weight:600}.doctor-gradebook-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle;padding:1rem;font-size:.9375rem}.doctor-gradebook-table tr:last-child td{border-bottom:none}.doctor-gradebook-table tr:hover td{background-color:#00000005}.cal-card-link{color:inherit;margin-bottom:.85rem;text-decoration:none;display:block}.cal-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--radius-md);transition:all var(--transition-fast);box-shadow:var(--shadow-xs);align-items:center;gap:1.25rem;padding:1.1rem 1.25rem;display:flex;position:relative;overflow:hidden}.cal-card-link:hover .cal-card{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.cal-card-link.type-task .cal-card{border-left-color:var(--tag-task,#3a6852)}.cal-card-link.type-quiz .cal-card{border-left-color:var(--tag-quiz,#5b2333)}.cal-card-link.type-exam .cal-card{border-left-color:var(--tag-exam,#8b2539)}.cal-card-link.type-lecture .cal-card{border-left-color:var(--tag-material,#3b5f85)}.cal-date-box{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:58px;min-width:58px;height:58px;display:flex}.cal-date-month{letter-spacing:.08em;color:var(--color-accent);text-transform:uppercase;margin-bottom:2px;font-size:.65rem;font-weight:800;line-height:1}.cal-date-day{color:var(--color-text-primary);font-size:1.35rem;font-weight:800;line-height:1}.cal-details{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.cal-meta-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.cal-type-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent);align-items:center;gap:.3rem;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.type-task .cal-type-pill{color:var(--tag-task,#3a6852);background:#3a68521f}.type-quiz .cal-type-pill{color:var(--tag-quiz,#5b2333);background:#5b23331f}.type-exam .cal-type-pill{color:var(--tag-exam,#8b2539);background:#8b25391f}.cal-meta-dot{color:var(--color-text-tertiary);font-size:.65rem}.cal-course-pill{border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;max-width:320px;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-flex;overflow:hidden}.cal-course-pill svg{color:var(--color-accent);flex-shrink:0}.cal-title{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.05rem;font-weight:700;line-height:1.35;overflow:hidden}.cal-bottom-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:2px;display:flex}.cal-time{color:var(--color-text-tertiary);align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;display:inline-flex}.cal-status-badge{border-radius:var(--radius-full);padding:1px 7px;font-size:.7rem;font-weight:700;line-height:1.4}.cal-status-badge.status-normal{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.cal-status-badge.status-urgent{background:var(--color-warning-light);color:var(--color-warning)}.cal-status-badge.status-overdue{background:var(--color-error-light);color:var(--color-error)}.cal-sub-badge{border-radius:var(--radius-full);border:1px solid #0000;align-items:center;gap:.3rem;padding:2px 8px;font-size:.72rem;font-weight:700;line-height:1.35;display:inline-flex}.cal-sub-badge.badge-not-submitted{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-color:var(--color-border)}.cal-sub-badge.badge-missing{color:#ef4444;background:#dc26261f;border-color:#dc262640}.cal-sub-badge.badge-accepted{color:#10b981;background:#10b9811f;border-color:#10b98140}.cal-sub-badge.badge-pending{color:#f59e0b;background:#f59e0b1f;border-color:#f59e0b40}.cal-sub-badge.badge-resubmission{color:#3b82f6;background:#3b82f61f;border-color:#3b82f640}.cal-sub-badge.badge-declined{color:#ef4444;background:#ef44441f;border-color:#ef444440}.cal-sub-badge.badge-doctor-count{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-border)}.cal-action-arrow{color:var(--color-accent);opacity:.85;transition:all var(--transition-fast);flex-shrink:0;align-items:center;gap:.35rem;padding-left:.5rem;font-size:.82rem;font-weight:600;display:flex}.cal-card-link:hover .cal-action-arrow{opacity:1;transform:translate(4px)}@media (width<=600px){.cal-card{gap:.75rem;padding:.9rem 1rem}.cal-action-arrow span{display:none}.cal-date-box{width:50px;min-width:50px;height:50px}.cal-date-day{font-size:1.15rem}}.calendar-event-list{flex-direction:column;gap:.75rem;display:flex}.calendar-event-card{align-items:center;gap:1.25rem;padding:1rem 1.25rem;display:flex}.event-date-box{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:flex}.date-month{color:var(--color-accent);font-size:.65rem;font-weight:800}.date-day{color:var(--color-text-primary);font-size:1.25rem;font-weight:800;line-height:1}.event-main-details{flex-direction:column;flex:1;gap:.2rem;display:flex}.event-tag-row{align-items:center;gap:.5rem;display:flex}.event-type-pill{font-size:.75rem;font-weight:700}.event-course-name{color:var(--color-text-tertiary);font-size:.75rem}.event-title{color:var(--color-text-primary);font-size:1rem;font-weight:700}.event-time{color:var(--color-text-secondary);font-size:.75rem}.event-action-link{color:var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent-subtle);transition:all var(--transition-fast);padding:.4rem .85rem;font-size:.85rem;font-weight:700;text-decoration:none}.event-action-link:hover{background:var(--color-accent);color:#fff}.calendar-page{flex-direction:column;gap:1.5rem;max-width:760px;margin:0 auto;display:flex}.calendar-page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.calendar-header-title-area h2{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.calendar-header-title-area p{color:var(--color-text-secondary);margin:0;font-size:.875rem}.feed-refresh-icon-btn{color:var(--color-text-tertiary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;display:flex}.feed-refresh-icon-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.feed-refresh-icon-btn:disabled{opacity:.5;cursor:not-allowed}.ticket-form-card{flex-direction:column;gap:1rem;display:flex}.ticket-form-header h4{margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.ticket-form-header p{color:var(--color-text-secondary);font-size:.825rem}.ticket-form{flex-direction:column;gap:1rem;display:flex}.ticket-description-editor{flex-direction:column;gap:.4rem;display:flex}.ticket-editor-label{color:var(--color-text-primary);font-size:.85rem;font-weight:600}.ticket-editor-hint{color:var(--color-text-tertiary);margin:0;font-size:.78rem}.ticket-form-actions{justify-content:flex-end;display:flex}.ticket-thread-card{flex-direction:column;gap:1.25rem;margin-bottom:1rem;display:flex}.ticket-header{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.5rem;padding-bottom:.75rem;display:flex}.ticket-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.ticket-title-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.ticket-title-group h3{margin:0;font-size:1.1rem;font-weight:800}.ticket-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.ticket-collapse-btn{color:var(--color-text-secondary)}.ticket-collapse-btn:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.ticket-meta-row{color:var(--color-text-tertiary);align-items:center;gap:1rem;font-size:.75rem;display:flex}.ticket-time,.ticket-updated-time{color:var(--color-text-tertiary);font-size:.75rem}.ticket-closed-notice{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px dashed var(--color-border);color:var(--color-text-secondary);text-align:center;padding:.75rem 1rem;font-size:.85rem}.ticket-messages-chain{flex-direction:column;gap:.75rem;display:flex}.ticket-msg-box{border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;gap:.25rem;padding:.85rem 1rem;display:flex}.ticket-msg-box.admin{background:var(--color-accent-subtle);border-left:3px solid var(--color-accent)}.ticket-msg-box.user{background:var(--color-bg-tertiary)}.msg-header{align-items:center;gap:.5rem;font-size:.75rem;display:flex}.msg-sender{color:var(--color-text-primary);font-weight:700}.msg-role-tag{color:var(--color-text-tertiary);background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:1px 4px;font-size:.65rem;font-weight:700}.msg-date{color:var(--color-text-tertiary);margin-left:auto}.msg-body{color:var(--color-text-primary);min-width:0;font-size:.9rem;line-height:1.55}.ticket-reply-box{flex-direction:column;gap:.75rem;display:flex}.ticket-reply-actions{justify-content:flex-end;display:flex}.support-page{flex-direction:column;gap:1.5rem;width:100%;min-width:0;max-width:960px;margin:0 auto;display:flex}.support-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.support-page-header p{color:var(--color-text-secondary);font-size:.875rem}.support-layout-grid{flex-direction:column;gap:1.5rem;width:100%;min-width:0;display:flex}.support-right-col{flex-direction:column;gap:1rem;display:flex}.support-history-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.support-history-header h4{margin:0;font-size:1.05rem;font-weight:700}.collapse-all-btn{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:.25rem .5rem;font-size:.8rem}.collapse-all-btn:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.tickets-stack{flex-direction:column;gap:.75rem;display:flex}.ticket-item-wrapper{width:100%}.ticket-summary-badges{align-items:center;gap:.75rem;display:flex}.ticket-expand-hint{color:var(--color-text-tertiary);transition:color var(--transition-fast);font-size:.75rem}.ticket-summary-item:hover .ticket-expand-hint{color:var(--color-accent)}.ticket-summary-item{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);justify-content:space-between;align-items:center;padding:1rem;display:flex}.ticket-summary-item:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.ticket-summary-info{flex-direction:column;gap:.2rem;display:flex}.ticket-summary-info strong{color:var(--color-text-primary);font-size:.9rem}.ticket-summary-info span{color:var(--color-text-tertiary);font-size:.75rem}.ticket-status-pill{text-transform:uppercase;border-radius:var(--radius-full);padding:2px 8px;font-size:.7rem;font-weight:700}.ticket-status-pill.open{background:var(--color-info-light);color:var(--color-info)}.ticket-status-pill.in_progress{background:var(--color-warning-light);color:var(--color-warning)}.ticket-status-pill.resolved{background:var(--color-success-light);color:var(--color-success)}.ticket-status-pill.closed{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.evaluation-form-card{flex-direction:column;gap:1.5rem;display:flex}.evaluation-anonymity-banner{background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-md);align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.banner-shield{font-size:2rem}.evaluation-anonymity-banner h4{color:var(--color-accent);margin-bottom:.25rem;font-size:1rem;font-weight:700}.evaluation-anonymity-banner p{color:var(--color-text-secondary);font-size:.825rem;line-height:1.4}.evaluation-questions-form{flex-direction:column;gap:2rem;display:flex}.evaluation-question-item{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.75rem;padding-bottom:1.5rem;display:flex}.eval-question-num{color:var(--color-accent);text-transform:uppercase;font-size:.75rem;font-weight:700}.eval-question-text{color:var(--color-text-primary);font-size:1.05rem;font-weight:600}.eval-rating-scale{align-items:center;gap:1rem;margin:.5rem 0;display:flex}.scale-label{color:var(--color-text-tertiary);font-size:.75rem;font-weight:600}.stars-container{gap:.5rem;display:flex}.star-btn{border-radius:var(--radius-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--transition-fast);padding:.4rem .85rem;font-size:.85rem;font-weight:700}.star-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.star-btn.selected{background:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:0 2px 8px var(--color-accent-glow)}.evaluation-form-actions{justify-content:flex-end;display:flex}.evaluation-page{flex-direction:column;gap:1.5rem;max-width:760px;margin:0 auto;display:flex}.evaluation-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.evaluation-page-header p{color:var(--color-text-secondary);font-size:.875rem}.evaluation-completed-card{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.completed-icon{border-radius:var(--radius-full);background:var(--color-success-light);width:4rem;height:4rem;color:var(--color-success);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.evaluation-completed-card h2{font-size:1.5rem;font-weight:800}.evaluation-completed-card p{color:var(--color-text-secondary);max-width:420px;font-size:.9rem;line-height:1.5}.avatar-picker-container{background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);flex-direction:column;gap:1.25rem;margin-top:1.5rem;padding:1.75rem;display:flex}.avatar-picker-header{flex-direction:column;gap:.25rem;display:flex}.avatar-picker-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.avatar-picker-title-row h4{color:var(--color-text-primary);margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.avatar-picker-desc{color:var(--color-text-secondary);margin:0;font-size:.875rem;line-height:1.45}.avatar-selection-preview-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.avatar-preview-info{align-items:center;gap:1rem;display:flex}.avatar-preview-circle{background:var(--color-bg-secondary);border:2px solid var(--color-accent);width:58px;height:58px;box-shadow:0 0 16px -2px rgba(var(--color-accent-rgb,37, 99, 235), .35);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar-preview-circle img{object-fit:cover;width:100%;height:100%}.avatar-preview-placeholder{color:var(--color-text-secondary);font-size:1.5rem;font-weight:700}.avatar-preview-text{flex-direction:column;gap:.2rem;display:flex}.avatar-preview-text strong{color:var(--color-text-primary);font-size:.95rem;font-weight:700}.avatar-preview-text span{color:var(--color-text-secondary);font-size:.8rem}.avatar-save-btn{font-weight:600}.avatar-search-row{width:100%}.avatar-search-input-wrap{align-items:center;width:100%;display:flex;position:relative}.avatar-search-icon{color:var(--color-text-secondary);pointer-events:none;position:absolute;left:.85rem}.avatar-keyword-input{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);outline:none;padding:.65rem 2.5rem .65rem 2.4rem;font-size:.875rem;transition:all .2s}.avatar-keyword-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb,37, 99, 235), .15)}.avatar-clear-search{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.75rem;position:absolute;right:.75rem}.avatar-clear-search:hover{color:var(--color-text-primary)}.avatar-categories-track{scrollbar-width:thin;align-items:center;gap:.5rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.avatar-cat-pill{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .85rem;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.avatar-cat-pill:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary);background:var(--color-bg-hover)}.avatar-cat-pill.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:0 2px 8px rgba(var(--color-accent-rgb,37, 99, 235), .3)}.cat-count{opacity:.8;background:#00000026;border-radius:999px;padding:.1rem .35rem;font-size:.7rem}.avatar-cat-pill.active .cat-count{background:#ffffff40}.avatar-grid-scroll-area{max-height:440px;margin-right:-.25rem;padding-right:.5rem;overflow-y:auto}.avatar-grid-scroll-area::-webkit-scrollbar{width:6px}.avatar-grid-scroll-area::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:1rem;padding:.25rem 0;display:grid}.avatar-option{cursor:pointer;border-radius:var(--radius-lg);background:var(--color-bg-tertiary);border:2px solid #0000;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.avatar-option:hover{border-color:var(--color-border);box-shadow:var(--shadow-md);transform:translateY(-3px)}.avatar-option.selected{border-color:var(--color-accent);background:rgba(var(--color-accent-rgb,37, 99, 235), .08);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb,37, 99, 235), .25)}.avatar-option img{object-fit:cover;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:50%;width:64px;height:64px;transition:transform .2s}.avatar-option:hover img{transform:scale(1.08)}.avatar-selected-badge{background:var(--color-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:.35rem;right:.35rem;box-shadow:0 2px 6px #00000040}.avatar-option-label{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.675rem;font-weight:600;overflow:hidden}.avatar-option.selected .avatar-option-label{color:var(--color-accent);font-weight:700}@media (width<=640px){.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.75rem}.avatar-option img{width:52px;height:52px}.avatar-selection-preview-card{flex-direction:column;align-items:stretch}.avatar-save-btn{width:100%}}.profile-hero-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);box-sizing:border-box;width:100%;padding:1.75rem 2rem}@media (width<=600px){.profile-hero-card{padding:1.25rem 1rem}}.profile-hero-content{align-items:center;gap:1.5rem;width:100%;display:flex}@media (width<=600px){.profile-hero-content{text-align:center;flex-direction:column;gap:1rem}}.profile-user-details{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.profile-name-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}@media (width<=600px){.profile-name-row{justify-content:center}}.profile-name-row h2{color:var(--color-text-primary);margin:0;font-size:1.5rem;font-weight:800}.verified-badge-pill{color:var(--color-success);background:var(--color-success-light);border-radius:var(--radius-full);border:1px solid #1e7e5933;padding:3px 10px;font-size:.75rem;font-weight:700}.unverified-badge-pill{color:#eab308;border-radius:var(--radius-full);background:#eab3081f;border:1px solid #eab30840;padding:3px 10px;font-size:.75rem;font-weight:700}.profile-meta-tags{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}@media (width<=600px){.profile-meta-tags{justify-content:center}}.profile-code-tag{color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-sm);padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700}.profile-email-tag{color:var(--color-text-secondary);word-break:break-all;font-size:.825rem}.profile-avatar-clickable{cursor:pointer;border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.profile-avatar-clickable:hover{transform:scale(1.04)}.profile-avatar-edit-badge{background:var(--color-accent);color:#fff;border:2px solid var(--color-bg-secondary);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:all .2s;display:flex;position:absolute;bottom:0;right:0;box-shadow:0 2px 8px #0003}.profile-avatar-clickable:hover .profile-avatar-edit-badge{background:var(--color-accent-hover,#1d4ed8);transform:scale(1.1)}.avatar-modal-backdrop{-webkit-backdrop-filter:blur(12px);z-index:10000;background:#000000bf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.avatar-modal-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-2xl,24px);width:100%;max-width:860px;max-height:90vh;padding:1.5rem;position:relative;overflow-y:auto;box-shadow:0 25px 60px -15px #0009}.avatar-modal-card .avatar-picker-container{box-shadow:none;border:none;margin-top:0;padding:0}.avatar-modal-top-bar{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.avatar-modal-title{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:700}.avatar-modal-close-btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;transition:all .15s;display:flex}.avatar-modal-close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-text-secondary)}.zu-verify-card{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);box-sizing:border-box;flex-direction:column;justify-content:space-between;width:100%;height:100%;margin-top:0;padding:1.5rem;display:flex}.zu-verify-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:1rem;display:flex}.zu-verify-title-row{align-items:center;gap:.75rem;display:flex}.zu-verify-icon{border-radius:var(--radius-lg);color:#0284c7;background:#0284c71f;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.zu-verify-title{color:var(--color-text-primary);margin:0;font-size:1.05rem;font-weight:700}.zu-verify-subtitle{color:var(--color-text-secondary);margin:.15rem 0 0;font-size:.75rem}.zu-badge-verified{color:#22c55e;letter-spacing:.02em;background:#22c55e1f;border:1px solid #22c55e4d;border-radius:9999px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.zu-badge-unverified{color:#eab308;letter-spacing:.02em;background:#eab3081f;border:1px solid #eab3084d;border-radius:9999px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.zu-verify-body{flex-direction:column;flex:1;gap:1rem;padding-top:1rem;display:flex}.zu-verified-details{flex-direction:column;flex:1;gap:.85rem;display:flex}.zu-verified-banner{border-radius:var(--radius-md);color:#16a34a;background:#22c55e14;border:1px solid #22c55e40;align-items:center;gap:.75rem;padding:.75rem .95rem;display:flex}.zu-verified-banner-icon{color:#22c55e;flex-shrink:0}.zu-verified-banner-text{flex-direction:column;gap:.15rem;font-size:.8rem;line-height:1.35;display:flex}.zu-verified-banner-text strong{color:var(--color-text-primary);font-weight:700}.zu-verified-banner-text span{color:var(--color-text-secondary);font-size:.75rem}.zu-credentials-grid{flex-direction:column;gap:.75rem;margin:.2rem 0;display:flex}.zu-cred-tile{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;gap:.35rem;padding:.75rem .95rem;transition:border-color .2s,box-shadow .2s;display:flex}.zu-cred-tile:hover{border-color:var(--color-accent)}.zu-cred-tile-top{justify-content:space-between;align-items:center;display:flex}.zu-cred-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-size:.725rem;font-weight:600}.zu-copy-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;padding:.15rem .5rem;font-size:.675rem;font-weight:600;transition:all .15s}.zu-copy-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-text-secondary)}.zu-cred-value{color:var(--color-text-primary);letter-spacing:.04em;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.05rem;font-weight:700}.zu-reverify-btn{justify-content:center;align-items:center;gap:.45rem;width:100%;margin-top:.5rem;font-weight:600;display:flex}.zu-unverified-section{flex-direction:column;flex:1;gap:1rem;display:flex}.zu-instruction-text{color:var(--color-text-secondary);margin:0;font-size:.85rem;line-height:1.5}.zu-input-group{margin-top:.25rem}.zu-submit-btn{font-weight:600}.zu-result-box{margin-top:.5rem}.zu-result-success{border-radius:var(--radius-md);color:#22c55e;background:#22c55e1a;border:1px solid #22c55e4d;align-items:flex-start;gap:.65rem;padding:.75rem 1rem;font-size:.825rem;line-height:1.4;display:flex}.zu-result-notfound{border-radius:var(--radius-md);color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;align-items:flex-start;gap:.65rem;padding:.75rem 1rem;font-size:.825rem;line-height:1.4;display:flex}.zu-result-sub{opacity:.85;margin:.25rem 0 0;font-size:.75rem}.zu-result-mismatch{border-radius:var(--radius-md);color:#eab308;background:#eab30814;border:1px solid #eab3084d;flex-direction:column;gap:.65rem;padding:.85rem 1rem;font-size:.825rem;display:flex}.zu-mismatch-header{align-items:center;gap:.45rem;font-weight:700;display:flex}.zu-mismatch-text{color:var(--color-text-primary);margin:0;line-height:1.5}.zu-code-tag{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:.15rem .4rem;font-family:monospace;font-size:.85rem}.zu-code-tag.highlight{color:#0284c7;background:#0284c726;font-weight:700}.zu-sync-btn{align-self:flex-start;font-size:.8rem}.zu-external-link-row{border-top:1px solid var(--color-border);justify-content:center;margin-top:auto;padding-top:.85rem;display:flex}.zu-external-link{color:var(--color-text-secondary);border-radius:var(--radius-sm);align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.785rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.zu-external-link:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.my-attendances-list{flex-direction:column;gap:1rem;display:flex}.attendance-item-card{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-card);padding:1.25rem;transition:transform .2s}.attendance-item-card:hover{transform:translateY(-2px)}.attendance-item-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.course-title{color:var(--color-text);margin:0;font-size:1.1rem;font-weight:600}.attendance-item-details{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.detail-pill{background:var(--bg-secondary);color:var(--color-text-muted);border-radius:var(--radius-sm);padding:.25rem .5rem;font-weight:500}.detail-date{color:var(--color-text-muted);margin-left:auto}.profile-dashboard-card{width:100%;min-width:0;max-width:100%;margin-top:0}.dashboard-nav-tabs{border-bottom:1px solid var(--border);gap:1rem;margin-bottom:1.5rem;display:flex;overflow-x:auto}.dashboard-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1rem;font-weight:500;transition:all .2s}.dashboard-tab:hover{color:var(--text)}.dashboard-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.dashboard-tab-content{min-height:200px}.dashboard-pane{flex-direction:column;gap:1rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:2rem;font-style:italic}.dashboard-list{flex-direction:column;gap:1rem;display:flex}.comments-list{gap:1.5rem}.dashboard-comment-item{border:1px solid var(--border);background-color:var(--surface);border-radius:8px;padding:1rem}.simple-list{gap:1rem;display:grid}.simple-list-item{border:1px solid var(--border);background-color:var(--surface);border-radius:8px;padding:1rem}.item-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.item-title{color:var(--text);font-weight:600}.item-badge{text-transform:capitalize;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.item-badge.pending{color:#854d0e;background:#fef08a}.item-badge.graded{color:#166534;background:#bbf7d0}.item-badge.rejected{color:#991b1b;background:#fecaca}.item-score{color:var(--primary);font-weight:600}.item-meta{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}.item-feedback{background-color:var(--bg);color:var(--text);border-radius:4px;padding:.5rem;font-size:.9rem}.item-alert{color:#dc2626;margin-top:.5rem;font-size:.85rem;font-weight:500}.profile-page-container{box-sizing:border-box;flex-direction:column;gap:1.75rem;width:100%;max-width:1200px;margin:0 auto;padding-bottom:2.5rem;display:flex}.profile-body-grid{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:1.75rem;width:100%;min-width:0;display:flex}.profile-qr-col{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));align-items:stretch;gap:1.5rem;width:100%;display:grid}.profile-qr-card-container{height:100%;display:flex}.profile-qr-card-container>*{flex:1;height:100%}.profile-settings-col{flex-direction:column;flex:1;gap:1rem;width:100%;min-width:0;display:flex}.two-factor-card{flex-direction:column;gap:1.25rem;display:flex}.two-factor-header{align-items:flex-start;gap:1rem;display:flex}.two-factor-icon{letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);background:var(--color-bg-tertiary);border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;font-size:.82rem;font-weight:800;display:flex}.two-factor-setup-flow{border-top:1px solid var(--color-border);flex-direction:column;gap:1.25rem;padding-top:1rem;display:flex}.qr-instructions{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.875rem}.secret-badge{background:var(--color-bg-tertiary);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;letter-spacing:.1em;padding:.75rem;font-size:1.1rem;font-weight:700}.verify-inputs{align-items:flex-end;gap:.75rem;display:flex}.success-badge{color:var(--color-success);font-size:.95rem;font-weight:700}.sessions-card{flex-direction:column;gap:1.25rem;display:flex}.sessions-header h3{margin-bottom:.25rem;font-size:1.1rem;font-weight:700}.sessions-header p{color:var(--color-text-secondary);font-size:.85rem}.sessions-list{flex-direction:column;gap:.75rem;display:flex}.session-item{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.session-icon{font-size:1.5rem}.session-details{flex:1}.session-title-row{align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.session-device{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.session-meta{color:var(--color-text-tertiary);gap:.4rem;font-size:.75rem;display:flex}.no-sessions{color:var(--color-text-tertiary);padding:1rem 0;font-size:.85rem}@media (width<=600px){.session-item{flex-direction:column;align-items:flex-start;gap:.75rem}.session-details{width:100%}.session-title-row{flex-wrap:wrap}.session-meta{flex-wrap:wrap;line-height:1.4}.session-item button{width:100%;margin-top:.5rem}}.change-password-container{flex-direction:column;gap:1.25rem;display:flex}.temporary-password-warning{background:var(--color-warning-subtle,#eab3081a);border:1px solid var(--color-warning,#eab308);border-left:4px solid var(--color-warning,#eab308);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:1rem 1.25rem;display:flex}.temporary-password-warning .warning-badge{color:var(--color-warning,#eab308);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.temporary-password-warning p{color:var(--color-text-primary);margin:0;font-size:.9rem;line-height:1.5}.change-password-header h4{margin-bottom:.25rem;font-size:1.05rem;font-weight:700}.change-password-header p{color:var(--color-text-secondary);margin:0;font-size:.85rem}.change-password-form{flex-direction:column;gap:1rem;display:flex}.new-password-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=640px){.new-password-grid{grid-template-columns:1fr}}.change-password-actions{justify-content:flex-start;margin-top:.5rem;display:flex}.deletion-request-section{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.deletion-request-pending-card{background:#f59e0b14;border:1px solid #f59e0b4d;border-radius:16px;width:100%;padding:1.5rem}.deletion-pending-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.deletion-pending-badge-row{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.deletion-date{color:var(--color-text-tertiary);font-size:.8rem}.deletion-request-pending-card h4{color:#fbbf24;margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.deletion-request-pending-card p{color:var(--color-text-secondary);margin-bottom:.75rem;font-size:.875rem;line-height:1.55}.deletion-reason-quote{color:var(--color-text-primary);background:#00000040;border-left:3px solid #f59e0b;border-radius:6px;padding:.5rem .85rem;font-size:.85rem}.deletion-rejected-banner{background:#ef444414;border:1px solid #ef444440;border-radius:12px;width:100%;padding:1rem 1.25rem}.deletion-rejected-title{color:#f87171;margin-bottom:.35rem;font-size:.95rem;font-weight:700}.deletion-rejected-title span{text-transform:uppercase;margin-right:.35rem;font-size:.8rem;font-weight:800}.deletion-rejected-desc{color:var(--color-text-secondary);font-size:.85rem;line-height:1.5}.deletion-modal-form{flex-direction:column;gap:1.25rem;display:flex}.deletion-warning-box{background:#ef444414;border:1px solid #ef444440;border-radius:12px;padding:1rem}.deletion-warning-box h4{color:#f87171;margin-bottom:.35rem;font-size:.95rem;font-weight:700}.deletion-warning-box p{color:var(--color-text-secondary);font-size:.85rem;line-height:1.5}.deletion-textarea{background:var(--color-surface);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);resize:vertical;border-radius:10px;padding:.75rem 1rem;font-family:inherit;font-size:.9rem}.deletion-textarea:focus{border-color:var(--color-accent);outline:none}.deletion-modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.settings-page-container{box-sizing:border-box;max-width:800px;margin:0 auto;padding:2rem}.settings-page-title{color:var(--text);margin-bottom:1.5rem}@media (width<=768px){.settings-page-container{padding:1rem}}.settings-panel-card{box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;display:flex}.settings-nav-tabs{border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.settings-tab{color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:1px solid #0000;padding:.6rem 1.15rem;font-size:.85rem;font-weight:600}.settings-tab.active{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent-light)}.settings-tab:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.settings-tab-content{padding-top:.5rem}.theme-settings-pane{flex-direction:column;gap:1rem;display:flex}.theme-settings-pane h4{font-size:1.1rem;font-weight:700}.theme-settings-pane p{color:var(--color-text-secondary);font-size:.85rem}.theme-toggle-row{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem;display:flex}@media (width<=600px){.theme-toggle-row{flex-direction:column;align-items:stretch}}.theme-option-box{align-items:center;gap:1rem;display:flex}.theme-icon-box{border-radius:var(--radius-md);background:var(--color-accent-subtle);width:40px;height:40px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.privacy-settings-pane{flex-direction:column;gap:1.25rem;display:flex}.privacy-text{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6}.danger-zone-box{border:1px solid var(--color-error);background:var(--color-error-light);border-radius:var(--radius-md);padding:1.25rem}.danger-zone-box h5{color:var(--color-error);margin-bottom:.25rem;font-size:.95rem;font-weight:800}.danger-zone-box p{color:var(--color-error);font-size:.8rem}.dev-page{color:#c9d1d9;background-color:#0d1117;min-height:100vh;font-family:Inter,sans-serif;overflow-x:hidden}:root{--dev-bg:#0d1117;--dev-bg-alt:#161b22;--dev-text:#c9d1d9;--dev-muted:#8b949e;--dev-accent:#58a6ff;--dev-keyword:#ff7b72;--dev-string:#a5d6ff;--dev-comment:#8b949e;--dev-variable:#79c0ff;--dev-function:#d2a8ff;--dev-border:#30363d;--font-mono:"Fira Code", monospace}.dev-page::-webkit-scrollbar{width:10px}.dev-page::-webkit-scrollbar-track{background:var(--dev-bg)}.dev-page::-webkit-scrollbar-thumb{background:var(--dev-border);border-radius:5px}.dev-page::-webkit-scrollbar-thumb:hover{background:var(--dev-muted)}.dev-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--dev-border);z-index:1000;background:#0d1117d9;width:100%;padding:1rem 0;position:fixed;top:0}.dev-nav-inner{justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto;padding:0 2rem;display:flex}.dev-nav-logo{font-family:var(--font-mono);color:var(--dev-text);cursor:pointer;font-size:1.2rem;font-weight:700}.nav-slash{color:var(--dev-keyword)}.dev-nav-links{align-items:center;gap:1.5rem;display:flex}.dev-nav-links button{color:var(--dev-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;font-size:.9rem;transition:color .2s}.dev-nav-links button:hover{color:var(--dev-accent)}.nav-portal-btn{border-radius:4px;padding:.4rem .8rem;font-weight:600;color:var(--dev-bg)!important;background-color:var(--dev-accent)!important}.nav-portal-btn:hover{color:var(--dev-bg)!important;background-color:#79c0ff!important}.dev-hero{align-items:center;min-height:100vh;padding:0 2rem;display:flex;position:relative;overflow:hidden}.dev-hero:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#30363d1a 1px,#0000 1px),linear-gradient(90deg,#30363d1a 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0}.dev-hero-inner{z-index:1;max-width:800px;margin:0 auto;position:relative}.hero-terminal-tag{font-family:var(--font-mono);color:var(--dev-muted);border:1px solid var(--dev-border);background:#8b949e1a;border-radius:4px;margin-bottom:1rem;padding:.2rem .6rem;font-size:.9rem;display:inline-block}.hero-name{font-size:4.5rem;font-weight:700;font-family:var(--font-mono);color:var(--dev-function);margin:0 0 1rem;line-height:1.1}.hero-prefix{color:var(--dev-keyword)}.hero-cursor{opacity:0;color:var(--dev-text)}.hero-cursor.visible{opacity:1}.hero-tagline{color:var(--dev-text);margin-bottom:1.5rem;font-size:1.5rem;font-weight:400}.hero-learning-quote{font-family:var(--font-mono);border:1px solid #58a6ff2e;border-left:3px solid var(--dev-accent);background:#58a6ff0a;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:.45rem;margin-bottom:2.5rem;padding:.9rem 1.4rem;font-size:1.08rem;animation:.7s forwards quoteGlowIn;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 24px #58a6ff0a,inset 0 0 30px #58a6ff05}.hero-learning-quote:before{content:"";background:linear-gradient(90deg,#0000,#58a6ff12,#0000);width:60%;height:100%;animation:3.5s ease-in-out infinite quoteSweep;position:absolute;top:0;left:-100%}.quote-prompt{color:var(--dev-keyword);-webkit-user-select:none;user-select:none;font-size:1rem;font-weight:700}.quote-cmd{color:var(--dev-function);font-weight:600}.quote-str{color:var(--dev-string);letter-spacing:.01em;font-weight:500}.quote-source{color:var(--dev-comment);opacity:.75;margin-left:.25rem;font-size:.82rem;font-style:italic}@keyframes quoteGlowIn{0%{opacity:0;box-shadow:none;transform:translate(-12px)}to{opacity:1;transform:translate(0);box-shadow:0 0 24px #58a6ff0f,inset 0 0 30px #58a6ff05}}@keyframes quoteSweep{0%{opacity:0;left:-100%}20%{opacity:1}80%{opacity:1}to{opacity:0;left:160%}}.hero-oneliner{font-family:var(--font-mono);color:var(--dev-string);border-left:2px solid var(--dev-border);margin-bottom:3rem;padding-left:1rem;font-size:1.1rem;line-height:1.6}.comment-slashes{color:var(--dev-comment)}.hero-cta-row{align-items:center;gap:1.5rem;display:flex}.cta-github{background:var(--dev-text);color:var(--dev-bg);font-family:var(--font-mono);border-radius:6px;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-weight:600;text-decoration:none;transition:transform .2s,background .2s;display:flex}.cta-github:hover{background:#fff;transform:translateY(-2px)}.cta-secondary{border:1px solid var(--dev-border);color:var(--dev-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:6px;padding:.8rem 1.5rem;transition:all .2s}.cta-secondary:hover{border-color:var(--dev-muted);color:var(--dev-text)}.dev-section{padding:6rem 2rem}.alt-bg{background-color:var(--dev-bg-alt);border-top:1px solid var(--dev-border);border-bottom:1px solid var(--dev-border)}.dev-container{max-width:900px;margin:0 auto}.section-label{font-family:var(--font-mono);color:var(--dev-variable);margin-bottom:3rem;font-size:1.2rem;font-weight:600}.label-hash{color:var(--dev-keyword)}.reveal-section{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(30px)}.reveal-section.visible{opacity:1;transform:translateY(0)}.manifesto-block{margin-bottom:3rem}.manifesto-highlight{color:var(--dev-text);margin-bottom:1rem;font-size:2rem;font-weight:600;line-height:1.4}.manifesto-subtext{color:var(--dev-keyword);font-size:1.5rem;font-family:var(--font-mono)}.manifesto-body{color:var(--dev-muted);margin-bottom:2rem;font-size:1.15rem;line-height:1.7}.manifesto-body p{margin-bottom:1.5rem}.dev-quote{border:1px solid var(--dev-border);font-size:1.8rem;font-family:var(--font-mono);text-align:center;color:var(--dev-accent);background:#58a6ff0d;border-radius:8px;margin:4rem 0;padding:2rem}.quote-mark{color:var(--dev-comment)}.values-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin:4rem 0;display:grid}.value-item{font-family:var(--font-mono);color:var(--dev-text);background:var(--dev-bg-alt);border:1px solid var(--dev-border);border-radius:6px;align-items:center;gap:.8rem;padding:1rem;display:flex}.value-dot{background:var(--dev-keyword);border-radius:50%;width:8px;height:8px}.manifesto-closing{text-align:center;color:var(--dev-muted);margin-top:4rem;font-size:1.3rem;line-height:1.6}.manifesto-closing strong{color:var(--dev-text);font-weight:600}.stack-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;display:grid}.stack-cat-title{font-family:var(--font-mono);color:var(--dev-function);margin-bottom:1.5rem;font-size:1.1rem}.stack-cat-title:before{content:"fn ";color:var(--dev-keyword)}.stack-cat-title:after{content:"()";color:var(--dev-text)}.stack-items{flex-wrap:wrap;gap:.8rem;display:flex}.stack-items span{background:var(--dev-bg);border:1px solid var(--dev-border);font-family:var(--font-mono);color:var(--dev-text);border-radius:4px;padding:.4rem .8rem;font-size:.9rem}.works-list{flex-direction:column;gap:3rem;display:flex}.work-entry{background:var(--dev-bg-alt);border:1px solid var(--dev-border);border-radius:8px;padding:2rem;transition:transform .2s,border-color .2s}.work-entry:hover{border-color:var(--dev-accent);transform:translateY(-4px)}.work-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.work-name{color:var(--dev-text);margin:0;font-size:1.5rem}.work-tag{font-family:var(--font-mono);color:var(--dev-keyword);background:#ff7b721a;border:1px solid #ff7b7233;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}.work-desc{color:var(--dev-muted);margin-bottom:1.5rem;line-height:1.6}.work-meta{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.work-stats,.work-techs{font-family:var(--font-mono);flex-wrap:wrap;gap:1rem;font-size:.85rem;display:flex}.work-stats span{color:var(--dev-muted)}.work-stats strong{color:var(--dev-accent)}.work-techs span{color:var(--dev-variable)}.work-link{color:var(--dev-accent);font-family:var(--font-mono);font-size:.9rem;text-decoration:none;display:inline-block}.work-link:hover{text-decoration:underline}.research-intro{color:var(--dev-muted);border-left:2px solid var(--dev-keyword);margin-bottom:3rem;padding-left:1rem;font-size:1.2rem;line-height:1.6}.papers-list{flex-direction:column;gap:2rem;display:flex}.paper-item{gap:2rem;display:flex}.paper-year{font-family:var(--font-mono);color:var(--dev-accent);flex-shrink:0;font-weight:600}.paper-body h4{color:var(--dev-text);margin:0 0 .5rem;font-size:1.1rem;line-height:1.4}.paper-venue{color:var(--dev-variable);margin-bottom:.3rem;font-size:.9rem;display:block}.paper-authors{color:var(--dev-muted);margin-bottom:.8rem;font-size:.9rem;display:block}.paper-authors strong{color:var(--dev-text)}.paper-link{color:var(--dev-muted);font-family:var(--font-mono);border:1px solid var(--dev-border);border-radius:4px;padding:.2rem .6rem;font-size:.85rem;text-decoration:none;transition:all .2s}.paper-link:hover{color:var(--dev-text);border-color:var(--dev-muted)}.teaching-intro{color:var(--dev-muted);margin-bottom:3rem;font-size:1.2rem;line-height:1.6}.courses-compact{flex-wrap:wrap;gap:1rem;display:flex}.course-chip{background:var(--dev-bg-alt);border:1px solid var(--dev-border);color:var(--dev-text);border-radius:6px;padding:.6rem 1.2rem;font-size:.95rem}.contact-layout{grid-template-columns:1fr 1fr;gap:4rem;display:grid}.contact-intro{color:var(--dev-text);margin-bottom:1rem;font-size:1.2rem;line-height:1.6}.contact-intro a{color:var(--dev-accent);text-decoration:none}.contact-sub{color:var(--dev-muted);margin-bottom:3rem}.contact-links{flex-direction:column;gap:1rem;display:flex}.cl-item{background:var(--dev-bg);border:1px solid var(--dev-border);font-family:var(--font-mono);cursor:pointer;border-radius:6px;align-items:center;padding:1rem;font-size:.9rem;transition:border-color .2s;display:flex}.cl-item.link{text-decoration:none}.cl-item:hover{border-color:var(--dev-muted)}.cl-key{color:var(--dev-keyword);width:80px}.cl-val{color:var(--dev-string);flex-grow:1}.cl-action{color:var(--dev-muted);font-size:.8rem}.contact-form{flex-direction:column;gap:1.5rem;display:flex}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{font-family:var(--font-mono);color:var(--dev-variable);font-size:.9rem}.form-field input,.form-field textarea{background:var(--dev-bg);border:1px solid var(--dev-border);color:var(--dev-text);font-family:var(--font-mono);resize:vertical;border-radius:4px;padding:.8rem}.form-field input:focus,.form-field textarea:focus{border-color:var(--dev-accent);outline:none}.form-submit{background:var(--dev-accent);color:var(--dev-bg);font-family:var(--font-mono);cursor:pointer;border:none;border-radius:4px;padding:1rem;font-weight:600;transition:opacity .2s}.form-submit:hover{opacity:.9}.form-submit:disabled{opacity:.5;cursor:not-allowed}.dev-footer{border-top:1px solid var(--dev-border);padding:4rem 2rem 2rem}.footer-content{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.footer-left{flex-direction:column;gap:.5rem;display:flex}.footer-logo{font-family:var(--font-mono);color:var(--dev-text);font-size:1.2rem;font-weight:700}.footer-credit{color:var(--dev-muted);font-size:.9rem}.footer-credit strong{color:var(--dev-accent)}.footer-portal{border:1px solid var(--dev-border);color:var(--dev-text);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;padding:.6rem 1.2rem;transition:all .2s}.footer-portal:hover{border-color:var(--dev-muted)}.footer-bottom{border-top:1px solid var(--dev-border);color:var(--dev-comment);font-size:.85rem;font-family:var(--font-mono);flex-direction:column;align-items:center;gap:1.5rem;padding-top:2rem;display:flex}.footer-copyright{justify-content:space-between;width:100%;display:flex}@media (width<=768px){.dev-section{padding:4rem 1.5rem}.dev-nav-inner{flex-direction:column;gap:1rem;padding:0 1rem}.dev-hero{text-align:left;padding:100px 1.5rem 0}.dev-nav-links{flex-wrap:wrap;justify-content:center;gap:.8rem}.dev-nav-links button{font-size:.8rem}.hero-name{font-size:2.2rem}.hero-tagline{font-size:1.2rem}.hero-oneliner{border-left:none;border-top:2px solid var(--dev-border);text-align:left;padding-top:1rem;padding-left:0;font-size:.9rem}.hero-cta-row{flex-direction:column;align-items:flex-start;gap:1rem;width:100%}.cta-github,.cta-secondary{text-align:center;justify-content:center;width:100%}.manifesto-highlight{font-size:1.5rem}.dev-quote{margin:2rem 0;padding:1.5rem;font-size:1.3rem}.stack-grid{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr;gap:2rem}.footer-content{flex-direction:column;align-items:flex-start;gap:2rem}.footer-bottom{flex-direction:column;gap:1rem}.footer-copyright{text-align:center;flex-direction:column;gap:.5rem}.paper-item{flex-direction:column;gap:.5rem}.cl-item{word-break:break-all;flex-direction:column;align-items:flex-start;gap:.5rem}.cl-key{width:auto}}.dashboard-kpis-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.kpi-card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--color-bg-primary);border:1px solid var(--color-border);align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.kpi-icon-wrap{background:var(--color-bg-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:.85rem;font-weight:700;display:flex}.kpi-details{flex-direction:column;gap:.2rem;display:flex}.kpi-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.kpi-value{color:var(--color-text-primary);font-size:1.25rem;font-weight:700;line-height:1.2}.kpi-subtext{color:var(--color-text-tertiary);font-size:.7rem}.csv-import-card{flex-direction:column;gap:1rem;display:flex}.csv-import-header h4{margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.csv-import-header p{color:var(--color-text-secondary);font-size:.825rem}.csv-template-link{color:var(--color-accent);margin-top:.5rem;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-block}.csv-template-link:hover{text-decoration:underline}.csv-import-form{align-items:center;gap:1rem;display:flex}.csv-file-dropzone{border:1.5px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);cursor:pointer;flex:1;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.csv-file-dropzone:hover{border-color:var(--color-accent)}.csv-icon{border-radius:var(--radius-sm);background:var(--color-bg-secondary);min-width:2rem;height:2rem;color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.68rem;font-weight:800;display:inline-flex}.csv-file-name{color:var(--color-text-secondary);font-size:.85rem}.create-course-card{flex-direction:column;gap:1rem;display:flex}.create-course-header h4{margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.create-course-header p{color:var(--color-text-secondary);font-size:.825rem}.create-course-form{flex-direction:column;gap:1rem;display:flex}.create-course-form .form-group{flex-direction:column;gap:.4rem;display:flex}.create-course-form label{color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.create-course-form input[type=text],.create-course-form input[type=number]{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);padding:.6rem .85rem;font-size:.875rem}.create-course-row{flex-wrap:wrap;align-items:flex-end;gap:1.25rem;display:flex}.create-course-checkbox{color:var(--color-text-secondary);align-items:center;gap:.5rem;padding-bottom:.6rem;font-size:.8rem;font-weight:500;display:flex}.reports-queue-card{flex-direction:column;gap:1.25rem;display:flex}.reports-queue-header h4{font-size:1.1rem;font-weight:700}.reports-queue-header p{color:var(--color-text-tertiary);font-size:.8rem}.empty-reports-banner{text-align:center;color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;display:flex}.empty-reports-banner span{border-radius:var(--radius-full);background:var(--color-bg-tertiary);width:4rem;height:4rem;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.reports-stack{flex-direction:column;gap:1rem;display:flex}.report-item-box{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.report-item-top{justify-content:space-between;align-items:center;display:flex}.report-reason-badge{color:var(--color-error);border-radius:var(--radius-md);text-transform:uppercase;background:#dc26261a;padding:4px 10px;font-size:.7rem;font-weight:600}.report-timestamp{color:var(--color-text-secondary);font-size:.75rem}.reported-content-preview{background:var(--color-bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--color-border);padding:.85rem 1rem}.content-author{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.75rem;font-weight:700;display:block}.content-snippet{color:var(--color-text-primary);font-size:.875rem;font-style:italic}.report-actions-row{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.admin-dashboard-page{flex-direction:column;gap:1.5rem;max-width:1150px;margin:0 auto;display:flex}.admin-dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.25rem 0;display:flex}.admin-dashboard-header .header-info h2{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.35rem;font-weight:700}.admin-dashboard-header .header-info p{color:var(--color-text-secondary);font-size:.85rem}.admin-dashboard-actions{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.admin-dashboard-split-grid{grid-template-columns:1fr 1fr;align-items:flex-start;gap:1.5rem;display:grid}@media (width<=900px){.admin-dashboard-split-grid{grid-template-columns:1fr}}.admin-users-page{flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto;padding:1.5rem;display:flex}.admin-users-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-users-header h2{color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.35rem;font-weight:700}.admin-users-header p{color:var(--color-text-secondary);font-size:.85rem}.admin-users-tabs{border-bottom:1px solid var(--color-border);gap:.5rem;padding-bottom:.5rem;display:flex}.users-tab-btn{color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:.5rem 1rem;font-size:.9rem;font-weight:600}.users-tab-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.users-tab-btn.active{background:var(--color-accent-subtle);color:var(--color-accent)}.users-card{padding:1.5rem}.users-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.users-search-input{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-tertiary);min-width:240px;color:var(--color-text-primary);flex:1;padding:.65rem 1rem;font-size:.875rem}.users-search-input:focus{border-color:var(--color-accent);outline:none}.table-responsive-wrap{overflow-x:auto}.user-name-cell{color:var(--color-text-primary);font-weight:600}.user-email-cell{color:var(--color-text-secondary);font-size:.8rem}.ip-info-group{align-items:center;gap:.5rem;display:flex}.ip-cell{font-family:var(--font-mono,monospace);color:var(--color-text-secondary);font-size:.82rem}.no-ip-label{color:var(--color-text-tertiary,#888);font-size:.8rem;font-style:italic}.university-code-cell{min-height:1.85rem;color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-sm);font-family:var(--font-mono,monospace);align-items:center;padding:.25rem .55rem;font-size:.78rem;font-weight:700;display:inline-flex}.edit-identity-btn{border-color:var(--color-accent-light);color:var(--color-accent);padding-inline:.7rem}.edit-identity-btn:hover:not(:disabled){background:var(--color-accent-subtle);border-color:var(--color-accent)}.users-table{border-collapse:collapse;width:100%}.users-table th{text-align:left;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);padding:.875rem 1rem;font-size:.75rem;font-weight:600}.user-row{border-bottom:1px solid var(--color-border);transition:background-color .15s}.user-row:hover{background:var(--color-bg-secondary)}.user-row td{vertical-align:middle;padding:.9rem 1rem}.role-badge{border-radius:var(--radius-sm);letter-spacing:.03em;border:1px solid #0000;justify-content:center;align-items:center;min-width:4.5rem;min-height:1.85rem;padding:.35rem .7rem;font-size:.72rem;font-weight:800;display:inline-flex}.role-student{color:#60a5fa;background:#3b82f61f;border-color:#3b82f64d}.role-doctor{color:#34d399;background:#10b9811f;border-color:#10b9814d}.role-admin{color:#a78bfa;background:#8b5cf61f;border-color:#8b5cf64d}.role-select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;padding:.45rem .75rem;font-size:.825rem;font-weight:500}.status-badge{font-size:.8rem;font-weight:600}.status-active{color:var(--color-success)}.status-banned{color:var(--color-error)}.action-buttons{flex-wrap:wrap;align-items:stretch;gap:.45rem;min-width:260px;display:flex}.action-buttons .btn{border-radius:var(--radius-sm);flex:1 1 0;justify-content:center;min-width:5.5rem;min-height:2.1rem;padding:.4rem .5rem;font-size:.78rem;font-weight:700}.no-users-msg{text-align:center;color:var(--color-text-secondary);padding:2.5rem;font-size:.95rem}.blocked-ips-view{flex-direction:column;gap:1.5rem;display:flex}.manual-ip-block-card{padding:1.5rem}.manual-ip-block-header h4,.blocked-ips-card-header h4{margin-bottom:.25rem;font-size:1.1rem;font-weight:700}.manual-ip-block-header p,.blocked-ips-card-header p{color:var(--color-text-secondary);margin-bottom:1rem;font-size:.85rem}.manual-ip-form{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.modal-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:1.75rem;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h3{margin:0;font-size:1.25rem;font-weight:700}.close-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.25rem}.create-user-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.form-group input,.form-group select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);padding:.75rem 1rem;font-size:.925rem}.form-group input:focus,.form-group select:focus{border-color:var(--color-accent);outline:none}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.75rem;display:flex}.student-identity-modal{border-top:3px solid var(--color-accent);max-width:520px}.student-identity-modal .modal-header{align-items:flex-start;margin-bottom:.75rem}.student-identity-modal-kicker{color:var(--color-accent);font-family:var(--font-mono,monospace);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:800;display:block}.student-identity-modal-copy{color:var(--color-text-secondary);margin:0 0 1.4rem;font-size:.9rem;line-height:1.55}.student-identity-form{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.users-pagination{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.users-pagination .pagination-info{color:var(--color-text-secondary);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.users-pagination select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);padding:.4rem .5rem;font-size:.85rem}@media (width<=1024px){.users-table th,.users-table td{padding:.75rem .7rem}.action-buttons{min-width:220px}}@media (width<=900px){.users-table th,.users-table td{padding:.7rem .6rem}.action-buttons .btn{min-width:5rem;padding:.35rem .4rem;font-size:.75rem}}@media (width<=768px){.admin-users-page{padding:1rem .75rem}.admin-users-header{flex-direction:column;align-items:stretch;gap:.75rem}.admin-users-header .btn{width:100%}.users-toolbar{flex-direction:column;align-items:stretch;gap:.6rem}.users-search-input,.role-select{width:100%;min-width:0}.admin-users-tabs{white-space:nowrap;padding-bottom:.25rem;overflow-x:auto}.users-tab-btn{white-space:nowrap}.action-buttons{flex-direction:column;gap:.4rem;min-width:0}.action-buttons .btn{width:100%;min-width:0}}@media (width<=560px){.admin-users-page{gap:1rem;padding:.75rem .5rem}.admin-users-header h2{font-size:1.25rem}.admin-users-header p{font-size:.82rem}.users-card{padding:1rem}.users-table th,.users-table td{padding:.65rem .5rem;font-size:.8rem}.role-badge{min-width:0;padding:.25rem .45rem;font-size:.68rem}.university-code-cell{padding:.2rem .4rem;font-size:.72rem}.modal-card{padding:1.2rem}.student-identity-form{grid-template-columns:1fr}}.attendance-matrix-manager{flex-direction:column;gap:1.5rem;display:flex}.matrix-control-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.matrix-control-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.matrix-control-header h3{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:800}.matrix-control-header p{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.85rem}.matrix-course-selector-wrap{align-items:center;gap:.75rem;display:flex}.matrix-course-selector-wrap label{color:var(--color-text-secondary);white-space:nowrap;font-size:.85rem;font-weight:700}.matrix-course-select{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;min-width:260px;padding:.5rem 1rem;font-size:.9rem;font-weight:700}.matrix-week-pills-bar{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.week-bar-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.8rem;font-weight:700}.week-pills-scroll{flex:1;align-items:center;gap:.35rem;padding-bottom:2px;display:flex;overflow-x:auto}.week-pill-btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;padding:.35rem .75rem;font-size:.78rem;font-weight:700;transition:all .15s}.week-pill-btn:hover{background:var(--color-bg-tertiary-hover,#ffffff14);color:var(--color-text-primary)}.week-pill-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 0 10px var(--color-accent-subtle,#3b82f64d)}.matrix-session-switcher-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.session-type-tabs{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:.25rem;padding:3px;display:flex}.session-tab-btn{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:all .15s}.session-tab-btn:hover{color:var(--color-text-primary)}.session-tab-btn.active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-xs)}.course-exception-notice{border:1px solid var(--color-warning);color:var(--color-warning);border-radius:var(--radius-md);background:#eab3081f;align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.8rem;display:flex}.matrix-roster-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.matrix-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.matrix-search-box{flex:1;align-items:center;min-width:280px;max-width:420px;display:flex;position:relative}.matrix-search-box svg{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:.85rem}.matrix-search-input{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);padding:.5rem 2rem .5rem 2.35rem;font-size:.875rem;transition:all .2s}.matrix-search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle);outline:none}.matrix-filters-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.matrix-status-chips{background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:2px;padding:3px;display:flex}.status-chip{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-size:.78rem;font-weight:700;transition:all .15s}.status-chip:hover{color:var(--color-text-primary)}.status-chip.active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-xs)}.status-chip.active.present{color:var(--color-success)}.status-chip.active.excused{color:var(--color-info)}.status-chip.active.absent{color:var(--color-error)}.status-chip.active.pending{color:var(--color-text-primary)}.matrix-select{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;padding:.45rem .85rem;font-size:.82rem;font-weight:600}.matrix-bulk-bar{border:1px solid var(--color-accent);border-radius:var(--radius-md);background:#3b82f61a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.matrix-bulk-info{color:var(--color-text-primary);align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;display:flex}.matrix-bulk-badge{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);padding:.15rem .5rem;font-size:.75rem;font-weight:800}.matrix-bulk-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.matrix-table{border-collapse:collapse;text-align:left;width:100%}.matrix-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.04em;padding:.75rem 1rem;font-size:.75rem;font-weight:700}.matrix-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.85rem 1rem;font-size:.875rem}.matrix-table tbody tr{transition:background .15s}.matrix-table tbody tr:hover{background:var(--color-bg-tertiary)}.selected-row{background:#3b82f60f!important}.student-main-col{flex-direction:column;gap:.15rem;display:flex}.student-main-col strong{color:var(--color-text-primary);font-size:.92rem}.student-email-hint{color:var(--color-text-tertiary);font-size:.78rem}.code-year-stack{flex-wrap:wrap;align-items:center;gap:.55rem;display:inline-flex}.code-pill{background:var(--color-accent-subtle);min-height:1.6rem;color:var(--color-accent);border:1px solid var(--color-accent-light);font-family:var(--font-mono,"JetBrains Mono", monospace);letter-spacing:.03em;border-radius:var(--radius-sm);align-items:center;padding:.25rem .55rem;font-size:.75rem;font-weight:800;line-height:1;display:inline-flex}.year-pill{min-height:1.6rem;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);align-items:center;padding:.22rem .5rem;font-size:.74rem;font-weight:700;line-height:1;display:inline-flex}.method-pill{color:var(--color-success);border-radius:var(--radius-full);background:#16a34a1f;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.excuse-reason-wrap{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.excuse-tag{color:var(--color-info);border-radius:var(--radius-sm);background:#3b82f626;padding:2px 6px;font-size:.72rem;font-weight:800}.excuse-reason-text{color:var(--color-text-secondary);font-size:.82rem;font-weight:500}.absent-hint{color:var(--color-text-tertiary);font-size:.8rem}.pending-hint{color:var(--color-text-secondary);font-size:.8rem;font-style:italic}.time-col{color:var(--color-text-secondary);font-size:.8rem}.row-action-btns{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.4rem;display:inline-flex}.row-action-btns .btn{border-radius:var(--radius-sm);white-space:nowrap;min-height:1.85rem;padding:.35rem .7rem;font-size:.78rem;font-weight:700}.quick-action-btn{min-width:4.6rem}.quick-present-btn{color:#34d399;background:#10b9811f;border-color:#10b98159}.quick-present-btn:hover:not(:disabled){background:#10b98133;border-color:#10b9818c}.quick-excuse-btn{color:#60a5fa;background:#3b82f61f;border-color:#3b82f659}.quick-excuse-btn:hover:not(:disabled){background:#3b82f633;border-color:#3b82f68c}.exception-modal-content{flex-direction:column;gap:1.25rem;display:flex}.exception-modal-meta{background:var(--color-bg-tertiary);border-radius:var(--radius-md);color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;font-size:.85rem;display:flex}.preset-reasons-wrap{flex-direction:column;gap:.5rem;display:flex}.preset-reasons-wrap label{color:var(--color-text-secondary);font-size:.82rem;font-weight:700}.preset-reasons-chips{flex-wrap:wrap;gap:.4rem;display:flex}.preset-chip{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;padding:.35rem .65rem;font-size:.78rem;font-weight:600;transition:all .15s}.preset-chip:hover{background:var(--color-bg-tertiary-hover,#ffffff14);color:var(--color-text-primary)}.preset-chip.active{border-color:var(--color-accent);color:var(--color-accent);background:#3b82f626;font-weight:700}.custom-reason-field{flex-direction:column;gap:.4rem;display:flex}.custom-reason-field label{color:var(--color-text-primary);font-size:.85rem;font-weight:700}.exception-textarea{border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);resize:vertical;padding:.65rem .85rem;font-size:.875rem}.exception-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle);outline:none}.modal-actions-bar{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.5rem;display:flex}@media (width<=1024px){.matrix-control-card,.matrix-roster-card{padding:1rem}.matrix-course-select{min-width:210px}.matrix-search-box{max-width:none}}@media (width<=768px){.matrix-control-header,.matrix-toolbar,.matrix-session-switcher-row{align-items:stretch}.matrix-course-selector-wrap{flex-direction:column;align-items:flex-start;width:100%}.matrix-course-select,.matrix-select{width:100%}.matrix-filters-group{flex-direction:column;align-items:stretch;width:100%}.matrix-status-chips{white-space:nowrap;width:100%;overflow-x:auto}.row-action-btns{justify-content:flex-start}.quick-action-btn{min-width:4rem}}@media (width<=900px){.matrix-table th,.matrix-table td{padding:.75rem .65rem}.row-action-btns{flex-wrap:wrap;gap:.35rem}.row-action-btns .btn{min-width:3.8rem;padding:.3rem .5rem;font-size:.76rem}}@media (width<=768px){.matrix-control-header,.matrix-toolbar,.matrix-session-switcher-row{flex-direction:column;align-items:stretch}.matrix-course-selector-wrap{flex-direction:column;align-items:flex-start;gap:.35rem;width:100%}.matrix-course-select,.matrix-select{width:100%;min-width:0}.matrix-filters-group{flex-direction:column;align-items:stretch;gap:.75rem;width:100%}.matrix-status-chips{white-space:nowrap;width:100%;padding:4px;overflow-x:auto}.matrix-bulk-bar{flex-direction:column;align-items:stretch;gap:.75rem}.matrix-bulk-actions{flex-direction:column;align-items:stretch;gap:.5rem}.matrix-bulk-actions .btn{justify-content:center;width:100%}.matrix-table th,.matrix-table td{padding:.65rem .55rem;font-size:.8rem}.row-action-btns{flex-direction:column;align-items:stretch;gap:.35rem}.row-action-btns .btn{width:100%;min-width:0}}@media (width<=560px){.attendance-matrix-manager{gap:1rem}.matrix-control-card,.matrix-roster-card{padding:1rem}.matrix-week-pills-bar{gap:.5rem}.week-bar-label{font-size:.72rem}.week-pill-btn{padding:.3rem .6rem;font-size:.74rem}.matrix-table th,.matrix-table td{padding:.55rem .45rem;font-size:.78rem}.student-main-col strong{font-size:.85rem}.student-email-hint,.excuse-reason-text,.absent-hint,.pending-hint,.time-col{font-size:.72rem}.code-pill,.year-pill{padding:.2rem .42rem;font-size:.7rem}}.admin-attendances-page{flex-direction:column;gap:1.5rem;max-width:1400px;margin:0 auto;padding:1.5rem;display:flex}.admin-attendances-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-attendances-header h2{color:var(--color-text-primary);margin:0;font-size:1.75rem;font-weight:700}.admin-attendances-header p{color:var(--color-text-secondary);max-width:700px;margin:.25rem 0 0;font-size:.95rem}.header-action-group{flex-wrap:wrap;gap:.75rem;display:flex}.attendance-header-action .btn-icon{justify-content:center;align-items:center;width:1rem;height:1rem;line-height:0;display:inline-flex}.attendance-header-action{min-height:2.35rem}.attendance-header-action .btn-icon{flex:0 0 1rem;justify-content:center;align-items:center;width:1rem;height:1rem;line-height:0;display:inline-flex}.attendance-header-action .btn-icon svg{display:block}.admin-page-nav-tabs{border-bottom:2px solid var(--color-border);align-items:center;gap:.5rem;padding-bottom:2px;display:flex}.nav-tab-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-2px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:700;transition:all .15s;display:flex}.nav-tab-btn:hover{color:var(--color-text-primary)}.nav-tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.attendance-kpis-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.kpi-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:.25rem;padding:1.25rem;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.kpi-value{color:var(--color-text-primary);margin:.25rem 0;font-size:2rem;font-weight:800}.text-accent{color:var(--color-accent)!important}.text-success{color:#10b981!important}.kpi-sub{color:var(--color-text-secondary);font-size:.75rem}.attendance-filter-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.filter-controls-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.search-box-wrap{flex:1;min-width:280px;position:relative}.attendance-search-input{border-radius:var(--radius-md);background:var(--color-bg-primary);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);outline:none;padding:.65rem 2.2rem .65rem 1rem;font-size:.9rem;transition:border-color .2s}.attendance-search-input:focus{border-color:var(--color-accent)}.clear-search-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:.9rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.select-filters-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.filter-actions-group{align-items:center;gap:.5rem;display:flex}.filter-select{border-radius:var(--radius-md);background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;outline:none;padding:.65rem .85rem;font-size:.875rem}.filter-summary-row{color:var(--color-text-secondary);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:.5rem;font-size:.85rem;display:flex}.reset-filters-btn{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600}.reset-filters-btn:hover{text-decoration:underline}.attendance-table-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0;overflow:hidden}.table-responsive,.table-responsive-wrap{width:100%;overflow-x:auto}.admin-attendance-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.admin-attendance-table th{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.875rem 1.25rem;font-weight:600}.admin-attendance-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:1rem 1.25rem}.attendance-row:hover{background:#ffffff05}.student-cell{flex-direction:column;gap:.25rem;min-width:180px;display:flex}.student-cell strong{color:var(--color-text-primary);font-size:.92rem;font-weight:700}.student-cell .sub-text{color:var(--color-text-secondary);font-size:.78rem;line-height:1.3}.student-cell .sub-text.code{width:fit-content;font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--color-accent);background:var(--color-accent-subtle);border:1px solid var(--color-accent-light);border-radius:var(--radius-sm);align-items:center;margin-top:.1rem;padding:.15rem .45rem;font-size:.72rem;font-weight:700;display:inline-flex}.course-cell{flex-direction:column;gap:.2rem;min-width:140px;display:flex}.course-cell strong{color:var(--color-text-primary);font-size:.9rem;font-weight:700}.course-cell .sub-text{width:fit-content;font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);letter-spacing:.02em;align-items:center;padding:.15rem .45rem;font-size:.74rem;font-weight:800;display:inline-flex}.session-cell{align-items:center;gap:.5rem;display:flex}.week-tag{color:var(--color-text-primary);font-weight:600}.method-badge{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:.4rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.qr-badge{color:#38bdf8;background:#0ea5e926;border:1px solid #0ea5e94d}.ultrasonic-badge{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.recorder-cell{flex-direction:column;gap:.2rem;min-width:120px;display:flex}.recorder-name{color:var(--color-text-primary);font-size:.85rem;font-weight:600}.recorder-role{color:var(--color-text-secondary);text-transform:capitalize;font-size:.74rem}.date-cell{white-space:nowrap;color:var(--color-text-secondary);min-width:100px;font-size:.82rem}.type-tag{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-tertiary);width:fit-content;color:var(--color-text-secondary);align-items:center;padding:.22rem .55rem;font-size:.74rem;font-weight:700;display:inline-flex}.type-tag.lecture{color:var(--color-info);background:#3b82f61f;border-color:#3b82f640}.type-tag.section{color:var(--color-success);background:#10b9811f;border-color:#10b98140}.method-pill{border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.35rem;width:fit-content;padding:.22rem .55rem;font-size:.74rem;font-weight:700;display:inline-flex}.method-pill.qr{color:#38bdf8;background:#0ea5e91f;border-color:#0ea5e94d}.method-pill.ultrasonic{color:#34d399;background:#10b9811f;border-color:#10b9814d}.method-pill.admin,.method-pill.manual{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b4d}.empty-records-box{text-align:center;color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:.5rem;padding:4rem 1.5rem;display:flex}.empty-records-box svg{opacity:.4;margin-bottom:.5rem}.empty-records-box h4{color:var(--color-text-primary);margin:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.delete-confirm-modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-align:center;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:480px;padding:2rem;display:flex;box-shadow:0 20px 40px #0006}.modal-icon-warning{font-size:2.5rem}.delete-confirm-modal h3{color:var(--color-text-primary);margin:0;font-size:1.35rem}.delete-confirm-modal p{color:var(--color-text-secondary);margin:0;font-size:.95rem;line-height:1.5}.modal-subtext{color:#ef4444!important;font-size:.8rem!important}.modal-actions-row{justify-content:center;gap:1rem;width:100%;margin-top:.5rem;display:flex}.batch-modal-wrapper{width:100%;max-width:900px}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-up{animation:.2s cubic-bezier(.16,1,.3,1) scaleUp}@media (width<=1100px){.admin-attendance-table th,.admin-attendance-table td{padding:.85rem .9rem}}@media (width<=1024px){.admin-attendances-page{padding:1rem}.attendance-kpis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.admin-attendance-table th,.admin-attendance-table td{padding:.75rem .65rem}.student-cell{min-width:150px}}@media (width<=768px){.admin-attendances-header{flex-direction:column;align-items:stretch;gap:.75rem}.header-action-group{width:100%}.header-action-group .btn{flex:1;min-width:0}.admin-page-nav-tabs{white-space:nowrap;gap:.25rem;padding-bottom:.25rem;overflow-x:auto}.nav-tab-btn{padding:.65rem 1rem;font-size:.85rem}.nav-tab-btn svg{flex-shrink:0}.nav-tab-btn span{white-space:nowrap}.filter-controls-row{flex-direction:column;align-items:stretch;gap:.75rem}.search-box-wrap{width:100%;min-width:0}.select-filters-group{gap:.5rem;width:100%}.filter-select{flex:1;min-width:120px;font-size:.8rem}.filter-actions-group{justify-content:flex-end;width:100%}.attendance-kpis-grid{grid-template-columns:1fr}.admin-attendance-table th,.admin-attendance-table td{padding:.65rem .55rem;font-size:.8rem}.delete-modal-card{margin:1rem}}@media (width<=560px){.admin-attendances-page{gap:1rem;padding:.75rem}.admin-attendances-header h2{font-size:1.25rem}.admin-attendances-header p{font-size:.82rem}.header-action-group{flex-direction:column}.header-action-group .btn,.filter-actions-group .btn{width:100%}.filter-actions-group{flex-direction:column;align-items:stretch;gap:.4rem}.select-filters-group{flex-direction:column;align-items:stretch}.filter-select{width:100%}.attendance-filter-card{padding:1rem}.admin-attendance-table th,.admin-attendance-table td{padding:.55rem .45rem;font-size:.78rem}.kpi-value{font-size:1.6rem}.kpi-label{font-size:.72rem}}.attendance-pagination{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.attendance-pagination .pagination-info{color:var(--color-text-secondary);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.attendance-pagination select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);padding:.4rem .5rem;font-size:.85rem}@media (width<=560px){.attendance-pagination{flex-direction:column;align-items:stretch}.attendance-pagination .pagination-info{justify-content:center}}.doctors-permissions-card{flex-direction:column;gap:1.25rem;display:flex}.permissions-header h4{font-size:1.1rem;font-weight:700}.permissions-header p{color:var(--color-text-tertiary);font-size:.8rem}.permission-actions-group{gap:.5rem;display:flex}.admin-doctors-page{flex-direction:column;gap:1.5rem;max-width:1000px;margin:0 auto;display:flex}.doctors-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.doctors-page-header p{color:var(--color-text-secondary);font-size:.875rem}.admin-reports-page{flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto;display:flex}.reports-page-header h2{margin-bottom:.25rem;font-size:1.5rem;font-weight:800}.reports-page-header p{color:var(--color-text-secondary);font-size:.875rem}.admin-students-page{max-width:1200px;margin:0 auto;padding:2rem}.students-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.students-header h1{color:var(--color-text-primary);font-size:1.5rem;font-weight:700}.unverified-students-table{border-collapse:separate;border-spacing:0 .5rem;width:100%;margin-top:1.5rem}.unverified-students-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:1rem;font-size:.75rem;font-weight:600}.student-row{background:var(--bg-card);transition:transform .2s,box-shadow .2s}.student-row:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.student-row td{vertical-align:middle;padding:1rem}.student-row td:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.student-row td:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.action-buttons{gap:.5rem;display:flex}.admin-moderation-queue-page{box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;min-width:0;max-width:960px;margin:0 auto;display:flex}.moderation-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.moderation-header-info h2{color:var(--color-text-primary);margin:0 0 .35rem;font-size:1.5rem;font-weight:800}.moderation-header-info p{color:var(--color-text-secondary);max-width:42rem;margin:0;font-size:.9rem;line-height:1.5}.moderation-header-stats{flex-wrap:wrap;gap:.5rem;display:flex}.moderation-stat-chip{border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.moderation-stat-chip strong{color:var(--color-text-primary);font-weight:800}.moderation-nav-tabs{border-bottom:2px solid var(--color-border);align-items:center;gap:.5rem;padding-bottom:2px;display:flex;overflow-x:auto}.moderation-nav-tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-2px;padding:.75rem 1.1rem;font-size:.95rem;font-weight:700;transition:color .15s,border-color .15s;display:inline-flex}.moderation-nav-tab:hover{color:var(--color-text-primary)}.moderation-nav-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.moderation-tab-count{border-radius:var(--radius-full);background:var(--color-bg-tertiary);min-width:1.4rem;height:1.4rem;color:var(--color-text-secondary);justify-content:center;align-items:center;padding:0 .4rem;font-size:.72rem;font-weight:800;display:inline-flex}.moderation-nav-tab.active .moderation-tab-count{background:var(--color-accent-subtle,var(--color-bg-tertiary));color:var(--color-accent)}.moderation-items-list{flex-direction:column;gap:1rem;display:flex}.moderation-item-card{flex-direction:column;gap:.85rem;display:flex}.moderation-item-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.moderation-item-author{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.moderation-item-author strong{color:var(--color-text-primary);font-size:.95rem}.moderation-item-course{color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.15rem .55rem;font-size:.75rem;font-weight:600}.moderation-item-date{color:var(--color-text-secondary);white-space:nowrap;font-size:.78rem}.moderation-item-body h4{color:var(--color-text-primary);overflow-wrap:anywhere;margin:0 0 .4rem;font-size:1.05rem;font-weight:700}.moderation-item-body p{color:var(--color-text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.55}.moderation-item-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding-top:.75rem;display:flex}@media (width<=640px){.moderation-item-actions{justify-content:stretch}.moderation-item-actions .btn{flex:1}}.admin-super-page{flex-direction:column;gap:1.5rem;max-width:1100px;margin:0 auto;display:flex}.admin-super-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.admin-super-grid{grid-template-columns:1fr}}.super-admin-card{flex-direction:column;gap:1.25rem;display:flex}.super-admin-card-header h4{margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.super-admin-card-header p{color:var(--color-text-secondary);font-size:.8rem}.super-admin-form{flex-direction:column;gap:1.1rem;display:flex}.super-admin-form .form-group{flex-direction:column;gap:.4rem;display:flex}.super-admin-form label{color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.super-admin-form input,.super-admin-form select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);padding:.6rem .85rem;font-size:.875rem}.super-admin-row{flex-wrap:wrap;align-items:flex-end;gap:1.25rem;display:flex}.super-admin-checkbox{color:var(--color-text-secondary);align-items:center;gap:.5rem;padding-bottom:.6rem;font-size:.8rem;font-weight:500;display:flex}.permissions-table{border-collapse:collapse;text-align:left;width:100%}.permissions-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.permissions-table td{border-bottom:1px solid var(--color-border);padding:.85rem 1rem;font-size:.875rem}.table-sub-email{color:var(--color-text-tertiary);font-size:.75rem;display:block}.permission-allowed{color:var(--color-success);font-size:.8rem;font-weight:700}.permission-blocked{color:var(--color-text-tertiary);font-size:.8rem;font-weight:600}.absence-alerts-card{flex-direction:column;gap:1.25rem;display:flex}.alerts-card-header h4{font-size:1.1rem;font-weight:700}.alerts-card-header p{color:var(--color-text-tertiary);font-size:.8rem}.alerts-table{border-collapse:collapse;text-align:left;width:100%}.alerts-table th{color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.alerts-table td{border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.875rem}.code-col{color:var(--color-accent);font-family:JetBrains Mono,monospace;font-weight:600}.absence-rate-tag{color:var(--color-error);font-weight:800}.admin-absence-alerts-page{flex-direction:column;gap:1.5rem;display:flex}.header-info h2{color:var(--color-text);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.absence-pagination{justify-content:center;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.pagination-label{color:var(--color-text-muted);font-size:.9rem}@media (width<=640px){.absence-pagination{flex-direction:column}}.admin-activity-logs-page{flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.header-info h2{margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.header-info p{color:var(--color-text-muted);margin:0;font-size:.95rem}.header-actions{gap:.5rem;display:flex}.logs-filter-card{padding:1rem}.logs-filter-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:.75rem;display:grid}.filter-field{flex-direction:column;gap:.35rem;display:flex}.filter-field label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:600}.filter-field select,.filter-field input[type=date]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:.5rem;padding:.55rem .65rem;font-size:.9rem}.filter-actions{grid-column:1/-1;justify-content:flex-end;align-items:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.filter-actions .btn{min-height:2.35rem}@media (width<=640px){.filter-actions{flex-direction:column;justify-content:stretch;align-items:stretch}.filter-actions .btn{justify-content:center;width:100%}}.purge-card{border-left:4px solid var(--color-error);padding:1rem}.purge-card h4{margin:0 0 .25rem}.purge-card p{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.9rem}.purge-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.purge-row input[type=date]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:.5rem;padding:.55rem .65rem}.logs-summary-bar{color:var(--color-text-muted);justify-content:space-between;font-size:.85rem;display:flex}.logs-table-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.5rem;display:flex}.logs-table-title{color:var(--color-text);margin:0;font-size:1.1rem;font-weight:700}.logs-refresh-icon-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:background .2s,color .2s;display:flex}.logs-refresh-icon-btn:hover{background:var(--color-surface-elevated);color:var(--color-text)}.logs-refresh-icon-btn:disabled{opacity:.5;cursor:not-allowed}.spin-anim{animation:1s linear infinite spin}.logs-table-card{padding:0;overflow:hidden}.logs-table{border-collapse:collapse;width:100%;font-size:.9rem}.logs-table th,.logs-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.logs-table th{background:var(--color-surface-elevated);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:.8rem;font-weight:600}.logs-table tr:last-child td{border-bottom:none}.logs-empty-cell{text-align:center;color:var(--color-text-muted);padding:2rem}.logs-time-cell{white-space:nowrap}.logs-mono-cell{color:var(--color-text-muted);text-overflow:ellipsis;max-width:160px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;overflow:hidden}.logs-user-name{color:var(--color-text);font-weight:600}.logs-user-role{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-top:.2rem;padding:.15rem .45rem;font-size:.7rem;font-weight:700;display:inline-flex}.logs-user-role.role-admin{background:var(--color-error-subtle,#ef44441f);color:var(--color-error)}.logs-user-role.role-doctor{background:var(--color-info-subtle,#3b82f61f);color:var(--color-info)}.logs-user-role.role-student{background:var(--color-success-subtle,#22c55e1f);color:var(--color-success)}.logs-user-unknown,.logs-user-anonymous,.logs-user-system{color:var(--color-text-muted);flex-direction:column;gap:.15rem;font-size:.85rem;display:flex}.logs-user-unknown{color:var(--color-warning)}.logs-user-system{color:var(--color-info);font-style:italic}.logs-user-id,.logs-anon-ip{color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.logs-empty-state{text-align:center;color:var(--color-text-muted);padding:2rem}.logs-pagination{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pagination-info{color:var(--color-text-muted);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.pagination-info select{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:.4rem;padding:.4rem .5rem;font-size:.85rem}@media (width<=640px){.logs-filter-grid{grid-template-columns:1fr}.filter-actions{flex-direction:row}.logs-pagination{flex-direction:column;align-items:stretch}.pagination-info{justify-content:center}}.admin-deletion-page{padding:1.5rem}.admin-header{margin-bottom:2rem}.admin-header h2{color:var(--text-color);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.admin-subtitle{color:var(--text-muted);font-size:.95rem}.deletion-card{padding:1.5rem}.deletion-filters{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.deletion-filters label{color:var(--text-color);font-weight:600}.deletion-filters select{border:1px solid var(--border);background:var(--bg-card);color:var(--text-color);border-radius:6px;outline:none;padding:.5rem 1rem;font-size:.95rem}.user-info-col{flex-direction:column;gap:.25rem;display:flex}.user-name{color:var(--text-color);font-weight:600}.user-email,.user-code{color:var(--text-muted);font-size:.85rem}.request-reason-col{color:var(--text-color);flex-direction:column;gap:.5rem;max-width:300px;font-size:.95rem;display:flex}.admin-notes-inline{color:var(--warning-text,#b45309);background:var(--warning-bg,#fef3c7);border-left:3px solid var(--warning-border,#f59e0b);border-radius:4px;padding:.4rem;font-size:.85rem}.action-buttons-col{gap:.5rem;display:flex}.reject-modal-form{flex-direction:column;gap:1.5rem;display:flex}.reject-modal-form p{color:var(--text-color);font-size:.95rem;line-height:1.5}.reject-modal-form textarea{border:1px solid var(--border);background:var(--bg-color);width:100%;color:var(--text-color);resize:vertical;border-radius:6px;padding:.75rem;font-family:inherit}.reject-modal-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.modal-actions{justify-content:flex-end;gap:1rem;display:flex}.error-boundary{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:300px;padding:3rem 1.5rem;display:flex}.error-boundary-icon{border-radius:var(--radius-full);background:var(--color-error-light);width:4rem;height:4rem;color:var(--color-error);letter-spacing:.14em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.95rem;font-weight:800;display:inline-flex}.error-boundary h2{color:var(--color-text-primary);font-size:1.25rem}.error-boundary p{color:var(--color-text-secondary);max-width:400px;font-size:.9rem}.error-boundary-retry{background:var(--color-accent);color:#fff;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-top:.5rem;padding:.6rem 1.5rem;font-size:.875rem;font-weight:600}.error-boundary-retry:hover{background:var(--color-accent-hover)}.server-down-overlay{-webkit-backdrop-filter:blur(20px);z-index:99999;background:radial-gradient(circle,#0f172ae0 0%,#030712f5 100%);justify-content:center;align-items:center;padding:1.5rem;font-family:Outfit,Inter,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;position:fixed;inset:0;overflow-y:auto}.server-down-ambient-glow{filter:blur(60px);pointer-events:none;background:radial-gradient(circle,#3b82f62e 0%,#10b98114 50%,#0000 70%);width:500px;height:500px;animation:6s ease-in-out infinite alternate ambient-pulse;position:absolute}@keyframes ambient-pulse{0%{opacity:.6;transform:scale(.9)translate(-5%,-5%)}to{opacity:.9;transform:scale(1.1)translate(5%,5%)}}.server-down-card{text-align:center;-webkit-backdrop-filter:blur(16px);background:#0f172ad9;border:1px solid #ffffff1f;border-radius:28px;width:100%;max-width:540px;padding:2.5rem 2.25rem;position:relative;box-shadow:0 25px 60px -15px #000000e6,0 0 0 1px #ffffff0d,0 0 50px -15px #2563eb40}.server-down-header-icon-wrap{justify-content:center;align-items:center;margin-bottom:1.25rem;display:inline-flex;position:relative}.server-down-icon-ring{border:2px dashed #3b82f659;border-radius:50%;animation:12s linear infinite radar-rotate;position:absolute;inset:-8px}@keyframes radar-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.server-down-icon-box{color:#60a5fa;background:linear-gradient(135deg,#2563eb33,#0ea5e91a);border:1px solid #3b82f666;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;display:flex;box-shadow:0 8px 24px -4px #2563eb59}.server-down-badge{color:#34d399;letter-spacing:.02em;background:#10b9811a;border:1px solid #10b98140;border-radius:999px;align-items:center;gap:.55rem;margin-bottom:1.25rem;padding:.35rem 1.1rem;font-size:.8rem;font-weight:600;display:inline-flex}.server-down-badge-dot{background:#10b981;border-radius:50%;width:8px;height:8px;animation:1.8s ease-in-out infinite dot-pulse;box-shadow:0 0 10px #10b981}.server-down-title{color:#fff;letter-spacing:-.02em;margin:0 0 .65rem;font-size:1.55rem;font-weight:800}.server-down-desc{color:#94a3b8;margin:0 0 1.5rem;font-size:.925rem;line-height:1.6}.server-down-timer-box{background:#0a0f1e99;border:1px solid #ffffff14;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.75rem;padding:1rem 1.25rem;display:flex;position:relative;overflow:hidden}.pulse-indicator{color:#e2e8f0;align-items:center;gap:.55rem;font-size:.85rem;font-weight:500;display:flex}.pulse-indicator .dot{background:#38bdf8;border-radius:50%;width:8px;height:8px;animation:1.5s infinite dot-pulse;box-shadow:0 0 10px #38bdf8}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.25)}}.timer-tag{color:#38bdf8;background:#38bdf81f;border:1px solid #38bdf840;border-radius:8px;padding:.2rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.95rem;font-weight:700}.server-down-progress-track{background:#ffffff14;border-radius:999px;width:100%;height:4px;margin-top:.35rem;overflow:hidden}.server-down-progress-bar{background:linear-gradient(90deg,#2563eb,#38bdf8);border-radius:999px;height:100%;transition:width .3s;box-shadow:0 0 8px #38bdf880}.server-down-actions{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.btn-retry{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border:1px solid #ffffff26;border-radius:14px;justify-content:center;align-items:center;padding:.75rem 1.4rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 18px -2px #2563eb80}.btn-retry:hover:not(:disabled){border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 24px -2px #2563ebb3}.btn-retry:disabled{opacity:.75;cursor:not-allowed}.btn-game{color:#e2e8f0;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:14px;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-game:hover{color:#fff;background:#ffffff1f;border-color:#ffffff40;transform:translateY(-2px)}.spin-icon{animation:1s linear infinite spin}.mini-game-container{background:#070b16e6;border:1px solid #3b82f640;border-radius:18px;flex-direction:column;align-items:center;gap:.65rem;margin-top:1.5rem;padding:1.25rem;display:flex;box-shadow:inset 0 2px 10px #0009}.game-score-tag{color:#38bdf8;letter-spacing:.03em;font-size:.85rem;font-weight:700}.game-canvas{cursor:pointer;background:#030712;border:1px solid #ffffff14;border-radius:12px;width:100%;max-width:400px;height:150px;box-shadow:0 4px 16px #00000080}.game-hint{color:#64748b;margin:0;font-size:.75rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{color:var(--color-text-primary);background-color:var(--color-bg-primary);letter-spacing:.01em;min-height:100vh;font-family:IBM Plex Sans Arabic,Cairo,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.65;transition:background-color .3s,color .3s}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-hover)}img{max-width:100%;height:auto;display:block}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-family:Noto Kufi Arabic,IBM Plex Sans Arabic,Inter,sans-serif;font-weight:600;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.45rem}h3{font-size:1.18rem}h4{font-size:1.04rem}p{color:var(--color-text-secondary)}code{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:2px;padding:.15em .4em;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875em}::selection{background:var(--color-accent);color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-fade-in-up{animation:.4s ease-out fadeInUp}.animate-slide-in-left{animation:.3s ease-out slideInLeft}.animate-scale-in{animation:.2s ease-out scaleIn}.animate-slide-down{animation:.3s ease-out slideDown}[dir=auto],.bidi-text,.post-title,.post-content-text,.student-post-text,.comment-text,.msg-body,.question-text,.ticket-msg-box,textarea{text-align:start;unicode-bidi:plaintext}.detail-nav-tab,.scope-tab,.settings-tab,.dashboard-tab,.mode-tab-btn,.users-tab-btn,.attendance-course-tab,.lounge-course-tab{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;text-transform:uppercase!important;letter-spacing:.05em!important;color:#1e5b8a!important;border-radius:var(--radius-sm)!important;transition:all var(--transition-fast)!important;cursor:pointer!important;white-space:nowrap!important;box-shadow:none!important;background:0 0!important;border:1px solid #d5c7b3!important;padding:.35rem .85rem!important;font-family:JetBrains Mono,Fira Code,monospace!important;font-size:.82rem!important;font-weight:700!important}.detail-nav-tab.active,.scope-tab.active,.settings-tab.active,.dashboard-tab.active,.mode-tab-btn.active,.users-tab-btn.active,.attendance-course-tab.active,.lounge-course-tab.active{color:#b89355!important;background:#f3e9d2!important;border:1px solid #b89355!important}.detail-nav-tab:hover:not(.active),.scope-tab:hover:not(.active),.settings-tab:hover:not(.active),.dashboard-tab:hover:not(.active),.mode-tab-btn:hover:not(.active),.users-tab-btn:hover:not(.active),.attendance-course-tab:hover:not(.active),.lounge-course-tab:hover:not(.active){color:#1e5b8a!important;background:#d5c7b326!important;border-color:#b89355!important}.markdown-body-preview,.markdown-body-preview *,.post-content-text,.post-content-text *,.student-post-text,.student-post-text *{overflow-wrap:anywhere!important;word-break:break-word!important;min-width:0!important;max-width:100%!important}.markdown-body-preview pre,.markdown-body-preview code{white-space:pre-wrap!important;word-wrap:break-word!important;max-width:100%!important;overflow-x:auto!important}.markdown-body-preview img,.markdown-body-preview iframe,.markdown-body-preview video{max-width:100%!important;height:auto!important}.markdown-body-preview table,.mdxeditor-root-contenteditable table{border-collapse:collapse;margin-bottom:1rem;width:100%!important;display:block!important;overflow-x:auto!important}.markdown-body-preview h1,.mdxeditor-root-contenteditable h1{margin-top:1.5em;margin-bottom:.5em;font-size:2em;font-weight:700}.markdown-body-preview h2,.mdxeditor-root-contenteditable h2{border-bottom:1px solid var(--color-border);margin-top:1.5em;margin-bottom:.5em;padding-bottom:.3em;font-size:1.5em;font-weight:600}.markdown-body-preview h3,.mdxeditor-root-contenteditable h3{margin-top:1em;margin-bottom:.5em;font-size:1.25em;font-weight:600}.markdown-body-preview p,.mdxeditor-root-contenteditable p{margin-top:0;margin-bottom:1em;line-height:1.6}.markdown-body-preview ul,.mdxeditor-root-contenteditable ul{margin-bottom:1em;padding-inline-start:2em;list-style-type:disc}.markdown-body-preview ol,.mdxeditor-root-contenteditable ol{margin-bottom:1em;padding-inline-start:2em;list-style-type:decimal}.markdown-body-preview li,.mdxeditor-root-contenteditable li{margin-bottom:.25em}.markdown-body-preview blockquote,.mdxeditor-root-contenteditable blockquote{color:var(--color-text-secondary);border-inline-start:.25em solid var(--color-border);background:var(--color-bg-secondary);margin:0 0 1em;padding:.5em 1em}.markdown-body-preview a,.mdxeditor-root-contenteditable a{color:var(--color-primary);text-decoration:none}.markdown-body-preview a:hover,.mdxeditor-root-contenteditable a:hover{text-decoration:underline}.markdown-body-preview th,.markdown-body-preview td,.mdxeditor-root-contenteditable th,.mdxeditor-root-contenteditable td{border:1px solid var(--color-border);padding:.5em 1em}.markdown-body-preview th,.mdxeditor-root-contenteditable th{background:var(--color-bg-secondary);font-weight:600}.markdown-body-preview .directive-note,.markdown-body-preview .directive-warning,.markdown-body-preview .directive-danger,.markdown-body-preview .directive-tip,.markdown-body-preview .directive-info{border-radius:var(--radius-sm);border-inline-start:4px solid var(--color-primary);background-color:var(--color-primary-alpha);margin:1rem 0;padding:1rem}.feed-list{box-sizing:border-box;flex-direction:column;gap:1rem;width:100%;min-width:0;max-width:100%;display:flex}.app-content-inner{min-width:0}.app-content-inner>*,.course-detail-page>*,.course-tab-content>*,.course-posts-tab>*,.feed-list>*{box-sizing:border-box;min-width:0;max-width:100%}@media (width<=768px){html,body,.app-content{max-width:100vw;overflow-x:hidden}.app-content-inner{max-width:100%;overflow-x:hidden}}.w-md-editor,.w-md-editor-text-pre>code,.w-md-editor-text-input,.w-md-editor-preview{font-family:IBM Plex Sans Arabic,Cairo,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:1rem!important;line-height:1.65!important}.w-md-editor-text-input,.w-md-editor-text-pre,.w-md-editor-text-pre>code{text-align:start!important;unicode-bidi:plaintext!important}[data-theme=dark] .w-md-editor{background-color:var(--color-bg-primary)!important;color:var(--color-text-primary)!important;border-color:var(--color-border)!important}[data-theme=dark] .w-md-editor-toolbar{background-color:var(--color-bg-elevated)!important;border-bottom-color:var(--color-border)!important}[data-theme=dark] .w-md-editor-toolbar li>button{color:var(--color-text-secondary)!important}[data-theme=dark] .w-md-editor-toolbar li>button:hover{color:var(--color-text-primary)!important;background-color:var(--color-bg-overlay)!important}[data-theme=dark] .w-md-editor-preview{background-color:var(--color-bg-primary)!important;color:var(--color-text-primary)!important}:root{--color-ink-navy:#0e1b2c;--color-parchment:#f8f6f0;--color-brass:#b89355;--color-brass-dark:#967438;--color-burgundy:#5b2333;--color-slate:#5c6470;--color-hairline-light:#e4ddd0;--color-hairline-dark:#1e2c40;--color-accent:var(--color-brass);--color-accent-hover:var(--color-brass-dark);--color-accent-light:#b8935524;--color-accent-subtle:#b8935514;--color-accent-glow:#b8935547;--color-success:#1e7e59;--color-success-light:#1e7e591f;--color-warning:#946924;--color-warning-light:#9469241f;--color-error:#8b2539;--color-error-light:#8b25391f;--color-info:#2d557c;--color-info-light:#2d557c1f;--color-bg-primary:#f8f6f0;--color-bg-secondary:#fff;--color-bg-tertiary:#f1ede2;--color-bg-elevated:#fff;--color-bg-overlay:#0e1b2c73;--color-bg-glass:#f8f6f0e0;--color-text-primary:#101c2a;--color-text-secondary:#485465;--color-text-tertiary:#748092;--color-text-inverse:#fff;--color-text-link:#244976;--color-border:var(--color-hairline-light);--color-border-subtle:var(--color-hairline-light);--color-border-default:var(--color-hairline-light);--color-border-hover:#cfc5b4;--color-border-focus:var(--color-brass);--color-primary:var(--color-brass);--color-brand-primary:var(--color-brass);--color-brand-secondary:var(--color-brass-dark);--color-btn-primary-bg:linear-gradient(135deg, #102136 0%, #1a3250 100%);--color-btn-primary-text:#fff;--color-btn-primary-border:#b8935580;--color-btn-primary-hover:linear-gradient(135deg, #183354 0%, #24446d 100%);--color-btn-primary-glow:0 4px 14px #10213638;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 2px 6px #0000000f;--shadow-md:0 4px 14px #00000014;--shadow-lg:0 10px 25px -4px #0000001a;--shadow-xl:0 20px 35px -5px #0000001f;--shadow-glow:0 0 0 1px #b893554d, 0 4px 20px #b8935526;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--sidebar-width:264px;--sidebar-collapsed-width:74px;--topbar-height:66px;--bottomnav-height:66px;--content-max-width:1240px;--transition-fast:.18s cubic-bezier(.4, 0, .2, 1);--transition-normal:.26s cubic-bezier(.4, 0, .2, 1);--transition-slow:.38s cubic-bezier(.4, 0, .2, 1);--glass-blur:blur(12px);--glass-bg:#ffffffbf;--glass-border:#b8935538}[data-theme=dark]{--color-accent:#cfa864;--color-accent-hover:#dfbc7b;--color-accent-light:#cfa86429;--color-accent-subtle:#cfa8641a;--color-accent-glow:#cfa86459;--color-success:#63cf9c;--color-success-light:#63cf9c24;--color-warning:#e0b468;--color-warning-light:#e0b46824;--color-error:#e06078;--color-error-light:#e0607829;--color-info:#78a9dc;--color-info-light:#78a9dc29;--color-bg-primary:#0a131f;--color-bg-secondary:#111d2e;--color-bg-tertiary:#17263b;--color-bg-elevated:#1a2c44;--color-bg-overlay:#02060cbf;--color-bg-glass:#111d2ee0;--color-text-primary:#f8fafd;--color-text-secondary:#b5c2d4;--color-text-tertiary:#7d8ea5;--color-text-inverse:#0a131f;--color-text-link:#e2c07f;--color-border:#213248;--color-border-subtle:#213248;--color-border-default:#213248;--color-border-hover:#324763;--color-border-focus:#cfa864;--color-primary:#cfa864;--color-brand-primary:#cfa864;--color-brand-secondary:#dfbc7b;--color-btn-primary-bg:linear-gradient(135deg, #cfa864 0%, #b38b44 100%);--color-btn-primary-text:#0a131f;--color-btn-primary-border:#dfbc7b;--color-btn-primary-hover:linear-gradient(135deg, #dfbc7b 0%, #c49a50 100%);--color-btn-primary-glow:0 4px 18px #cfa86459;--shadow-xs:0 1px 2px #0003;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 6px 18px #00000059;--shadow-lg:0 12px 30px -4px #00000073;--shadow-xl:0 22px 42px -6px #0000008c;--shadow-glow:0 0 0 1px #cfa86466, 0 4px 24px #cfa86433;--glass-blur:blur(14px);--glass-bg:#111d2ed9;--glass-border:#cfa86440}:root{--tag-announcement:#b89355;--tag-material:#3b5f85;--tag-schedule-change:#946924;--tag-cancellation:#8b2539;--tag-location-change:#3d4f69;--tag-quiz:#5b2333;--tag-task:#3a6852;--tag-practical:#2f5f76;--tag-oral:#784d3b;--tag-exam:#8b2539}
