.forgot-password-dialog{max-width:460px}.auth-alert-success{color:#4ade80;border-radius:var(--radius-md,8px);background:#22c55e1f;border:1px solid #22c55e4d;padding:.75rem 1rem;font-size:.85rem;line-height:1.4}.verification-notice-card{border-radius:var(--radius-md,8px);color:var(--color-text-muted,#94a3b8);background:#0f172a99;border:1px solid #ffffff14;padding:.85rem 1rem;font-size:.85rem;line-height:1.45}.verification-code-input{width:100%;font-family:var(--font-mono,monospace);letter-spacing:.45em;text-align:center;background:var(--color-surface-elevated,#1e293b);border:2px solid var(--color-border,#ffffff1a);border-radius:var(--radius-md,8px);color:var(--color-text,#f8fafc);transition:all var(--duration-fast,.15s) ease;outline:none;padding:.65rem .75rem;font-size:1.75rem;font-weight:700}.verification-timer-badge{color:var(--color-text-muted,#94a3b8);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.verification-timer-badge.warning{color:#f59e0b}.verification-timer-badge.expired{color:#ef4444}.landing-container{background-color:var(--color-background);min-height:100vh;color:var(--color-text);flex-direction:column;display:flex;overflow-x:hidden}.landing-header{z-index:50;-webkit-backdrop-filter:blur(12px);background:var(--navbar-bg);border-bottom:1px solid var(--color-border);width:100%;transition:background var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);position:sticky;top:0}.landing-nav{grid-template-columns:1fr auto 1fr;align-items:center;max-width:1280px;margin:0 auto;padding:.875rem 1.5rem;display:grid}.landing-brand{color:var(--color-text);justify-self:start;align-items:center;gap:.5rem;text-decoration:none;display:flex}.brand-text{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.625rem;font-weight:700}.landing-nav-links{justify-self:center;align-items:center;gap:2.25rem;display:flex}.landing-nav-link{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-standard);font-size:.9rem;font-weight:500;text-decoration:none}.landing-nav-link:hover{color:var(--color-text)}.landing-nav-actions{justify-self:end;align-items:center;gap:.875rem;display:flex}.landing-mobile-toggle{border-radius:var(--radius-md,8px);background:var(--color-surface,#ffffff0a);border:1px solid var(--color-border);width:38px;height:38px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.landing-mobile-toggle:hover,.landing-mobile-toggle.active{background:var(--color-surface-hover,#ffffff14);border-color:var(--color-border-hover,#fff3);color:var(--color-accent)}.landing-mobile-menu{display:none}@media (width<=768px){.landing-nav{justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.landing-brand{flex-shrink:0}.brand-text{font-size:1.35rem}.landing-nav-links{display:none!important}.landing-nav-actions{align-items:center;gap:8px;display:flex}.landing-nav-desktop-btn{display:none!important}.landing-nav-signin-btn{height:36px;min-height:36px;padding:0 12px;font-size:.82rem}.landing-mobile-toggle{display:inline-flex}.landing-mobile-menu{background:var(--navbar-bg,#0f1015);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(20px);flex-direction:column;gap:16px;padding:16px 18px 22px;animation:.2s cubic-bezier(.16,1,.3,1) mobileMenuDropdown;display:flex;box-shadow:0 20px 36px #0009}@keyframes mobileMenuDropdown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.landing-mobile-links{flex-direction:column;gap:4px;display:flex}.landing-mobile-link{border-radius:var(--radius-md,8px);color:var(--color-text);transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);justify-content:space-between;align-items:center;padding:10px 12px;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.landing-mobile-link i{color:var(--color-text-dim,#656d76);font-size:14px}.landing-mobile-link:hover,.landing-mobile-link:active{background:var(--color-accent-dim);color:var(--color-accent)}.landing-mobile-link:hover i{color:var(--color-accent)}.landing-mobile-cta{border-top:1px solid var(--color-border);flex-direction:column;gap:8px;padding-top:10px;display:flex}.landing-mobile-cta-btn{justify-content:center;width:100%;min-height:42px}}.btn-affinity-ghost{border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-pill);cursor:pointer;min-height:44px;transition:all var(--duration-fast) var(--ease-standard);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.125rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-affinity-ghost:focus-visible,.btn-affinity-primary:focus-visible,.role-btn:focus-visible,.form-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-affinity-ghost:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.btn-affinity-primary{background-color:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);border-radius:var(--radius-pill);cursor:pointer;min-height:44px;transition:all var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 3px #0000004d}.btn-affinity-primary:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 4px 12px var(--color-accent-glow);transform:translateY(-1px)}.btn-affinity-primary:active{transform:translateY(0)}.hero-section{grid-template-columns:1.1fr .9fr;align-items:center;gap:3.5rem;max-width:1280px;min-height:calc(100dvh - 70px);margin:0 auto;padding:2.5rem 1.5rem;display:grid}@media (width<=1024px){.hero-section{grid-template-columns:1fr;gap:2.5rem;min-height:auto;padding:3rem 1.25rem}}.hero-eyebrow{border-radius:var(--radius-pill);background:var(--color-accent-dim);letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);border:1px solid #a7f17540;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .875rem;font-size:.775rem;font-weight:600;display:inline-flex}.hero-eyebrow .eyebrow-pulse{background:var(--color-accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulseGlow}@keyframes pulseGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.hero-headline{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text);margin:0 0 1.5rem;font-size:clamp(2.75rem,5.5vw,5rem);font-weight:700;line-height:.98}.hero-headline .text-accent{color:var(--color-accent)}.hero-description{color:var(--color-text-muted);max-width:540px;margin:0 0 2.25rem;font-size:1.1rem;line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.hero-metrics{border-top:1px solid var(--color-border);align-items:center;gap:2rem;padding-top:1.5rem;display:flex}.metric-item{flex-direction:column;display:flex}.metric-value{font-family:var(--font-display);color:var(--color-text);font-size:1.5rem;font-weight:700}.metric-label{color:var(--color-text-muted);font-size:.775rem}.ide-window{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);transition:border-color var(--duration-base) var(--ease-standard);overflow:hidden}.ide-window:hover{border-color:#a7f17566}.ide-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.ide-dots{gap:6px;display:flex}.ide-dot{border-radius:50%;width:10px;height:10px}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27c93f}.ide-tabs{align-items:center;gap:.5rem;display:flex}.ide-tab{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border-subtle);border-bottom:2px solid var(--color-accent);align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.75rem;display:flex}.ide-body{font-family:var(--font-mono);color:var(--color-text);padding:1.25rem;font-size:.825rem;line-height:1.65;overflow-x:auto}.code-line{gap:1.25rem;display:flex}.line-no{color:var(--color-text-dim);-webkit-user-select:none;user-select:none;text-align:right;width:20px}.syntax-keyword{color:#ff7b72;font-weight:500}.syntax-fn{color:#d2a8ff}.syntax-type{color:#79c0ff}.syntax-str{color:var(--color-accent)}.syntax-comment{color:var(--color-text-muted);font-style:italic}.ide-footer-status{background:var(--color-surface);border-top:1px solid var(--color-border);font-family:var(--font-mono);justify-content:space-between;align-items:center;padding:.65rem 1rem;font-size:.725rem;display:flex}.status-badge-pass{color:var(--color-accent);align-items:center;gap:.4rem;display:flex}.status-meta{color:var(--color-text-dim)}.whatis-section{width:100%;max-width:1280px;margin:0 auto;padding:5.5rem 1.5rem}.whatis-container{grid-template-columns:1fr 1.25fr;align-items:center;gap:4.5rem;display:grid}@media (width<=1024px){.whatis-container{grid-template-columns:1fr;gap:2.5rem}}.whatis-header{flex-direction:column;display:flex}.section-eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--color-accent);margin-bottom:.85rem;font-size:.725rem;font-weight:700;display:inline-block}.whatis-title{font-family:var(--font-display);letter-spacing:-.025em;color:var(--color-text);margin:0;font-size:clamp(2rem,3.6vw,2.85rem);font-weight:700;line-height:1.15}.spec-pillars{flex-direction:column;gap:1.25rem;display:flex}.spec-pillar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);align-items:flex-start;gap:1.15rem;padding:1.25rem 1.5rem;display:flex}.spec-pillar:hover{border-color:var(--color-border-accent);transform:translateY(-2px)}.spec-icon-wrap{border-radius:var(--radius-sm);background:var(--color-accent-dim);width:42px;height:42px;color:var(--color-accent);border:1px solid var(--color-border-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.spec-info{flex-direction:column;gap:.35rem;display:flex}.spec-tag{font-family:var(--font-mono);color:var(--color-text);font-size:.925rem;font-weight:700}.spec-detail{color:var(--color-text-muted);font-size:.875rem;line-height:1.55}.pipeline-section{width:100%;max-width:1280px;margin:0 auto;padding:5rem 1.5rem}.section-header-compact{text-align:center;max-width:780px;margin:0 auto 3rem}.pipeline-headline{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text);margin:0;font-size:clamp(1.85rem,3.2vw,2.5rem);font-weight:700}.pipeline-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}@media (width<=1024px){.pipeline-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.pipeline-grid{grid-template-columns:1fr}}.pipeline-step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);flex-direction:column;justify-content:space-between;padding:1.75rem 1.25rem;display:flex}.pipeline-step:hover{border-color:var(--color-border-accent);transform:translateY(-2px)}.step-top{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.step-num{font-family:var(--font-mono);color:var(--color-accent);border-radius:var(--radius-pill);background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);padding:3px 8px;font-size:.75rem;font-weight:700}.step-icon-wrap{border-radius:var(--radius-sm);background:var(--color-accent-dim);width:36px;height:36px;color:var(--color-accent);justify-content:center;align-items:center;display:flex}.step-title{color:var(--color-text);margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.step-desc{color:var(--color-text-muted);flex:1;margin:0 0 1.5rem;font-size:.825rem;line-height:1.55}.step-footer{border-top:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;padding-top:.85rem;display:flex}.step-metric{font-family:var(--font-mono);color:var(--color-accent);font-size:.725rem;font-weight:600}.step-arrow{color:var(--color-text-dim);font-size:1.1rem;font-weight:400}.launchpad-section{width:100%;max-width:1280px;margin:0 auto;padding:3.5rem 1.5rem 6rem}.launchpad-container{width:100%}.terminal-launchpad{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);transition:border-color var(--duration-base) var(--ease-standard);padding:2rem 2.5rem}.terminal-launchpad:hover{border-color:var(--color-border-accent)}.launchpad-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;display:flex}.launchpad-terminal-prompt{align-items:center;gap:1rem;display:flex}.prompt-icon{color:var(--color-accent);flex-shrink:0}.prompt-code{font-family:var(--font-mono);flex-direction:column;gap:.25rem;display:flex}.prompt-cmd{color:var(--color-text);font-size:.95rem;font-weight:600}.prompt-status{color:var(--color-accent);font-size:.75rem}.launchpad-actions{align-items:center;gap:.875rem;display:flex}@media (width<=640px){.terminal-launchpad{padding:1.5rem}.launchpad-actions{flex-direction:column;width:100%}.launchpad-actions button{width:100%}}[data-theme=light] .ide-window{background:#fff;border-color:#1e1a1429;box-shadow:0 4px 20px #1e1a140f}[data-theme=light] .ide-header{background:#f7f4ee;border-color:#1e1a141f}[data-theme=light] .ide-tab{color:#111827;background:#ece5dc;border-color:#1e1a1424}[data-theme=light] .terminal-launchpad{background:#fff;border-color:#1e1a1429;box-shadow:0 4px 20px #1e1a140d}[data-theme=light] .syntax-keyword{color:#cf222e;font-weight:600}[data-theme=light] .syntax-fn{color:#8250df;font-weight:600}[data-theme=light] .syntax-type{color:#0969da}[data-theme=light] .syntax-str{color:#116329}[data-theme=light] .syntax-comment{color:#6e7781}.landing-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:2.5rem 1.5rem}.footer-content{max-width:1280px;color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;font-size:.85rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:100;animation:fadeIn var(--duration-base) var(--ease-standard);background:#000000bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-dialog{background:var(--color-surface);border:1px solid var(--color-border-hover);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);width:100%;max-width:440px;animation:scaleUp var(--duration-base) var(--ease-standard);position:relative;overflow:hidden}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.5rem 1.75rem 1rem;display:flex}.modal-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:1.5rem;font-weight:700}.modal-close-btn{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:1.25rem;display:flex}.modal-close-btn:hover{color:var(--color-text)}@media (width<=640px){.modal-dialog{border-radius:var(--radius-lg,14px);max-height:92dvh;margin:auto;overflow-y:auto}.modal-header{padding:1.15rem 1.15rem .85rem}.modal-title{font-size:1.2rem}.modal-body{padding:1.15rem}}.form-group{margin-bottom:1.25rem}.form-label{color:var(--color-text-muted);margin-bottom:.4rem;font-size:.8rem;font-weight:500;display:block}.form-input{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:100%;color:var(--color-text);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-standard);outline:none;padding:.65rem .875rem;font-family:inherit;font-size:.9rem}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}.password-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.password-input-wrapper .form-input{padding-right:2.6rem}.password-toggle-btn{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.password-toggle-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.auth-alert{border-radius:var(--radius-md);margin-bottom:1.25rem;padding:.75rem;font-size:.825rem}.auth-alert-error{color:#ff7b72;background:#ff5f561f;border:1px solid #ff5f564d}.auth-alert-success{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid #a7f1754d}.role-choice-group{gap:.5rem;margin-bottom:1.25rem;display:flex}.role-choice-btn{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);flex:1;padding:.5rem;font-size:.825rem;font-weight:500}.role-choice-btn.active{background:var(--color-surface-card);color:var(--color-accent);border-color:var(--color-accent)}.modal-footer-text{text-align:center;color:var(--color-text-muted);margin-top:1.25rem;font-size:.825rem}.modal-switch-link{color:var(--color-accent);cursor:pointer;margin-left:4px;font-weight:500;text-decoration:underline}.verification-container{flex-direction:column;gap:1.25rem;display:flex}.verification-notice-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);padding:1rem;font-size:.85rem;line-height:1.5}.verification-notice-email{color:var(--color-text);word-break:break-all;font-weight:600}.verification-input-group{flex-direction:column;align-items:center;gap:.6rem;display:flex}.verification-code-input{text-align:center;width:100%;max-width:260px;font-family:var(--font-mono,monospace);letter-spacing:.3em;background:var(--color-surface-elevated);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-accent);transition:all var(--duration-fast) var(--ease-standard);outline:none;padding:.75rem 1rem;font-size:1.75rem;font-weight:700}.verification-code-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}.verification-code-input.expired{color:#ef4444;border-color:#ef444480}.verification-timer-badge{color:var(--color-accent);background:#a7f1751f;border:1px solid #a7f17540;border-radius:9999px;align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.verification-timer-badge.warning{color:#fbbf24;background:#f59e0b26;border-color:#f59e0b66}.verification-timer-badge.expired{color:#f87171;background:#ef444426;border-color:#ef444466}.verification-actions{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.verification-secondary-row{justify-content:space-between;align-items:center;margin-top:.25rem;font-size:.8rem;display:flex}.verification-resend-btn{color:var(--color-accent);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-standard);background:0 0;border:none;padding:0;font-size:.8rem;font-weight:500;text-decoration:underline}.verification-resend-btn:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}.verification-back-link{color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard);background:0 0;border:none;padding:0;font-size:.8rem}.verification-back-link:hover{color:var(--color-text);text-decoration:underline}.ascii-logo-link{cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:none;outline:none;align-items:center;gap:10px;padding:0;text-decoration:none;transition:opacity .15s,transform .15s;display:inline-flex}.ascii-logo-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.ascii-logo-link:hover{opacity:.92;transform:translateY(-.5px)}.ascii-logo-container{-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm,6px);background:var(--color-surface-card);border:1px solid var(--color-border);align-items:center;gap:8px;padding:4px 8px;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.ascii-logo-link:hover .ascii-logo-container{border-color:var(--color-accent);background:var(--color-accent-dim)}.ascii-logo{font-family:var(--font-mono,"JetBrains Mono", "Fira Code", monospace);letter-spacing:.2px;white-space:pre;color:var(--color-text);background:linear-gradient(135deg, var(--color-text) 0%, var(--color-text-muted) 65%, var(--color-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;padding:0;font-size:7.5px;font-weight:700;line-height:1.1;transition:filter .15s}.ascii-logo-link:hover .ascii-logo{filter:drop-shadow(0 0 6px var(--color-accent-glow))}.ascii-badge{font-family:var(--font-sans,"GitLab Sans", sans-serif);letter-spacing:1px;text-transform:uppercase;color:var(--color-accent);border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-border-accent);align-items:center;gap:4px;padding:1px 6px;font-size:.6rem;font-weight:700;display:flex}.ascii-badge-dot{background:var(--color-accent);border-radius:50%;width:5px;height:5px}@media (width<=600px){.ascii-logo{font-size:6px;line-height:1.05}}.navContainer{background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);width:100%;height:56px;box-shadow:var(--navbar-shadow);z-index:1000;transition:background-color var(--duration-base) ease, border-color var(--duration-base) ease;box-sizing:border-box;position:sticky;top:0}.logoProf{box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;max-width:1440px;height:56px;margin:0 auto;padding:0 clamp(16px,3vw,40px);display:flex}#webName,.webName,.landing-brand{color:var(--color-text);transition:opacity var(--duration-fast,70ms) var(--ease-standard,ease-in-out);flex-shrink:0;align-items:center;gap:.5rem;margin:0;text-decoration:none;display:flex}.landing-brand:hover{opacity:.88}.landing-brand .brand-text,.brand-text{font-family:var(--font-display,"GitLab Sans", sans-serif);letter-spacing:-.02em;color:var(--color-text);transition:color var(--duration-base) ease;font-size:1.625rem;font-weight:700;line-height:1}.navRightActions{align-items:center;gap:12px;margin-left:auto;display:flex}.theme-toggle-btn{cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);width:38px;height:38px;color:var(--color-text-muted);transition:border-color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease, background-color var(--duration-base,.15s) ease, color var(--duration-base,.15s) ease;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:50%;outline:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle-btn:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow);transform:scale(1.05)}.theme-toggle-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.theme-toggle-icon{transition:transform var(--duration-base,.15s) ease;display:block}.theme-toggle-btn:active .theme-toggle-icon{transform:rotate(30deg)scale(.9)}.theme-toggle-icon--sun{color:#f59e0b}.theme-toggle-icon--moon{color:var(--color-accent)}.profile-container{position:relative}.profileAvatarWrap{cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);width:38px;height:38px;transition:border-color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease, background-color var(--duration-base,.15s) ease;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:50%;outline:none;justify-content:center;align-items:center;display:flex;position:relative}.profileAvatarWrap:hover{border-color:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow);transform:scale(1.05)}.profileAvatarWrap:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.profileInitialsBadge{width:100%;height:100%;color:var(--color-accent);font-family:var(--font-mono,monospace);letter-spacing:.04em;border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}.profileImg,.profileAvatarWrap svg,.profileAvatarWrap img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.onlineBeacon{background:var(--color-accent);border:2px solid var(--color-background);width:9px;height:9px;box-shadow:0 0 6px var(--color-accent-glow);pointer-events:none;border-radius:50%;position:absolute;bottom:0;right:0}.profile-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg,12px);width:280px;box-shadow:var(--shadow-elevated);z-index:1060;box-sizing:border-box;padding:16px;animation:.15s ease-out profileDropdownFade;position:absolute;top:calc(100% + 10px);right:0}@keyframes profileDropdownFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{flex-direction:column;gap:4px;display:flex}.dropdownUserRow{align-items:center;gap:12px;display:flex}.dropdownAvatarMini{border:1px solid var(--color-accent-dim);background:var(--color-surface-card);width:38px;min-width:38px;height:38px;color:var(--color-accent);font-family:var(--font-mono,monospace);object-fit:cover;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex;overflow:hidden}.dropdownAvatarMini svg,.dropdownAvatarMini img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.dropdownUserMeta{flex-direction:column;gap:2px;min-width:0;display:flex}.dropdownName{color:var(--color-text);font-size:.92rem;font-weight:600;line-height:1.25}.dropdownRoleBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-border-accent);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;align-items:center;width:fit-content;margin-top:2px;padding:2px 8px;font-size:.66rem;font-weight:700;display:inline-flex}.dropdownEmail{color:var(--color-text-muted);word-break:break-all;margin-top:6px;font-size:.78rem;display:block}.dropdown-divider{background:var(--color-border-subtle);height:1px;margin:12px 0}.dropdown-item{border-radius:var(--radius-md,8px);width:100%;height:42px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast,70ms) ease;box-sizing:border-box;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:0 12px;font-size:.86rem;font-weight:500;display:flex}.dropdown-item:hover{background:var(--sidebar-item-hover);color:var(--color-accent)}.dropdown-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.dropdown-item--danger{color:var(--color-danger)}.dropdown-item--danger:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}.mobile-sidebar-trigger{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast,70ms) ease;outline:none;flex-shrink:0;justify-content:center;align-items:center;margin-right:8px;display:none}.mobile-sidebar-trigger:hover{background:var(--sidebar-item-hover,#ffffff14);border-color:var(--color-accent);color:var(--color-accent)}@media (width<=768px){.logoProf{padding:0 14px}.mobile-sidebar-trigger{display:inline-flex}.brand-text{font-size:1.35rem}}:root{--sidebar-w-collapsed:72px;--sidebar-w-expanded:260px;--sidebar-current-w:var(--sidebar-w-collapsed)}body.sidebar-pinned{--sidebar-current-w:var(--sidebar-w-expanded)}.esense-sidebar{width:var(--sidebar-w-collapsed);background:var(--sidebar-bg);-webkit-backdrop-filter:blur(24px);border-right:1px solid var(--sidebar-border);height:100dvh;box-shadow:var(--sidebar-shadow), inset -1px 0 0 #ffffff08;z-index:1040;will-change:width;-webkit-user-select:none;user-select:none;box-sizing:border-box;flex-direction:column;transition:width .28s cubic-bezier(.2,0,0,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.esense-sidebar.expanded{width:var(--sidebar-w-expanded)}.esense-sidebar-header{border-bottom:1px solid var(--sidebar-border);box-sizing:border-box;align-items:center;height:56px;min-height:56px;padding:0 10px;display:flex;position:relative;overflow:hidden}.esense-sidebar-brand{color:var(--sidebar-text);cursor:pointer;white-space:nowrap;border-radius:var(--radius-md,8px);-webkit-user-select:none;user-select:none;box-sizing:border-box;background:0 0;border:none;outline:none;align-items:center;gap:12px;width:100%;min-width:0;padding:4px 8px;text-decoration:none;transition:background .15s,transform .15s;display:flex;overflow:hidden}.esense-sidebar-brand:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.esense-sidebar-brand:hover{background:var(--sidebar-item-hover)}.esense-sidebar-brand:active{transform:scale(.98)}.esense-brand-mark{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);width:36px;min-width:36px;height:36px;box-shadow:var(--shadow-card);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,border-color .15s;display:flex}.esense-sidebar-brand:hover .esense-brand-mark{border-color:var(--color-accent-glow);transform:scale(1.04)}.esense-brand-mark svg{width:22px;height:22px}.esense-brand-text{white-space:nowrap;opacity:0;pointer-events:none;flex-direction:column;min-width:0;max-width:0;transition:opacity .15s,max-width .28s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1);display:flex;overflow:hidden;transform:translate(-6px)}.esense-sidebar.expanded .esense-brand-text{opacity:1;pointer-events:auto;max-width:170px;transition:opacity .22s 50ms,max-width .28s cubic-bezier(.2,0,0,1),transform .24s cubic-bezier(.2,0,0,1) 40ms;transform:translate(0)}.esense-brand-title{font-family:var(--font-sans,"GitLab Sans", sans-serif);letter-spacing:.05em;color:var(--sidebar-text);font-size:1.12rem;font-weight:700;line-height:1.1}.esense-brand-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);font-size:.65rem;font-weight:600;line-height:1.2}.esense-sidebar-body{scrollbar-width:thin;scrollbar-color:var(--sidebar-border) transparent;flex-direction:column;flex:1;gap:16px;padding:14px 0;display:flex;overflow:hidden auto}.esense-sidebar-body::-webkit-scrollbar{width:4px}.esense-sidebar-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.esense-sidebar-group{box-sizing:border-box;flex-direction:column;flex-shrink:0;gap:4px;padding:0 10px;display:flex}.esense-sidebar-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--sidebar-text-dim);white-space:nowrap;-webkit-user-select:none;user-select:none;opacity:0;pointer-events:none;justify-content:space-between;align-items:center;max-height:0;margin:0;padding:0 8px;font-size:.65rem;font-weight:700;transition:opacity .14s,max-height .28s cubic-bezier(.2,0,0,1),padding .28s,margin .28s;display:flex;overflow:hidden}.esense-sidebar.expanded .esense-sidebar-heading{opacity:1;pointer-events:auto;max-height:28px;margin-bottom:2px;padding:4px 8px 2px;transition:opacity .22s 60ms,max-height .28s cubic-bezier(.2,0,0,1),padding .28s,margin .28s}.esense-heading-badge{font-size:.62rem;font-weight:700;font-family:var(--font-mono,monospace);border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-border-accent);padding:1px 6px}.esense-sidebar:not(.expanded) .esense-sidebar-group+.esense-sidebar-group:before{content:"";background:var(--sidebar-border);width:32px;height:1px;margin:6px auto;display:block}.esense-sidebar-item,.esense-class-item,.esense-sidebar-action-btn{border-radius:var(--radius-md,8px);width:100%;height:40px;min-height:40px;color:var(--sidebar-text-muted);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border:1px solid #0000;flex-shrink:0;align-items:center;gap:12px;padding:0 8px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:flex;position:relative;overflow:hidden}.esense-sidebar-item:hover,.esense-class-item:hover{background:var(--sidebar-item-hover);color:var(--sidebar-text);border-color:var(--color-border-subtle)}.esense-sidebar-item:focus-visible,.esense-class-item:focus-visible,.esense-sidebar-action-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.esense-sidebar-item.active,.esense-class-item.active{background:var(--sidebar-item-active-bg);border-color:var(--color-border-accent);color:var(--color-accent);font-weight:600}.esense-sidebar.expanded .esense-sidebar-item.active:before,.esense-sidebar.expanded .esense-class-item.active:before{content:"";background:var(--color-accent);border-radius:3px;width:3px;position:absolute;top:9px;bottom:9px;left:2px}.esense-item-icon{width:34px;min-width:34px;height:34px;color:inherit;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex;position:relative}.esense-sidebar-item:hover .esense-item-icon,.esense-class-item:hover .esense-item-icon{transform:scale(1.05)}.esense-sidebar-item.active .esense-item-icon,.esense-class-item.active .esense-item-icon{color:var(--color-accent)}.esense-item-label,.esense-class-name,.esense-action-label{white-space:nowrap;text-overflow:ellipsis;text-align:left;opacity:0;pointer-events:none;flex:1;max-width:0;font-size:.86rem;font-weight:500;line-height:1.2;transition:opacity .15s,max-width .28s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1);display:block;overflow:hidden;transform:translate(-6px)}.esense-sidebar.expanded .esense-item-label,.esense-sidebar.expanded .esense-class-name,.esense-sidebar.expanded .esense-action-label{opacity:1;pointer-events:auto;max-width:175px;transition:opacity .22s 50ms,max-width .28s cubic-bezier(.2,0,0,1),transform .24s cubic-bezier(.2,0,0,1) 40ms;transform:translate(0)}.esense-sidebar.expanded .esense-item-label.approvals-item-label{justify-content:space-between;align-items:center;display:flex}.approvals-badge-count{background-color:var(--color-danger);color:#fff;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:.675rem;font-weight:700;line-height:1.2}.sidebar-pending-dot{background-color:var(--color-danger);width:7px;height:7px;box-shadow:0 0 0 1.5px var(--sidebar-bg);pointer-events:none;border-radius:50%;position:absolute;top:4px;right:4px}.esense-sidebar-classes{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;overscroll-behavior:contain;flex-direction:column;gap:4px;width:100%;max-height:min(348px,100dvh - 280px);padding-right:2px;display:flex;overflow:hidden auto}.esense-sidebar:not(.expanded) .esense-sidebar-classes{scrollbar-width:none;-ms-overflow-style:none}.esense-sidebar:not(.expanded) .esense-sidebar-classes::-webkit-scrollbar{width:0;height:0;display:none}.esense-sidebar.expanded .esense-sidebar-classes::-webkit-scrollbar{width:4px}.esense-sidebar.expanded .esense-sidebar-classes::-webkit-scrollbar-track{background:0 0}.esense-sidebar.expanded .esense-sidebar-classes::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.esense-sidebar.expanded .esense-sidebar-classes::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}.esense-sidebar-action-btn{background:var(--color-accent-dim);border:1px solid var(--color-border-accent);color:var(--color-accent);margin-top:6px;font-size:.82rem;font-weight:600}.esense-sidebar-action-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);box-shadow:0 4px 14px var(--color-accent-glow);transform:translateY(-1px)}.esense-action-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;display:flex}.esense-sidebar-footer{border-top:1px solid var(--sidebar-border);box-sizing:border-box;flex-direction:column;gap:4px;padding:10px;display:flex}.esense-sidebar:not(.expanded) .esense-sidebar-footer{align-items:center;padding:10px 8px}@media (width>=769px){.esense-sidebar:not(.expanded) [data-tooltip]{position:relative}.esense-sidebar:not(.expanded) [data-tooltip]:after{content:attr(data-tooltip);background:var(--sidebar-tooltip-bg);border:1px solid var(--sidebar-tooltip-border);color:var(--sidebar-text);font-size:.78rem;font-weight:500;font-family:var(--font-sans,"GitLab Sans", sans-serif);border-radius:var(--radius-sm,6px);white-space:nowrap;pointer-events:none;opacity:0;box-shadow:var(--shadow-elevated);z-index:1099;padding:6px 12px;transition:opacity .15s,transform .15s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)scale(.94)}.esense-sidebar:not(.expanded) [data-tooltip]:hover:after{opacity:1;transform:translateY(-50%)scale(1)}}.esense-sidebar-backdrop{-webkit-backdrop-filter:blur(6px);z-index:1190;opacity:0;pointer-events:none;background:#000000b3;transition:opacity .2s;position:fixed;inset:0}.esense-sidebar-backdrop.active{opacity:1;pointer-events:auto;touch-action:none}body.sidebar-mobile-locked,html.sidebar-mobile-locked{touch-action:none!important;-webkit-overflow-scrolling:auto!important;height:100%!important;overflow:hidden!important}@media (width<=768px){.esense-sidebar{z-index:1200;touch-action:pan-y;transition:transform .28s cubic-bezier(.2,0,0,1);transform:translate(-100%);box-shadow:0 0 32px #000000b3;width:var(--sidebar-w-expanded,260px)!important}.esense-sidebar.mobile-open{transform:translate(0)}.esense-sidebar-body{-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important;overscroll-behavior:contain!important;padding-bottom:24px!important;overflow:hidden auto!important}.esense-sidebar-classes{overscroll-behavior:auto!important;max-height:none!important;overflow:visible!important}.esense-sidebar .esense-brand-text{opacity:1!important;pointer-events:auto!important;max-width:175px!important;transform:translate(0)!important}.esense-sidebar .esense-sidebar-heading{opacity:1!important;pointer-events:auto!important;max-height:28px!important;margin-bottom:2px!important;padding:4px 8px 2px!important}.esense-sidebar .esense-item-label,.esense-sidebar .esense-class-name,.esense-sidebar .esense-action-label{opacity:1!important;pointer-events:auto!important;max-width:175px!important;transform:translate(0)!important}.esense-sidebar .esense-sidebar-footer{align-items:stretch!important;padding:10px!important}}@media (width>=769px){body.with-esense-sidebar .teacher-portal,body.with-esense-sidebar .teacher-analytics-portal,body.with-esense-sidebar .student-portal,body.with-esense-sidebar .student-todo-page,body.with-esense-sidebar .class-view-portal,body.with-esense-sidebar .dean-portal{padding-left:var(--sidebar-w-collapsed,72px);transition:padding-left .28s cubic-bezier(.2,0,0,1)}body.with-esense-sidebar.sidebar-pinned .teacher-portal,body.with-esense-sidebar.sidebar-pinned .teacher-analytics-portal,body.with-esense-sidebar.sidebar-pinned .student-portal,body.with-esense-sidebar.sidebar-pinned .student-todo-page,body.with-esense-sidebar.sidebar-pinned .class-view-portal,body.with-esense-sidebar.sidebar-pinned .dean-portal{padding-left:var(--sidebar-w-expanded,260px)}}@media (width<=768px){body.with-esense-sidebar .teacher-portal,body.with-esense-sidebar .teacher-analytics-portal,body.with-esense-sidebar .student-portal,body.with-esense-sidebar .student-todo-page,body.with-esense-sidebar .class-view-portal,body.with-esense-sidebar .dean-portal{padding-left:0!important}}.student-portal{background-color:var(--color-background,#0f1015);width:100%;min-height:100vh;color:var(--color-text,#fff);box-sizing:border-box;font-family:var(--font-sans,"GitLab Sans", -apple-system, BlinkMacSystemFont, sans-serif);position:relative;overflow-x:hidden}.student-portal .bg-glow{pointer-events:none;z-index:0;filter:blur(90px);opacity:.12;border-radius:50%;width:500px;height:500px;transition:opacity .3s;position:fixed}.student-portal .glow-top-left{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);top:-140px;left:-100px}.student-portal .glow-bottom-right{background:radial-gradient(circle,#387eb8 0%,#387eb800 70%);bottom:-160px;right:-100px}.student-portal .contentContainer{box-sizing:border-box;z-index:1;flex-direction:column;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 48px;display:flex;position:relative}.student-portal .copyToast{background:var(--color-surface);border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-md,8px);z-index:2000;padding:10px 20px;font-size:.86rem;font-weight:600;animation:.2s ease-out toastSlideUp;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #00000080}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.student-portal .headerBg{border-radius:var(--radius-xl,20px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0000004d 0px 4px 16px 0px);box-sizing:border-box;padding:24px 28px;position:relative;overflow:hidden}.student-portal .headerBg:before{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);height:2px;position:absolute;top:0;left:0;right:0}.student-portal .headerContainer{flex-flow:wrap;justify-content:space-between;align-items:center;gap:20px;width:100%;display:flex}.student-portal .headerLeft{flex-direction:column;gap:8px;max-width:720px;display:flex}.student-portal .heroPill{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;width:fit-content;padding:4px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.student-portal .hlTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:clamp(1.85rem,3vw,2.5rem);font-weight:700;line-height:1.04}.student-portal .heroStatsRow{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:24px;margin-top:4px;padding-top:14px;display:flex}.student-portal .heroStatItem{flex-direction:column;gap:2px;display:flex}.student-portal .heroStatVal{color:var(--color-text);font-size:1.35rem;font-weight:700;font-family:var(--font-mono,monospace);line-height:1.2}.student-portal .heroStatLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);font-size:.75rem;font-weight:500}.student-portal .heroStatDivider{background:var(--color-surface-hover);width:1px;height:28px}.student-portal .joinContainer{align-items:center;gap:12px;display:flex}.student-portal .joinClass{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:44px;color:var(--color-on-accent);font-size:.88rem;font-weight:600;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 20px;display:inline-flex}.student-portal .joinClass:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-portal .joinClass:active{transform:translateY(0)}.student-portal .joinClass:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.student-portal .jcT{color:var(--color-on-accent);font-size:.88rem;font-weight:600}.student-portal .bottom{grid-template-columns:minmax(280px,320px) 1fr;align-items:start;gap:20px;width:100%;display:grid}@media (width<=1024px){.student-portal .bottom{grid-template-columns:1fr}}.student-portal .leftCc{flex-direction:column;gap:16px;width:100%;display:flex}.student-portal .studentProfileBg{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);box-sizing:border-box;transition:border-color var(--duration-base,.15s) ease;padding:18px 20px}.student-portal .studentProfileBg:hover{border-color:var(--color-accent-border)}.student-portal .spContainer{flex-direction:column;gap:14px;width:100%;display:flex}.student-portal .pspContainer{flex-direction:row;align-items:center;gap:14px;width:100%;display:flex}.student-portal .spProfileWrapper{flex-shrink:0;position:relative}.student-portal .spInitialsBadge{background:var(--color-surface-elevated);border:1.5px solid var(--color-border);width:52px;height:52px;color:var(--color-accent);font-family:var(--font-mono,monospace);letter-spacing:.04em;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;font-weight:700;display:flex;overflow:hidden}.student-portal .spInitialsBadge svg,.student-portal .spInitialsBadge img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.student-portal .spProfileBeacon{background:var(--color-accent);border:2px solid var(--color-surface);border-radius:50%;width:11px;height:11px;position:absolute;bottom:1px;right:1px}.student-portal .pspInner{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.student-portal .spText{flex-direction:column;gap:2px;min-width:0;display:flex}.student-portal .spNameRow{align-items:center;gap:6px;min-width:0;display:flex}.student-portal .spName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;cursor:pointer;transition:color var(--duration-fast,.12s) ease;margin:0;font-size:1.1rem;font-weight:600;overflow:hidden}.student-portal .spName:hover{color:var(--color-accent)}.student-portal .spEditNameBtn{border-radius:var(--radius-sm,6px);width:24px;height:24px;color:var(--color-text-muted,#94a3b8);cursor:pointer;transition:all var(--duration-fast,.12s) ease;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:inline-flex}.student-portal .spEditNameBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.student-portal .spNameEditForm{align-items:center;gap:6px;width:100%;display:flex}.student-portal .spNameEditInput{background:var(--color-surface-elevated,#1c2128);border:1px solid var(--color-accent,#a7f175);border-radius:var(--radius-sm,6px);min-width:0;color:var(--color-text);box-shadow:var(--shadow-card);outline:none;flex:1;padding:4px 8px;font-size:.92rem;font-weight:600}.student-portal .spNameEditActions{flex-shrink:0;align-items:center;gap:4px;display:flex}.student-portal .spNameActionBtn{border-radius:var(--radius-sm,6px);cursor:pointer;width:24px;height:24px;transition:all var(--duration-fast,.12s) ease;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:inline-flex}.student-portal .spNameSaveBtn{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.student-portal .spNameSaveBtn:hover:not(:disabled){background:var(--color-accent);color:#0b0f14}.student-portal .spNameSaveBtn:disabled{opacity:.4;cursor:not-allowed}.student-portal .spNameCancelBtn{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text-muted)}.student-portal .spNameCancelBtn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.student-portal .spRoleBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-border);color:var(--color-accent);align-items:center;width:fit-content;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.student-portal .viewBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;height:36px;color:var(--color-text);cursor:pointer;transition:all var(--duration-base,.15s) ease;justify-content:center;align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.student-portal .viewBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent)}.student-portal .spBtnText{font-size:.82rem;font-weight:600}.student-portal .analyticsContainer{flex-direction:column;gap:10px;width:100%;display:flex}.student-portal .analyticsHeader{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-dim);align-items:center;gap:8px;margin:0;font-size:.78rem;font-weight:700;display:flex}.student-portal .performanceBg{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);box-sizing:border-box;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.student-portal .perfTopRow{grid-template-columns:1fr 1px 1fr;align-items:center;gap:12px;display:grid}.student-portal .perfStatItem{flex-direction:column;gap:2px;display:flex}.student-portal .perfStatHeader{color:var(--color-text-dim,#656d76);align-items:center;gap:6px;display:flex}.student-portal .perfStatIcon{color:var(--color-accent);align-items:center;display:inline-flex}.student-portal .perfStatLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);font-size:.72rem;font-weight:600}.student-portal .analyticValue{font-family:var(--font-mono,monospace);color:var(--color-text);margin:0;font-size:1.7rem;font-weight:700;line-height:1.1}.student-portal #analyticsErrorRate{color:var(--color-accent)}.student-portal .analyticDesc{color:var(--color-text-muted,#8b949e);margin:0;font-size:.74rem}.student-portal .perfStatDivider{background:var(--color-surface-hover);width:1px;height:38px}.student-portal .performanceBg.perfHealthCardOnly{cursor:pointer;transition:all var(--duration-base,.15s) cubic-bezier(.16, 1, .3, 1);gap:12px;padding:18px 20px;position:relative;overflow:hidden}.student-portal .performanceBg.perfHealthCardOnly:hover{background:var(--color-card-hover,var(--color-surface-elevated));border-color:var(--color-accent-border);box-shadow:var(--shadow-card);transform:translateY(-2px)}.student-portal .perfHealthHero{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-portal .perfHealthHeroLeft{align-items:center;gap:12px;min-width:0;display:flex}.student-portal .perfHealthHaloIcon{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:40px;height:40px;color:var(--color-accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.student-portal .perfHealthHeroText{flex-direction:column;gap:3px;min-width:0;display:flex}.student-portal .perfHealthMicroLabel{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-dim,#656d76);font-size:.68rem;font-weight:700}.student-portal .perfHealthHeadline{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700;line-height:1.2}.student-portal .perfHealthDesc{color:var(--color-text-muted,#8b949e);margin:0;font-size:.8rem;line-height:1.5}.student-portal .perfHealthFooter{border-top:1px solid var(--color-border);color:var(--color-accent);justify-content:space-between;align-items:center;padding-top:10px;font-size:.78rem;font-weight:600;display:flex}.student-portal .perfHealthFooter .perfHealthChevron{color:var(--color-accent);transition:transform var(--duration-fast,70ms) ease}.student-portal .performanceBg.perfHealthCardOnly:hover .perfHealthFooter .perfHealthChevron{transform:translate(3px)}.student-portal .perfStatusTabsGrid{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.student-portal .perfStatusTabCard{border-radius:var(--radius-md,10px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);cursor:pointer;text-align:left;transition:all var(--duration-base,.15s) cubic-bezier(.16, 1, .3, 1);flex-direction:column;gap:8px;padding:13px 14px;font-family:inherit;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 2px 8px #0003}.student-portal .perfStatusTabCard:hover{background:var(--color-card-hover,var(--color-surface-elevated));border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:0 6px 18px #00000059}.student-portal .perfStatusTabCard.missingTab:hover{border-color:#fb718566}.student-portal .perfStatusTabCard.completedTab:hover{border-color:var(--color-accent-border)}.student-portal .perfStatusTabCard.missingTab.active{background:linear-gradient(135deg,#fb718524 0%,#14171df5 100%);border-color:#fb71858c;box-shadow:0 0 20px #fb718524,inset 0 1px #fb718540}.student-portal .perfStatusTabCard.completedTab.active{background:linear-gradient(135deg, var(--color-accent-dim) 0%, #14171df5 100%);border-color:var(--color-accent-border);box-shadow:var(--shadow-card)}.student-portal .perfStatusTabHeader{justify-content:space-between;align-items:center;width:100%;display:flex}.student-portal .perfStatusTabIcon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.student-portal .perfStatusTabIcon.missing{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.student-portal .perfStatusTabIcon.completed{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.student-portal .perfStatusTabBadge{font-family:var(--font-mono,monospace);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);border-radius:9999px;padding:2px 8px;font-size:.82rem;font-weight:700;line-height:1.2}.student-portal .perfStatusTabBadge.badge-alert{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.student-portal .perfStatusTabBadge.badge-success{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.student-portal .perfStatusTabBody{flex-direction:column;gap:2px;min-width:0;display:flex}.student-portal .perfStatusTabTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;font-size:.92rem;font-weight:700}.student-portal .perfStatusTabDesc{color:var(--color-text-dim,#656d76);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.student-portal .perfStatusTabCard.active .perfStatusTabDesc{color:var(--color-text-muted,#8b949e)}.student-portal .perfStatusTabActivePip{border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:7px}.student-portal .perfStatusTabActivePip.alert{background:#fb7185;box-shadow:0 0 8px #fb7185}.student-portal .perfStatusTabActivePip.success{background:var(--color-accent);box-shadow:0 0 8px var(--color-accent-glow)}.student-portal .perfHealthStrip{border-radius:var(--radius-md,8px);background:var(--color-surface-hover);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base,.15s) ease;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.student-portal .perfHealthStrip:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border)}.student-portal .perfHealthLeft{align-items:center;gap:10px;min-width:0;display:flex}.student-portal .perfHealthIcon{background:var(--color-accent-dim);width:28px;height:28px;color:var(--color-accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.student-portal .perfHealthInfo{flex-direction:column;gap:2px;min-width:0;display:flex}.student-portal .perfHealthTitleRow{align-items:center;gap:6px;font-size:.78rem;display:flex}.student-portal .perfHealthState{color:var(--color-accent);font-weight:700}.student-portal .perfHealthRight{flex-shrink:0;align-items:center;gap:6px;display:flex}.student-portal .codeHealthBadge{letter-spacing:.02em;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:.72rem;font-weight:700;display:inline-flex}.student-portal .codeHealthBadge.clean{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border)}.student-portal .perfHealthChevron{color:var(--color-text-dim,#656d76);transition:transform var(--duration-fast,70ms) ease}.student-portal .perfHealthStrip:hover .perfHealthChevron{color:var(--color-accent);transform:translate(2px)}.student-portal .dashboardOverview{flex-direction:column;gap:20px;width:100%;min-width:0;display:flex}.student-portal .activityContainer{flex-direction:column;gap:14px;width:100%;display:flex}.student-portal .todoHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.student-portal .todoTitleRow{align-items:center;gap:10px;display:flex}.student-portal .activityMTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.student-portal .todoCountBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);min-width:22px;height:22px;color:var(--color-accent);font-size:.75rem;font-weight:700;font-family:var(--font-mono,monospace);justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.student-portal .todoCountBadge.badge-alert{color:#fb7185;background:#fb718529;border-color:#fb718559}.student-portal .todoHeaderActions{align-items:center;gap:8px;display:flex}.student-portal .backToTodoBtn{border-radius:var(--radius-pill,9999px);background:var(--color-surface-hover);border:1px solid var(--color-border);height:30px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:6px;padding:0 13px;font-family:inherit;font-size:.78rem;font-weight:600;display:inline-flex}.student-portal .backToTodoBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent);transform:translate(-1px)}.student-portal .viewTodoBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);height:32px;color:var(--color-text);font-size:.8rem;font-weight:600;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.student-portal .viewTodoBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.student-portal .viewTodoBtn:active{transform:translateY(0)}.student-portal .todoFilterPills{border-radius:var(--radius-pill,9999px);background:var(--color-surface);border:1px solid var(--color-border);align-items:center;gap:3px;padding:3px;display:inline-flex}.student-portal .todoPill{border-radius:var(--radius-pill,9999px);height:28px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;background:0 0;border:none;padding:0 12px;font-size:.8rem;font-weight:500}.student-portal .todoPill:hover{color:var(--color-text)}.student-portal .todoPill.active{background:var(--color-accent-dim);color:var(--color-accent);font-weight:600}.student-portal #activityList,.student-portal #classActivityList{flex-direction:column;gap:10px;width:100%;margin:0;padding:0;list-style:none;display:flex}.student-portal .todo-item{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);cursor:pointer;transition:border-color var(--duration-base,.15s) ease, transform var(--duration-base,.15s) ease;flex-direction:column;gap:10px;padding:14px 18px;display:flex}.student-portal .todo-item:hover{border-color:var(--color-accent-border);transform:translateY(-1px)}.student-portal .todoCardTop{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-portal .todoClassLabel{color:var(--color-text-muted,#8b949e);letter-spacing:.01em;font-size:.78rem;font-weight:500}.student-portal .urgencyBadge{border-radius:var(--radius-sm,6px);align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.student-portal .urgencyBadge.urgent{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262659;font-weight:700}.student-portal .urgencyBadge.soon{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770659;font-weight:700}.student-portal .urgencyBadge.normal{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);font-weight:600}.student-portal .urgencyBadge.done{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.student-portal .todoCardBody{justify-content:space-between;align-items:center;gap:14px;display:flex}.student-portal .todoCardInfo{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.student-portal .todoTitle{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.02rem;font-weight:600;line-height:1.35;overflow:hidden}.student-portal .todoMilestonesRow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.student-portal .milestoneItem,.student-portal .activityMilestoneText{color:#c084fc;align-items:center;gap:4px;font-size:.74rem;font-weight:500;line-height:1.2;display:inline-flex}.student-portal .milestoneItem i,.student-portal .activityMilestoneText i{color:#c084fc;flex-shrink:0;font-size:11px}.student-portal .todoMetaRow{color:var(--color-text-muted,#8b949e);align-items:center;gap:6px;font-size:.76rem;display:flex}.student-portal .todoMetaLang{font-family:var(--font-mono,monospace);color:var(--color-accent);font-size:.74rem;font-weight:600}.student-portal .todoMetaDot{color:var(--color-text-dim);font-size:.7rem}.student-portal .todoDateText{color:var(--color-text-muted,#8b949e)}.student-portal .todoOpenBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);height:34px;color:var(--color-text);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.student-portal .todoOpenBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.student-portal .todoEmptyState{text-align:center;border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border);flex-direction:column;align-items:center;padding:40px 20px;display:flex}.student-portal .todoEmptyIcon{border-radius:var(--radius-lg,12px);background:var(--color-accent-dim);width:48px;height:48px;color:var(--color-accent);justify-content:center;align-items:center;margin-bottom:12px;display:flex}.student-portal .todoEmptyTitle{color:var(--color-text);margin:0 0 6px;font-size:1.05rem;font-weight:600}.student-portal .todoEmptyDesc{color:var(--color-text-muted,#8b949e);max-width:420px;margin:0;font-size:.84rem;line-height:1.5}.student-portal .classesContainer{flex-direction:column;gap:14px;width:100%;display:flex}.student-portal .classesHeaderRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.student-portal .classTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.student-portal .classesActionsRow{align-items:center;gap:12px;display:flex}.student-portal .joinClassBtnHeader{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:36px;color:var(--color-on-accent);font-size:.84rem;font-weight:600;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 16px;display:inline-flex}.student-portal .joinClassBtnHeader:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-portal .joinClassBtnHeader:active{transform:translateY(0)}.student-portal .joinClassBtnHeader:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.student-portal .classSearchWrap{width:100%;max-width:280px;position:relative}.student-portal .searchIconWrap{color:var(--color-text-dim,#656d76);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.student-portal .classSearchInput{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:8px 12px 8px 34px;font-size:.84rem}.student-portal .classSearchInput:focus{border-color:var(--color-accent)}.student-portal .classSearchInput::placeholder{color:var(--color-text-dim)}.student-portal #classList{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;width:100%;margin:0;padding:0;list-style:none;display:grid}.student-portal .class-item{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);transition:border-color var(--duration-base,.15s) ease, transform var(--duration-base,.15s) ease;flex-direction:column;display:flex;position:relative;overflow:hidden}.student-portal .class-item:hover{border-color:var(--color-accent-border);transform:translateY(-1px)}.student-portal .classContainer{box-sizing:border-box;flex-direction:column;gap:14px;height:100%;padding:16px 18px;display:flex}.student-portal .topG{flex-direction:column;gap:8px;display:flex}.student-portal .classHeaderRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.student-portal .classMetaRow{color:var(--color-text-muted,#8b949e);align-items:center;gap:6px;margin-bottom:6px;font-size:.76rem;display:flex}.student-portal .classMetaText{color:var(--color-text-muted,#8b949e);font-size:.76rem}.student-portal .classLangText{color:var(--color-accent);font-family:var(--font-mono,monospace);font-weight:600}.student-portal .classMetaDot{color:var(--color-text-dim);font-size:.7rem}.student-portal .subName{color:var(--color-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.05rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.student-portal .profInfo{border-top:1px solid var(--color-border);align-items:center;gap:10px;margin-top:auto;padding-top:8px;display:flex}.student-portal .profAvatarMini{background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);width:30px;min-width:30px;height:30px;color:var(--color-accent);font-size:.74rem;font-weight:700;font-family:var(--font-mono,monospace);border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.student-portal .profAvatarMini svg,.student-portal .profAvatarMini img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.student-portal .profT{flex-direction:column;gap:1px;min-width:0;display:flex}.student-portal .iTitle{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);margin:0;font-size:.68rem}.student-portal .iName{color:var(--color-text-muted,#8b949e);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.8rem;font-weight:500;overflow:hidden}.student-portal .classCardActions{align-items:center;gap:8px;width:100%;margin-top:2px;display:flex}.student-portal .viewClassBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);height:36px;color:var(--color-text);cursor:pointer;transition:all var(--duration-base,.15s) ease;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:.84rem;font-weight:600;display:inline-flex}.student-portal .viewClassBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.student-portal .classDetailContainer{flex-direction:column;gap:16px;width:100%;display:flex}.student-portal .classDetailTopBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.student-portal .backOverviewBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);border-radius:var(--radius-md,8px);cursor:pointer;height:36px;transition:all var(--duration-base,.15s) ease;align-items:center;gap:8px;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.student-portal .backOverviewBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.student-portal .classDetailTopBarRight{align-items:center;gap:10px;display:flex}.student-portal .classDetailMetaPills{align-items:center;gap:6px;display:flex}.student-portal .classDetailCodePill{font-family:var(--font-mono,monospace);color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);border-radius:var(--radius-sm,6px);padding:3px 8px;font-size:.74rem;font-weight:700}.student-portal .classDetailLangPill{font-family:var(--font-mono,monospace);color:var(--color-text);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm,6px);padding:3px 8px;font-size:.74rem;font-weight:600}.student-portal .classDetailHero{border-radius:var(--radius-xl,20px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);padding:22px 26px}.student-portal .classDetailHeroMain{flex-direction:column;gap:8px;display:flex}.student-portal .classDetailHeroTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.85rem;font-weight:700;line-height:1.1}.student-portal .classDetailHeroInstructor{color:var(--color-text-muted,#8b949e);align-items:center;gap:8px;font-size:.84rem;display:flex}.student-portal .classWorkSection{flex-direction:column;gap:14px;width:100%;display:flex}.student-portal .classWorkHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.student-portal .classWorkTabs{border-radius:var(--radius-pill,9999px);background:var(--color-surface);border:1px solid var(--color-border);align-items:center;gap:3px;padding:3px;display:inline-flex}.student-portal .classWorkTab{border-radius:var(--radius-pill,9999px);height:28px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;background:0 0;border:none;padding:0 12px;font-size:.8rem;font-weight:500}.student-portal .classWorkTab:hover{color:var(--color-text)}.student-portal .classWorkTab.active{background:var(--color-accent-dim);color:var(--color-accent);font-weight:600}.student-portal .classWorkSearchWrap{width:100%;max-width:280px}.student-portal .classWorkSearchInput{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:8px 12px;font-size:.84rem}.student-portal .classWorkSearchInput:focus{border-color:var(--color-accent)}.student-portal .modal-overlay,.student-portal .activityModal,.student-portal .profileModal,.student-portal .codeHealthModal{-webkit-backdrop-filter:blur(8px);z-index:2000;box-sizing:border-box;background:#000000bf;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.student-portal .role-modal,.student-portal .activityModalCard,.student-portal .profileModalCard,.student-portal .codeHealthModalCard{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border,#ffffff14);box-sizing:border-box;width:100%;max-height:90vh;padding:28px;animation:.18s ease-out modalCardPop;position:relative;overflow-y:auto;box-shadow:0 20px 48px #0009,inset 0 1px #ffffff1a}@keyframes modalCardPop{0%{opacity:0;transform:scale(.97)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}.student-portal .join-modal{max-width:440px}.student-portal .activityModalCard{max-width:540px}.student-portal .profileModalCard{max-width:480px}.student-portal .codeHealthModalCard{flex-direction:column;max-width:760px;height:min(90vh,740px);min-height:560px;max-height:90vh;padding:24px 28px 20px;display:flex;overflow:hidden}.student-portal .close-modal,.student-portal .modalClose{border-radius:var(--radius-sm,6px);background:var(--color-surface);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:flex;position:absolute;top:18px;right:18px}.student-portal .close-modal:hover,.student-portal .modalClose:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.student-portal .login-form{flex-direction:column;gap:16px;width:100%;display:flex}.student-portal .input-group{flex-direction:column;gap:6px;display:flex}.student-portal .input-group label{color:var(--color-text);font-size:.8rem;font-weight:600}.student-portal .input-group input{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;font-size:.9rem;font-family:var(--font-mono,monospace);letter-spacing:.06em;text-transform:uppercase;outline:none;padding:10px 14px}.student-portal .input-group input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-portal .sign-in-btn{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-md,8px);cursor:pointer;height:42px;transition:all var(--duration-base,.15s) ease;border:none;padding:0 20px;font-size:.88rem;font-weight:600}.student-portal .sign-in-btn:hover{background:var(--color-accent-hover)}.student-portal .sign-in-btn:disabled{opacity:.5;cursor:not-allowed}.student-portal .auth-error{border-radius:var(--radius-md,8px);color:#f87171;background:#ef444426;border:1px solid #ef44444d;padding:10px 14px;font-size:.82rem}.student-portal .auth-success{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);padding:10px 14px;font-size:.82rem}.student-portal .modalLangRow{align-items:center;gap:8px;margin-bottom:12px;display:flex}.student-portal .modalLangTag{font-family:var(--font-mono,monospace);color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);border-radius:var(--radius-sm,6px);padding:2px 8px;font-size:.74rem;font-weight:700}.student-portal .modalSubjectTag{color:var(--color-text-muted,#8b949e);background:var(--color-surface-hover);border-radius:var(--radius-sm,6px);padding:2px 8px;font-size:.74rem;font-weight:600}.student-portal .modalTitle{color:var(--color-text);margin:0 0 6px;font-size:1.25rem;font-weight:600;line-height:1.25}.student-portal .modalDue{color:var(--color-text-muted,#8b949e);margin:0 0 16px;font-size:.8rem}.student-portal .modalDivider{background:var(--color-surface-hover);height:1px;margin-bottom:16px}.student-portal .modalInstructionsHeader{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);margin:0 0 8px;font-size:.8rem;font-weight:600}.student-portal .modalInstructions{color:var(--color-text-muted);margin:0 0 20px;font-size:.88rem;line-height:1.55}.student-portal .modalActions{justify-content:flex-end;display:flex}.student-portal .modalStartBtn{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-md,8px);cursor:pointer;height:40px;transition:all var(--duration-base,.15s) ease;border:none;padding:0 20px;font-size:.86rem;font-weight:600}.student-portal .modalStartBtn:hover{background:var(--color-accent-hover)}.student-portal .profileModalIdentity{align-items:center;gap:16px;margin-bottom:20px;display:flex}.student-portal .profileModalAvatarWrap{flex-shrink:0;position:relative}.student-portal .profileModalAvatarInitials{background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);width:58px;height:58px;color:var(--color-accent);font-family:var(--font-mono,monospace);border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:flex;overflow:hidden}.student-portal .profileModalAvatarInitials svg,.student-portal .profileModalAvatarInitials img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.student-portal .profileModalBeacon{background:var(--color-accent);border:2px solid var(--color-surface);border-radius:50%;width:11px;height:11px;position:absolute;bottom:2px;right:2px}.student-portal .profileModalTitles{flex-direction:column;gap:4px;display:flex}.student-portal .profileModalNameRow{align-items:center;gap:8px;display:flex}.student-portal .profileModalNameEditForm{align-items:center;gap:6px;width:100%;display:flex}.student-portal .profileModalNameInput{background:var(--color-surface-elevated,#1c2128);border:1px solid var(--color-accent,#a7f175);border-radius:var(--radius-sm,6px);min-width:180px;color:var(--color-text);box-shadow:var(--shadow-card);outline:none;flex:1;padding:4px 10px;font-size:1.05rem;font-weight:600}.student-portal .profileModalName{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600}.student-portal .profileModalEmail{color:var(--color-text-muted,#8b949e);font-size:.82rem;font-family:var(--font-mono,monospace);letter-spacing:.01em;margin:3px 0 8px}.student-portal .profileModalBadgeRow{align-items:center;gap:8px;display:flex}.student-portal .profileModalRole{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-border);color:var(--color-accent);padding:2px 8px;font-size:.72rem;font-weight:600}.student-portal .profileModalSectionTitle{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);margin:0 0 10px;font-size:.76rem;font-weight:600}.student-portal .profileClassChips{flex-wrap:wrap;gap:6px;display:flex}.student-portal .profileClassChip{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text);padding:4px 10px;font-size:.78rem;font-weight:500}.student-portal .codeHealthModalIdentity{align-items:center;gap:14px;margin-bottom:20px;display:flex}.student-portal .codeHealthModalIconWrap{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:44px;height:44px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.student-portal .codeHealthModalTitles{flex-direction:column;gap:2px;display:flex}.student-portal .codeHealthTitleRow{align-items:center;gap:10px;display:flex}.student-portal .codeHealthModalTitle{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600}.student-portal .codeHealthLiveBadge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border);padding:2px 8px;font-size:.72rem;font-weight:600}.student-portal .codeHealthModalSubtitle{color:var(--color-text-muted,#8b949e);margin:0;font-size:.82rem}.student-portal .codeHealthStatsGrid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}@media (width<=640px){.student-portal .codeHealthStatsGrid{grid-template-columns:repeat(2,1fr)}}.student-portal .codeHealthStatBox{border-radius:var(--radius-md,8px);background:var(--color-surface-hover);border:1px solid var(--color-border);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.student-portal .codeHealthStatLbl{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);font-size:.7rem;font-weight:600}.student-portal .codeHealthStatVal{font-family:var(--font-mono,monospace);color:var(--color-text);font-size:1.45rem;font-weight:700;line-height:1.1}.student-portal .codeHealthStatSub{color:var(--color-text-muted,#8b949e);font-size:.7rem}.student-portal .codeHealthTabsRow{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}.student-portal .codeHealthTabs{align-items:center;gap:6px;margin:0;padding:0;display:flex;overflow-x:auto}.student-portal .codeHealthClassFilterWrap{box-sizing:border-box;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);height:36px;box-shadow:var(--shadow-card);transition:border-color var(--duration-fast,70ms) ease, box-shadow var(--duration-fast,70ms) ease;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.student-portal .codeHealthClassFilterWrap:hover,.student-portal .codeHealthClassFilterWrap:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-portal .codeHealthFilterIcon{color:var(--color-accent);flex-shrink:0;align-items:center;font-size:14px;display:inline-flex}.student-portal .codeHealthClassSelect{color:var(--color-text);cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;outline:none;max-width:200px;height:100%;padding:0;font-family:inherit;font-size:.84rem;font-weight:600}.student-portal .codeHealthClassSelect option{background:var(--color-surface);color:var(--color-text);padding:6px 10px}.student-portal .codeHealthTab{box-sizing:border-box;border-radius:var(--radius-md,8px);border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;align-items:center;gap:8px;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.student-portal .codeHealthTab:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.student-portal .codeHealthTab.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.student-portal .codeHealthTabBadge{background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.7rem;font-weight:700;font-family:var(--font-mono,monospace);border-radius:999px;justify-content:center;align-items:center;padding:1px 6px;display:inline-flex}.student-portal .codeHealthTab.active .codeHealthTabBadge{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.student-portal .codeHealthStatBox--healthState{position:relative}.student-portal .codeHealthStatLblRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.student-portal .healthInfoPopoverWrapper{align-items:center;display:inline-flex;position:relative}.student-portal .healthInfoBtn{border:1px solid var(--color-border);background:var(--color-surface,#ffffff0d);width:18px;height:18px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;display:inline-flex}.student-portal .healthInfoBtn:hover,.student-portal .healthInfoBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);transform:scale(1.08)}.student-portal .healthInfoPopover{background:var(--color-surface);border:1px solid var(--color-border-hover,#ffffff29);border-radius:var(--radius-lg,12px);z-index:100;cursor:default;width:270px;padding:12px 14px;animation:.15s cubic-bezier(.16,1,.3,1) healthPopoverFadeIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d}@keyframes healthPopoverFadeIn{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.student-portal .healthInfoPopoverHeader{color:var(--color-text);border-bottom:1px solid var(--color-border);align-items:center;gap:7px;margin-bottom:8px;padding-bottom:8px;font-size:.78rem;font-weight:600;display:flex}.student-portal .healthInfoTiers{flex-direction:column;gap:10px;display:flex}.student-portal .healthInfoTier{flex-direction:column;gap:3px;display:flex}.student-portal .healthTierHeader{justify-content:space-between;align-items:center;display:flex}.student-portal .healthTierBadge{border-radius:var(--radius-pill,9999px);text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;font-size:.68rem;font-weight:700}.student-portal .healthTierBadge.optimal{color:#34d399;background:#34d39926;border:1px solid #34d3994d}.student-portal .healthTierBadge.moderate{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.student-portal .healthTierBadge.attention{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.student-portal .healthTierRange{font-family:var(--font-mono,monospace);color:var(--color-text-muted);font-size:.68rem;font-weight:600}.student-portal .healthTierDesc{color:var(--color-text-muted);margin:0;font-size:.72rem;line-height:1.35}.student-portal .codeHealthModalIdentity{flex-shrink:0;margin-bottom:16px}.student-portal .codeHealthModalBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow:visible}.student-portal .codeHealthStatsGrid{flex-shrink:0;margin-bottom:16px}.student-portal .codeHealthTabPanes,.student-portal .codeHealthPane{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.student-portal .codeHealthList{flex-direction:column;flex:1;gap:10px;min-height:0;max-height:none;margin:0;padding-right:6px;list-style:none;display:flex;overflow-y:auto}.student-portal .codeHealthList::-webkit-scrollbar{width:6px}.student-portal .codeHealthList::-webkit-scrollbar-track{background:var(--color-surface-subtle);border-radius:3px}.student-portal .codeHealthList::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:3px}.student-portal .codeHealthList::-webkit-scrollbar-thumb:hover{background:var(--color-surface-elevated)}.student-portal .codeHealthPagination{border-top:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:12px;display:flex}.student-portal .codeHealthPageInfo{color:var(--color-text-muted);font-size:.74rem;font-family:var(--font-mono,monospace)}.student-portal .codeHealthPageActions{align-items:center;gap:6px;display:flex}.student-portal .codeHealthPageBtn{border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.student-portal .codeHealthPageBtn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.student-portal .codeHealthPageBtn:disabled{opacity:.35;cursor:not-allowed}.student-portal .codeHealthPageNumbers{align-items:center;gap:4px;display:flex}.student-portal .codeHealthPageNum{border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);background:var(--color-surface);min-width:26px;height:26px;color:var(--color-text-muted);font-size:.75rem;font-weight:600;font-family:var(--font-mono,monospace);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.student-portal .codeHealthPageNum:hover:not(.active){background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.student-portal .codeHealthPageNum.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.student-portal .codeHealthModalFooter{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;margin-top:12px;padding-top:10px;display:flex}.student-portal .codeHealthCloseBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:36px;color:var(--color-on-accent);cursor:pointer;transition:all var(--duration-base,.15s) ease;padding:0 18px;font-size:.84rem;font-weight:600}.student-portal .codeHealthCloseBtn:hover{background:var(--color-accent-hover)}.student-portal .codeHealthZeroState{text-align:center;border-radius:var(--radius-md,8px);background:var(--color-surface-subtle);border:1px dashed var(--color-border);text-align:center;border-radius:var(--radius-md,8px);background:var(--color-surface-subtle);border:1px dashed var(--color-border);padding:36px 20px}.student-portal .codeHealthIssueCard{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);transition:all var(--duration-base,.15s) cubic-bezier(.16, 1, .3, 1);flex-shrink:0;overflow:hidden}.student-portal .codeHealthIssueCard:hover{background:var(--color-card-hover,var(--color-surface-elevated));border-color:var(--color-border-hover)}.student-portal .codeHealthIssueCard.expanded{background:var(--color-surface-elevated);border-color:#f8717159;box-shadow:0 8px 24px #00000059}.student-portal .codeHealthIssueHeader{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast,70ms) ease;justify-content:space-between;align-items:center;gap:16px;padding:13px 18px;display:flex}.student-portal .codeHealthIssueHeader:hover{background:var(--color-surface-subtle)}.student-portal .codeHealthIssueMain{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.student-portal .codeHealthTitleRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-portal .codeHealthActivityTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:.96rem;font-weight:600}.student-portal .issueStatusPill{border-radius:var(--radius-sm,6px);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;font-size:.69rem;font-weight:600;font-family:var(--font-mono,monospace);align-items:center;gap:5px;padding:2px 8px;display:inline-flex}.student-portal .pillDot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.student-portal .issueStatusPill.syntax{color:#fca5a5;background:#ef44441f;border:1px solid #ef444447}.student-portal .issueStatusPill.syntax .pillDot{background:#ef4444;box-shadow:0 0 6px #ef444499}.student-portal .issueStatusPill.runtime{color:#fdba74;background:#fb923c1f;border:1px solid #fb923c47}.student-portal .issueStatusPill.runtime .pillDot{background:#f97316;box-shadow:0 0 6px #f9731699}.student-portal .issueStatusPill.type{color:#d8b4fe;background:#c084fc1f;border:1px solid #c084fc47}.student-portal .issueStatusPill.type .pillDot{background:#a855f7;box-shadow:0 0 6px #a855f799}.student-portal .issueStatusPill.resource{color:#fda4af;background:#f43f5e1f;border:1px solid #f43f5e47}.student-portal .issueStatusPill.resource .pillDot{background:#f43f5e;box-shadow:0 0 6px #f43f5e99}.student-portal .codeHealthActivityTags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.student-portal .issueTag{background:var(--color-surface-hover);color:var(--color-text-muted,#8b949e);border:1px solid var(--color-border);border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:.7rem;font-weight:500;display:inline-flex}.student-portal .issueTag.classTag{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-accent-border)}.student-portal .issueTag.langTag{background:var(--color-surface-hover);color:var(--color-text-muted)}.student-portal .issueTag.scoreTag{color:#fb7185;font-family:var(--font-mono,monospace);background:#f43f5e14;border-color:#f43f5e33;font-weight:600}.student-portal .issueTag.idTag{font-family:var(--font-mono,monospace);color:var(--color-text-dim,#656d76)}.student-portal .issueTag.specificTag{color:#fca5a5;background:#ef44440f;border-color:#ef444429}.student-portal .codeHealthIssueRight{flex-shrink:0;align-items:center;gap:8px;display:flex}.student-portal .clickToViewHint{color:var(--color-text-dim,#656d76);transition:color var(--duration-fast,70ms) ease;font-size:.75rem;font-weight:500}.student-portal .codeHealthIssueCard:hover .clickToViewHint{color:var(--color-accent)}.student-portal .issueChevron{color:var(--color-text-dim,#656d76);transition:transform var(--duration-base,.15s) ease;font-size:14px}.student-portal .codeHealthIssueCard.expanded .issueChevron{color:#fb7185}.student-portal .codeHealthIssueDrawer{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding:0 18px 16px;display:flex}.student-portal .diagnosticErrorBanner{border-radius:var(--radius-md,8px);background:#ef444412;border:1px solid #ef444433;align-items:flex-start;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.student-portal .diagnosticErrorBanner .bannerIcon{color:#f87171;flex-shrink:0;margin-top:2px;font-size:18px}.student-portal .diagnosticErrorBanner .bannerContent{flex-direction:column;gap:2px;min-width:0;display:flex}.student-portal .diagnosticErrorBanner .bannerTitle{color:#fca5a5;font-size:.88rem;font-weight:700;line-height:1.3;font-family:var(--font-display,"GitLab Sans", sans-serif)}.student-portal .diagnosticErrorBanner .bannerSub{color:var(--color-text-muted,#8b949e);font-size:.74rem;line-height:1.4}.student-portal .issueTerminalBlock{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden;box-shadow:inset 0 2px 8px #0000008c}.student-portal .issueTerminalBar{background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.student-portal .terminalBarLeft{align-items:center;gap:8px;display:flex}.student-portal .terminalBarIcon{color:#f87171;font-size:15px}.student-portal .terminalTitle{font-family:var(--font-mono,"GitLab Mono", monospace);color:var(--color-text-muted);letter-spacing:.02em;font-size:.72rem;font-weight:600}.student-portal .terminalBarRight{align-items:center;gap:8px;display:flex}.student-portal .terminalLangBadge{font-family:var(--font-mono,monospace);background:var(--color-surface-hover);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:4px;padding:2px 7px;font-size:.68rem;font-weight:600}.student-portal .terminalCopyBtn{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:.7rem;font-weight:500;display:inline-flex}.student-portal .terminalCopyBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.student-portal .issueTerminalPre{font-family:var(--font-mono,"GitLab Mono", "Fira Code", monospace);color:var(--color-text);background:0 0;max-height:220px;margin:0;padding:10px 0;font-size:.8rem;line-height:1.6;overflow-y:auto}.student-portal .traceLine{transition:background var(--duration-fast,70ms) ease;align-items:flex-start;padding:1px 14px 1px 0;display:flex}.student-portal .traceLine:hover{background:var(--color-surface-hover)}.student-portal .traceLine.isError{color:#fca5a5;background:#ef444414;font-weight:600}.student-portal .traceLine.isCaret{color:#ef4444;font-weight:700}.student-portal .traceLineNum{text-align:right;color:#475569;-webkit-user-select:none;user-select:none;border-right:1px solid var(--color-border);flex-shrink:0;width:38px;margin-right:12px;padding-right:12px;font-size:.72rem}.student-portal .traceLineContent{white-space:pre-wrap;word-break:break-word;flex:1}.student-portal .issueDrawerActions{justify-content:flex-end;align-items:center;gap:12px;padding-top:4px;display:flex}.student-portal .issueDrawerTip{color:var(--color-text-dim,#656d76);align-items:center;gap:6px;font-size:.76rem;line-height:1.4;display:inline-flex}.student-portal .issueDrawerTip i{color:var(--color-info);flex-shrink:0;font-size:14px}.student-portal .issueReviewInEditorBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:32px;color:var(--color-on-accent);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;flex-shrink:0;align-items:center;gap:7px;padding:0 16px;font-family:inherit;font-size:.8rem;font-weight:600;display:inline-flex}.student-portal .issueReviewInEditorBtn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-portal .issueReviewInEditorBtn:active{transform:translateY(0)}.student-portal .codeHealthCleanCard{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);transition:all var(--duration-base,.15s) cubic-bezier(.16, 1, .3, 1);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:13px 18px;display:flex}.student-portal .codeHealthCleanCard:hover{background:var(--color-card-hover,var(--color-surface-elevated));border-color:var(--color-accent-border);box-shadow:0 4px 16px #00000040}.student-portal .codeHealthCleanMain{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.student-portal .codeHealthCleanAction{flex-shrink:0;align-items:center;display:flex}.student-portal .cleanReviewBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:32px;color:var(--color-on-accent);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:.8rem;font-weight:600;display:inline-flex}.student-portal .cleanReviewBtn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-portal .cleanReviewBtn:active{transform:translateY(0)}.student-portal .issueStatusPill.clean{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.student-portal .issueStatusPill.clean .pillDot{background:var(--color-accent);box-shadow:var(--shadow-card)}.student-portal .issueTag.cleanScore{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-accent-border)}.student-portal .issueTag.cleanCheckTag{color:#38bdf8;background:#38bdf814;border-color:#38bdf833;font-weight:600}.student-portal .codeHealthTabBadge.success{background:var(--color-accent-dim);color:var(--color-accent)}@media (width<=1024px){.student-portal .contentContainer{padding:18px 20px 40px}}@media (width<=768px){.student-portal .contentContainer{gap:14px;padding:14px 12px 36px}.student-portal .headerBg{border-radius:14px;padding:16px 14px}.student-portal .classesHeaderRow{flex-direction:column;align-items:stretch;gap:10px}.student-portal .classesActionsRow{flex-direction:row;align-items:center;gap:8px;width:100%;display:flex}.student-portal .joinClassBtnHeader{white-space:nowrap;flex-shrink:0;height:38px;padding:0 14px}.student-portal .classSearchWrap{flex:1;width:auto;min-width:0;max-width:100%}.student-portal .classSearchInput{height:38px;font-size:.85rem}.student-portal #classList{grid-template-columns:1fr;gap:12px}.student-portal .todo-item{padding:12px 14px}.student-portal .perfTopRow{grid-template-columns:1fr;gap:10px}.student-portal .perfStatDivider{display:none}}@media (width<=480px){.student-portal .todoCardTop{flex-direction:column;align-items:flex-start;gap:6px}.student-portal .todoCardBody{flex-direction:column;align-items:stretch;gap:10px}.student-portal .todoOpenBtn{width:100%;height:36px}}@media (width<=640px){.student-portal .codeHealthModal{justify-content:center;align-items:center;padding:10px}.student-portal .codeHealthModalCard{border-radius:var(--radius-lg,12px)!important;height:90dvh!important;min-height:0!important;max-height:90dvh!important;padding:16px 14px 14px!important}.student-portal .codeHealthModalIdentity{gap:10px!important;margin-bottom:12px!important;padding-right:44px!important}.student-portal .codeHealthModalIconWrap{width:38px!important;height:38px!important}.student-portal .codeHealthModalTitle{font-size:1.15rem!important;line-height:1.25!important}.student-portal .codeHealthStatsGrid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important;margin-bottom:12px!important}.student-portal .codeHealthStatBox{gap:2px!important;padding:8px 10px!important}.student-portal .codeHealthStatLbl{font-size:.65rem!important}.student-portal .codeHealthStatVal{font-size:1.25rem!important}.student-portal .codeHealthStatSub{font-size:.65rem!important}.student-portal .codeHealthTabsRow{flex-direction:column!important;align-items:stretch!important;gap:8px!important;margin-bottom:10px!important;padding-bottom:8px!important}.student-portal .codeHealthTabs{gap:6px!important;width:100%!important;display:flex!important}.student-portal .codeHealthTab{flex:1!important;justify-content:center!important;gap:6px!important;height:34px!important;padding:0 8px!important;font-size:.78rem!important}.student-portal .codeHealthClassFilterWrap{justify-content:space-between!important;width:100%!important;height:34px!important;padding:0 10px!important;display:flex!important}.student-portal .codeHealthClassSelect{flex:1!important;max-width:none!important;font-size:.8rem!important}.student-portal .codeHealthList{gap:8px!important}.student-portal .codeHealthIssueHeader{align-items:flex-start!important;gap:8px!important;padding:10px 12px!important}.student-portal .codeHealthActivityTitle{font-size:.88rem!important}.student-portal .issueStatusPill{padding:2px 6px!important;font-size:.65rem!important}.student-portal .codeHealthActivityTags{gap:4px!important;margin-top:4px!important}.student-portal .issueTag{padding:2px 6px!important;font-size:.68rem!important}.student-portal .codeHealthIssueRight{flex-shrink:0!important;gap:4px!important;margin-top:2px!important}.student-portal .clickToViewHint{font-size:.72rem!important}.student-portal .codeHealthCleanMain{padding:10px 12px!important}.student-portal .role-modal,.student-portal .activityModalCard,.student-portal .profileModalCard{border-radius:14px!important;max-height:92dvh!important;padding:20px 16px!important;overflow-y:auto!important}.student-portal .modalClose,.student-portal .close-modal{top:14px!important;right:14px!important}.student-portal .activityModalTitle,.student-portal .role-modal h3,.student-portal .profileModalCard h3{padding-right:38px!important}}@property --mo-amp{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esx{syntax:"<number>";inherits:true;initial-value:1}@property --mo-esy{syntax:"<number>";inherits:true;initial-value:1}@property --mo-tilt{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edy{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edx{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esx2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esy2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-tilt2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edy2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-lock{syntax:"<number>";inherits:true;initial-value:0}@property --mo-shake{syntax:"<number>";inherits:true;initial-value:0}@property --mo-rock{syntax:"<number>";inherits:true;initial-value:0}@property --mo-rockp{syntax:"<number>";inherits:true;initial-value:1}@property --mo-bdy{syntax:"<number>";inherits:true;initial-value:0}.mo-root,.mo-breathe,.mo-bob{transform-box:view-box;transform-origin:50%}.mo-root{--mo-amp:0;--mo-morph:calc(.4s*var(--mo-rate,1));--mo-morph-ease:ease-in-out;--mo-tp:--mo-esx,--mo-esy,--mo-tilt,--mo-edy,--mo-edx,--mo-esx2,--mo-esy2,--mo-tilt2,--mo-edy2,--mo-lock,--mo-shake,--mo-rock,--mo-bdy;--mo-md:var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph);--mo-me:var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease);transition-property:--mo-amp,transform,var(--mo-tp);transition-duration:calc(.4s*var(--mo-rate,1)),calc(.16s*var(--mo-rate,1)),var(--mo-md);transition-timing-function:ease-out,cubic-bezier(.23,1,.32,1),var(--mo-me);animation:mo-shake calc(.112s*var(--mo-rate,1))linear infinite}.mo-bob>g:not(.mo-eyes){fill:var(--mo-head);transition:fill var(--mo-morph)var(--mo-morph-ease)}.mo-eyes{fill:var(--mo-eye);transition:fill var(--mo-morph)var(--mo-morph-ease)}@keyframes mo-shake{0%,to{translate:calc(.62px*var(--mo-shake))calc(-.34px*var(--mo-shake))}25%{translate:calc(-.7px*var(--mo-shake))calc(.22px*var(--mo-shake))}50%{translate:calc(.38px*var(--mo-shake))calc(.66px*var(--mo-shake))}75%{translate:calc(-.44px*var(--mo-shake))calc(-.6px*var(--mo-shake))}}.mo-root.mo-expr{--mo-morph:calc(.3s*var(--mo-rate,1));--mo-morph-ease:cubic-bezier(.45,.05,.5,1)}.mo-root:hover{--mo-amp:1;transition-duration:calc(.4s*var(--mo-rate,1)),calc(.22s*var(--mo-rate,1)),var(--mo-md);transform:translateY(-1.5px)scale(1.04)}.mo-root.mo-always{--mo-amp:1}.mo-breathe{animation-name:mo-breathe;animation-duration:calc(2.8s*var(--mo-rate,1));animation-delay:calc(var(--mo-phase,0s)*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes mo-breathe{to{transform:scaleX(calc(1 + .022*var(--mo-amp)))scaleY(calc(1 - .018*var(--mo-amp)))}}.mo-bob{translate:0 calc(var(--mo-bdy)*1px);animation-name:mo-bob;animation-duration:calc(3.4s*var(--mo-rate,1));animation-delay:calc(var(--mo-bob-phase,0s)*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes mo-bob{0%{transform:translateY(0)}to{transform:translateY(calc(-1.1px*var(--mo-amp)))}}.mo-eye{transform-box:view-box;--mo-sel:calc((var(--mo-wrap,1) + 1)/2);--mo-x:calc(var(--mo-esx) + var(--mo-esx2)*var(--mo-sel));--mo-y:calc(var(--mo-esy) + var(--mo-esy2)*var(--mo-sel));--mo-t:calc(var(--mo-tilt) + var(--mo-tilt2)*var(--mo-sel));--mo-ph:calc(var(--mo-sel)*(1 - var(--mo-rock)) + var(--mo-rock)*((1 + var(--mo-wrap,1)*var(--mo-rockp))/2));translate:calc(var(--mo-edx)*var(--mo-wrap,1)*1px)calc((var(--mo-edy) + var(--mo-edy2)*var(--mo-ph))*1px);rotate:calc((var(--mo-t)*var(--mo-wrap,1) - var(--mo-lean,0)*var(--mo-lock))*1deg);transform:rotate(calc(var(--mo-lean,0)*1deg))scaleX(var(--mo-x))scaleY(var(--mo-y))rotate(calc(var(--mo-lean,0)*-1deg));animation-name:mo-rock;animation-duration:calc(.9s*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite}@container style(--mo-rock:0){.mo-eye{animation-name:none}}@keyframes mo-rock{0%,to{--mo-rockp:1}50%{--mo-rockp:-1}}.mo-eye>*{transform-box:fill-box;transform-origin:50%;animation-name:mo-blink,mo-wrap;animation-duration:calc(var(--mo-blink,4.8s)*var(--mo-rate,1)),calc(var(--mo-saccade,5.6s)*var(--mo-rate,1));animation-delay:calc(var(--mo-blink-phase,0s)*var(--mo-rate,1)),calc(var(--mo-saccade-phase,0s)*var(--mo-rate,1));animation-timing-function:linear;animation-iteration-count:infinite}@keyframes mo-blink{0%,97.2%{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(1)rotate(calc(var(--mo-lean,0)*-1deg));animation-timing-function:ease-in}98.6%{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(calc(1 - .92*var(--mo-amp)))rotate(calc(var(--mo-lean,0)*-1deg));animation-timing-function:ease-out}to{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(1)rotate(calc(var(--mo-lean,0)*-1deg))}}.mo-eyes{animation-name:mo-saccade;animation-duration:calc(var(--mo-saccade,5.6s)*var(--mo-rate,1));animation-delay:calc(var(--mo-saccade-phase,0s)*var(--mo-rate,1));animation-timing-function:linear;animation-iteration-count:infinite}@keyframes mo-saccade{0%,15%{translate:0}16.5%,31%{translate:calc(-.8px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.9px*var(--mo-look-y,1.1)*var(--mo-amp))}32.5%,47%{translate:calc(1px*var(--mo-look-x,1.4)*var(--mo-amp))calc(.1px*var(--mo-look-y,1.1)*var(--mo-amp))}48.5%,63%{translate:calc(-.15px*var(--mo-look-x,1.4)*var(--mo-amp))calc(.85px*var(--mo-look-y,1.1)*var(--mo-amp))}64.5%,79%{translate:calc(.75px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.8px*var(--mo-look-y,1.1)*var(--mo-amp))}80.5%,98.5%{translate:calc(-1px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.15px*var(--mo-look-y,1.1)*var(--mo-amp))}to{translate:0}}@keyframes mo-wrap{0%,15%{rotate:none;scale:1}16.5%,31%{scale:calc(1 - .0176*var(--mo-look-mx,1.4)*var(--mo-amp) + .008*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .027*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.648deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}32.5%,47%{scale:calc(1 - .022*var(--mo-look-mx,1.4)*var(--mo-amp) - .01*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .003*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.09deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}48.5%,63%{scale:calc(1 - .0033*var(--mo-look-mx,1.4)*var(--mo-amp) + .0015*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .0255*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(-.115deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}64.5%,79%{scale:calc(1 - .0165*var(--mo-look-mx,1.4)*var(--mo-amp) - .0075*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .024*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(-.54deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}80.5%,98.5%{scale:calc(1 - .022*var(--mo-look-mx,1.4)*var(--mo-amp) + .01*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .0045*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.135deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}to{rotate:none;scale:1}}@media not ((hover:hover) and (pointer:fine)){.mo-root:hover{--mo-amp:0;transform:none}.mo-root.mo-always{--mo-amp:1}.mo-root:not(.mo-always),.mo-root:not(.mo-always) *{animation-play-state:paused}.mo-root.mo-expr:not(.mo-always) .mo-eye{animation-play-state:running}}.mo-slow{--mo-rate:5}@media (prefers-reduced-motion:reduce){.mo-root,.mo-breathe,.mo-bob,.mo-eyes,.mo-eye,.mo-eye>*{transition:none;animation:none}.mo-bob>g:not(.mo-eyes){transition:none}}@property --mo-track-x{syntax:"<number>";inherits:true;initial-value:0}@property --mo-track-y{syntax:"<number>";inherits:true;initial-value:0}@property --mo-track-travel{syntax:"<length>";inherits:true;initial-value:0}@property --mo-track-hold{syntax:"<number>";inherits:true;initial-value:0}.mo-root .mo-eye{--mo-gz-dx:calc(var(--mo-gz-dx1,0) + (var(--mo-gz-dx2,0) - var(--mo-gz-dx1,0))*var(--mo-sel));--mo-gz-dy:calc(var(--mo-gz-dy1,0) + (var(--mo-gz-dy2,0) - var(--mo-gz-dy1,0))*var(--mo-sel));--mo-gz-sx:calc(var(--mo-gz-sx1,1) + (var(--mo-gz-sx2,1) - var(--mo-gz-sx1,1))*var(--mo-sel));--mo-gz-sy:calc(var(--mo-gz-sy1,1) + (var(--mo-gz-sy2,1) - var(--mo-gz-sy1,1))*var(--mo-sel));--mo-gz-t:calc(var(--mo-gz-t1,0) + (var(--mo-gz-t2,0) - var(--mo-gz-t1,0))*var(--mo-sel));translate:calc((var(--mo-edx)*var(--mo-wrap,1) + var(--mo-gz-dx))*1px)calc((var(--mo-edy) + var(--mo-edy2)*var(--mo-ph) + var(--mo-gz-dy))*1px);rotate:calc(( var(--mo-t)*var(--mo-wrap,1) - var(--mo-lean,0)*var(--mo-lock) + var(--mo-gz-t))*1deg);transform:rotate(calc(var(--mo-lean,0)*1deg))scaleX(calc(var(--mo-x)*var(--mo-gz-sx)))scaleY(calc(var(--mo-y)*var(--mo-gz-sy)))rotate(calc(var(--mo-lean,0)*-1deg))}svg:has(>.mo-root){--mo-look-seed-x:var(--mo-look-x,1.4);--mo-look-seed-y:var(--mo-look-y,1.1);--mo-look-seed-mx:var(--mo-look-mx,1.4);--mo-look-seed-my:var(--mo-look-my,1.1)}.mo-root{--mo-look-x:calc(var(--mo-look-seed-x,1.4)*(1 - var(--mo-track-hold)));--mo-look-y:calc(var(--mo-look-seed-y,1.1)*(1 - var(--mo-track-hold)));--mo-look-mx:calc(var(--mo-look-seed-mx,1.4)*(1 - var(--mo-track-hold)));--mo-look-my:calc(var(--mo-look-seed-my,1.1)*(1 - var(--mo-track-hold)))}.appPaginationRow{background:var(--color-surface,#181a20);border:1px solid var(--color-border,#ffffff14);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-card,0 2px 8px #0003), inset 0 1px 0 #ffffff0d;-webkit-backdrop-filter:blur(16px);-webkit-user-select:none;user-select:none;transition:border-color var(--duration-fast,70ms) ease, box-shadow var(--duration-fast,70ms) ease;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;padding:10px 16px;display:flex;position:relative}[data-theme=light] .appPaginationRow,.light .appPaginationRow{box-shadow:var(--shadow-card,0 1px 3px #1e1a1414), inset 0 1px 0 #fffc}.appPaginationInfo{font-family:var(--font-sans,inherit);color:var(--color-text-muted,#8b949e);letter-spacing:-.01em;align-items:center;gap:6px;font-size:.82rem;font-weight:500;line-height:1.4;display:inline-flex}.appPaginationCount{font-family:var(--font-mono,monospace);color:var(--color-text,#fff);letter-spacing:-.02em;font-size:.83rem;font-weight:600}.appPaginationControls{align-items:center;gap:6px;display:inline-flex}.appPaginationPages{background:var(--color-surface-subtle,#ffffff08);border:1px solid var(--color-border-subtle,#ffffff0f);border-radius:var(--radius-md,8px);align-items:center;gap:3px;padding:3px;display:inline-flex}.appPaginationBtn{border-radius:var(--radius-sm,6px);min-width:32px;height:32px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:background var(--duration-fast,70ms) ease, border-color var(--duration-fast,70ms) ease, color var(--duration-fast,70ms) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-fast,70ms) ease;background:0 0;border:1px solid #0000;outline:none;justify-content:center;align-items:center;padding:0 8px;font-size:.81rem;font-weight:500;display:inline-flex}.appPaginationNavBtn{background:var(--color-surface-subtle,#ffffff0a);border-color:var(--color-border,#ffffff14);border-radius:var(--radius-md,8px);color:var(--color-text-muted,#8b949e);padding:0 7px}.appPaginationBtn:hover:not(:disabled){background:var(--color-surface-hover,#ffffff14);color:var(--color-text,#fff);border-color:var(--color-border-hover,#ffffff2e);transform:translateY(-1px)}.appPaginationBtn:active:not(:disabled){transform:translateY(1px)scale(.96)}.appPaginationBtn:focus-visible{outline:2px solid var(--color-accent,#a7f175);outline-offset:2px}.appPaginationBtn:disabled{opacity:.28;cursor:not-allowed;pointer-events:none;border-color:#0000}.appPaginationPageBtn{font-family:var(--font-mono,monospace);border-radius:5px;min-width:28px;height:28px;padding:0 6px;font-size:.82rem;font-weight:500}.appPaginationPageBtn.active{background:var(--color-accent,#a7f175);color:var(--color-on-accent,#0e1318);border-color:var(--color-accent,#a7f175);box-shadow:0 1px 6px var(--color-accent-dim,#a7f17540), inset 0 1px 0 #ffffff4d;font-weight:700;transform:none}.appPaginationPageBtn.active:hover{background:var(--color-accent-hover,#bcf794);color:var(--color-on-accent,#0e1318);border-color:var(--color-accent-hover,#bcf794);transform:none}.appPaginationEllipsis{min-width:22px;height:28px;font-family:var(--font-mono,monospace);color:var(--color-text-dim,#656d76);-webkit-user-select:none;user-select:none;letter-spacing:-.05em;justify-content:center;align-items:center;font-size:.82rem;display:inline-flex}@media (width<=640px){.appPaginationRow{flex-direction:column;align-items:center;gap:12px;padding:12px 14px}.appPaginationInfo{text-align:center;font-size:.8rem}.appPaginationControls{flex-wrap:wrap;justify-content:center;gap:5px;width:100%}.appPaginationPages{scrollbar-width:none;max-width:100%;overflow-x:auto}.appPaginationPages::-webkit-scrollbar{display:none}.appPaginationBtn{min-width:36px;height:38px}}@media (prefers-reduced-motion:reduce){.appPaginationRow,.appPaginationBtn{transition:none!important;transform:none!important}}.student-todo-page{background-color:var(--color-background,#0f1015);width:100%;min-height:100vh;color:var(--color-text,#fff);box-sizing:border-box;font-family:var(--font-sans,"GitLab Sans", -apple-system, BlinkMacSystemFont, sans-serif);position:relative;overflow-x:hidden}.student-todo-page .bg-glow{pointer-events:none;z-index:0;filter:blur(100px);opacity:.12;border-radius:50%;width:520px;height:520px;transition:opacity .3s;position:fixed}.student-todo-page .glow-top-left{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);top:-140px;left:-100px}.student-todo-page .glow-bottom-right{background:radial-gradient(circle,#387eb8 0%,#387eb800 70%);bottom:-160px;right:-100px}.student-todo-page .todoContentWrap{box-sizing:border-box;z-index:1;flex-direction:column;gap:20px;width:100%;max-width:1360px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 56px;display:flex;position:relative}.student-todo-page .todoPageHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.student-todo-page .todoHeaderMeta{flex-direction:column;gap:6px;max-width:760px;display:flex}.student-todo-page .todoBreadcrumbs{color:var(--color-text-muted,#8b949e);align-items:center;gap:8px;margin-bottom:2px;font-size:.8rem;display:inline-flex}.student-todo-page .breadcrumbLink{color:var(--color-text-muted,#8b949e);transition:color var(--duration-base,.15s) ease;align-items:center;gap:5px;text-decoration:none;display:inline-flex}.student-todo-page .breadcrumbLink:hover{color:var(--color-accent)}.student-todo-page .breadcrumbSep{opacity:.4}.student-todo-page .breadcrumbCurrent{color:var(--color-text);font-weight:500}.student-todo-page .todoPageTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.015em;margin:0;font-size:clamp(1.75rem,2.8vw,2.25rem);font-weight:700;line-height:1.15}.student-todo-page .todoPageDesc{color:var(--color-text-muted,#8b949e);margin:0;font-size:.88rem;line-height:1.5}.student-todo-page .backDashboardBtn{border-radius:var(--radius-md,8px);background:var(--color-surface,#181a20);border:1px solid var(--color-border);height:36px;color:var(--color-text);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;align-items:center;gap:8px;padding:0 16px;font-family:inherit;font-size:.84rem;font-weight:500;display:inline-flex}.student-todo-page .backDashboardBtn:hover{border-color:var(--color-accent-border);color:var(--color-accent);transform:translate(-2px)}.student-todo-page .todoControlCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border-subtle,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #00000040 0px 3px 12px 0px);flex-direction:column;gap:16px;padding:16px 20px;display:flex}.student-todo-page .todoTabsBar{border-bottom:1px solid var(--color-border);scrollbar-width:none;align-items:center;gap:8px;padding-bottom:14px;display:flex;overflow-x:auto}.student-todo-page .todoTabsBar::-webkit-scrollbar{display:none}.student-todo-page .todoTabBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);height:38px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;align-items:center;gap:8px;padding:0 16px;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.student-todo-page .todoTabBtn:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.student-todo-page .todoTabBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.student-todo-page .todoTabIcon{align-items:center;font-size:15px;display:flex}.student-todo-page .todoTabIcon.missed{color:var(--color-danger)}.student-todo-page .todoTabIcon.completed{color:var(--color-accent)}.student-todo-page .todoTabBadge{border-radius:var(--radius-pill,9999px);min-width:20px;height:20px;font-size:.72rem;font-weight:700;font-family:var(--font-mono,monospace);background:var(--color-surface-elevated);color:var(--color-text);justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.student-todo-page .todoTabBtn.active .todoTabBadge{background:var(--color-accent);color:var(--color-on-accent)}.student-todo-page .todoTabBtn.active .todoTabBadge.badge-missed{background:var(--color-danger);color:#fff}.student-todo-page .todoTabBtn.active .todoTabBadge.badge-completed{background:var(--color-accent);color:var(--color-on-accent)}.student-todo-page .todoFiltersRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.student-todo-page .classFilterGroup{align-items:center;gap:10px;display:flex}.student-todo-page .filterLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted,#8b949e);white-space:nowrap;align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:inline-flex}.student-todo-page .selectWrap{align-items:center;min-width:200px;display:inline-flex;position:relative}.student-todo-page .classSelect{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;height:36px;box-shadow:var(--shadow-card);color:var(--color-text);appearance:none;cursor:pointer;transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;outline:none;padding:0 34px 0 12px;font-family:inherit;font-size:.84rem;font-weight:600}.student-todo-page .classSelect:hover{border-color:var(--color-border-hover)}.student-todo-page .classSelect:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-todo-page .classSelect option{background:var(--color-surface);color:var(--color-text);padding:6px 10px}.student-todo-page .selectCaret{color:var(--color-text-muted);pointer-events:none;transition:transform var(--duration-fast,70ms) ease, color var(--duration-fast,70ms) ease;font-size:13px;position:absolute;right:12px}.student-todo-page .selectWrap:focus-within .selectCaret{color:var(--color-accent);transform:rotate(180deg)}.student-todo-page .todoSearchWrap{align-items:center;width:100%;max-width:340px;display:flex;position:relative}.student-todo-page .searchIconWrap{color:var(--color-text-muted,#8b949e);pointer-events:none;z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.student-todo-page .todoSearchInput{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;height:36px;color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:0 34px;font-size:.84rem}.student-todo-page .todoSearchInput:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-todo-page .clearSearchBtn{background:var(--color-surface-hover);width:22px;height:22px;color:var(--color-text);cursor:pointer;transition:background var(--duration-fast,70ms) ease;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.student-todo-page .clearSearchBtn:hover{background:var(--color-surface-elevated)}.student-todo-page .todoCardsGrid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;width:100%;display:grid}@media (width<=768px){.student-todo-page .todoCardsGrid{grid-template-columns:1fr}}.student-todo-page .todoTaskCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border-subtle,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;flex-direction:column;justify-content:space-between;gap:14px;padding:20px;display:flex}.student-todo-page .todoTaskCard:hover{border-color:var(--color-accent-border);box-shadow:0 6px 20px #00000059}.student-todo-page .taskCardTop{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-todo-page .taskCourseLabel{color:var(--color-accent);letter-spacing:.01em;font-size:.82rem;font-weight:600}.student-todo-page .taskUrgencyBadge{border-radius:var(--radius-pill,9999px);flex-shrink:0;align-items:center;gap:5px;padding:3px 10px;font-size:.73rem;font-weight:600;display:inline-flex}.student-todo-page .taskUrgencyBadge.urgent{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262659;font-weight:700}.student-todo-page .taskUrgencyBadge.soon{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770659;font-weight:700}.student-todo-page .taskUrgencyBadge.normal{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);font-weight:600}.student-todo-page .taskUrgencyBadge.done{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.student-todo-page .taskCardMain{flex-direction:column;gap:8px;display:flex}.student-todo-page .taskTitle{color:var(--color-text);margin:0;font-size:1.05rem;font-weight:600;line-height:1.35}.student-todo-page .taskDesc{color:var(--color-text-muted,#8b949e);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.student-todo-page .taskMilestonesRow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.student-todo-page .milestoneItem{color:#c084fc;align-items:center;gap:4px;font-size:.74rem;font-weight:500;display:inline-flex}.student-todo-page .taskCardFooter{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.student-todo-page .taskMetaLeft{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.student-todo-page .taskMetaLang{font-family:var(--font-mono,monospace);color:var(--color-accent);font-size:.74rem;font-weight:600}.student-todo-page .taskMetaPoints{color:var(--color-warning);font-size:.74rem;font-weight:700;font-family:var(--font-mono,monospace)}.student-todo-page .taskMetaDot{color:var(--color-text-dim);font-size:.7rem}.student-todo-page .deadlineText{color:var(--color-text-muted,#8b949e);font-size:.76rem}.student-todo-page .taskActionBtn{border-radius:var(--radius-md,8px);cursor:pointer;height:32px;transition:all var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:.82rem;font-weight:600;display:inline-flex}.student-todo-page .taskActionBtn.primary,.student-todo-page .taskActionBtn.review,.student-todo-page .taskActionBtn.missed{background:var(--color-accent);border:1px solid var(--color-accent);color:var(--color-on-accent)}.student-todo-page .taskActionBtn.primary:hover,.student-todo-page .taskActionBtn.review:hover,.student-todo-page .taskActionBtn.missed:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-todo-page .taskActionBtn.locked{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e)}.student-todo-page .taskActionBtn.locked:hover{background:var(--color-surface-hover);color:var(--color-text)}.student-todo-page .todoEmptyContainer{text-align:center;border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border);flex-direction:column;align-items:center;margin-top:8px;padding:60px 24px;display:flex}.student-todo-page .todoEmptyIconWrap{border-radius:var(--radius-lg,12px);background:var(--color-accent-dim);width:56px;height:56px;color:var(--color-accent);justify-content:center;align-items:center;margin-bottom:14px;display:flex}.student-todo-page .todoEmptyHeadline{color:var(--color-text);margin:0 0 6px;font-size:1.15rem;font-weight:600}.student-todo-page .todoEmptyMessage{color:var(--color-text-muted,#8b949e);max-width:440px;margin:0;font-size:.86rem;line-height:1.5}.student-todo-page .resetFilterBtn{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:34px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;margin-top:16px;padding:0 16px;font-size:.82rem;font-weight:600;display:inline-flex}.student-todo-page .resetFilterBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.student-todo-page .todoLoadingState{color:var(--color-text-muted,#8b949e);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;font-size:.88rem;display:flex}.student-todo-page .loadingSpinner{border:2px solid var(--color-accent-dim);border-top-color:var(--color-accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite todoSpin}@keyframes todoSpin{to{transform:rotate(360deg)}}@media (width<=768px){.student-todo-page .contentContainer{gap:16px;padding:16px 14px 48px!important}.student-todo-page .todoHero{padding:18px 16px!important}.student-todo-page .todoHeroTitle{font-size:clamp(1.4rem,5vw,1.85rem)!important}.student-todo-page .todoFilterBar{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.student-todo-page .todoStatusTabs{padding-bottom:4px;-webkit-overflow-scrolling:touch!important;flex-wrap:nowrap!important;overflow-x:auto!important}.student-todo-page .todoStatusTab{flex-shrink:0!important;min-height:38px!important}.student-todo-page .todoTaskCard{padding:16px 14px!important}.student-todo-page .taskActionBtn{justify-content:center!important;width:100%!important;min-height:42px!important}}@media (width<=640px){.student-todo-page .contentContainer{padding:12px 10px 36px!important}.student-todo-page .todoHero{padding:14px 12px!important}.student-todo-page .todoHeroSub{font-size:.82rem!important}}@keyframes fadeInStuErr{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.class-view-portal .classErrorModalTwoColBody{grid-template-rows:240px 1fr;grid-template-columns:1fr}.class-view-portal .classErrorColStudents{border-right:none;border-bottom:1px solid var(--color-border-subtle,#ffffff14)}}.class-view-portal .formRowThree .formCol.timeCol,.class-view-portal .formRowThree .formCol.pointsCol{flex:1}@media (width<=640px){.class-view-portal .formRowThree{flex-direction:column;gap:14px}}.class-view-portal .recordStudentRow:hover td,.class-view-portal .recordStudentRow:hover td.stickyColAction,.class-view-portal .recordStudentRow:hover td.stickyColStudent,.class-view-portal .recordStudentRow:hover td.stickyColTotal{background:var(--color-surface-hover)}@keyframes modalPopIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes comboPop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.class-view-portal .gradeNumericInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .gradeNumericInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@keyframes gradeSpin{to{transform:rotate(360deg)}}@media (width<=640px){.class-view-portal .scheduledReleaseInputsRow{flex-direction:column;gap:12px}}.class-view-portal input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalCard input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalDateInput::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.class-view-portal input[type=date]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalCard input[type=date]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalDateInput::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.class-view-portal input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalCard input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalTimeInput::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.class-view-portal input[type=time]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalCard input[type=time]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalTimeInput::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .class-view-portal input[type=date]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalCard input[type=date]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalDateInput::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .class-view-portal input[type=time]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalCard input[type=time]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalTimeInput::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.class-view-portal .timeLimitInputGroup input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .timeLimitInputGroup input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .durationSegment::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .durationSegment::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media (width<=1024px){.class-view-portal .modalWideSplit{width:96vw;height:92vh;max-height:94vh}.class-view-portal .modalGridSplit{grid-template-columns:1fr;gap:16px}.class-view-portal .modalSplitFooter{flex-direction:column;align-items:stretch;gap:12px}.class-view-portal .modalSplitFooterSummary{justify-content:center}.class-view-portal .modalSplitFooterActions{justify-content:flex-end}}@keyframes pulseBadge{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.08);box-shadow:0 0 0 4px #ef444400}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.class-view-portal .contentContainer{padding:16px 14px 48px!important}.class-view-portal .modalOverlay{justify-content:center!important;align-items:center!important;padding:10px!important}.class-view-portal .modalCard,.class-view-portal .gradeClassModalCard,.class-view-portal .leaderboardModalCard,.class-view-portal .classErrorModalCard{border-radius:14px!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:92dvh!important;padding:18px 16px!important;overflow-y:auto!important}.class-view-portal .modalTitle,.class-view-portal .modalSplitTitle,.class-view-portal .gradeModalTitle,.class-view-portal .classErrorModalTitle,.class-view-portal .leaderboardModalTitle{padding-right:38px!important;font-size:1.15rem!important;line-height:1.25!important}.class-view-portal .modalCloseBtn{top:14px!important;right:14px!important}.class-view-portal .classErrorModalTwoColBody{flex-direction:column!important;display:flex!important;overflow-y:auto!important}.class-view-portal .classErrorColStudents{border-right:none!important;border-bottom:1px solid var(--color-border-subtle,#ffffff14)!important;max-height:220px!important}.class-view-portal .classErrorMetricsBar{grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px 14px!important}.class-view-portal .classErrorMetricItem--activities{grid-column:1/-1}.class-view-portal .leaderboardControlsBar{flex-direction:column!important;align-items:stretch!important;gap:8px!important;padding:10px 14px!important}.class-view-portal .leaderboardSearchInput{width:100%!important}.class-view-portal .leaderboardModalBody{padding:12px 14px!important}.class-view-portal .classHero{padding:20px 16px 0!important}.class-view-portal .classTabBar{white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;margin:0 -16px!important;padding:0 16px!important;overflow:auto hidden!important}.class-view-portal .classTabBar::-webkit-scrollbar{display:none!important}.class-view-portal .classTabBtn{flex-shrink:0!important;height:44px!important;padding:0 14px!important;font-size:.84rem!important}.class-view-portal .activitiesGrid,.class-view-portal .studentsGrid{grid-template-columns:1fr!important}}@media (width<=640px){.class-view-portal .contentContainer{padding:12px 10px 36px!important}.class-view-portal .classHero{padding:16px 12px 0!important}.class-view-portal .classTabBar{margin:0 -12px!important;padding:0 12px!important}.class-view-portal .classHeaderBanner{padding:16px 14px!important}.class-view-portal .classHeaderTitle{font-size:1.35rem!important}.class-view-portal .actionBtnRow{flex-direction:column!important;width:100%!important}.class-view-portal .actionBtnRow button{width:100%!important;min-height:42px!important}}.student-class-portal .classHeroCountBadge{align-items:center;gap:4px;display:inline-flex}.student-class-portal .classTabBar{border-top:1px solid var(--color-border);background:0 0;flex-wrap:wrap;align-items:center;gap:8px;margin:16px -28px 0;padding:14px 28px 0;display:flex}.student-class-portal .classTabBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);height:38px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;align-items:center;gap:8px;padding:0 16px;font-size:.88rem;font-weight:600;display:inline-flex}.student-class-portal .classTabBtn:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.student-class-portal .classTabBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.student-class-portal .classTabBtn .tabBadge{font-size:.72rem;font-weight:700;font-family:var(--font-mono,monospace);background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:1px 7px;display:inline-flex}.student-class-portal .classTabBtn.active .tabBadge{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.student-class-portal .assignmentsControls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.student-class-portal .filterChips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.student-class-portal .filterChip{border-radius:var(--radius-md,8px);background:var(--color-surface,#181a20);border:1px solid var(--color-border,#ffffff14);color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;padding:6px 14px;font-size:.8rem;font-weight:600}.student-class-portal .filterChip:hover{color:var(--color-text);border-color:var(--color-border-hover)}.student-class-portal .filterChip.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.student-class-portal .filterChip.missing-chip:hover{color:var(--color-danger);border-color:#dc262666}.student-class-portal .filterChip.missing-chip.active{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger)}.student-class-portal .searchBox{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);box-sizing:border-box;width:250px;height:36px;transition:border-color var(--duration-base,.15s) ease;align-items:center;gap:8px;padding:0 12px;display:flex}.student-class-portal .searchBox:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-class-portal .searchBox input{color:var(--color-text);background:0 0;border:none;outline:none;width:100%;font-size:.82rem}.student-class-portal .searchBox input::placeholder{color:var(--color-text-muted,#8b949e)}.student-class-portal .assignmentsGrid{grid-template-columns:1fr;gap:12px;display:grid}.student-class-portal .assignmentCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);cursor:pointer;transition:all var(--duration-base,.15s) ease;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex;position:relative}.student-class-portal .assignmentCard:hover{background:var(--color-card-hover,var(--color-surface-elevated));border-color:var(--color-accent-border);transform:translateY(-1px);box-shadow:0 8px 24px #00000059}.student-class-portal .cardLeft{flex:1;min-width:0}.student-class-portal .cardMetaRow{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.student-class-portal .statusBadge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm,6px);align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.student-class-portal .statusBadge.submitted{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border)}.student-class-portal .statusBadge.pending{background:var(--color-info-bg);color:var(--color-info);border:1px solid #0369a166;font-weight:700}[data-theme=dark] .student-class-portal .statusBadge.pending{border-color:#38bdf859}.student-class-portal .statusBadge.overdue{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262659;font-weight:700}.student-class-portal .cardTopicPill{background:var(--color-surface-hover);color:var(--color-text-muted,#8b949e);border-radius:var(--radius-sm,6px);padding:3px 8px;font-size:.72rem;font-weight:500}.student-class-portal .cardTitle{color:var(--color-text);margin:0 0 6px;font-size:1.05rem;font-weight:600;line-height:1.35}.student-class-portal .cardDesc{color:var(--color-text-muted,#8b949e);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.student-class-portal .taskMilestonesRow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;margin-bottom:10px;display:flex}.student-class-portal .milestoneItem{color:#c084fc;align-items:center;gap:4px;font-size:.74rem;font-weight:500;line-height:1.2;display:inline-flex}.student-class-portal .milestoneItem svg{color:#c084fc;flex-shrink:0}.student-class-portal .cardFooterRow{color:var(--color-text-muted,#8b949e);flex-wrap:wrap;align-items:center;gap:16px;font-size:.76rem;display:flex}.student-class-portal .footerMetaItem{align-items:center;gap:5px;display:inline-flex}.student-class-portal .cardRight{flex-shrink:0;align-items:center;gap:14px;display:flex}.student-class-portal .scoreBox{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.student-class-portal .scoreLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#8b949e);font-size:.68rem}.student-class-portal .scoreVal{font-family:var(--font-mono,monospace);color:var(--color-accent);font-size:1.25rem;font-weight:700}.student-class-portal .actionBtn{border-radius:var(--radius-md,8px);cursor:pointer;transition:all var(--duration-fast,70ms) ease;white-space:nowrap;border:1px solid #0000;align-items:center;gap:7px;padding:9px 16px;font-size:.84rem;font-weight:600;display:inline-flex}.student-class-portal .actionBtn--primary{background:var(--color-accent);color:var(--color-on-accent)}.student-class-portal .actionBtn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.student-class-portal .actionBtn--secondary{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text)}.student-class-portal .actionBtn--secondary:hover{background:var(--color-surface-hover);color:var(--color-text)}.student-class-portal .emptyState{background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border-hover);border-radius:var(--radius-lg,12px);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.student-class-portal .emptyIcon{background:var(--color-surface-hover);width:52px;height:52px;color:var(--color-text-muted,#8b949e);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.student-class-portal .emptyTitle{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.student-class-portal .emptySubtitle{color:var(--color-text-muted,#8b949e);max-width:360px;margin:0;font-size:.82rem;line-height:1.5}.student-class-portal .rosterStudentCell{align-items:center;gap:12px;display:flex}.student-class-portal .studentAvatar{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex;overflow:hidden}.student-class-portal .studentAvatar img,.student-class-portal .studentAvatar svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.student-class-portal .studentAvatar.currentUser{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.student-class-portal .gradesContainer{flex-direction:column;gap:20px;display:flex}.student-class-portal .modalOverlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000000bf;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.student-class-portal .modalCard{background:var(--color-surface);border:1px solid var(--color-border-hover);border-radius:var(--radius-lg,12px);box-sizing:border-box;width:100%;max-width:580px;max-height:calc(100vh - 48px);margin:auto;padding:28px;position:relative;overflow-y:auto;box-shadow:0 20px 50px #0009}.student-class-portal .modalCloseBtn{background:var(--color-surface-hover);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:absolute;top:18px;right:18px}.student-class-portal .modalCloseBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.student-class-portal .modalTitle{color:var(--color-text);margin:0 0 14px;font-size:1.25rem;font-weight:600}.student-class-portal .modalDesc{color:var(--color-text-muted);white-space:pre-wrap;margin-bottom:20px;font-size:.88rem;line-height:1.6}.student-class-portal .modalMetaGrid{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;padding:14px;display:grid}.student-class-portal .modalMetaItem{flex-direction:column;gap:3px;display:flex}.student-class-portal .modalMetaLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#8b949e);font-size:.72rem}.student-class-portal .modalMetaVal{color:var(--color-text);font-size:.84rem;font-weight:600}.student-class-portal .modalActions{justify-content:flex-end;gap:10px;display:flex}@media (width<=768px){.student-class-portal .assignmentsControls{flex-direction:column;align-items:stretch}.student-class-portal .searchBox{width:100%}.student-class-portal .assignmentCard{flex-direction:column;align-items:flex-start}.student-class-portal .cardRight{border-top:1px solid var(--color-border);justify-content:space-between;width:100%;padding-top:12px}.student-class-portal .modalMetaGrid{grid-template-columns:1fr}}.student-class-portal .liveTestBadge{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);letter-spacing:.04em;border-radius:9999px;align-items:center;gap:5px;padding:2px 8px;font-size:.68rem;font-weight:800;display:inline-flex}.student-class-portal .studentLeaderboardBtn{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.student-class-portal .studentLeaderboardBtn:hover{border-color:var(--color-warning);background:#f59e0b38;transform:translateY(-1px)}.student-class-portal .leaderboardModalCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;width:90%;max-width:820px;padding:0;overflow:hidden;box-shadow:0 25px 50px -12px #0009,0 0 30px #f59e0b1a}.student-class-portal .leaderboardModalHeader{background:linear-gradient(180deg, var(--color-surface-hover) 0%, transparent 100%);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.student-class-portal .leaderboardHeaderLeft{align-items:center;gap:14px;display:flex}.student-class-portal .leaderboardTrophyIcon{background:#f59e0b26;border:1px solid #f59e0b59;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.student-class-portal .leaderboardTitleRow{align-items:center;gap:10px;display:flex}.student-class-portal .leaderboardModalTitle{color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.student-class-portal .leaderboardExamBadge{color:#f87171;letter-spacing:.04em;background:#ef44442e;border:1px solid #ef444466;border-radius:9999px;padding:2px 7px;font-size:.65rem;font-weight:800}.student-class-portal .leaderboardModalSub{color:var(--color-text-muted,#94a3b8);margin:2px 0 0;font-size:.78rem}.student-class-portal .leaderboardHeaderRight{align-items:center;gap:12px;display:flex}.student-class-portal .leaderboardHeaderRight .modalCloseBtn{flex-shrink:0;position:static;top:auto;right:auto}.student-class-portal .leaderboardRefreshBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.student-class-portal .leaderboardRefreshBtn:hover:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent)}.student-class-portal .leaderboardModalBody{max-height:60vh;padding:20px 24px;overflow-y:auto}.student-class-portal .leaderboardLoadingState,.student-class-portal .leaderboardEmptyState{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 16px;display:flex}.student-class-portal .leaderboardEmptyState h4{color:var(--color-text);margin:6px 0 0;font-size:.96rem;font-weight:700}.student-class-portal .leaderboardEmptyState p{color:var(--color-text-muted,#94a3b8);max-width:320px;margin:0;font-size:.78rem;line-height:1.4}.student-class-portal .leaderboardTableWrapper{overflow-x:auto}.student-class-portal .leaderboardTable{border-collapse:collapse;width:100%;font-size:.82rem}.student-class-portal .leaderboardTable th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#94a3b8);border-bottom:1px solid var(--color-border);text-align:left;padding:10px 14px;font-size:.72rem;font-weight:700}.student-class-portal .leaderboardTable td{border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;padding:12px 14px}.student-class-portal .leaderboardRow:hover{background:var(--color-surface-subtle)}.student-class-portal .leaderboardRow.isCurrentStudentRow{background:var(--color-accent-dim);border-left:3px solid var(--color-accent)}.student-class-portal .rankBadge{font-variant-numeric:tabular-nums;box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 6px;font-size:.85rem;font-weight:800;display:inline-flex}.student-class-portal .rankBadge.rankGold{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b66}.student-class-portal .rankBadge.rankSilver{color:#e5e7eb;background:#9ca3af33;border:1px solid #9ca3af66}.student-class-portal .rankBadge.rankBronze{color:#f59e0b;background:#d9770633;border:1px solid #d9770666}.student-class-portal .rankBadge.rankNormal{color:var(--color-text-muted,#94a3b8)}[data-theme=light] .student-class-portal .rankBadge.rankGold{color:#b45309;background:#f59e0b26;border:1px solid #f59e0b59}[data-theme=light] .student-class-portal .rankBadge.rankSilver{color:#374151;background:#6b72801f;border:1px solid #6b72804d}[data-theme=light] .student-class-portal .rankBadge.rankBronze{color:#9a3412;background:#d9770626;border:1px solid #d9770659}.student-class-portal .leaderboardStudentCell{align-items:center;gap:10px;display:flex}.student-class-portal .leaderboardAvatar{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.74rem;font-weight:800;display:flex;overflow:hidden}.student-class-portal .leaderboardAvatar img,.student-class-portal .leaderboardAvatar svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.student-class-portal .leaderboardAvatar.selfAvatar{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.student-class-portal .leaderboardStudentMeta{flex-direction:column;display:flex}.student-class-portal .leaderboardStudentName{color:var(--color-text);font-size:.84rem;font-weight:600}.student-class-portal .leaderboardTimeCell{color:var(--color-text);align-items:center;gap:6px;font-size:.78rem;display:flex}.student-class-portal .leaderboardMilestonesList{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.student-class-portal .leaderboardMilestoneChip{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59;border-radius:6px;align-items:center;gap:4px;padding:2px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.student-class-portal .noMilestonesHint{color:var(--color-text-muted,#64748b);font-size:.8rem}.student-class-portal .rankNumberText{color:var(--color-text,#111827);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700;line-height:1;display:inline-block}[data-theme=light] .student-class-portal .rankNumberText{color:#111827}.student-class-portal .leaderboardScorePill{white-space:nowrap;color:var(--color-accent);justify-content:flex-end;align-items:baseline;gap:4px;font-size:.92rem;font-weight:700;display:inline-flex}.student-class-portal .leaderboardScorePill strong{font-size:.95rem;font-weight:800}.student-class-portal .leaderboardScorePill span{color:var(--color-text-muted,#94a3b8);white-space:nowrap;font-size:.76rem;font-weight:500}.student-class-portal .leaderboardHiddenScoreTag{color:var(--color-text-muted,#64748b);font-size:.74rem;font-style:italic}.student-class-portal .modal-overlay,.student-class-portal .modalOverlay{-webkit-backdrop-filter:blur(8px);z-index:2000;box-sizing:border-box;background:#000000bf;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.student-class-portal .role-modal{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border,#ffffff14);box-sizing:border-box;width:100%;max-height:90vh;padding:28px;animation:.18s ease-out modalCardPop;position:relative;overflow-y:auto;box-shadow:0 20px 48px #0009,inset 0 1px #ffffff1a}.student-class-portal .join-modal{max-width:440px}.student-class-portal .close-modal{border-radius:var(--radius-sm,6px);background:var(--color-surface);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;display:flex;position:absolute;top:18px;right:18px}.student-class-portal .close-modal:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.student-class-portal .login-form{flex-direction:column;gap:16px;width:100%;display:flex}.student-class-portal .input-group{flex-direction:column;gap:6px;display:flex}.student-class-portal .input-group label{color:var(--color-text);font-size:.8rem;font-weight:600}.student-class-portal .input-group input{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;font-size:.9rem;font-family:var(--font-mono,monospace);letter-spacing:.06em;text-transform:uppercase;outline:none;padding:10px 14px}.student-class-portal .input-group input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.student-class-portal .sign-in-btn{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-md,8px);cursor:pointer;height:42px;transition:all var(--duration-base,.15s) ease;border:none;padding:0 20px;font-size:.88rem;font-weight:600}.student-class-portal .sign-in-btn:hover{background:var(--color-accent-hover)}.student-class-portal .sign-in-btn:disabled{opacity:.5;cursor:not-allowed}.student-class-portal .auth-error{border-radius:var(--radius-md,8px);color:#f87171;background:#ef444426;border:1px solid #ef44444d;padding:10px 14px;font-size:.82rem}.student-class-portal .auth-success{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);padding:10px 14px;font-size:.82rem}@media (width<=768px){.student-class-portal .contentContainer{padding:16px 14px 48px!important}.student-class-portal .modalOverlay,.student-class-portal .modal-overlay{justify-content:center!important;align-items:center!important;padding:10px!important}.student-class-portal .modalCard,.student-class-portal .leaderboardModalCard,.student-class-portal .role-modal.join-modal{border-radius:14px!important;width:100%!important;max-width:100%!important;max-height:92dvh!important;padding:18px 16px!important;overflow-y:auto!important}.student-class-portal .modalTitle,.student-class-portal .leaderboardModalTitle,.student-class-portal .role-modal h2{padding-right:38px!important;font-size:1.15rem!important;line-height:1.25!important}.student-class-portal .modalCloseBtn,.student-class-portal .close-modal{top:14px!important;right:14px!important}.student-class-portal .leaderboardControlsBar{flex-wrap:wrap!important;gap:8px!important;padding:10px 14px!important}.student-class-portal .leaderboardModalBody{padding:12px 14px!important}.student-class-portal .classHero{padding:18px 16px!important}.student-class-portal .classTitle{font-size:1.35rem!important}}@media (width<=640px){.student-class-portal .contentContainer{padding:12px 10px 36px!important}.student-class-portal .classHero{padding:14px 12px!important}.student-class-portal .classTitle{font-size:1.2rem!important}.student-class-portal .classNavTabs{-webkit-overflow-scrolling:touch!important;flex-wrap:nowrap!important;overflow-x:auto!important}.student-class-portal .assignmentCard{padding:14px 12px!important}.student-class-portal .cardRight button{width:100%!important;min-height:42px!important}}.teacher-portal{background-color:var(--color-background,#0f1015);width:100%;min-height:100vh;color:var(--color-text,#fff);box-sizing:border-box;font-family:var(--font-sans,"GitLab Sans", -apple-system, BlinkMacSystemFont, sans-serif);position:relative;overflow-x:hidden}.teacher-portal .bg-glow{pointer-events:none;z-index:0;filter:blur(90px);opacity:.12;border-radius:50%;width:500px;height:500px;transition:opacity .3s;position:fixed}.teacher-portal .glow-top-left{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);top:-140px;left:-100px}.teacher-portal .glow-bottom-right{background:radial-gradient(circle,#387eb8 0%,#387eb800 70%);bottom:-160px;right:-100px}.teacher-portal .contentContainer{box-sizing:border-box;z-index:1;flex-direction:column;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 48px;display:flex;position:relative}.teacher-portal .headerBg{border-radius:var(--radius-xl,20px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0000004d 0px 4px 16px 0px);box-sizing:border-box;padding:24px 28px;position:relative;overflow:hidden}.teacher-portal .headerBg:before{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);height:2px;position:absolute;top:0;left:0;right:0}.teacher-portal .headerContainer{flex-flow:wrap;justify-content:space-between;align-items:center;gap:24px;width:100%;display:flex}.teacher-portal .headerLeft{flex-direction:column;gap:10px;max-width:720px;display:flex}.teacher-portal .heroPill{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;width:fit-content;padding:4px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.teacher-portal .hlTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:clamp(1.85rem,3vw,2.5rem);font-weight:700;line-height:1.04}.teacher-portal .heroStatsRow{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:24px;margin-top:4px;padding-top:14px;display:flex}.teacher-portal .heroStatItem{flex-direction:column;gap:2px;display:flex}.teacher-portal .heroStatVal{color:var(--color-text);font-size:1.35rem;font-weight:700;font-family:var(--font-mono,monospace);line-height:1.2}.teacher-portal .heroStatLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);font-size:.75rem;font-weight:500}.teacher-portal .heroStatDivider{background:var(--color-border);width:1px;height:28px}.teacher-portal .classesHub{flex-direction:column;gap:20px;width:100%;display:flex}.teacher-portal .classesHubHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.teacher-portal .classesHubLeft{flex-direction:column;gap:4px;display:flex}.teacher-portal .sectionHeaderLeft{align-items:center;gap:10px;display:flex}.teacher-portal .sectionTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:600}.teacher-portal .sectionCount{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);min-width:22px;height:22px;color:var(--color-accent);font-size:.75rem;font-weight:700;font-family:var(--font-mono,monospace);justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.teacher-portal .classesHubRight{flex-wrap:nowrap;align-items:center;gap:12px;display:flex}.teacher-portal .classSearchWrap{width:280px;max-width:100%;position:relative}.teacher-portal .searchIconWrap{color:var(--color-text-dim,#656d76);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.teacher-portal .classSearchInput{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;color:var(--color-text);transition:border-color var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:8px 12px 8px 34px;font-size:.84rem}.teacher-portal .classSearchInput:focus{border-color:var(--color-accent)}.teacher-portal .classSearchInput::placeholder{color:var(--color-text-dim)}.teacher-portal .sectionActionBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:36px;color:var(--color-on-accent);font-size:.84rem;font-weight:600;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.teacher-portal .sectionActionBtn:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.teacher-portal .sectionActionBtn:active{transform:translateY(0)}.teacher-portal .sectionActionBtn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.teacher-portal .langFilterBar{align-items:center;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.teacher-portal .langFilterChip{border-radius:var(--radius-pill,9999px);background:var(--color-surface-card);border:1px solid var(--color-border,#ffffff14);height:34px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;padding:0 14px;font-size:.8rem;font-weight:500}.teacher-portal .langFilterChip:hover{color:var(--color-text);border-color:var(--color-border-hover)}.teacher-portal .langFilterChip.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.teacher-portal .classesGrid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;width:100%;display:grid}.teacher-portal .classHubCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #00000040 0px 2px 8px 0px);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;box-sizing:border-box;flex-direction:column;justify-content:space-between;gap:14px;min-width:0;padding:clamp(16px,2vw,20px);display:flex}.teacher-portal .classHubCard:hover{border-color:var(--color-accent);transition:transform var(--duration-fast,70ms) ease, border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;box-shadow:var(--shadow-card);transform:translateY(-2px)}.teacher-portal .classHubCardHeader{flex-direction:column;gap:12px;display:flex}.teacher-portal .classHubCardTopRow{justify-content:space-between;align-items:center;gap:8px;display:flex}.teacher-portal .classHubBadges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.teacher-portal .classHubLangBadge{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);font-size:.74rem;font-weight:600;font-family:var(--font-mono,monospace);color:var(--color-text);align-items:center;gap:5px;padding:3px 8px;display:inline-flex}.teacher-portal .clLangDot{background:var(--color-accent);border-radius:50%;width:6px;height:6px}.teacher-portal .classHubSectionBadge{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);align-items:center;padding:3px 8px;font-size:.74rem;font-weight:500;display:inline-flex}.teacher-portal .classHubCodeWrap{flex-shrink:0;align-items:center;gap:4px;display:flex}.teacher-portal .classHubCode{font-family:var(--font-mono,monospace);color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);border-radius:var(--radius-sm,6px);letter-spacing:.05em;padding:3px 7px;font-size:.78rem;font-weight:700}.teacher-portal .copyCodeBtn,.teacher-portal .deleteClassBtn{border-radius:var(--radius-sm,6px);width:28px;height:28px;color:var(--color-text-dim,#656d76);cursor:pointer;transition:all var(--duration-fast,70ms) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.teacher-portal .copyCodeBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.teacher-portal .deleteClassBtn:hover{color:#ef4444;background:#ef444426;border-color:#ef44444d}.teacher-portal .classHubTitleGroup{flex-direction:column;gap:6px;display:flex}.teacher-portal .classHubTitleRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-portal .classHubTitle{color:var(--color-text);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.15rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.teacher-portal .classHubTopicRow{background:0 0;border:none;align-items:center;width:fit-content;padding:0;display:flex}.teacher-portal .classHubTopicText{color:var(--color-text-dim);letter-spacing:normal;font-size:.8rem;font-weight:500;line-height:1.35}.teacher-portal .classHubMetricsRow{border-radius:var(--radius-md,8px);background:var(--color-surface-subtle);border:1px solid var(--color-border);align-items:center;gap:16px;padding:10px 14px;display:flex}.teacher-portal .classHubMetricItem{flex-direction:column;gap:1px;display:flex}.teacher-portal .classHubMetricVal{color:var(--color-text);font-size:1rem;font-weight:700;font-family:var(--font-mono,monospace)}.teacher-portal .classHubMetricLabel{color:var(--color-text-dim,#656d76);text-transform:uppercase;font-size:.72rem;font-weight:500}.teacher-portal .classHubMetricDivider{background:var(--color-border);width:1px;height:24px}.teacher-portal .classHubFooter{border-top:1px solid var(--color-border);align-items:center;gap:8px;padding-top:14px;display:flex}.teacher-portal .classHubSubBtn{border-radius:var(--radius-md,8px);background:var(--color-surface-hover);border:1px solid var(--color-border);height:38px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:0 10px;font-size:.82rem;font-weight:500;display:inline-flex}.teacher-portal .classHubSubBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.teacher-portal .classHubEnterBtn{border-radius:var(--radius-md,8px);background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);height:38px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;flex:1.2;justify-content:center;align-items:center;gap:6px;min-width:0;padding:0 12px;font-size:.82rem;font-weight:600;display:inline-flex}.teacher-portal .classHubEnterBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.teacher-portal .clEmptyGridState{text-align:center;border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border);flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.teacher-portal .clEmptyIcon{color:var(--color-text-dim,#656d76);margin-bottom:12px}.teacher-portal .clEmptyTitle{color:var(--color-text);margin:0 0 6px;font-size:1.15rem;font-weight:600}.teacher-portal .clEmptyDesc{color:var(--color-text-muted,#8b949e);max-width:420px;margin:0 0 20px;font-size:.88rem}.teacher-portal .modalOverlay{-webkit-backdrop-filter:blur(8px);z-index:1050;background:#000000bf;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.teacher-portal .modalCard{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border,#ffffff14);box-sizing:border-box;width:100%;max-width:480px;padding:28px;position:relative;box-shadow:0 20px 48px #0009,inset 0 1px #ffffff1a}.teacher-portal .modalCloseBtn{color:var(--color-text-muted,#8b949e);cursor:pointer;border-radius:var(--radius-sm,6px);width:32px;height:32px;transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.4rem;display:flex;position:absolute;top:18px;right:18px}.teacher-portal .modalCloseBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.teacher-portal .modalTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);margin:0 0 20px;font-size:1.25rem;font-weight:600}.teacher-portal .modalForm{flex-direction:column;gap:16px;display:flex}.teacher-portal .modalLabel{color:var(--color-text);margin-bottom:-10px;font-size:.8rem;font-weight:600;display:block}.teacher-portal .modalInput,.teacher-portal .modalSelect{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;height:44px;box-shadow:var(--shadow-card);color:var(--color-text);font-size:.88rem;font-family:var(--font-sans,"GitLab Sans", sans-serif);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:0 14px}.teacher-portal .modalInput:focus,.teacher-portal .modalSelect:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.teacher-portal .modalSelect option{background:var(--color-surface);color:var(--color-text)}.teacher-portal .formRowSplit{gap:12px;display:flex}.teacher-portal .formCol{flex-direction:column;flex:1;gap:16px;display:flex}.teacher-portal .modalBtn{border-radius:var(--radius-md,8px);cursor:pointer;height:42px;transition:all var(--duration-base,.15s) ease;border:1px solid #0000;padding:0 18px;font-size:.86rem;font-weight:600}.teacher-portal .modalBtn--secondary{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text)}.teacher-portal .modalBtn--secondary:hover{background:var(--color-surface-hover);color:var(--color-text)}.teacher-portal .modalBtn--primary{background:var(--color-accent);color:var(--color-on-accent)}.teacher-portal .modalBtn--primary:hover{background:var(--color-accent-hover)}.teacher-portal .modalBtn--danger{color:var(--color-text);background:#ef4444}.teacher-portal .modalBtn--danger:hover{background:#dc2626}.teacher-portal .copyToast{background:var(--color-surface);border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-md,8px);z-index:2000;padding:10px 20px;font-size:.86rem;font-weight:600;animation:.2s ease-out toastSlideUp;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #00000080}.teacher-portal .tdDashboardTabsBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;margin-bottom:8px;display:flex}.teacher-portal .tdDashboardTabs{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:12px;align-items:center;gap:6px;padding:4px;display:inline-flex}.teacher-portal .tdTabBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.teacher-portal .tdTabBtn:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.teacher-portal .tdTabBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700;box-shadow:0 1px 4px #00000014}.teacher-portal .tdTabBadge{background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:2px 7px;font-size:.74rem;font-weight:700;display:inline-flex}.teacher-portal .tdTabBtn.active .tdTabBadge{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.teacher-portal .tdTabBadge--alert{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d977064d;animation:2s infinite pulseAmber}@keyframes pulseAmber{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.teacher-portal .heroStatItem--clickable{cursor:pointer;border-radius:8px;padding:4px 8px;transition:transform .15s,background-color .15s}.teacher-portal .heroStatItem--clickable:hover{background:var(--color-surface-hover);transform:translateY(-1px)}.teacher-portal .heroStatItem--alert .heroStatVal{color:var(--color-warning)!important}.teacher-portal .requestsHub{flex-direction:column;gap:16px;width:100%;display:flex}.teacher-portal .requestsFilterBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-portal .requestsFilterLeft{align-items:center;gap:12px;display:flex}.teacher-portal .requestsFilterRight{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-portal .requestSelectFilter{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);height:36px;box-shadow:var(--shadow-card);color:var(--color-text);cursor:pointer;outline:none;padding:0 12px;font-family:inherit;font-size:.84rem;font-weight:500;transition:border-color .2s,box-shadow .2s}.teacher-portal .requestSelectFilter:hover{border-color:var(--color-border-hover)}.teacher-portal .requestSelectFilter:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.teacher-portal .requestSelectFilter option{background:var(--color-surface);color:var(--color-text)}.teacher-portal .reqRefreshBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.teacher-portal .reqRefreshBtn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.teacher-portal .requestsList{flex-direction:column;gap:12px;width:100%;display:flex}.teacher-portal .requestCard{background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);border-radius:16px;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;transition:border-color .2s,transform .2s;display:flex;box-shadow:0 4px 16px #0003}.teacher-portal .requestCard:hover{border-color:var(--color-border-hover);transform:translateY(-1px)}.teacher-portal .reqLeftGroup{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.teacher-portal .reqAvatar{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:44px;height:44px;color:var(--color-text);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex;overflow:hidden}.teacher-portal .reqAvatar svg,.teacher-portal .reqAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.teacher-portal .reqInfo{flex-direction:column;gap:4px;min-width:0;display:flex}.teacher-portal .reqNameRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-portal .reqStudentName{color:var(--color-text);margin:0;font-size:.98rem;font-weight:700}.teacher-portal .reqStudentEmail{color:var(--color-text-muted);font-size:.82rem}.teacher-portal .reqClassBadgesRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.teacher-portal .reqClassBadge{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border);border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:.76rem;font-weight:600;display:inline-flex}.teacher-portal .reqSectionBadge{background:var(--cat-resource-bg);color:var(--cat-resource);border:1px solid var(--cat-resource-border);border-radius:6px;align-items:center;padding:3px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.teacher-portal .reqLangBadge{background:var(--color-surface-hover);color:var(--color-text-muted);border-radius:6px;align-items:center;padding:3px 8px;font-size:.74rem;font-weight:500;display:inline-flex}.teacher-portal .reqTimeBadge{color:var(--color-text-dim);align-items:center;gap:4px;margin-left:4px;font-size:.74rem;display:inline-flex}.teacher-portal .reqActionsGroup{flex-shrink:0;align-items:center;gap:10px;display:flex}.teacher-portal .reqBtn{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;height:38px;padding:0 16px;font-family:inherit;font-size:.84rem;font-weight:600;transition:all .15s;display:inline-flex}.teacher-portal .reqBtn:disabled{opacity:.5;cursor:not-allowed}.teacher-portal .reqBtn--accept{color:var(--color-text);background:#10b981;box-shadow:0 2px 10px #10b98140}.teacher-portal .reqBtn--accept:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.teacher-portal .reqBtn--reject{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.teacher-portal .reqBtn--reject:hover:not(:disabled){color:var(--color-danger);background:#ef444433;border-color:#ef444466}.teacher-portal .reqEmptyState{background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border,#ffffff1a);text-align:center;box-sizing:border-box;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:56px 24px;display:flex}.teacher-portal .reqEmptyIconWrap{color:#10b981;background:#10b9811a;border:1px solid #10b98133;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:flex}.teacher-portal .reqEmptyTitle{color:var(--color-text);margin:0 0 8px;font-size:1.15rem;font-weight:700}.teacher-portal .reqEmptyDesc{color:var(--color-text-muted);max-width:480px;margin:0;font-size:.88rem;line-height:1.5}.teacher-portal .classHubReqBadge{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border);cursor:pointer;white-space:nowrap;vertical-align:middle;border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:700;transition:all .15s;display:inline-flex}.teacher-portal .classHubReqBadge:hover{background:#ef444440;transform:translateY(-1px)}@media (width<=1280px){.teacher-portal .contentContainer{gap:18px;padding:20px 24px 44px}.teacher-portal .classesGrid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}}@media (width<=1024px){.teacher-portal .classesGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.teacher-portal .classesHubHeader{gap:14px}.teacher-portal .heroStatsRow{gap:18px}}@media (width<=768px){.teacher-portal .contentContainer{gap:14px;padding:14px 12px 36px}.teacher-portal .headerBg{border-radius:14px;padding:16px 14px}.teacher-portal .hlTitle{font-size:1.45rem;line-height:1.2}.teacher-portal .heroStatsRow{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;padding-top:10px;display:grid}.teacher-portal .heroStatItem{background:var(--color-surface-subtle);border:1px solid var(--color-border);text-align:center;border-radius:8px;align-items:center;padding:8px 6px}.teacher-portal .heroStatVal{font-size:1.15rem}.teacher-portal .heroStatLabel{text-align:center;font-size:.64rem}.teacher-portal .heroStatDivider{display:none}.teacher-portal .classesHubHeader{flex-direction:column;align-items:stretch;gap:12px}.teacher-portal .langFilterBar{-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;padding-bottom:4px}.teacher-portal .langFilterBar::-webkit-scrollbar{display:none}.teacher-portal .langFilterChip{flex-shrink:0;height:32px;padding:0 12px;font-size:.78rem}.teacher-portal .classesHubRight{flex-direction:row;align-items:center;gap:8px;width:100%;display:flex}.teacher-portal .sectionActionBtn{white-space:nowrap;flex-shrink:0;height:38px;padding:0 14px;font-size:.84rem}.teacher-portal .classSearchWrap{flex:1;width:auto;min-width:0;max-width:100%}.teacher-portal .classSearchInput{height:38px;font-size:.85rem}.teacher-portal .classesGrid{grid-template-columns:1fr;gap:12px}.teacher-portal .classHubCard{border-radius:12px;padding:16px 14px}.teacher-portal .classHubTitle{font-size:1.1rem}.teacher-portal .modalOverlay{justify-content:center;align-items:center;padding:12px}.teacher-portal .modalCard{border-radius:14px;max-width:100%;max-height:92dvh;padding:20px 16px;overflow-y:auto}.teacher-portal .modalTitle{margin-bottom:16px;padding-right:38px;font-size:1.15rem}.teacher-portal .modalCloseBtn{top:14px;right:14px}.teacher-portal .formRowSplit{flex-direction:column;gap:14px}}@media (width<=480px){.teacher-portal .heroStatsRow{grid-template-columns:1fr 1fr 1fr;gap:6px}.teacher-portal .heroStatItem{padding:6px 4px}.teacher-portal .heroStatVal{font-size:1rem}.teacher-portal .heroStatLabel{font-size:.58rem}.teacher-portal .classHubFooter{gap:6px}.teacher-portal .classHubSubBtn{padding:0 8px;font-size:.78rem}.teacher-portal .classHubEnterBtn{padding:0 10px;font-size:.78rem}}.filePreviewOverlay{-webkit-backdrop-filter:blur(12px);z-index:3000;background:#08090dbf;justify-content:center;align-items:center;padding:clamp(12px,2.5vw,28px);animation:.18s ease-out previewFadeIn;display:flex;position:fixed;inset:0}@keyframes previewFadeIn{0%{opacity:0}to{opacity:1}}.filePreviewCard{background:var(--color-surface);border:1px solid var(--color-border);width:min(1040px,94vw);height:min(800px,90vh);box-shadow:var(--shadow-elevated);border-radius:16px;flex-direction:column;animation:.22s cubic-bezier(.16,1,.3,1) previewCardScale;display:flex;position:relative;overflow:hidden}@keyframes previewCardScale{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.filePreviewHeader{background:var(--color-surface-card);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.filePreviewHeaderLeft{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.filePreviewIconBadge{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.filePreviewIconBadge.category-image{background:var(--color-accent-dim);border-color:var(--color-border-accent)}.filePreviewIconBadge.category-pdf{background:var(--color-danger-bg);border-color:var(--color-danger)}.filePreviewIconBadge.category-text{background:var(--color-info-bg);border-color:var(--color-info)}.filePreviewIconBadge.category-archive{background:var(--color-warning-bg);border-color:var(--color-warning)}.filePreviewIconBadge.category-document{background:var(--color-info-bg);border-color:var(--color-info)}.filePreviewIconBadge.category-presentation{background:#f973161f;border-color:#f973164d}.filePreviewIconBadge.category-spreadsheet{background:var(--color-success-bg);border-color:var(--color-success)}.filePreviewTitleGroup{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.filePreviewFileName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;margin:0;font-size:.96rem;font-weight:700;overflow:hidden}.filePreviewMetaRow{align-items:center;gap:6px;font-size:.72rem;display:flex}.fileCategoryTag{text-transform:uppercase;letter-spacing:.04em;color:var(--color-accent);font-weight:700}.fileMetaDot{color:var(--color-border)}.fileSizeTag{color:var(--color-text-muted);font-family:var(--font-mono,monospace)}.filePreviewHeaderActions{flex-shrink:0;align-items:center;gap:8px;display:flex}.filePreviewBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.filePreviewBtn:hover{background:var(--sidebar-item-hover);border-color:var(--color-border-accent);color:var(--color-accent)}.filePreviewBtn.downloadBtn{background:var(--color-accent-dim);border-color:var(--color-border-accent);color:var(--color-accent)}.filePreviewBtn.downloadBtn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-background)}.zoomControls{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:4px;padding:2px 6px;display:flex}.filePreviewIconBtn{width:26px;height:26px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .12s;display:flex}.filePreviewIconBtn:hover{background:var(--sidebar-item-hover);color:var(--color-text)}.zoomValue{font-size:.72rem;font-family:var(--font-mono,monospace);color:var(--color-text-dim);text-align:center;min-width:38px}.filePreviewCloseBtn{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin-left:4px;font-size:1.5rem;line-height:1;transition:all .15s;display:flex}.filePreviewCloseBtn:hover{background:var(--color-danger-bg);color:var(--color-danger)}.filePreviewBody{background:var(--color-background);flex-direction:column;flex:1;display:flex;position:relative;overflow:auto}.imagePreviewContainer{background-image:radial-gradient(var(--color-border) 1px, transparent 1px);background-size:16px 16px;flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow:auto}.imagePreviewElement{object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--shadow-card);border-radius:6px;transition:transform .15s}.pdfPreviewContainer{flex:1;width:100%;height:100%;display:flex}.pdfPreviewObject{border:none;width:100%;height:100%}.pdfPreviewIframe{background:var(--color-surface-card);border:none;width:100%;height:100%}.pdfFallbackNotice{text-align:center;color:var(--color-text-muted);padding:36px;font-size:.9rem}.pdfFallbackNotice a{color:var(--color-accent);text-decoration:underline}.textPreviewContainer{background:var(--color-background);flex:1;padding:20px;overflow:auto}.textLoadingState{height:100%;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.88rem;display:flex}.textCodePre{font-family:var(--font-mono,"GitLab Mono", "Consolas", monospace);color:var(--color-text);white-space:pre-wrap;word-break:break-all;tab-size:2;margin:0;font-size:.85rem;line-height:1.6}.textEmptyState{text-align:center;color:var(--color-text-dim);padding:40px;font-size:.86rem}.binaryPreviewContainer{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px 24px;display:flex}.binaryIconWrap{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:24px;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.binaryTitle{color:var(--color-text);word-break:break-word;max-width:500px;margin:0;font-size:1.15rem;font-weight:700}.binaryDesc{color:var(--color-text-muted);max-width:440px;margin:0;font-size:.84rem;line-height:1.5}.binaryMeta{align-items:center;gap:8px;display:flex}.binarySizeBadge,.binaryTypeBadge{background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text-dim);font-size:.74rem;font-family:var(--font-mono,monospace);border-radius:6px;padding:4px 10px}.binaryDownloadBtn{background:var(--color-accent);color:var(--color-background);cursor:pointer;box-shadow:0 4px 16px var(--color-accent-glow);border-radius:10px;align-items:center;gap:8px;margin-top:8px;padding:10px 20px;font-size:.86rem;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .15s;display:inline-flex}.binaryDownloadBtn:hover{box-shadow:0 8px 24px var(--color-accent-glow);transform:translateY(-2px)}.officeIconWrap.office-document{background:var(--color-info-bg);border-color:var(--color-info)}.officeIconWrap.office-presentation{background:#f9731614;border-color:#f9731640}.officeIconWrap.office-spreadsheet{background:var(--color-success-bg);border-color:var(--color-success)}.officeDownloadBtn--document,.officeDownloadBtn--presentation,.officeDownloadBtn--spreadsheet{background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text);box-shadow:none}.officeDownloadBtn--document:hover,.officeDownloadBtn--presentation:hover,.officeDownloadBtn--spreadsheet:hover{background:var(--sidebar-item-hover);border-color:var(--color-border-accent);box-shadow:none}@media (width<=768px){.filePreviewOverlay{padding:8px!important}.filePreviewCard{border-radius:var(--radius-lg,12px)!important;width:100%!important;max-width:100%!important;height:94dvh!important;max-height:94dvh!important}.filePreviewHeader{gap:10px!important;padding:10px 12px!important}.filePreviewIconBadge{width:32px!important;height:32px!important;font-size:16px!important}.filePreviewTitle{max-width:180px!important;font-size:.88rem!important}.filePreviewMeta{font-size:.7rem!important}.filePreviewActions{gap:4px!important}.filePreviewActionBtn{width:32px!important;height:32px!important;font-size:14px!important}}@media (width<=640px){.filePreviewTitle{max-width:130px!important}.filePreviewMeta span:nth-child(n+3){display:none}}.class-view-portal{background-color:var(--color-background,#0f1015);width:100%;min-height:100vh;color:var(--color-text,#fff);box-sizing:border-box;font-family:var(--font-sans,"GitLab Sans", -apple-system, BlinkMacSystemFont, sans-serif);position:relative;overflow-x:hidden}.class-view-portal .bg-glow{pointer-events:none;z-index:0;filter:blur(90px);opacity:.12;border-radius:50%;width:500px;height:500px;transition:opacity .3s;position:fixed}.class-view-portal .glow-top-left{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);top:-140px;left:-100px}.class-view-portal .glow-bottom-right{background:radial-gradient(circle,#387eb8 0%,#387eb800 70%);bottom:-160px;right:-100px}.class-view-portal .classBreadcrumbNav{align-items:center;gap:10px;min-height:36px;display:flex}.class-view-portal .breadcrumbBackLink{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border,#ffffff14);height:34px;color:var(--color-text-muted,#8b949e);transition:background var(--duration-base,.15s) ease, border-color var(--duration-base,.15s) ease, color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease;align-items:center;gap:8px;padding:0 12px;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 3px #0003}.class-view-portal .breadcrumbBackLink i{transition:transform var(--duration-fast,70ms) ease}.class-view-portal .breadcrumbBackLink:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.class-view-portal .breadcrumbBackLink:hover i{transform:translate(-3px)}.class-view-portal .breadcrumbBackLink:active{transform:translateY(1px)}.class-view-portal .breadcrumbBackLink:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.class-view-portal .breadcrumbSep{color:var(--color-text-dim,#656d76);-webkit-user-select:none;user-select:none;font-size:.84rem;font-weight:400}.class-view-portal .breadcrumbCurrent{color:var(--color-text);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:480px;font-size:.84rem;font-weight:600;overflow:hidden}.class-view-portal .classViewContainer{box-sizing:border-box;z-index:1;flex-direction:column;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 48px;display:flex;position:relative}.class-view-portal .classHero{border-radius:var(--radius-xl,20px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0000004d 0px 4px 16px 0px);box-sizing:border-box;flex-direction:column;gap:18px;padding:24px 28px 0;display:flex;position:relative;overflow:hidden}.class-view-portal .classHero:before{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);height:2px;position:absolute;top:0;left:0;right:0}.class-view-portal .classHeroContent{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.class-view-portal .classHeroLeft{flex-direction:column;gap:8px;max-width:760px;display:flex}.class-view-portal .classHeroBadges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .classHeroLangBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);font-family:var(--font-mono,monospace);align-items:center;gap:6px;padding:3px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.class-view-portal .clLangDot{background:var(--color-accent);border-radius:50%;width:6px;height:6px}.class-view-portal .classHeroSectionBadge{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);font-family:var(--font-mono,monospace);color:var(--color-text);align-items:center;padding:3px 9px;font-size:.74rem;font-weight:600;display:inline-flex}.class-view-portal .classHeroTopicText,.class-view-portal .classHeroTopicBadge{color:var(--color-text-dim);letter-spacing:normal;border-radius:0;align-items:center;padding:0;font-size:.82rem;font-weight:500;display:inline-flex;background:0 0!important;border:none!important}.class-view-portal .classHeroCountBadge{border-radius:var(--radius-pill,9999px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);align-items:center;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.class-view-portal .classHeroTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:clamp(1.85rem,3vw,2.5rem);font-weight:700;line-height:1.04}.class-view-portal .classHeroCodeCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card);border:1px solid var(--color-border,#ffffff14);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 16px;display:flex}.class-view-portal .classHeroCodeLabel{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-dim,#656d76);font-size:.68rem;font-weight:600}.class-view-portal .classHeroCodeGroup{align-items:center;gap:8px;display:flex}.class-view-portal .heroClassCodeText{font-family:var(--font-mono,monospace);color:var(--color-accent);letter-spacing:.08em;font-size:1.25rem;font-weight:700}.class-view-portal .heroCopyBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);height:32px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:0 10px;font-size:.78rem;font-weight:600;display:inline-flex}.class-view-portal .heroCopyBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.class-view-portal .classTabBar{border-top:1px solid var(--color-border-subtle);white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;background:0 0;align-items:center;gap:4px;margin:0 -28px;padding:0 28px;display:flex;overflow:auto hidden}.class-view-portal .classTabBar::-webkit-scrollbar{display:none}.class-view-portal .classTabBtn{height:46px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:8px;padding:0 18px;font-size:.88rem;font-weight:600;display:inline-flex}.class-view-portal .classTabBtn:hover{color:var(--color-text);background:0 0}.class-view-portal .classTabBtn.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:700}.class-view-portal .tabBadge{border-radius:var(--radius-pill,9999px);background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-size:.72rem;font-weight:600;font-family:var(--font-mono,monospace);padding:2px 8px}.class-view-portal .classTabBtn.active .tabBadge{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.class-view-portal .tabPane{flex-direction:column;gap:16px;width:100%;display:flex}.class-view-portal .tabPaneHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.class-view-portal .sectionHeaderLeft{align-items:center;gap:12px;display:flex}.class-view-portal .sectionTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.class-view-portal .sectionCount{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);min-width:22px;height:22px;color:var(--color-accent);font-size:.75rem;font-weight:700;font-family:var(--font-mono,monospace);justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.class-view-portal .sectionActionBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:44px;color:var(--color-on-accent);font-size:.88rem;font-weight:600;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:background var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 20px;display:inline-flex}.class-view-portal .sectionActionBtn:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.class-view-portal .sectionActionBtn:active{transform:translateY(0)}.class-view-portal .sectionActionBtn:focus-visible{outline-offset:2px;outline:2px solid #fff}.class-view-portal .assList{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.class-view-portal .assignmentCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);transition:border-color var(--duration-base,.15s) ease;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.class-view-portal .assignmentCard:hover{border-color:var(--color-accent-border);transition:transform var(--duration-fast,70ms) ease, border-color var(--duration-base,.15s) ease;transform:translateY(-1px)}.class-view-portal .assignmentCardLeft{flex-direction:column;gap:6px;max-width:720px;display:flex}.class-view-portal .assignmentMetaRow{align-items:center;gap:10px;display:flex}.class-view-portal .activityIdTag{border-radius:var(--radius-sm,6px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);font-family:var(--font-mono,monospace);padding:2px 8px;font-size:.74rem;font-weight:700}.class-view-portal .activityDueDate{color:var(--color-text-muted,#8b949e);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.class-view-portal .assignmentTitle{color:var(--color-text);margin:0;font-size:1.05rem;font-weight:600}.class-view-portal .assignmentDesc{color:var(--color-text-muted,#8b949e);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.86rem;line-height:1.5;display:-webkit-box;overflow:hidden}.class-view-portal .assignmentActions{align-items:center;gap:8px;display:flex}.class-view-portal .previewActivityBtn,.class-view-portal .openEditorBtn{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:38px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:8px;padding:0 16px;font-size:.84rem;font-weight:600;display:inline-flex}.class-view-portal .previewActivityBtn:hover,.class-view-portal .openEditorBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.class-view-portal .editAssignmentBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);height:38px;color:var(--color-text);cursor:pointer;transition:all var(--duration-base,.15s) ease;padding:0 14px;font-size:.84rem;font-weight:600}.class-view-portal .editAssignmentBtn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.class-view-portal .deleteAssignmentBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);width:38px;height:38px;color:var(--color-text-dim);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;display:inline-flex}.class-view-portal .deleteAssignmentBtn:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:#dc26264d}.class-view-portal .studentsGrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;width:100%;display:grid}.class-view-portal .studentRosterCard{border-radius:var(--radius-md,8px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);transition:border-color var(--duration-base,.15s) ease;align-items:center;gap:12px;padding:12px 16px;display:flex}.class-view-portal .studentRosterCard:hover{border-color:var(--color-accent-border)}.class-view-portal .studentAvatarInitials{background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);width:36px;min-width:36px;height:36px;color:var(--color-accent);font-size:.8rem;font-weight:700;font-family:var(--font-mono,monospace);border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.class-view-portal .studentAvatarInitials img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .studentRosterInfo{flex-direction:column;gap:2px;display:flex;overflow:hidden}.class-view-portal .studentRosterName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9rem;font-weight:600;overflow:hidden}.class-view-portal .studentRosterEmail{color:var(--color-text-muted,#8b949e);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.76rem;overflow:hidden}.class-view-portal .metricsGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;width:100%;display:grid}.class-view-portal .metricCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);flex-direction:column;gap:6px;padding:18px 20px;display:flex}.class-view-portal .metricCard h3{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim,#656d76);margin:0;font-size:.74rem;font-weight:600}.class-view-portal .metricValue{color:var(--color-text);font-size:1.75rem;font-weight:700;font-family:var(--font-mono,monospace);margin:0}.class-view-portal .metricValue.health-good{color:var(--color-accent)}.class-view-portal .metricValue.health-warn{color:#f59e0b}.class-view-portal .metricValue.health-critical{color:#ef4444}.class-view-portal .metricSubtext{color:var(--color-text-muted,#8b949e);font-size:.74rem;font-weight:500}.class-view-portal .topErrorMetricVal{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.15rem;line-height:1.25;overflow:hidden}.class-view-portal .severity-color-high{color:var(--sev-high)}.class-view-portal .severity-color-mid{color:var(--sev-mid)}.class-view-portal .severity-color-low{color:var(--sev-low)}.class-view-portal .errorTelemetryHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.class-view-portal .sectionSubtitle{color:var(--color-text-muted,#8b949e);margin:4px 0 0;font-size:.8rem;line-height:1.4}.class-view-portal .errorSummaryChips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .summaryChip{border-radius:var(--radius-pill,9999px);letter-spacing:.02em;align-items:center;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .summaryChip.chip-high{background:var(--sev-high-bg);border:1px solid var(--sev-high-border);color:var(--sev-high)}.class-view-portal .summaryChip.chip-mid{background:var(--sev-mid-bg);border:1px solid var(--sev-mid-border);color:var(--sev-mid)}.class-view-portal .summaryChip.chip-low{background:var(--sev-low-bg);border:1px solid var(--sev-low-border);color:var(--sev-low)}.class-view-portal .errorCategoryFilterRow{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);padding:12px 24px}.class-view-portal .errorCategoryTabsBar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .errorCategoryTabBtn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill,9999px);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:8px;padding:6px 14px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .errorCategoryTabBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.class-view-portal .errorCategoryTabBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.class-view-portal .errorCategoryTabCount{background:var(--color-surface-hover);min-width:18px;height:18px;color:var(--color-text-dim);border-radius:9999px;justify-content:center;align-items:center;padding:0 5px;font-size:.7rem;font-weight:600;display:inline-flex}.class-view-portal .errorCategoryTabBtn.active .errorCategoryTabCount{background:var(--color-accent);color:var(--color-on-accent)}.class-view-portal .errorTypeCell{flex-direction:column;gap:4px;display:flex}.class-view-portal .errorCategoryAndName{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .categoryBadge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:4px;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.class-view-portal .categoryBadge.category-syntax{background:var(--cat-syntax-bg);border:1px solid var(--cat-syntax-border);color:var(--cat-syntax)}.class-view-portal .categoryBadge.category-runtime{background:var(--cat-runtime-bg);border:1px solid var(--cat-runtime-border);color:var(--cat-runtime)}.class-view-portal .categoryBadge.category-semantic{background:var(--cat-semantic-bg);border:1px solid var(--cat-semantic-border);color:var(--cat-semantic)}.class-view-portal .categoryBadge.category-resource{background:var(--cat-resource-bg);border:1px solid var(--cat-resource-border);color:var(--cat-resource)}.class-view-portal .errorTypeDot{border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.class-view-portal .errorTypeDot.dot-high{background:var(--sev-high);box-shadow:0 0 8px var(--sev-high-border)}.class-view-portal .errorTypeDot.dot-mid{background:var(--sev-mid);box-shadow:0 0 8px var(--sev-mid-border)}.class-view-portal .errorTypeDot.dot-low{background:var(--sev-low);box-shadow:0 0 8px var(--sev-low-border)}.class-view-portal .errorTypeName{color:var(--color-text);font-size:.88rem;font-weight:600}.class-view-portal .sampleMsgHint{color:var(--color-accent);align-items:center;gap:4px;margin-top:2px;font-size:.72rem;font-weight:500;display:inline-flex}.class-view-portal .studentCounterBadge{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;display:inline-flex}.class-view-portal .prevalenceBarWrap{align-items:center;gap:10px;width:140px;display:flex}.class-view-portal .prevalenceProgressTrack{background:var(--color-surface-hover);border-radius:3px;flex:1;height:6px;overflow:hidden}.class-view-portal .prevalenceProgressFill{border-radius:3px;height:100%;transition:width .3s}.class-view-portal .prevalenceProgressFill.fill-high{background:var(--sev-high)}.class-view-portal .prevalenceProgressFill.fill-mid{background:var(--sev-mid)}.class-view-portal .prevalenceProgressFill.fill-low{background:var(--sev-low)}.class-view-portal .prevalencePercent{font-family:var(--font-mono,monospace);color:var(--color-text);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:38px;font-size:.82rem;font-weight:700}.class-view-portal .severityBadge{border-radius:var(--radius-sm,6px);letter-spacing:.04em;align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.class-view-portal .severityBadge.severity-high{background:var(--sev-high-bg);border:1px solid var(--sev-high-border);color:var(--sev-high)}.class-view-portal .severityBadge.severity-mid{background:var(--sev-mid-bg);border:1px solid var(--sev-mid-border);color:var(--sev-mid)}.class-view-portal .severityBadge.severity-low{background:var(--sev-low-bg);border:1px solid var(--sev-low-border);color:var(--sev-low)}.class-view-portal .activityPill{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;max-width:140px;padding:2px 7px;font-size:.72rem;display:inline-flex;overflow:hidden}.class-view-portal .activityPill.morePill{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-accent-border);font-weight:600}.class-view-portal .sampleMessageRow td{background:var(--color-surface);padding:0 20px 16px}.class-view-portal .errorHeaderRight{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.class-view-portal .activityFilterGroup{box-sizing:border-box;background:var(--color-surface);border:1.5px solid var(--color-border);height:36px;box-shadow:var(--shadow-card);border-radius:8px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.class-view-portal .activityFilterGroup:focus-within{border-color:var(--color-accent)}.class-view-portal .activityFilterLabel{color:var(--color-text-dim,#656d76);cursor:pointer;align-items:center;gap:5px;font-size:.76rem;font-weight:600;display:inline-flex}.class-view-portal .activityFilterSelect{color:var(--color-text);cursor:pointer;background:0 0;border:none;outline:none;max-width:220px;font-family:inherit;font-size:.84rem;font-weight:600}.class-view-portal .activityFilterSelect option{background:var(--color-surface);color:var(--color-text);padding:6px 10px}.class-view-portal .errorExpandedDetailsContainer{flex-direction:column;gap:12px;display:flex}.class-view-portal .affectedStudentsCard{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:8px;padding:12px 16px}.class-view-portal .affectedStudentsCardHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.class-view-portal .affectedStudentsHeaderTitle{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#8b949e);align-items:center;gap:7px;font-size:.76rem;font-weight:600;display:flex}.class-view-portal .affectedStudentsHint{color:var(--color-accent);font-size:.72rem;font-weight:500}.class-view-portal .affectedStudentsList{flex-direction:column;gap:10px;display:flex}.class-view-portal .affectedStudentWrapper{flex-direction:column;gap:6px;display:flex}.class-view-portal .affectedStudentRowItem{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;display:flex}.class-view-portal .affectedStudentRowItem.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.class-view-portal .affectedStudentRowItem.clickable:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);transform:translate(2px)}.class-view-portal .affectedStudentRowItem.clickable.active{background:var(--color-accent-dim);border-color:var(--color-accent-border);box-shadow:var(--shadow-card)}.class-view-portal .affectedStudentAvatarBadge{background:linear-gradient(135deg, #38bdf833, var(--color-accent-dim));border:1px solid var(--color-border-hover);width:34px;height:34px;color:var(--color-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex;overflow:hidden}.class-view-portal .affectedStudentAvatarBadge svg,.class-view-portal .affectedStudentAvatarBadge img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .affectedStudentIdentity{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.class-view-portal .affectedStudentNameRow{justify-content:space-between;align-items:center;gap:12px;display:flex}.class-view-portal .affectedStudentFullName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.class-view-portal .viewErrorActionTag{color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .affectedStudentRowItem.clickable.active .viewErrorActionTag{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.class-view-portal .affectedStudentSubmeta{flex-wrap:wrap;align-items:center;gap:8px;font-size:.74rem;display:flex}.class-view-portal .stuEmailTag{color:var(--color-text-muted,#8b949e);font-family:var(--font-mono,monospace)}.class-view-portal .stuActTag{color:var(--color-accent);align-items:center;gap:3px;font-weight:500;display:inline-flex}.class-view-portal .stuTimeTag{color:var(--color-text-dim,#656d76);align-items:center;gap:3px;display:inline-flex}.class-view-portal .studentSpecificErrorBox{background:var(--color-surface-card);border:1px solid var(--color-accent-border);border-left:3px solid var(--color-accent);border-radius:8px;margin-left:8px;padding:12px 16px;animation:.2s ease-out fadeInStuErr}.class-view-portal .studentSpecificErrorHeader{color:var(--color-accent);align-items:center;gap:7px;margin-bottom:8px;font-size:.76rem;font-weight:600;display:flex}.class-view-portal .studentSpecificErrorPre{color:#fca5a5;white-space:pre-wrap;word-break:break-all;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;margin:0;padding:10px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.5}.class-view-portal .classErrorModalCard,.classErrorModalCard{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg,12px)!important;box-sizing:border-box!important;flex-direction:column!important;width:min(1120px,94vw)!important;max-width:1120px!important;height:84vh!important;min-height:540px!important;max-height:820px!important;margin:auto!important;padding:0!important;display:flex!important;overflow:hidden!important;box-shadow:0 20px 50px #00000040,0 4px 16px #0000001a!important}.class-view-portal .classErrorModalHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 16px;display:flex}.class-view-portal .classErrorHeaderInfo{flex-direction:column;gap:8px;min-width:0;display:flex}.class-view-portal .classErrorBadgesRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .classErrorModalTitle{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.class-view-portal .classErrorMetricsBar{background:var(--color-surface-card);border-bottom:1px solid var(--color-border);flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:12px 24px;display:grid}.class-view-portal .classErrorMetricItem{flex-direction:column;gap:4px;display:flex}.class-view-portal .classErrorMetricItem .metricLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim);font-size:.68rem;font-weight:700}.class-view-portal .classErrorMetricItem .metricValue{color:var(--color-text);align-items:center;gap:6px;font-size:.85rem;display:flex}.class-view-portal .activityPillStack{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.class-view-portal .activityPill{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;align-items:center;padding:2px 8px;font-size:.74rem;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #0000000a}.class-view-portal .classErrorModalTwoColBody,.classErrorModalTwoColBody{background:var(--color-surface)!important;flex:1!important;grid-template-columns:340px 1fr!important;min-height:0!important;display:grid!important;overflow:hidden!important}.class-view-portal .classErrorColStudents{border-right:1px solid var(--color-border);background:var(--color-surface-card);flex-direction:column;min-height:0;display:flex}.class-view-portal .errorModalColHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface-card);flex-shrink:0;padding:14px 18px 12px}.class-view-portal .errorModalColTitle{color:var(--color-text);align-items:center;gap:8px;font-size:.84rem;font-weight:700;display:flex}.class-view-portal .errorModalColTitle i{color:var(--color-accent);font-size:1rem}.class-view-portal .errorModalColHint{color:var(--color-text-dim);margin-top:3px;font-size:.72rem;display:block}.class-view-portal .errorModalStudentsList{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.class-view-portal .errorModalStudentItem{border-radius:var(--radius-sm,8px);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:10px 12px;transition:all .18s;display:flex;box-shadow:0 1px 2px #0000000a}.class-view-portal .errorModalStudentItem:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.class-view-portal .errorModalStudentItem.active{background:var(--color-accent-dim)!important;border-color:var(--color-accent)!important;box-shadow:0 0 0 1px var(--color-accent), 0 2px 6px #0000000f!important}.class-view-portal .errorModalStudentAvatar{border-radius:50%;flex-shrink:0;width:32px;height:32px;overflow:hidden}.class-view-portal .errorModalStudentAvatar img,.class-view-portal .errorModalStudentAvatar svg{object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .errorModalStudentMeta{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.class-view-portal .errorModalStudentNameRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.class-view-portal .errorModalStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:600;overflow:hidden}.class-view-portal .pickedBadge{background:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:.62rem;font-weight:700;color:#fff!important}.class-view-portal .errorModalStudentSubmeta{color:var(--color-text-dim);flex-wrap:wrap;align-items:center;gap:6px;font-size:.72rem;display:flex}.class-view-portal .errorModalStudentSubmeta .stuActTag,.class-view-portal .errorModalStudentSubmeta .stuClassTag{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:4px;max-width:160px;padding:1px 6px;display:inline-flex;overflow:hidden}.class-view-portal .errorModalStudentEmailRow{color:var(--color-accent);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;margin:1px 0;font-size:.73rem;font-weight:500;display:flex;overflow:hidden}.class-view-portal .errorModalStudentEmailRow i{flex-shrink:0;font-size:.8rem}.class-view-portal .errorModalStudentEmail{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.class-view-portal .errorModalStudentSubmeta .stuEmailTag,.class-view-portal .errorModalStudentSubmeta .stuTimeTag{color:var(--color-text-dim);align-items:center;gap:3px;display:inline-flex}.class-view-portal .pickChevron{color:var(--color-text-dim);flex-shrink:0;font-size:.85rem;transition:transform .18s,color .18s}.class-view-portal .errorModalStudentItem.active .pickChevron{color:var(--color-accent);transform:translate(2px)}.class-view-portal .errorModalEmptyStudents{text-align:center;color:var(--color-text-dim);padding:32px 16px;font-size:.82rem}.class-view-portal .classErrorColDetail{background:var(--color-surface);flex-direction:column;min-height:0;display:flex}.class-view-portal .errorModalDetailHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 12px;display:flex}.class-view-portal .errorModalDetailMeta{flex-direction:column;gap:3px;min-width:0;display:flex}.class-view-portal .errorModalDetailTitle{color:var(--color-text);align-items:center;gap:8px;font-size:.88rem;font-weight:700;display:flex}.class-view-portal .errorModalDetailTitle i{color:var(--color-accent);font-size:1rem}.class-view-portal .errorModalDetailSubmeta{color:var(--color-text-dim);align-items:center;gap:10px;font-size:.73rem;display:flex}.class-view-portal .errorDetailActivity,.class-view-portal .errorDetailTime{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.class-view-portal .errorDetailEmail{color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-dim);border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.class-view-portal .copyTraceBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-sm,6px);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0000000a}.class-view-portal .copyTraceBtn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.class-view-portal .errorModalTerminalWrapper{background:var(--color-surface);flex-direction:column;flex:1;min-height:0;padding:16px 20px;display:flex;overflow:hidden}.class-view-portal .terminalWindowBar{border:1px solid var(--color-border);background:#181c24;border-bottom:none;border-top-left-radius:8px;border-top-right-radius:8px;flex-shrink:0;align-items:center;gap:12px;padding:8px 14px;display:flex}.class-view-portal .terminalDots{gap:6px;display:flex}.class-view-portal .terminalDot{border-radius:50%;width:9px;height:9px}.class-view-portal .dot-red{background:#f87171}.class-view-portal .dot-yellow{background:#fbbf24}.class-view-portal .dot-green{background:#34d399}.class-view-portal .terminalWindowTitle{color:#94a3b8;letter-spacing:.02em;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.7rem}.class-view-portal .errorTerminalPre{border:1px solid var(--color-border);color:#f87171;white-space:pre-wrap;word-break:break-word;background:#0d1117;border-bottom-right-radius:8px;border-bottom-left-radius:8px;flex:1;min-height:0;margin:0;padding:16px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.83rem;line-height:1.55;overflow-y:auto}.class-view-portal .errorModalNoSelection{color:var(--color-text-dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;font-size:.85rem;display:flex}@media (width<=768px){.class-view-portal .classErrorModalTwoColBody{grid-template-rows:240px 1fr;grid-template-columns:1fr}.class-view-portal .classErrorColStudents{border-right:none;border-bottom:1px solid var(--color-border-subtle,#ffffff14)}}.class-view-portal .emptyStateBox{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.class-view-portal .tableCard{border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);overflow:hidden}.class-view-portal .tableCardHeader{border-bottom:1px solid var(--color-border);padding:16px 20px}.class-view-portal .tableWrapper{width:100%;overflow-x:auto}.class-view-portal .esenseTable{border-collapse:collapse;text-align:left;width:100%;font-size:.88rem}.class-view-portal .esenseTable th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);padding:12px 20px;font-size:.74rem;font-weight:700}.class-view-portal .esenseTable td{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-card);padding:12px 20px}.class-view-portal .esenseTable tr:last-child td{border-bottom:none}.class-view-portal .esenseTable tr:hover td{background:var(--color-surface-hover)}.class-view-portal .tabEmptyState{text-align:center;border-radius:var(--radius-lg,12px);background:var(--color-surface-card,#14171d);border:1px dashed var(--color-border);flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.class-view-portal .tabEmptyIcon{color:var(--color-text-dim,#656d76);margin-bottom:12px}.class-view-portal .tabEmptyTitle{color:var(--color-text);margin:0 0 6px;font-size:1.15rem;font-weight:600}.class-view-portal .tabEmptyDesc{color:var(--color-text-muted,#8b949e);max-width:440px;margin:0 0 16px;font-size:.88rem}.class-view-portal.modalOverlay,.class-view-modal-overlay.modalOverlay,.class-view-portal .modalOverlay{animation:.18s ease-out modalFadeIn;-webkit-backdrop-filter:blur(8px)!important;z-index:9999!important;box-sizing:border-box!important;background:#000000bf!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;min-height:0!important;margin:0!important;padding:24px 16px!important;display:flex!important;position:fixed!important;inset:0!important;overflow-y:auto!important}.class-view-portal .modalCard{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border,#ffffff14);box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;width:100%;max-width:560px;max-height:calc(100vh - 48px);margin:auto;padding:28px;position:relative;overflow-y:auto;box-shadow:0 20px 48px #0009,inset 0 1px #ffffff1a}.class-view-portal .modalCard::-webkit-scrollbar{width:6px}.class-view-portal .modalCard::-webkit-scrollbar-track{background:0 0}.class-view-portal .modalCard::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:4px}.class-view-portal .modalCard::-webkit-scrollbar-thumb:hover{background:var(--color-surface-elevated)}.class-view-portal .modalCloseBtn{color:var(--color-text-muted,#8b949e);cursor:pointer;border-radius:var(--radius-sm,6px);width:32px;height:32px;transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.4rem;display:flex;position:absolute;top:18px;right:18px}.class-view-portal .modalCloseBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .modalTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);margin:0 0 20px;font-size:1.25rem;font-weight:600}.class-view-portal .modalForm{flex-direction:column;gap:16px;display:flex}.class-view-portal .modalLabel{color:var(--color-text);margin-bottom:-10px;font-size:.8rem;font-weight:600;display:block}.class-view-portal .modalInput,.class-view-portal .modalSelect{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;box-shadow:var(--shadow-card);color:var(--color-text);font-size:.88rem;font-family:var(--font-sans,"GitLab Sans", sans-serif);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;box-sizing:border-box;outline:none;padding:10px 14px}.class-view-portal .modalInput:focus,.class-view-portal .modalSelect:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.class-view-portal .modalSelect{cursor:pointer}.class-view-portal .modalSelect option{background:var(--color-surface);color:var(--color-text)}.class-view-portal .starterCodeHeader{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.class-view-portal .starterCodeResetBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:var(--radius-sm,6px);cursor:pointer;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .starterCodeResetBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:#c7f8a3}.class-view-portal .starterCodeHint{color:var(--color-text-muted,#8b949e);margin:-8px 0 0;font-size:.76rem;line-height:1.4}.class-view-portal .starterCodeArea{font-family:var(--font-mono,"JetBrains Mono", monospace);tab-size:2;font-size:.82rem;line-height:1.5}.class-view-portal .formRowSplit{gap:12px;display:flex}.class-view-portal .formCol{flex-direction:column;flex:1;gap:16px;display:flex}.class-view-portal .modalBtn{border-radius:var(--radius-md,8px);cursor:pointer;height:42px;transition:all var(--duration-base,.15s) ease;border:1px solid #0000;padding:0 18px;font-size:.86rem;font-weight:600}.class-view-portal .modalBtn--secondary{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text)}.class-view-portal .modalBtn--secondary:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .modalBtn--primary{background:var(--color-accent);color:var(--color-on-accent)}.class-view-portal .modalBtn--primary:hover{background:var(--color-accent-hover)}.class-view-portal .modalBtn--danger{color:var(--color-text);background:#ef4444}.class-view-portal .modalBtn--danger:hover{background:#dc2626}.class-view-portal .modalBtn--warning{color:#0e1318;background:#f59e0b}.class-view-portal .modalBtn--warning:hover{color:var(--color-text);background:#d97706}.class-view-portal .copyToast{background:var(--color-surface);border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-md,8px);z-index:2000;padding:10px 20px;font-size:.86rem;font-weight:600;animation:.2s ease-out toastSlideUp;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #00000080}.class-view-portal .activityPointsBadge{border-radius:var(--radius-pill,9999px);background:var(--color-warning-bg);color:var(--color-warning);font-size:.72rem;font-weight:700;font-family:var(--font-mono,monospace);border:1px solid #d9770640;align-items:center;gap:5px;padding:2px 8px;display:inline-flex}.class-view-portal .activitySolutionsCountBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .solutionCodesSection{border:1px solid var(--color-border);border-radius:var(--radius-md,10px);background:#0b0d1199;flex-direction:column;gap:12px;margin-top:6px;padding:14px 16px;display:flex}.class-view-portal .solutionCodesHeader{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.class-view-portal .solutionCodesHint{color:var(--color-text-muted,#8b949e);margin:4px 0 0;font-size:.74rem;line-height:1.4}.class-view-portal .addSolutionBtn{border-radius:var(--radius-sm,6px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:5px 10px;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .addSolutionBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.class-view-portal .solutionCodesList{flex-direction:column;gap:12px;display:flex}.class-view-portal .solutionCodeCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);flex-direction:column;gap:8px;padding:12px;display:flex}.class-view-portal .solutionCardHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.class-view-portal .solutionBadge{color:var(--color-text);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:700}.class-view-portal .solutionCardActions{align-items:center;gap:6px;display:flex}.class-view-portal .testSolutionBtn{color:#38bdf8;cursor:pointer;background:#38bdf81f;border:1px solid #38bdf84d;border-radius:6px;align-items:center;gap:5px;padding:4px 9px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .testSolutionBtn:hover:not(:disabled){background:#38bdf838;border-color:#38bdf8}.class-view-portal .testSolutionBtn:disabled{opacity:.5;cursor:not-allowed}.class-view-portal .removeSolutionBtn{color:#f87171;cursor:pointer;background:0 0;border:1px solid #f8717133;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:flex}.class-view-portal .removeSolutionBtn:hover{background:#f8717126;border-color:#f87171}.class-view-portal .solutionCodeArea{font-family:var(--font-mono,"GitLab Mono", monospace);background:var(--color-surface-card);font-size:.82rem}.class-view-portal .expectedOutputRow{align-items:baseline;gap:8px;font-size:.72rem;display:flex}.class-view-portal .expectedOutputLabel{color:var(--color-text-muted,#8b949e);white-space:nowrap;font-weight:600}.class-view-portal .expectedOutputBox{font-family:var(--font-mono,monospace);white-space:pre-wrap;word-break:break-all;border-radius:6px;flex:1;padding:6px 10px;font-size:.76rem}.class-view-portal .expectedOutputBox.outputSuccess{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.class-view-portal .expectedOutputBox.outputError{color:#f87171;background:#f8717114;border:1px solid #f8717140}.class-view-portal .expectedOutputPlaceholder{color:var(--color-text-dim,#656d76);font-size:.72rem;font-style:italic}.class-view-portal .formRowThree{gap:12px;display:flex}.class-view-portal .formRowThree .formCol.dateCol{flex:1.3}.class-view-portal .formRowThree .formCol.timeCol,.class-view-portal .formRowThree .formCol.pointsCol{flex:1}@media (width<=640px){.class-view-portal .formRowThree{flex-direction:column;gap:14px}}.class-view-portal .attachmentsSection{background:var(--color-surface-subtle);border:1px dashed var(--color-border-hover);border-radius:var(--radius-lg,12px);flex-direction:column;gap:10px;margin-top:4px;padding:14px 16px;display:flex}.class-view-portal .attachmentsSectionHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.class-view-portal .attachmentsHeaderTitle{color:var(--color-text);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.class-view-portal .attachmentCountBadge{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);min-width:18px;height:18px;color:var(--color-accent);border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:.7rem;font-weight:700;display:inline-flex}.class-view-portal .addAttachmentBtn{border-radius:var(--radius-sm,6px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .addAttachmentBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);transform:translateY(-1px)}.class-view-portal .attachmentsHint{color:var(--color-text-dim,#656d76);margin:0;font-size:.74rem;line-height:1.4}.class-view-portal .attachmentsModalList{flex-direction:column;gap:8px;margin-top:4px;display:flex}.class-view-portal .attachmentModalItem{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;transition:border-color .15s;display:flex}.class-view-portal .attachmentModalItem:hover{border-color:var(--color-border-hover)}.class-view-portal .attachmentModalLeft{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.class-view-portal .attachmentFileIcon{color:#38bdf8;flex-shrink:0}.class-view-portal .attachmentModalInfo{flex-direction:column;flex:1;min-width:0;display:flex}.class-view-portal .attachmentModalName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.class-view-portal .attachmentModalSize{color:var(--color-text-dim,#656d76);font-size:.7rem;font-family:var(--font-mono,monospace)}.class-view-portal .removeAttachmentBtn{color:#f87171;cursor:pointer;background:0 0;border:1px solid #f8717133;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex}.class-view-portal .removeAttachmentBtn:hover{background:#f8717126;border-color:#f87171;transform:scale(1.05)}.class-view-portal .attachmentsDropZone{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px dashed var(--color-border);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:16px;transition:all .15s;display:flex}.class-view-portal .attachmentsDropZone:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border)}.class-view-portal .dropZoneIcon{color:#38bdf8;opacity:.85;margin-bottom:2px}.class-view-portal .dropZoneText{color:var(--color-text);font-size:.78rem;font-weight:600}.class-view-portal .dropZoneSubtext{color:var(--color-text-dim,#656d76);font-size:.7rem}.class-view-portal .activityAttachmentsBadge{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf840;border-radius:9999px;align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .attachmentItemActionGroup{flex-shrink:0;align-items:center;gap:6px;display:flex}.class-view-portal .previewAttachmentActionBtn{color:#38bdf8;cursor:pointer;background:#38bdf81a;border:1px solid #38bdf840;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex}.class-view-portal .previewAttachmentActionBtn:hover{color:var(--color-text);background:#38bdf833;border-color:#38bdf8;transform:scale(1.05)}.class-view-portal .attachmentErrorBanner{border-radius:var(--radius-md,8px);color:#fca5a5;background:#f871711f;border:1px solid #f871714d;align-items:center;gap:10px;padding:8px 12px;font-size:.76rem;line-height:1.4;animation:.15s ease-out fadeIn;display:flex}.class-view-portal .attachmentErrorDismissBtn{color:#fca5a5;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:1.1rem;line-height:1;transition:all .12s;display:flex}.class-view-portal .attachmentErrorDismissBtn:hover{color:var(--color-text);background:#f8717133}.class-view-portal .activityTimeLimitBadge{border-radius:var(--radius-sm,6px);color:#38bdf8;letter-spacing:.01em;background:#38bdf81a;border:1px solid #38bdf840;align-items:center;gap:5px;padding:3px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.class-view-portal .timeLimitModalSection{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);transition:border-color var(--duration-base,.15s) ease;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.class-view-portal .timeLimitModalSection:hover{border-color:#38bdf840}.class-view-portal .timeLimitSectionHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.class-view-portal .timeLimitHeaderLeft{flex:1;align-items:flex-start;gap:10px;display:flex}.class-view-portal .timeLimitHeaderIcon{color:#38bdf8;flex-shrink:0;margin-top:2px}.class-view-portal .timeLimitTitleCol{flex-direction:column;gap:2px;display:flex}.class-view-portal .timeLimitTitleText{color:var(--color-text);font-size:.86rem;font-weight:600}.class-view-portal .timeLimitSubText{color:var(--color-text-muted,#8b949e);font-size:.76rem;line-height:1.35}.class-view-portal .timeLimitToggleSwitch{cursor:pointer;flex-shrink:0;width:38px;height:22px;display:inline-block;position:relative}.class-view-portal .timeLimitToggleSwitch input{opacity:0;width:0;height:0}.class-view-portal .timeLimitToggleSlider{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:22px;transition:all .2s;position:absolute;inset:0}.class-view-portal .timeLimitToggleSlider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;bottom:2px;left:2px}.class-view-portal .timeLimitToggleSwitch input:checked+.timeLimitToggleSlider{background-color:#38bdf8;border-color:#38bdf8}.class-view-portal .timeLimitToggleSwitch input:checked+.timeLimitToggleSlider:before{background-color:var(--color-background);transform:translate(16px)}.class-view-portal .timeLimitConfigBody{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding-top:10px;animation:.15s ease-out fadeIn;display:flex}.class-view-portal .timeLimitInputRow{flex-direction:column;gap:6px;display:flex}.class-view-portal .timeLimitInputGroup{align-items:center;max-width:220px;display:flex;position:relative}.class-view-portal .timeLimitNumericInput{font-variant-numeric:tabular-nums;font-weight:600;padding-right:70px!important}.class-view-portal .timeLimitUnitBadge{color:var(--color-text-muted,#8b949e);pointer-events:none;font-size:.78rem;position:absolute;right:12px}.class-view-portal .timeLimitPresetRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .timeLimitPresetLabel{color:var(--color-text-muted,#8b949e);font-size:.76rem;font-weight:600}.class-view-portal .timeLimitPresetBtn{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:.74rem;font-weight:600;transition:all .12s}.class-view-portal .timeLimitPresetBtn:hover{color:#38bdf8;background:#38bdf826;border-color:#38bdf866}.class-view-portal .timeLimitPresetBtn.active{color:#38bdf8;background:#38bdf833;border-color:#38bdf8}.class-view-portal .sectionTitleGroup{align-items:center;gap:12px;display:flex}.class-view-portal .sectionSubDesc{color:var(--color-text-dim,#656d76);margin:4px 0 0;font-size:.82rem;line-height:1.4}.class-view-portal .classRecordsHeaderActions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.class-view-portal .recordsSummaryMetric{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;min-width:85px;padding:6px 12px;display:flex}.class-view-portal .recordsSummaryMetric .metricLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#8b949e);font-size:.68rem;font-weight:600}.class-view-portal .recordsSummaryMetric .metricVal{font-family:var(--font-mono,monospace);color:var(--color-text);font-size:.95rem;font-weight:700}.class-view-portal .recordsSummaryMetric .metricVal small{color:var(--color-text-dim,#656d76);font-size:.72rem;font-weight:500}.class-view-portal .recordsSearchWrap{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text-muted);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;transition:all .15s;display:flex}.class-view-portal .recordsSearchWrap:focus-within{border-color:var(--color-accent)}.class-view-portal .recordsSearchInput{color:var(--color-text);background:0 0;border:none;outline:none;width:140px;font-size:.82rem}.class-view-portal .recordsSearchClear{color:var(--color-text-muted,#8b949e);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.class-view-portal .recordsSearchClear:hover{color:var(--color-text)}.class-view-portal .exportExcelBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:.8rem;font-weight:600;transition:all .18s;display:inline-flex}.class-view-portal .exportExcelBtn i{color:#10b981;font-size:15px;transition:color .18s}.class-view-portal .exportExcelBtn:hover{background:var(--sidebar-item-hover);border-color:var(--color-border-accent);color:var(--color-text);transform:translateY(-1px);box-shadow:0 1px 4px #0000001a}.class-view-portal .exportExcelBtn:hover i{color:#059669}.class-view-portal .exportExcelBtn:active{transform:translateY(0)}.class-view-portal .classRecordsTableCard{background:var(--color-surface-card);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:12px;margin-top:14px;overflow:hidden}.class-view-portal .classRecordsTableWrapper{max-width:100%;max-height:650px;position:relative;overflow-x:auto}.class-view-portal .classRecordsTableWrapper::-webkit-scrollbar{width:8px;height:8px}.class-view-portal .classRecordsTableWrapper::-webkit-scrollbar-track{background:var(--color-surface-subtle)}.class-view-portal .classRecordsTableWrapper::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}.class-view-portal .classRecordsTableWrapper::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.class-view-portal .classRecordsTable{border-collapse:separate;border-spacing:0;width:100%;color:var(--color-text);font-size:.84rem}.class-view-portal .classRecordsTable thead th{background:var(--color-surface-subtle);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;z-index:10;padding:12px 14px;font-size:.74rem;font-weight:700;position:sticky;top:0}.class-view-portal .classRecordsTable th.stickyColAction,.class-view-portal .classRecordsTable td.stickyColAction{text-align:center;border-right:1px solid var(--color-border-subtle);width:70px;min-width:70px;max-width:70px;position:sticky;left:0}.class-view-portal .classRecordsTable th.stickyColAction{z-index:25;background:var(--color-surface-subtle)}.class-view-portal .classRecordsTable td.stickyColAction{background:var(--color-surface-card)}.class-view-portal .classRecordsTable th.stickyColStudent,.class-view-portal .classRecordsTable td.stickyColStudent{border-right:1px solid var(--color-border-subtle);min-width:220px;max-width:260px;position:sticky;left:70px;box-shadow:4px 0 10px -2px #00000014}.class-view-portal .classRecordsTable th.stickyColStudent{z-index:25;background:var(--color-surface-subtle)}.class-view-portal .classRecordsTable td.stickyColStudent{background:var(--color-surface-card)}.class-view-portal .classRecordsTable th.stickyColTotal,.class-view-portal .classRecordsTable td.stickyColTotal{border-left:1px solid var(--color-border-subtle);text-align:center;min-width:150px;max-width:170px;position:sticky;right:0;box-shadow:-4px 0 12px -2px #00000014}.class-view-portal .classRecordsTable th.stickyColTotal{z-index:25;background:var(--color-surface-subtle)}.class-view-portal .classRecordsTable td.stickyColTotal{background:var(--color-surface-card)}.class-view-portal .actHeaderCol{text-align:center;border-right:1px solid var(--color-border-subtle);min-width:120px;max-width:160px}.class-view-portal .actHeaderContent{flex-direction:column;align-items:center;gap:3px;display:flex}.class-view-portal .actHeaderTitle{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:.76rem;font-weight:600;overflow:hidden}.class-view-portal .actHeaderPts{font-size:.68rem;font-family:var(--font-mono,monospace);color:var(--color-accent);background:var(--color-accent-dim);border-radius:4px;padding:1px 6px}.class-view-portal .recordStudentRow{transition:background .12s}.class-view-portal .recordStudentRow td{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-card);padding:12px 14px}.class-view-portal .recordStudentRow:hover td,.class-view-portal .recordStudentRow:hover td.stickyColAction,.class-view-portal .recordStudentRow:hover td.stickyColStudent,.class-view-portal .recordStudentRow:hover td.stickyColTotal{background:var(--color-surface-hover)}.class-view-portal .removeStudentRowBtn{color:#f87171;cursor:pointer;background:#ef444414;border:1px solid #ef444433;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:inline-flex}.class-view-portal .removeStudentRowBtn:hover{color:var(--color-text);background:#ef444440;border-color:#ef4444;transform:scale(1.06)}.class-view-portal .recordStudentIdentity{align-items:center;gap:10px;display:flex}.class-view-portal .recordStudentAvatar{background:linear-gradient(135deg, #38bdf840, var(--color-accent-dim));border:1px solid var(--color-border-hover);width:32px;height:32px;color:var(--color-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.74rem;font-weight:700;display:flex;overflow:hidden}.class-view-portal .recordStudentAvatar svg,.class-view-portal .recordStudentAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .recordStudentMeta{flex-direction:column;gap:1px;display:flex;overflow:hidden}.class-view-portal .recordStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.class-view-portal .recordStudentSub{color:var(--color-text-dim,#8b949e);font-size:.72rem;font-family:var(--font-mono,monospace);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.class-view-portal .recordTotalScoreBox{flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0 4px;display:flex}.class-view-portal .recordTotalScoreNums{justify-content:center;align-items:baseline;gap:3px;display:flex}.class-view-portal .recordTotalScoreNums .earnedPts{color:var(--color-accent);font-size:.98rem;font-weight:700;font-family:var(--font-mono,monospace)}.class-view-portal .recordTotalScoreNums .maxPts{color:var(--color-text-dim,#8b949e);font-size:.74rem;font-family:var(--font-mono,monospace)}.class-view-portal .recordTotalProgressBar{background:var(--color-surface-hover);border-radius:3px;width:90px;height:5px;overflow:hidden}.class-view-portal .recordTotalProgressFill{background:linear-gradient(90deg, #38bdf8, var(--color-accent));border-radius:3px;height:100%;transition:width .3s}.class-view-portal .recordTotalPct{color:var(--color-text-muted);font-size:.72rem;font-weight:600;font-family:var(--font-mono,monospace)}.class-view-portal .recordActCell{text-align:center;border-right:1px solid var(--color-border-subtle)}.class-view-portal .recordScorePill{font-size:.78rem;font-weight:700;font-family:var(--font-mono,monospace);border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:48px;padding:4px 9px;transition:all .12s;display:inline-flex}.class-view-portal .recordScorePill.scorePassed{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.class-view-portal .recordScorePill.scorePartial{color:#fbbf24;background:#fbbf241f;border:1px solid #fbbf244d}.class-view-portal .recordScorePill.scoreFailed{color:#f87171;background:#ef44441f;border:1px solid #ef44444d}.class-view-portal .missingScoreTag{color:var(--color-text-dim,#484f58);-webkit-user-select:none;user-select:none;font-size:.9rem;font-weight:600}.class-view-portal .removeStudentModalCard{background:var(--color-surface);border:1px solid #ef44444d;border-radius:12px;max-width:460px;padding:24px;animation:.2s cubic-bezier(.16,1,.3,1) modalPopIn;box-shadow:0 20px 40px #00000080,0 0 20px #ef444426}.class-view-portal .removeStudentModalHeader{align-items:center;gap:14px;margin-bottom:16px;display:flex}.class-view-portal .removeStudentIconWrap{color:#ef4444;background:#ef444426;border:1px solid #ef44444d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.class-view-portal .removeStudentModalTitle{color:var(--color-text);margin:0 0 2px;font-size:1.15rem;font-weight:700}.class-view-portal .removeStudentModalSub{text-transform:uppercase;letter-spacing:.04em;color:#ef4444;margin:0;font-size:.76rem;font-weight:600}.class-view-portal .removeStudentWarningNotice{color:#fca5a5;background:#ef444414;border:1px solid #ef444440;border-left:3px solid #ef4444;border-radius:6px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:10px 12px;font-size:.82rem;line-height:1.45;display:flex}.class-view-portal .removeStudentWarningNotice i{color:#ef4444;flex-shrink:0;margin-top:1px;font-size:16px}.class-view-portal .removeStudentModalFooter{justify-content:flex-end;gap:10px;display:flex}.class-view-portal .confirmRemoveBtn{cursor:pointer;align-items:center;gap:8px;font-weight:600;transition:all .15s;display:inline-flex;color:#fff!important;background:#ef4444!important;border:none!important}.class-view-portal .confirmRemoveBtn:hover:not(:disabled){box-shadow:0 0 14px #ef444466;background:#dc2626!important}.class-view-portal .classRecordsFilterToolbar{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.class-view-portal .recordsFilterGroup{flex-direction:column;flex:240px;gap:6px;min-width:220px;display:flex;position:relative}.class-view-portal .recordsFilterLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);align-items:center;gap:6px;font-size:.76rem;font-weight:700;display:flex}.class-view-portal .recordsFilterLabel i{color:var(--color-accent);font-size:14px}.class-view-portal .recordsFilterCombo{width:100%;position:relative}.class-view-portal .comboInputWrapper{background:var(--color-surface);border:1.5px solid var(--color-border);box-sizing:border-box;border-radius:8px;align-items:center;height:36px;padding:2px 6px 2px 10px;transition:all .15s;display:flex}.class-view-portal .comboInputWrapper:focus-within,.class-view-portal .recordsFilterCombo.open .comboInputWrapper{border-color:var(--color-accent);box-shadow:var(--shadow-card);background:var(--color-surface)}.class-view-portal .comboSearchIcon{color:var(--color-text-dim);flex-shrink:0;margin-right:8px;font-size:15px}.class-view-portal .comboInput{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-width:60px;font-family:inherit;font-size:.85rem}.class-view-portal .comboInput::placeholder{color:var(--color-text-dim);font-size:.82rem}.class-view-portal .comboClearBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-right:2px;padding:4px;font-size:13px;transition:all .12s;display:flex}.class-view-portal .comboClearBtn:hover{color:#f87171;background:#ef44441f}.class-view-portal .comboDropdownToggleBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;font-size:14px;transition:all .15s;display:flex}.class-view-portal .comboDropdownToggleBtn:hover{color:var(--color-accent);background:var(--color-accent-dim)}.class-view-portal .comboDropdownToggleBtn.open i{transform:rotate(180deg)}.class-view-portal .comboDropdownMenu{background:var(--color-surface);border:1px solid var(--color-border-hover);box-shadow:var(--shadow-card);z-index:120;border-radius:10px;flex-direction:column;gap:2px;max-height:250px;padding:6px;animation:.15s ease-out comboPop;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.class-view-portal .comboDropdownItem{cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:all .12s;display:flex}.class-view-portal .comboDropdownItem:hover{background:var(--color-surface-hover)}.class-view-portal .comboDropdownItem.active{background:var(--color-accent-dim);border:1px solid var(--color-accent-border)}.class-view-portal .comboDropdownItem.active .comboItemTitle{color:var(--color-accent);font-weight:700}.class-view-portal .comboItemAvatar{background:var(--color-surface-elevated);width:28px;height:28px;color:var(--color-accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex;overflow:hidden}.class-view-portal .comboItemAvatar svg,.class-view-portal .comboItemAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .comboItemAvatar.all{background:var(--color-accent-dim);color:var(--color-accent);letter-spacing:.04em;font-size:.68rem;font-weight:800}.class-view-portal .comboItemBadge{background:var(--color-accent-dim);width:28px;height:28px;color:var(--color-accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.class-view-portal .comboItemMeta{text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.class-view-portal .comboItemTitle{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.class-view-portal .comboItemSub{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.class-view-portal .recordsResetFilterWrap{flex-shrink:0;align-items:center;height:38px;display:flex}.class-view-portal .recordsResetFiltersBtn{color:#fca5a5;cursor:pointer;background:#ef44441a;border:1px solid #ef444440;border-radius:8px;align-items:center;gap:6px;height:38px;padding:0 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .recordsResetFiltersBtn:hover{color:var(--color-text);background:#ef444433;border-color:#ef4444}.class-view-portal .actHeaderCol.emptyActCol{background:var(--color-surface-card);min-width:240px}.class-view-portal .examModeModalSection{border-radius:var(--radius-lg,12px);background:#ef44440a;border:1px solid #ef444433;margin-top:6px;padding:16px;transition:all .2s}.class-view-portal .examModeModalSection.active{background:linear-gradient(135deg,#ef444414 0%,#14171de6 100%);border-color:#ef444473;box-shadow:0 0 20px #ef444414}.class-view-portal .examModeSectionHeader{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.class-view-portal .examModeHeaderLeft{align-items:flex-start;gap:12px;display:flex}.class-view-portal .examModeHeaderIcon{color:#f87171;flex-shrink:0;margin-top:2px}.class-view-portal .examModeTitleCol{flex-direction:column;gap:4px;display:flex}.class-view-portal .examModeTitleRow{align-items:center;gap:8px;display:flex}.class-view-portal .examModeTitleText{color:#f87171;font-size:.92rem;font-weight:700}.class-view-portal .examModeTagBadge{text-transform:uppercase;color:#fca5a5;letter-spacing:.04em;background:#ef444426;border:1px solid #ef444459;border-radius:9999px;padding:1px 7px;font-size:.65rem;font-weight:700}.class-view-portal .examModeSubText{color:var(--color-text-muted,#94a3b8);max-width:580px;font-size:.76rem;line-height:1.45}.class-view-portal .examModeToggleSwitch{cursor:pointer;flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.class-view-portal .examModeToggleSwitch input{opacity:0;width:0;height:0}.class-view-portal .examModeToggleSlider{cursor:pointer;background-color:var(--color-surface-elevated);border:1px solid var(--color-border-hover);border-radius:24px;transition:all .25s;position:absolute;inset:0}.class-view-portal .examModeToggleSlider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .25s;position:absolute;bottom:2px;left:2px}.class-view-portal .examModeToggleSwitch input:checked+.examModeToggleSlider{background-color:#ef4444;border-color:#f87171}.class-view-portal .examModeToggleSwitch input:checked+.examModeToggleSlider:before{transform:translate(20px)}.class-view-portal .examModeConfigBody{border-top:1px solid #ef444426;flex-direction:column;gap:12px;margin-top:14px;padding-top:14px;display:flex}.class-view-portal .examModeSettingRow{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.class-view-portal .examModeSettingLabel{align-items:flex-start;gap:10px;display:flex}.class-view-portal .examModeSettingLabel i{color:#fbbf24;margin-top:2px;font-size:16px}.class-view-portal .examModeSettingLabel strong{color:var(--color-text);font-size:.82rem;display:block}.class-view-portal .examModeSettingLabel p{color:var(--color-text-muted,#94a3b8);margin:2px 0 0;font-size:.74rem;line-height:1.35}.class-view-portal .examModeMiniSwitch{cursor:pointer;flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.class-view-portal .examModeMiniSwitch input{opacity:0;width:0;height:0}.class-view-portal .examModeMiniSlider{cursor:pointer;background-color:var(--color-surface-elevated);border:1px solid var(--color-border-hover);border-radius:20px;transition:all .2s;position:absolute;inset:0}.class-view-portal .examModeMiniSlider:before{content:"";background-color:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:2px;left:2px}.class-view-portal .examModeMiniSwitch input:checked+.examModeMiniSlider{background-color:var(--color-accent);border-color:var(--color-accent)}.class-view-portal .examModeMiniSwitch input:checked+.examModeMiniSlider:before{transform:translate(16px)}.class-view-portal .examModeNotice{color:#93c5fd;background:#3b82f614;border:1px solid #3b82f640;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:.74rem;line-height:1.4;display:flex}.class-view-portal .examTimeAlertBanner{color:#fca5a5;background:#ef44441f;border:1px solid #ef444466;border-radius:6px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;font-size:.76rem;font-weight:600;display:flex}.class-view-portal .timeLimitModalSection.examRequired{border-color:#ef444459}.class-view-portal .activityExamBadge{color:#f87171;letter-spacing:.04em;background:#ef444426;border:1px solid #ef444466;border-radius:9999px;align-items:center;gap:5px;margin-right:6px;padding:3px 9px;font-size:.68rem;font-weight:800;display:inline-flex}.class-view-portal .leaderboardBtn{background:var(--color-warning-bg);color:var(--color-warning);cursor:pointer;border:1px solid #d9770640;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .leaderboardBtn:hover{background:var(--color-warning-bg);border-color:var(--color-warning);transform:translateY(-1px)}.class-view-portal .leaderboardModalCard{background:var(--color-surface);border:1px solid var(--color-border-hover);border-radius:16px;width:90%;max-width:820px;padding:0;overflow:hidden;box-shadow:0 25px 50px -12px #0009,0 0 30px #f59e0b1a}.class-view-portal .leaderboardModalHeader{background:linear-gradient(180deg, var(--color-surface-hover) 0%, transparent 100%);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.class-view-portal .leaderboardHeaderLeft{align-items:center;gap:14px;display:flex}.class-view-portal .leaderboardTrophyIcon{background:#f59e0b26;border:1px solid #f59e0b59;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.class-view-portal .leaderboardTitleRow{align-items:center;gap:10px;display:flex}.class-view-portal .leaderboardModalTitle{color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.class-view-portal .leaderboardExamBadge{color:#f87171;letter-spacing:.04em;background:#ef44442e;border:1px solid #ef444466;border-radius:9999px;padding:2px 7px;font-size:.65rem;font-weight:800}.class-view-portal .leaderboardModalSub{color:var(--color-text-muted,#94a3b8);margin:2px 0 0;font-size:.78rem}.class-view-portal .leaderboardHeaderRight{align-items:center;gap:12px;display:flex}.class-view-portal .leaderboardHeaderRight .modalCloseBtn{flex-shrink:0;position:static;top:auto;right:auto}.class-view-portal .leaderboardRefreshBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .leaderboardRefreshBtn:hover:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent)}.class-view-portal .leaderboardControlsBar{background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 24px;font-size:.78rem;display:flex}.class-view-portal .leaderboardScoresVisibility{align-items:center;gap:10px;display:flex}.class-view-portal .scoresVisibilityLabel{color:var(--color-text-muted);font-size:.76rem}.class-view-portal .leaderboardParticipantCount{color:var(--color-text-muted,#94a3b8);font-weight:600}.class-view-portal .leaderboardModalBody{max-height:60vh;padding:20px 24px;overflow-y:auto}.class-view-portal .leaderboardLoadingState,.class-view-portal .leaderboardEmptyState{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 16px;display:flex}.class-view-portal .leaderboardEmptyState h4{color:var(--color-text);margin:6px 0 0;font-size:.96rem;font-weight:700}.class-view-portal .leaderboardEmptyState p{color:var(--color-text-muted,#94a3b8);max-width:320px;margin:0;font-size:.78rem;line-height:1.4}.class-view-portal .leaderboardTableWrapper{overflow-x:auto}.class-view-portal .leaderboardTable{border-collapse:collapse;width:100%;font-size:.82rem}.class-view-portal .leaderboardTable th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#94a3b8);border-bottom:1px solid var(--color-border);text-align:left;padding:10px 14px;font-size:.72rem;font-weight:700}.class-view-portal .leaderboardTable td{border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;padding:12px 14px}.class-view-portal .leaderboardRow:hover{background:var(--color-surface-subtle)}.class-view-portal .rankBadge{font-variant-numeric:tabular-nums;box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 6px;font-size:.85rem;font-weight:800;display:inline-flex}.class-view-portal .rankBadge.rankGold{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b66}.class-view-portal .rankBadge.rankSilver{color:#e5e7eb;background:#9ca3af33;border:1px solid #9ca3af66}.class-view-portal .rankBadge.rankBronze{color:#f59e0b;background:#d9770633;border:1px solid #d9770666}.class-view-portal .rankBadge.rankNormal{color:var(--color-text-muted,#94a3b8)}[data-theme=light] .class-view-portal .rankBadge.rankGold{color:#b45309;background:#f59e0b26;border:1px solid #f59e0b59}[data-theme=light] .class-view-portal .rankBadge.rankSilver{color:#374151;background:#6b72801f;border:1px solid #6b72804d}[data-theme=light] .class-view-portal .rankBadge.rankBronze{color:#9a3412;background:#d9770626;border:1px solid #d9770659}.class-view-portal .leaderboardStudentCell{align-items:center;gap:10px;display:flex}.class-view-portal .leaderboardAvatar{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:32px;height:32px;color:var(--color-accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.74rem;font-weight:800;display:flex;overflow:hidden}.class-view-portal .leaderboardAvatar svg,.class-view-portal .leaderboardAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .leaderboardStudentMeta{flex-direction:column;display:flex}.class-view-portal .leaderboardStudentName{color:var(--color-text);font-size:.84rem;font-weight:600}.class-view-portal .leaderboardStudentEmail{color:var(--color-text-muted,#94a3b8);font-size:.72rem}.class-view-portal .leaderboardTimeCell{color:var(--color-text);align-items:center;gap:6px;font-size:.78rem;display:flex}.class-view-portal .leaderboardMilestonesList{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.class-view-portal .leaderboardMilestoneChip{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770640;border-radius:6px;align-items:center;gap:4px;padding:2px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.class-view-portal .noMilestonesHint{color:var(--color-text-muted,#64748b);font-size:.8rem}.class-view-portal .rankNumberText{color:var(--color-text,#111827);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700;line-height:1;display:inline-block}[data-theme=light] .class-view-portal .rankNumberText{color:#111827}.class-view-portal .leaderboardScorePill{white-space:nowrap;color:var(--color-accent);justify-content:flex-end;align-items:baseline;gap:4px;font-size:.92rem;font-weight:700;display:inline-flex}.class-view-portal .leaderboardScorePill strong{font-size:.95rem;font-weight:800}.class-view-portal .leaderboardScorePill span{color:var(--color-text-muted,#94a3b8);white-space:nowrap;font-size:.76rem;font-weight:500}.class-view-portal .leaderboardHiddenScoreTag{color:var(--color-text-muted,#64748b);font-size:.74rem;font-style:italic}.class-view-portal .recordActCell.cellClickable{cursor:pointer;transition:background .15s;position:relative}.class-view-portal .recordStudentRow:hover td.recordActCell.cellClickable:hover{background:var(--color-surface-elevated)!important}.class-view-portal .cellPencilIcon{opacity:0;margin-left:2px;font-size:10px;transition:opacity .15s,transform .15s}.class-view-portal .recordActCell.cellClickable:hover .cellPencilIcon{opacity:.9;transform:scale(1.1)}.class-view-portal .recordScorePill.scorePendingGrade{background:var(--color-warning-bg);color:var(--color-warning);border:1px dashed #d9770673}.class-view-portal .emptyScoreActionWrap{justify-content:center;align-items:center;display:flex;position:relative}.class-view-portal .cellAddGradeHint{color:var(--color-info);background:var(--color-info-bg);border:1px dashed #0284c759;border-radius:4px;align-items:center;gap:3px;padding:2px 7px;font-size:.7rem;font-weight:600;display:none}.class-view-portal .cellMissing.cellClickable:hover .missingScoreTag{display:none}.class-view-portal .cellMissing.cellClickable:hover .cellAddGradeHint{display:inline-flex}.class-view-portal .activityManualGradingBadge{border-radius:var(--radius-pill,9999px);background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770640;align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .activityAutomatedGradingBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .gradeClassModalCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg,12px);box-sizing:border-box;width:100%;max-width:460px;padding:24px;position:relative;box-shadow:0 24px 60px #000000b3,inset 0 1px #ffffff14}.class-view-portal .gradeModalHeader{align-items:flex-start;gap:14px;margin-bottom:20px;padding-right:28px;display:flex}.class-view-portal .gradeModalIconBadge{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:40px;height:40px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.class-view-portal .gradeModalHeaderContent{flex-direction:column;gap:6px;min-width:0;display:flex}.class-view-portal .gradeModalTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.2rem;font-weight:700;line-height:1.25}.class-view-portal .gradeModalContextBadges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.class-view-portal .gradeModalContextPill{border-radius:var(--radius-sm,6px);background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;max-width:340px;padding:3px 8px;font-size:.76rem;display:inline-flex;overflow:hidden}.class-view-portal .gradeModalContextPill.student{color:var(--color-text);font-weight:600}.class-view-portal .gradeModalContextPill.activity{color:var(--color-text-muted)}.class-view-portal .gradeModalForm{flex-direction:column;gap:18px;display:flex}.class-view-portal .gradeModalSubMetaCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 14px;display:grid}.class-view-portal .gradeModalSubMetaCard .subMetaItem{flex-direction:column;gap:4px;display:flex}.class-view-portal .gradeModalSubMetaCard .subMetaLabel{color:var(--color-text-muted,#8b949e);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:700}.class-view-portal .gradeModalSubMetaCard .subMetaVal{color:var(--color-text);font-size:.82rem;font-family:var(--font-mono,monospace);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.class-view-portal .gradeModalUnsubmittedCard{background:var(--color-surface-card);border:1px dashed var(--color-border-hover);border-radius:var(--radius-md,8px);align-items:center;gap:10px;padding:10px 14px;display:flex}.class-view-portal .unsubmittedInfoIcon{color:var(--color-accent);flex-shrink:0}.class-view-portal .unsubmittedTitle{color:var(--color-text);font-size:.82rem;font-weight:600}.class-view-portal .gradeScoreSection{flex-direction:column;gap:8px;display:flex}.class-view-portal .gradeScoreHeaderRow{justify-content:space-between;align-items:center;display:flex}.class-view-portal .gradeScoreLabel{color:var(--color-text);font-size:.82rem;font-weight:600}.class-view-portal .gradeMaxPointsTag{font-size:.74rem;font-family:var(--font-mono,monospace);color:var(--color-text-muted);background:var(--color-surface-hover);border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);padding:2px 8px}.class-view-portal .gradeScoreInputWrapper{background:var(--color-surface-card);border:1px solid var(--color-border-hover);border-radius:var(--radius-md,8px);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;align-items:center;padding:4px 14px;display:flex}.class-view-portal .gradeScoreInputWrapper:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.class-view-portal .gradeNumericInput{font-size:1.8rem;font-weight:700;font-family:var(--font-mono,monospace);flex:1;width:100%;padding:6px 0;box-shadow:none!important;color:var(--color-text)!important;background:0 0!important;border:none!important;outline:none!important}.class-view-portal .gradeNumericInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .gradeNumericInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .gradeNumericInput[type=number]{-moz-appearance:textfield}.class-view-portal .gradeScoreSuffix{font-size:.82rem;font-weight:700;font-family:var(--font-mono,monospace);color:var(--color-text-muted);letter-spacing:.05em;-webkit-user-select:none;user-select:none}.class-view-portal .gradeQuickPresets{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.class-view-portal .gradePresetBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-card);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.78rem;font-weight:600;font-family:var(--font-mono,monospace);cursor:pointer;transition:all var(--duration-fast,70ms) ease;text-align:center;padding:7px 12px}.class-view-portal .gradePresetBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.class-view-portal .gradePresetBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.class-view-portal .gradeStatusRow{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.class-view-portal .gradeStatusLabel{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.class-view-portal .gradeStatusResultPill{border-radius:var(--radius-pill,9999px);letter-spacing:.02em;align-items:center;gap:5px;padding:3px 9px;font-size:.74rem;font-weight:700;display:inline-flex}.class-view-portal .gradeStatusResultPill.graded{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.class-view-portal .gradeStatusResultPill.failed{color:#f87171;background:#ef44441f;border:1px solid #ef444459}.class-view-portal .gradeModalActions{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:10px;margin-top:4px;padding-top:16px;display:flex}.class-view-portal .gradeActionBtn{border-radius:var(--radius-md,8px);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:.84rem;font-weight:600;display:inline-flex}.class-view-portal .gradeActionBtn.cancel{border:1px solid var(--color-border-hover);color:var(--color-text-muted);background:0 0}.class-view-portal .gradeActionBtn.cancel:hover{border-color:var(--color-border-hover);color:var(--color-text)}.class-view-portal .gradeActionBtn.save{background:var(--color-accent);border:1px solid var(--color-accent);color:var(--color-on-accent);font-weight:700}.class-view-portal .gradeActionBtn.save:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.class-view-portal .gradeActionBtn:disabled{opacity:.5;cursor:not-allowed}.class-view-portal .gradeSavingSpinner{border:2px solid #0e13184d;border-top-color:var(--color-on-accent);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite gradeSpin}.class-view-portal .activityScheduledBadge{letter-spacing:.02em;border-radius:9999px;align-items:center;gap:5px;margin-right:6px;padding:3px 9px;font-size:.72rem;font-weight:700;transition:all .2s;display:inline-flex}.class-view-portal .activityScheduledBadge.pending{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b66;box-shadow:0 0 10px #f59e0b1f}.class-view-portal .activityScheduledBadge.released{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.class-view-portal .scheduledReleaseModalSection{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);transition:border-color var(--duration-base,.15s) ease, background var(--duration-base,.15s) ease;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.class-view-portal .scheduledReleaseModalSection:hover{border-color:#fbbf2440}.class-view-portal .scheduledReleaseModalSection.active{background:#fbbf2408;border-color:#fbbf2459}.class-view-portal .scheduledReleaseHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.class-view-portal .scheduledReleaseHeaderLeft{flex:1;align-items:flex-start;gap:10px;display:flex}.class-view-portal .scheduledReleaseHeaderIcon{color:#fbbf24;flex-shrink:0;margin-top:2px}.class-view-portal .scheduledReleaseTitleCol{flex-direction:column;gap:2px;display:flex}.class-view-portal .scheduledReleaseTitleRow{align-items:center;gap:8px;display:flex}.class-view-portal .scheduledReleaseTitleText{color:var(--color-text);font-size:.86rem;font-weight:600}.class-view-portal .scheduledReleaseTagBadge{text-transform:uppercase;letter-spacing:.04em;color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf2459;border-radius:9999px;padding:1px 7px;font-size:.65rem;font-weight:700}.class-view-portal .scheduledReleaseSubText{color:var(--color-text-muted,#8b949e);font-size:.76rem;line-height:1.35}.class-view-portal .scheduledToggleSwitch{cursor:pointer;flex-shrink:0;width:38px;height:22px;display:inline-block;position:relative}.class-view-portal .scheduledToggleSwitch input{opacity:0;width:0;height:0}.class-view-portal .scheduledToggleSlider{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:22px;transition:all .2s;position:absolute;inset:0}.class-view-portal .scheduledToggleSlider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;bottom:2px;left:2px}.class-view-portal .scheduledToggleSwitch input:checked+.scheduledToggleSlider{background-color:#fbbf24;border-color:#fbbf24}.class-view-portal .scheduledToggleSwitch input:checked+.scheduledToggleSlider:before{background-color:var(--color-background);transform:translate(16px)}.class-view-portal .scheduledReleaseConfigBody{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding-top:12px;animation:.15s ease-out fadeIn;display:flex}.class-view-portal .scheduledReleaseInputsRow{gap:12px;width:100%;display:flex}.class-view-portal .scheduledReleaseInputsRow .scheduledDateCol{flex-direction:column;flex:1.3;display:flex}.class-view-portal .scheduledReleaseInputsRow .scheduledTimeCol{flex-direction:column;flex:1;display:flex}.class-view-portal .scheduledInputLabel{color:var(--color-text);padding:0;font-size:.8rem;font-weight:600;line-height:1.2;display:block;margin:0 0 6px!important}.class-view-portal .scheduledReleaseAlert{border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:.76rem;line-height:1.4;display:flex}.class-view-portal .scheduledReleaseAlert.info{color:#93c5fd;background:#3b82f614;border:1px solid #3b82f638}.class-view-portal .scheduledReleaseAlert.info strong{color:var(--color-text)}.class-view-portal .scheduledReleaseAlert.error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444466;font-weight:600}@media (width<=640px){.class-view-portal .scheduledReleaseInputsRow{flex-direction:column;gap:12px}}.class-view-portal .modalWideSplit{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border);box-sizing:border-box;flex-direction:column;width:95vw;max-width:980px;height:860px;max-height:90vh;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 28px 64px #000000bf,inset 0 1px #ffffff1a}.class-view-portal .modalSplitHeader{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.class-view-portal .modalSplitHeaderLeft{flex-direction:column;gap:3px;display:flex}.class-view-portal .modalSplitHeaderTitleRow{align-items:center;gap:10px;display:flex}.class-view-portal .modalSplitTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.class-view-portal .modalSplitCourseBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.02em;padding:2px 10px;font-size:.72rem;font-weight:600}.class-view-portal .modalSplitSubtitle{color:var(--color-text-muted);margin:0;font-size:.78rem;line-height:1.4}.class-view-portal .modalSplitCloseBtn{color:var(--color-text-muted);border-radius:var(--radius-sm,6px);cursor:pointer;width:32px;height:32px;transition:all var(--duration-fast,70ms) ease-in-out;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.class-view-portal .modalSplitCloseBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .modalSplitForm{flex-direction:column;flex:1;height:100%;min-height:0;margin:0;display:flex}.class-view-portal .modalSplitBody{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;flex:1;padding:20px 24px;overflow-y:auto}.class-view-portal .modalSplitBody::-webkit-scrollbar{width:6px}.class-view-portal .modalSplitBody::-webkit-scrollbar-track{background:0 0}.class-view-portal .modalSplitBody::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:4px}.class-view-portal .modalSplitBody::-webkit-scrollbar-thumb:hover{background:var(--color-surface-elevated)}.class-view-portal .modalGridSplit{grid-template-columns:1fr 1.18fr;align-items:start;gap:20px;display:grid}.class-view-portal .modalColLeft,.class-view-portal .modalColRight{flex-direction:column;gap:18px;min-width:0;display:flex}.class-view-portal .modalSurfaceCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,10px);overflow:hidden;box-shadow:inset 0 1px .5px #ffffff0d,0 2px 4px #00000040}.class-view-portal .surfaceCardHeader{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);padding:12px 16px}.class-view-portal .surfaceCardTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);font-size:.78rem;font-weight:700}.class-view-portal .surfaceCardBody{flex-direction:column;gap:14px;padding:16px;display:flex}.class-view-portal .formGroup{flex-direction:column;min-width:0;display:flex}.class-view-portal .modalFieldLabel{color:var(--color-text-muted);align-items:center;gap:4px;margin-bottom:6px;font-size:.78rem;font-weight:600;display:flex}.class-view-portal .fieldRequired{color:var(--color-accent);font-weight:700}.class-view-portal .fieldLabelHint{color:var(--color-text-muted);margin-left:4px;font-weight:400}.class-view-portal .modalInputReadonly{opacity:.72;cursor:not-allowed;background:var(--color-surface-elevated)!important}.class-view-portal .formRowTargetPoints{grid-template-columns:1.4fr 1fr;gap:12px;display:grid}.class-view-portal input[type=date],.class-view-portal input[type=time],.modalCard input[type=date],.modalCard input[type=time]{color-scheme:var(--color-scheme,dark)!important}.class-view-portal input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalCard input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalDateInput::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.class-view-portal input[type=date]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalCard input[type=date]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalDateInput::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}.class-view-portal input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalCard input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.modalTimeInput::-webkit-calendar-picker-indicator{cursor:pointer!important;opacity:.9!important;width:18px!important;height:18px!important;filter:var(--calendar-filter,none)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:15px 15px!important;transition:opacity .15s,transform .15s!important}.class-view-portal input[type=time]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalCard input[type=time]::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.modalTimeInput::-webkit-calendar-picker-indicator:hover{transform:scale(1.08);opacity:1!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23a7f175' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .class-view-portal input[type=date]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalCard input[type=date]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalDateInput::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V16a8,8,0,0,0-16,0V32H88V16a8,8,0,0,0-16,0V32H48A24,24,0,0,0,24,56V208a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V56A24,24,0,0,0,208,32ZM40,56a8,8,0,0,1,8-8H72V64a8,8,0,0,0,16,0V48h80V64a8,8,0,0,0,16,0V48h24a8,8,0,0,1,8,8V80H40ZM216,208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96H216Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .class-view-portal input[type=time]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalCard input[type=time]::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}[data-theme=light] .modalTimeInput::-webkit-calendar-picker-indicator:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%231e6b30' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z'%3E%3C/path%3E%3C/svg%3E")!important}.class-view-portal .modalTextareaPrompt{resize:vertical;min-height:85px;line-height:1.5;font-family:var(--font-sans,"GitLab Sans", sans-serif)}.class-view-portal .switchFeatureBlock{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);transition:all var(--duration-base,.15s) ease-in-out;padding:12px 14px}.class-view-portal .switchFeatureBlock:hover{border-color:var(--color-border-hover)}.class-view-portal .switchFeatureBlock.active{background:var(--color-accent-dim);border-color:var(--color-accent-border)}.class-view-portal .switchFeatureHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.class-view-portal .switchFeatureHeaderLeft{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.class-view-portal .switchFeatureIconBadge{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);width:28px;height:28px;color:var(--color-text-muted);transition:all var(--duration-base,.15s) ease-in-out;flex-shrink:0;justify-content:center;align-items:center;display:flex}.class-view-portal .switchFeatureBlock.active .switchFeatureIconBadge{background:var(--color-accent-dim);color:var(--color-accent)}.class-view-portal .switchFeatureTextCol{flex-direction:column;gap:2px;min-width:0;display:flex}.class-view-portal .switchFeatureTitleRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .switchFeatureTitle{color:var(--color-text);font-size:.82rem;font-weight:600}.class-view-portal .switchFeatureDescription{color:var(--color-text-muted);font-size:.74rem;line-height:1.35}.class-view-portal .statusPill{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-pill,9999px);padding:1px 7px;font-size:.65rem;font-weight:700}.class-view-portal .statusPill--lime{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.class-view-portal .statusPill--required{color:#f87171;background:#f8717126;border:1px solid #f8717159;align-items:center;margin-left:6px;display:inline-flex}.class-view-portal .affinityToggleSwitch{cursor:pointer;flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.class-view-portal .affinityToggleSwitch input{opacity:0;width:0;height:0}.class-view-portal .affinityToggleSlider{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);transition:all var(--duration-base,.15s) ease-in-out;border-radius:20px;position:absolute;inset:0}.class-view-portal .affinityToggleSlider:before{content:"";width:14px;height:14px;transition:transform var(--duration-base,.15s) ease-in-out;background-color:#fff;border-radius:50%;position:absolute;bottom:2px;left:2px}.class-view-portal .affinityToggleSwitch input:checked+.affinityToggleSlider{background-color:var(--color-accent);border-color:var(--color-accent)}.class-view-portal .affinityToggleSwitch input:checked+.affinityToggleSlider:before{background-color:#0e1318;transform:translate(16px)}.class-view-portal .affinityToggleSwitch input:disabled+.affinityToggleSlider{opacity:.6;cursor:not-allowed}.class-view-portal .switchFeatureExpandable{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;animation:.15s ease-out modalFadeIn;display:flex}.class-view-portal .featureAlertBanner{border-radius:var(--radius-sm,6px);align-items:center;gap:8px;padding:8px 12px;font-size:.74rem;line-height:1.4;display:flex}.class-view-portal .featureAlertBanner.info{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:#c7f8a3}[data-theme=light] .class-view-portal .featureAlertBanner.info{color:#14532d;background:#ecfdf5;border-color:#a7f3d0;font-weight:600}.class-view-portal .featureAlertBanner.error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444459;font-weight:600}[data-theme=light] .class-view-portal .featureAlertBanner.error{color:#991b1b;background:#fef2f2;border-color:#fecaca;font-weight:600}.class-view-portal .subOptionRow{background:var(--color-surface-subtle);border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.class-view-portal .subOptionLabel{align-items:center;gap:8px;display:flex}.class-view-portal .subOptionIcon{color:#fbbf24;flex-shrink:0}.class-view-portal .subOptionTitle{color:var(--color-text);font-size:.78rem;font-weight:600;display:block}.class-view-portal .subOptionDesc{color:var(--color-text-muted);margin:1px 0 0;font-size:.72rem;line-height:1.3}.class-view-portal .affinityMiniSwitch{cursor:pointer;flex-shrink:0;width:32px;height:18px;display:inline-block;position:relative}.class-view-portal .affinityMiniSwitch input{opacity:0;width:0;height:0}.class-view-portal .affinityMiniSlider{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);transition:all var(--duration-base,.15s) ease-in-out;border-radius:18px;position:absolute;inset:0}.class-view-portal .affinityMiniSlider:before{content:"";width:12px;height:12px;transition:transform var(--duration-base,.15s) ease-in-out;background-color:#fff;border-radius:50%;position:absolute;bottom:2px;left:2px}.class-view-portal .affinityMiniSwitch input:checked+.affinityMiniSlider{background-color:var(--color-accent);border-color:var(--color-accent)}.class-view-portal .affinityMiniSwitch input:checked+.affinityMiniSlider:before{background-color:#0e1318;transform:translate(14px)}.class-view-portal .timeLimitHeaderRow{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.class-view-portal .timeLimitUnitToggle{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm,6px);gap:2px;padding:2px;display:inline-flex}.class-view-portal .timeLimitUnitBtn{color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 10px;font-size:.72rem;font-weight:600}.class-view-portal .timeLimitUnitBtn:hover{color:var(--color-text);background:var(--color-surface-hover)}.class-view-portal .timeLimitUnitBtn.active{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-accent);font-weight:700}.class-view-portal .timeLimitInputBlock{flex-direction:column;display:flex}.class-view-portal .timeLimitInputGroup{align-items:center;display:flex;position:relative}.class-view-portal .timeLimitInputGroup input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .timeLimitInputGroup input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .timeLimitInputGroup input[type=number]{appearance:textfield;padding-right:74px}.class-view-portal .durationBox{background:var(--color-surface,#0e1318);border:1px solid var(--color-border,#ffffff1a);border-radius:var(--radius-sm,6px);min-width:190px;max-width:220px;height:38px;transition:border-color var(--duration-fast,70ms) ease-in-out, box-shadow var(--duration-fast,70ms) ease-in-out;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.class-view-portal .durationBox.inputError{border-color:#ef4444!important}.class-view-portal .durationBox:focus-within{border-color:var(--color-accent,#10b981);box-shadow:0 0 0 1px var(--color-accent,#10b981)}.class-view-portal .durationSegment{width:30px;color:var(--color-text,#fff);font-family:var(--font-mono,monospace);text-align:center;-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0;font-size:.96rem;font-weight:700}.class-view-portal .durationSegment::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .durationSegment::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.class-view-portal .durationColon{color:var(--color-text-muted,#8b949e);-webkit-user-select:none;user-select:none;font-size:1.05rem;font-weight:800;line-height:1}.class-view-portal .durationUnitTag{color:var(--color-text-muted,#8b949e);-webkit-user-select:none;user-select:none;margin-left:auto;padding-left:8px;font-size:.72rem;font-weight:600}.class-view-portal .timeLimitUnitTag{color:var(--color-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.74rem;font-weight:600;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.class-view-portal .presetButtonsRow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.class-view-portal .presetLabel{color:var(--color-text-muted);margin-right:2px;font-size:.72rem;font-weight:600}.class-view-portal .presetPillBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;padding:3px 9px;font-size:.72rem;font-weight:600}.class-view-portal .presetPillBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .presetPillBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.class-view-portal .attachmentsSubSection{flex-direction:column;gap:8px;display:flex}.class-view-portal .attachmentsSubHeader{justify-content:space-between;align-items:center;display:flex}.class-view-portal .attachmentsSubTitle{color:var(--color-text-muted);align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:flex}.class-view-portal .attachmentSizeTracker{border-radius:var(--radius-sm,6px);color:var(--color-text-muted);background:var(--color-surface-subtle,#ffffff0a);border:1px solid var(--color-border-subtle,#ffffff14);transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .attachmentSizeTracker.limitNear{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b59}.class-view-portal .attachmentSizeTracker.limitReached{color:#ef4444;background:#ef44441f;border-color:#ef444466}.class-view-portal .limitReachedTag{text-transform:uppercase;letter-spacing:.04em;color:#ef4444;background:#ef444433;border-radius:4px;padding:1px 5px;font-size:.65rem;font-weight:700;display:inline-block}.class-view-portal .addAttachmentActionBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:var(--radius-sm,6px);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.class-view-portal .addAttachmentActionBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.class-view-portal .attachmentsCompactDropZone{border:1px dashed var(--color-border-hover);border-radius:var(--radius-md,8px);text-align:center;background:var(--color-surface-subtle);cursor:pointer;transition:all var(--duration-base,.15s) ease-in-out;flex-direction:column;justify-content:center;align-items:center;padding:12px 16px;display:flex}.class-view-portal .attachmentsCompactDropZone:hover{border-color:var(--color-accent);background:var(--color-accent-dim)}.class-view-portal .attachmentsCompactDropZone.dropZoneDisabled{cursor:not-allowed;opacity:.7;background:#ef44440a;border-color:#ef444459}.class-view-portal .attachmentsCompactDropZone.dropZoneDisabled:hover{background:#ef44440f;border-color:#ef444480}.class-view-portal .attachmentsCompactDropZone.dropZoneDisabled .dropZoneIcon{color:#ef4444}.class-view-portal .attachmentsCompactDropZone .dropZoneIcon{color:var(--color-accent);margin-bottom:3px}.class-view-portal .attachmentsCompactDropZone .dropZoneText{color:var(--color-text);font-size:.78rem;font-weight:600}.class-view-portal .attachmentsCompactDropZone .dropZoneSubtext{color:var(--color-text-muted);margin-top:1px;font-size:.7rem}.class-view-portal .attachmentPillsGrid{grid-template-columns:1fr;gap:6px;display:grid}.class-view-portal .attachmentPillItem{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-sm,6px);transition:border-color var(--duration-fast,70ms) ease;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.class-view-portal .attachmentPillItem:hover{border-color:var(--color-border-hover)}.class-view-portal .attachmentPillMain{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.class-view-portal .attachmentPillDetails{flex:1;align-items:baseline;gap:6px;min-width:0;display:flex}.class-view-portal .attachmentPillName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:500;overflow:hidden}.class-view-portal .attachmentPillSize{color:var(--color-text-muted);flex-shrink:0;font-size:.68rem}.class-view-portal .attachmentPillActions{align-items:center;gap:4px;display:flex}.class-view-portal .pillActionBtn{color:var(--color-text-muted);cursor:pointer;width:24px;height:24px;transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.class-view-portal .pillActionBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .pillActionBtn--danger:hover{color:#f87171;background:#ef444426}.class-view-portal .codeWorkbenchCard{border-color:var(--color-border)}.class-view-portal .codeWorkbenchNav{background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);display:flex}.class-view-portal .codeWorkbenchTab{color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease-in-out;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:.78rem;font-weight:600;display:flex}.class-view-portal .codeWorkbenchTab:hover{color:var(--color-text);background:var(--color-surface-hover)}.class-view-portal .codeWorkbenchTab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);background:var(--color-accent-dim)}.class-view-portal .codeWorkbenchEditor{font-family:var(--font-mono,"GitLab Mono", "JetBrains Mono", monospace);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);tab-size:2;border-radius:var(--radius-md,8px);font-size:.8rem;line-height:1.55}.class-view-portal .starterCodeMetaBar{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.class-view-portal .starterCodeLanguageTag{color:var(--color-text-muted);font-size:.74rem}.class-view-portal .starterCodeLanguageTag strong{color:var(--color-accent)}.class-view-portal .starterResetButton{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-sm,6px);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .starterResetButton:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.class-view-portal .codeEditorHelpText{color:var(--color-text-muted);margin-top:4px;font-size:.7rem}.class-view-portal .solutionsTopBar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.class-view-portal .solutionsExplanation{color:var(--color-text-muted);flex:1;margin:0;font-size:.74rem;line-height:1.35}.class-view-portal .addSolutionCodeBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:var(--radius-sm,6px);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.class-view-portal .addSolutionCodeBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.class-view-portal .solutionCardsContainer{flex-direction:column;gap:12px;display:flex}.class-view-portal .solutionWorkbenchCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);flex-direction:column;gap:8px;padding:12px;display:flex}.class-view-portal .solutionWorkbenchHeader{justify-content:space-between;align-items:center;display:flex}.class-view-portal .solutionNumberTag{color:var(--color-text);background:var(--color-surface-hover);border-radius:4px;padding:2px 8px;font-size:.74rem;font-weight:700}.class-view-portal .solutionHeaderActions{align-items:center;gap:6px;display:flex}.class-view-portal .runSolutionActionBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:var(--radius-sm,6px);cursor:pointer;transition:all var(--duration-fast,70ms) ease-in-out;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.class-view-portal .runSolutionActionBtn:hover:not(:disabled){background:var(--color-accent);color:var(--color-on-accent)}.class-view-portal .runSolutionActionBtn:disabled{opacity:.45;cursor:not-allowed}.class-view-portal .removeSolutionActionBtn{color:var(--color-text-muted);cursor:pointer;width:26px;height:26px;transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.class-view-portal .removeSolutionActionBtn:hover{color:#f87171;background:#ef444426}.class-view-portal .solutionTerminalRow{flex-direction:column;gap:4px;display:flex}.class-view-portal .terminalHeader{justify-content:space-between;align-items:center;display:flex}.class-view-portal .terminalLabel{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.class-view-portal .terminalOutputBox{background:var(--color-surface);border:1px solid var(--color-border);font-family:var(--font-mono,"GitLab Mono", monospace);border-radius:6px;max-height:100px;padding:8px 10px;font-size:.76rem;overflow-y:auto}.class-view-portal .terminalOutput--success{border-color:var(--color-accent-border);background:var(--color-accent-dim);color:var(--color-accent)}.class-view-portal .terminalOutput--error{color:#fca5a5;background:#ef44440a;border-color:#ef44444d}.class-view-portal .terminalOutput--empty{color:var(--color-text-muted);font-size:.72rem;font-style:italic}.class-view-portal .modalSplitFooter{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.class-view-portal .modalSplitFooterSummary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-view-portal .footerSummaryPill{color:var(--color-text-muted);border-radius:var(--radius-pill,9999px);background:var(--color-surface-hover);border:1px solid var(--color-border);align-items:center;gap:5px;padding:3px 9px;font-size:.74rem;display:inline-flex}.class-view-portal .footerSummaryPill strong{color:var(--color-text)}.class-view-portal .footerSummaryPill--accent{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.class-view-portal .modalSplitFooterActions{align-items:center;gap:10px;display:flex}.class-view-portal .modalActionBtn{border-radius:var(--radius-md,8px);cursor:pointer;height:38px;transition:all var(--duration-base,.15s) ease-in-out;border:1px solid #0000;padding:0 18px;font-size:.84rem;font-weight:600}.class-view-portal .modalActionBtn--secondary{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text)}.class-view-portal .modalActionBtn--secondary:hover{background:var(--color-surface-hover);color:var(--color-text)}.class-view-portal .modalActionBtn--primary{background:var(--color-accent);color:var(--color-on-accent);font-weight:700}.class-view-portal .modalActionBtn--primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.class-view-portal .modalActionBtn--primary:active:not(:disabled){transform:translateY(0)}.class-view-portal .modalActionBtn--primary:disabled{opacity:.5;cursor:not-allowed}@media (width<=1024px){.class-view-portal .modalWideSplit{width:96vw;height:92vh;max-height:94vh}.class-view-portal .modalGridSplit{grid-template-columns:1fr;gap:16px}.class-view-portal .modalSplitFooter{flex-direction:column;align-items:stretch;gap:12px}.class-view-portal .modalSplitFooterSummary{justify-content:center}.class-view-portal .modalSplitFooterActions{justify-content:flex-end}}[data-theme=light] .class-view-portal .statusPill--required{color:#dc2626;background:#ef44441f;border:1px solid #ef444459}[data-theme=light] .class-view-portal .statusPill--lime{color:#1e6b30;background:#1e6b301f;border:1px solid #1e6b3059}[data-theme=light] .class-view-portal .presetPillBtn{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-muted)}[data-theme=light] .class-view-portal .presetPillBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}[data-theme=light] .class-view-portal .presetPillBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}[data-theme=light] .class-view-portal .affinityToggleSlider,[data-theme=light] .class-view-portal .affinityMiniSlider{background-color:var(--color-border);border-color:var(--color-border)}[data-theme=light] .class-view-portal .affinityToggleSwitch input:checked+.affinityToggleSlider:before,[data-theme=light] .class-view-portal .affinityMiniSwitch input:checked+.affinityMiniSlider:before{background-color:#fff}[data-theme=light] .class-view-portal .timeLimitUnitToggle{background:var(--color-surface-subtle);border-color:var(--color-border)}[data-theme=light] .class-view-portal .timeLimitUnitBtn.active{background:var(--color-surface);color:var(--color-accent);border-color:var(--color-border)}.class-view-portal .tabBadge--alert{font-weight:700;animation:2s ease-in-out infinite pulseBadge;color:#fff!important;background:#ef4444!important}.class-view-portal .requestsList{flex-direction:column;gap:12px;width:100%;display:flex}.class-view-portal .requestCard{background:var(--color-surface-card);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:14px;justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.class-view-portal .requestCard:hover{border-color:var(--color-border-accent,#ffffff29);transform:translateY(-1px);box-shadow:0 6px 20px #00000040}.class-view-portal .reqLeftGroup{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.class-view-portal .reqAvatar{background:var(--color-accent-dim,#3b82f61f);border:1px solid var(--color-accent-border,#3b82f640);width:44px;height:44px;color:var(--color-text);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex;overflow:hidden}.class-view-portal .reqAvatar svg,.class-view-portal .reqAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.class-view-portal .reqInfo{flex-direction:column;gap:4px;min-width:0;display:flex}.class-view-portal .reqNameRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.class-view-portal .reqStudentName{color:var(--color-text);margin:0;font-size:.98rem;font-weight:700}.class-view-portal .reqStudentEmail{color:var(--color-text-muted);font-size:.82rem}.class-view-portal .reqTimeBadge{color:var(--color-text-dim,#94a3b8);align-items:center;gap:4px;margin-left:4px;font-size:.74rem;display:inline-flex}.class-view-portal .reqClassBadgesRow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.class-view-portal .reqClassBadge{background:var(--color-accent-dim,#3b82f61f);color:var(--color-accent,#38bdf8);border:1px solid var(--color-accent-border,#3b82f640);border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:.76rem;font-weight:600;display:inline-flex}.class-view-portal .reqActionsGroup{flex-shrink:0;align-items:center;gap:10px;display:flex}.class-view-portal .reqBtn{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;height:38px;padding:0 18px;font-family:inherit;font-size:.84rem;font-weight:600;transition:all .15s;display:inline-flex}.class-view-portal .reqBtn:disabled{opacity:.5;cursor:not-allowed}.class-view-portal .reqBtn--accept{color:#fff;background:#10b981;box-shadow:0 2px 10px #10b98140}.class-view-portal .reqBtn--accept:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.class-view-portal .reqBtn--reject{color:#f87171;background:#ef44441a;border-color:#ef444440}.class-view-portal .reqBtn--reject:hover:not(:disabled){color:#fff;background:#ef444433;border-color:#ef444466}.class-view-portal .tabSearchWrap{background:var(--color-surface);border:1.5px solid var(--color-border);height:38px;box-shadow:var(--shadow-card);box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;width:100%;max-width:420px;padding:0 14px;transition:border-color .15s,box-shadow .15s;display:flex}.class-view-portal .tabSearchWrap:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.class-view-portal .tabSearchWrap .searchPrefixIcon{color:var(--color-text-dim,#656d76);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.class-view-portal .tabSearchWrap .recordsSearchInput{min-width:0;height:100%;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.84rem;width:100%!important}.class-view-portal .tabSearchWrap .recordsSearchInput::placeholder{color:var(--color-text-dim,#656d76);font-size:.84rem}.class-view-portal .reqSearchClearBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;font-size:13px;transition:all .12s;display:flex}.class-view-portal .reqSearchClearBtn:hover{color:var(--color-text);background:var(--color-surface-hover)}.class-view-portal .reqEmptyState{background:var(--color-surface-card);border:1px dashed var(--color-border);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:56px 24px;display:flex}.class-view-portal .reqEmptyIconWrap{color:#10b981;background:#10b9811f;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;display:flex}.class-view-portal .reqEmptyTitle{color:var(--color-text);margin:0 0 8px;font-size:1.1rem;font-weight:700}.class-view-portal .reqEmptyDesc{color:var(--color-text-muted);max-width:440px;margin:0;font-size:.88rem;line-height:1.5}.class-view-portal .copyToast{color:#38bdf8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#0f172af0;border:1px solid #38bdf84d;border-radius:10px;padding:12px 20px;font-size:.88rem;font-weight:600;animation:.25s ease-out slideUpFade;position:fixed;bottom:28px;right:28px;box-shadow:0 8px 24px #00000073}@media (width<=768px){.class-view-portal .contentContainer{padding:16px 14px 48px!important}.class-view-portal .modalOverlay{justify-content:center!important;align-items:center!important;padding:10px!important}.class-view-portal .modalCard,.class-view-portal .gradeClassModalCard,.class-view-portal .leaderboardModalCard,.class-view-portal .classErrorModalCard{border-radius:14px!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:92dvh!important;padding:18px 16px!important;overflow-y:auto!important}.class-view-portal .modalTitle,.class-view-portal .modalSplitTitle,.class-view-portal .gradeModalTitle,.class-view-portal .classErrorModalTitle,.class-view-portal .leaderboardModalTitle{padding-right:38px!important;font-size:1.15rem!important;line-height:1.25!important}.class-view-portal .modalCloseBtn{top:14px!important;right:14px!important}.class-view-portal .classErrorModalTwoColBody{flex-direction:column!important;display:flex!important;overflow-y:auto!important}.class-view-portal .classErrorColStudents{border-right:none!important;border-bottom:1px solid var(--color-border-subtle,#ffffff14)!important;max-height:220px!important}.class-view-portal .classErrorMetricsBar{grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px 14px!important}.class-view-portal .classErrorMetricItem--activities{grid-column:1/-1}.class-view-portal .leaderboardControlsBar{flex-direction:column!important;align-items:stretch!important;gap:8px!important;padding:10px 14px!important}.class-view-portal .leaderboardSearchInput{width:100%!important}.class-view-portal .leaderboardModalBody{padding:12px 14px!important}.class-view-portal .classHero{padding:20px 16px 0!important}.class-view-portal .classTabBar{white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;margin:0 -16px!important;padding:0 16px!important;overflow:auto hidden!important}.class-view-portal .classTabBar::-webkit-scrollbar{display:none!important}.class-view-portal .classTabBtn{flex-shrink:0!important;height:44px!important;padding:0 14px!important;font-size:.84rem!important}.class-view-portal .activitiesGrid,.class-view-portal .studentsGrid{grid-template-columns:1fr!important}}@media (width<=640px){.class-view-portal .contentContainer{padding:12px 10px 36px!important}.class-view-portal .classHero{padding:16px 12px 0!important}.class-view-portal .classTabBar{margin:0 -12px!important;padding:0 12px!important}.class-view-portal .classHeaderBanner{padding:16px 14px!important}.class-view-portal .classHeaderTitle{font-size:1.35rem!important}.class-view-portal .actionBtnRow{flex-direction:column!important;width:100%!important}.class-view-portal .actionBtnRow button{width:100%!important;min-height:42px!important}}.teacher-analytics-portal{background-color:var(--color-background,#0f1015);min-height:100vh;color:var(--color-text,#fff);font-family:var(--font-body,"GitLab Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);padding-bottom:80px;position:relative;overflow-x:hidden}.teacher-analytics-portal .bg-glow{pointer-events:none;z-index:0;filter:blur(140px);opacity:.12;border-radius:50%;width:550px;height:550px;position:fixed}.teacher-analytics-portal .glow-top-left{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);top:-150px;left:100px}.teacher-analytics-portal .glow-bottom-right{opacity:.08;background:radial-gradient(circle,#38bdf8 0%,#38bdf800 70%);bottom:-150px;right:5%}.teacher-analytics-portal .analyticsMainContainer{box-sizing:border-box;z-index:1;flex-direction:column;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 48px;display:flex;position:relative}.teacher-analytics-portal .analyticsBreadcrumb{min-height:36px;color:var(--color-text-muted);align-items:center;gap:10px;margin-bottom:8px;font-size:.82rem;display:flex}.teacher-analytics-portal .breadcrumbBackLink{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);height:34px;color:var(--color-text-muted);transition:background var(--duration-base,.15s) ease, border-color var(--duration-base,.15s) ease, color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease;align-items:center;gap:8px;padding:0 12px;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 3px #00000014}.teacher-analytics-portal .breadcrumbBackLink i{transition:transform var(--duration-fast,70ms) ease}.teacher-analytics-portal .breadcrumbBackLink:hover{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.teacher-analytics-portal .breadcrumbBackLink:hover i{transform:translate(-3px)}.teacher-analytics-portal .breadcrumbBackLink:active{transform:translateY(1px)}.teacher-analytics-portal .breadcrumbBackLink:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.teacher-analytics-portal .breadcrumbSep{color:var(--color-text-dim);-webkit-user-select:none;user-select:none;font-size:.82rem}.teacher-analytics-portal .breadcrumbCurrent{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:420px;font-size:.82rem;font-weight:500;overflow:hidden}.teacher-analytics-portal .headerBg{border-radius:var(--radius-xl,20px);background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);width:100%;box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0000004d 0px 4px 16px 0px);box-sizing:border-box;padding:24px 28px;position:relative;overflow:hidden}.teacher-analytics-portal .headerBg:before{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);height:2px;position:absolute;top:0;left:0;right:0}.teacher-analytics-portal .headerContainer{flex-flow:wrap;justify-content:space-between;align-items:center;gap:24px;width:100%;display:flex}.teacher-analytics-portal .headerLeft{flex-direction:column;gap:10px;max-width:720px;display:flex}.teacher-analytics-portal .heroPill{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;width:fit-content;padding:4px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.teacher-analytics-portal .hlTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:clamp(1.85rem,3vw,2.5rem);font-weight:700;line-height:1.04}.teacher-analytics-portal .heroStatsRow{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:24px;margin-top:4px;padding-top:14px;display:flex}.teacher-analytics-portal .heroStatItem{flex-direction:column;gap:2px;display:flex}.teacher-analytics-portal .heroStatVal{color:var(--color-text);font-size:1.35rem;font-weight:700;font-family:var(--font-mono,monospace);line-height:1.2}.teacher-analytics-portal .heroStatLabel{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-dim,#656d76);font-size:.75rem;font-weight:500}.teacher-analytics-portal .heroStatDivider{background:var(--color-surface-hover);width:1px;height:28px}.teacher-analytics-portal .heroStatItem--clickable{cursor:pointer;border-radius:8px;padding:4px 8px;transition:transform .15s,background-color .15s}.teacher-analytics-portal .heroStatItem--clickable:hover{background:var(--color-surface-hover);transform:translateY(-1px)}.teacher-analytics-portal .heroStatItem--alert .heroStatVal{color:#fbbf24!important}.teacher-analytics-portal .heroSubtitle{color:var(--color-text-muted);max-width:680px;margin:0;font-size:.9rem;line-height:1.5}.teacher-analytics-portal .heroActionGroup{align-items:center;gap:12px;display:flex}.teacher-analytics-portal .exportBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:9px 18px;font-size:.84rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #0003}.teacher-analytics-portal .exportBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent-border);color:var(--color-accent)}.teacher-analytics-portal .exportBtn:active{transform:scale(.98)}.teacher-analytics-portal .filterCommandCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:12px;margin-bottom:24px;padding:20px 24px;box-shadow:0 3px 10px #00000040}.teacher-analytics-portal .filterControlRow{grid-template-columns:auto 1fr auto;align-items:center;gap:16px;display:grid}@media (width<=1024px){.teacher-analytics-portal .filterControlRow{grid-template-columns:1fr}}.teacher-analytics-portal .scopeModeSwitcher{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;gap:3px;padding:3px;display:inline-flex}.teacher-analytics-portal .scopeModeBtn{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:7px;padding:7px 16px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.teacher-analytics-portal .scopeModeBtn:hover{color:var(--color-text)}.teacher-analytics-portal .scopeModeBtn.active{background:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-accent-border);box-shadow:0 1px 4px #0000004d}.teacher-analytics-portal .typeSearchWrapper{width:100%;position:relative}.teacher-analytics-portal .typeSearchInputWrap{align-items:center;display:flex;position:relative}.teacher-analytics-portal .typeSearchIcon{color:var(--color-text-muted);pointer-events:none;font-size:16px;position:absolute;left:14px}.teacher-analytics-portal .typeSearchInput{background:var(--color-surface);border:1.5px solid var(--color-border);width:100%;height:36px;color:var(--color-text);border-radius:8px;padding:0 40px;font-family:inherit;font-size:.84rem;transition:border-color .15s,box-shadow .15s}.teacher-analytics-portal .typeSearchInput:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card);outline:none}.teacher-analytics-portal .typeSearchClearBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:18px;line-height:1;transition:color .15s;position:absolute;right:12px}.teacher-analytics-portal .typeSearchClearBtn:hover{color:var(--color-text)}.teacher-analytics-portal .autocompleteDropdown{background:var(--color-surface);border:1.5px solid var(--color-border);box-shadow:var(--shadow-elevated);z-index:50;border-radius:10px;max-height:280px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.teacher-analytics-portal .autocompleteItem{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.84rem;transition:background .12s;display:flex}.teacher-analytics-portal .autocompleteItem:hover,.teacher-analytics-portal .autocompleteItem.highlighted{background:var(--color-accent-dim);color:var(--color-accent)}.teacher-analytics-portal .autocompleteItemMain{align-items:center;gap:8px;display:flex}.teacher-analytics-portal .autocompleteItemSub{color:var(--color-text-muted);font-size:.74rem}.teacher-analytics-portal .pickSelectWrapper{align-items:center;gap:8px;display:flex}.teacher-analytics-portal .pickSelectLabel{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;align-items:center;font-size:.78rem;font-weight:600;display:inline-flex}.teacher-analytics-portal .pickSelectBox{align-items:center;display:inline-flex;position:relative}.teacher-analytics-portal .pickSelect{background-color:var(--color-surface);border:1.5px solid var(--color-border);height:36px;color:var(--color-text);cursor:pointer;appearance:none;box-shadow:var(--shadow-card);border-radius:8px;min-width:220px;padding:0 34px 0 12px;font-family:inherit;font-size:.84rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.teacher-analytics-portal .pickSelect:hover{border-color:var(--color-border-hover)}.teacher-analytics-portal .pickSelect:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card);outline:none}.teacher-analytics-portal .pickSelect option{background-color:var(--color-surface);color:var(--color-text);padding:8px 12px}.teacher-analytics-portal .pickSelectCaret{color:var(--color-text-muted);pointer-events:none;font-size:13px;transition:transform .15s,color .15s;position:absolute;right:12px}.teacher-analytics-portal .pickSelectBox:focus-within .pickSelectCaret{color:var(--color-accent);transform:rotate(180deg)}.teacher-analytics-portal .quickChipsRow{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.teacher-analytics-portal .quickChipsLabel{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-right:4px;font-size:.74rem;font-weight:600}.teacher-analytics-portal .quickChip{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:9999px;align-items:center;gap:6px;padding:4px 12px;font-size:.76rem;font-weight:500;transition:all .15s;display:inline-flex}.teacher-analytics-portal .quickChip:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.teacher-analytics-portal .quickChip.active{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent);font-weight:600}.teacher-analytics-portal .quickChipCount{background:var(--color-surface-hover);min-width:16px;height:16px;color:var(--color-text-secondary);border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:.68rem;font-weight:600;display:inline-flex}.teacher-analytics-portal .telemetryCategoryBtn.active .quickChipCount{background:var(--color-accent);color:var(--color-on-accent)}.teacher-analytics-portal .analyticsMetricsGrid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}@media (width<=1024px){.teacher-analytics-portal .analyticsMetricsGrid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.teacher-analytics-portal .analyticsMetricsGrid{grid-template-columns:1fr}}.teacher-analytics-portal .analyticsMetricCard{background:var(--color-surface-card);border:1px solid var(--color-border);will-change:transform;border-radius:12px;padding:20px;transition:border-color .18s;position:relative;box-shadow:inset 0 1px .5px #ffffff0a,0 2px 6px #0003}.teacher-analytics-portal .analyticsMetricCard:hover{border-color:var(--color-accent-border)}.teacher-analytics-portal .metricHeaderRow{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.teacher-analytics-portal .metricLabel{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.teacher-analytics-portal .metricIconWrap{border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.teacher-analytics-portal .metricIconWrap.icon-users{background:var(--cat-resource-bg);color:var(--cat-resource)}.teacher-analytics-portal .metricIconWrap.icon-act{background:var(--color-accent-dim);color:var(--color-accent)}.teacher-analytics-portal .metricIconWrap.icon-subs{background:var(--cat-semantic-bg);color:var(--cat-semantic)}.teacher-analytics-portal .metricIconWrap.icon-health{background:var(--cat-syntax-bg);color:var(--cat-syntax)}.teacher-analytics-portal .metricValue{color:var(--color-text);font-size:2.1rem;font-weight:700;font-family:var(--font-mono,"GitLab Mono", monospace);margin-bottom:6px;line-height:1.1}.teacher-analytics-portal .metricValue.health-good{color:var(--color-accent)}.teacher-analytics-portal .metricValue.health-warn{color:var(--sev-mid)}.teacher-analytics-portal .metricValue.health-critical{color:var(--sev-high)}.teacher-analytics-portal .metricSubtext{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.76rem;display:flex}.teacher-analytics-portal .analyticsSectionCard{background:var(--color-surface-card);border:1px solid var(--color-border);will-change:transform, opacity;border-radius:12px;margin-bottom:24px;overflow:hidden;box-shadow:0 3px 12px #00000040}.teacher-analytics-portal .sectionCardHeader{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.teacher-analytics-portal .sectionHeaderTitleGroup h3{color:var(--color-text);margin:0 0 4px;font-size:1.15rem;font-weight:600}.teacher-analytics-portal .sectionHeaderSubtitle{color:var(--color-text-muted);margin:0;font-size:.8rem}.teacher-analytics-portal .telemetryCategoryBar{border-bottom:1px solid var(--color-border-subtle);background:0 0;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 24px;display:flex}.teacher-analytics-portal .telemetryCategoryBtn{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:9999px;align-items:center;gap:8px;padding:6px 14px;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.teacher-analytics-portal .telemetryCategoryBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-strong)}.teacher-analytics-portal .telemetryCategoryBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.teacher-analytics-portal .tableWrapper{width:100%;overflow-x:auto}.teacher-analytics-portal .analyticsTable{border-collapse:collapse;text-align:left;width:100%}.teacher-analytics-portal .analyticsTable th{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;padding:12px 18px;font-size:.74rem;font-weight:700}.teacher-analytics-portal .analyticsTable td{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);vertical-align:middle;background:var(--color-surface-card);padding:14px 18px;font-size:.84rem}.teacher-analytics-portal .analyticsTable tbody tr:hover{background:var(--color-surface-hover)}.teacher-analytics-portal .healthRatingHeaderWrap{align-items:center;gap:6px;display:inline-flex;position:relative}.teacher-analytics-portal .healthInfoPopoverWrapper{align-items:center;display:inline-flex;position:relative}.teacher-analytics-portal .healthInfoBtn{border:1px solid var(--color-border);background:var(--color-surface);width:18px;height:18px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;transition:all .12s;display:inline-flex}.teacher-analytics-portal .healthInfoBtn:hover,.teacher-analytics-portal .healthInfoBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);transform:scale(1.1)}.teacher-analytics-portal .healthInfoPopover{background:var(--color-surface);border:1.5px solid var(--color-border);width:290px;box-shadow:var(--shadow-elevated);z-index:200;cursor:default;text-transform:none;letter-spacing:normal;white-space:normal;border-radius:12px;padding:14px;font-weight:400;animation:.15s cubic-bezier(.16,1,.3,1) healthPopoverFadeIn;position:absolute;top:calc(100% + 10px);right:0}.teacher-analytics-portal .healthInfoPopoverHeader{color:var(--color-text);border-bottom:1px solid var(--color-border);align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;font-size:.82rem;font-weight:700;display:flex}.teacher-analytics-portal .healthInfoShieldIcon{color:var(--color-accent);font-size:16px}.teacher-analytics-portal .healthInfoTiers{text-align:left;flex-direction:column;gap:10px;display:flex}.teacher-analytics-portal .healthInfoTier{flex-direction:column;gap:3px;display:flex}.teacher-analytics-portal .healthTierHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.teacher-analytics-portal .healthTierBadge{text-transform:uppercase;letter-spacing:.03em;border-radius:9999px;padding:2px 7px;font-size:.68rem;font-weight:700}.teacher-analytics-portal .healthTierBadge.optimal{color:#10b981;background:#34d39926;border:1px solid #34d3994d}[data-theme=light] .teacher-analytics-portal .healthTierBadge.optimal{color:#1e6b30;background:#1e6b301a;border-color:#1e6b3040}.teacher-analytics-portal .healthTierBadge.moderate{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf244d}[data-theme=light] .teacher-analytics-portal .healthTierBadge.moderate{color:#b45309;background:#f59e0b1f;border-color:#f59e0b4d}.teacher-analytics-portal .healthTierBadge.attention{color:#f87171;background:#f8717126;border:1px solid #f871714d}[data-theme=light] .teacher-analytics-portal .healthTierBadge.attention{color:#dc2626;background:#ef44441a;border-color:#ef444440}.teacher-analytics-portal .healthTierRange{font-family:var(--font-mono,monospace);color:var(--color-text-muted);font-size:.7rem;font-weight:600}.teacher-analytics-portal .healthTierDesc{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.4}.teacher-analytics-portal .healthRatingTag{white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:600;transition:all .12s;display:inline-flex}.teacher-analytics-portal .healthRatingTag.optimal{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border)}.teacher-analytics-portal .healthRatingTag.moderate{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b4d}[data-theme=light] .teacher-analytics-portal .healthRatingTag.moderate{color:#b45309}.teacher-analytics-portal .healthRatingTag.attention{color:#f87171;background:#f8717126;border:1px solid #f871714d}[data-theme=light] .teacher-analytics-portal .healthRatingTag.attention{color:#dc2626}.teacher-analytics-portal .categoryBadge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:4px;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.teacher-analytics-portal .categoryBadge.category-syntax{background:var(--cat-syntax-bg);border:1px solid var(--cat-syntax-border);color:var(--cat-syntax)}.teacher-analytics-portal .categoryBadge.category-runtime{background:var(--cat-runtime-bg);border:1px solid var(--cat-runtime-border);color:var(--cat-runtime)}.teacher-analytics-portal .categoryBadge.category-semantic{background:var(--cat-semantic-bg);border:1px solid var(--cat-semantic-border);color:var(--cat-semantic)}.teacher-analytics-portal .categoryBadge.category-resource{background:var(--cat-resource-bg);border:1px solid var(--cat-resource-border);color:var(--cat-resource)}.teacher-analytics-portal .severityBadge{border-radius:var(--radius-sm,6px);letter-spacing:.04em;align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.teacher-analytics-portal .severityBadge.severity-high{background:var(--sev-high-bg);border:1px solid var(--sev-high-border);color:var(--sev-high)}.teacher-analytics-portal .severityBadge.severity-mid{background:var(--sev-mid-bg);border:1px solid var(--sev-mid-border);color:var(--sev-mid)}.teacher-analytics-portal .severityBadge.severity-low{background:var(--sev-low-bg);border:1px solid var(--sev-low-border);color:var(--sev-low)}.teacher-analytics-portal .langPill{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.teacher-analytics-portal .topicTagPill{background:var(--cat-resource-bg);border:1px solid var(--cat-resource-border);color:var(--cat-resource);border-radius:9999px;align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-flex}.teacher-analytics-portal .prevalenceBarWrap{align-items:center;gap:12px;min-width:175px;display:flex}.teacher-analytics-portal .prevalenceTrack{background:var(--color-surface-hover);border-radius:9999px;flex:1;min-width:60px;height:6px;overflow:hidden}.teacher-analytics-portal .prevalenceFill{background:var(--color-accent);border-radius:9999px;height:100%}.teacher-analytics-portal .prevalenceFill.fill-high{background:var(--sev-high)}.teacher-analytics-portal .prevalenceFill.fill-mid{background:var(--sev-mid)}.teacher-analytics-portal .prevalenceFill.fill-low{background:var(--sev-low)}.teacher-analytics-portal .prevalencePercent{font-family:var(--font-mono,"GitLab Mono", monospace);color:var(--color-text-muted);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:68px;font-size:.78rem}.teacher-analytics-portal .analyticsLoadingState{background:var(--color-surface-card,#14171d);border:1px solid var(--color-border,#ffffff14);border-radius:var(--radius-xl,20px);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 24px;display:flex;box-shadow:0 4px 14px #00000040}.teacher-analytics-portal .analyticsLoadingSpinner{width:48px;height:48px;color:var(--color-accent);justify-content:center;align-items:center;margin-bottom:14px;font-size:28px;display:flex}.teacher-analytics-portal .analyticsLoadingState h3{color:var(--color-text);margin:0 0 8px;font-size:1.1rem;font-weight:600}.teacher-analytics-portal .analyticsLoadingState p{color:var(--color-text-muted);max-width:440px;margin:0;font-size:.84rem;line-height:1.5}.teacher-analytics-portal .emptyStateBox{text-align:center;color:var(--color-text-muted);padding:48px 24px}.teacher-analytics-portal .emptyStateIcon{color:var(--color-accent);margin-bottom:12px;font-size:42px}.teacher-analytics-portal .emptyStateTitle{color:var(--color-text);margin:0 0 6px;font-size:1.05rem;font-weight:600}.teacher-analytics-portal .emptyStateDesc{color:var(--color-text-muted);max-width:480px;margin:0 auto;font-size:.84rem}.teacher-analytics-portal .sampleMessageRow td{background:var(--color-surface)!important;padding:0!important}.teacher-analytics-portal .errorExpandedDetailsContainer{padding:16px 20px}.teacher-analytics-portal .affectedStudentsCard{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:8px;padding:14px 18px}.teacher-analytics-portal .affectedStudentsCardHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.teacher-analytics-portal .affectedStudentsHeaderTitle{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);align-items:center;gap:7px;font-size:.78rem;font-weight:600;display:flex}.teacher-analytics-portal .affectedStudentsHint{color:var(--color-accent);font-size:.74rem;font-weight:500}.teacher-analytics-portal .affectedStudentsList{flex-direction:column;gap:10px;display:flex}.teacher-analytics-portal .affectedStudentWrapper{flex-direction:column;gap:6px;display:flex}.teacher-analytics-portal .affectedStudentRowItem{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;display:flex}.teacher-analytics-portal .affectedStudentRowItem.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.teacher-analytics-portal .affectedStudentRowItem.clickable:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);transform:translate(2px)}.teacher-analytics-portal .affectedStudentRowItem.clickable.active{background:var(--color-accent-dim);border-color:var(--color-accent-border);box-shadow:var(--shadow-card)}.teacher-analytics-portal .affectedStudentAvatarBadge{background:linear-gradient(135deg, #38bdf833, var(--color-accent-dim));border:1px solid var(--color-border-hover);width:34px;height:34px;color:var(--color-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex;overflow:hidden}.teacher-analytics-portal .affectedStudentAvatarBadge img,.teacher-analytics-portal .affectedStudentAvatarBadge svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.teacher-analytics-portal .affectedStudentIdentity{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.teacher-analytics-portal .affectedStudentNameRow{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-analytics-portal .affectedStudentFullName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.teacher-analytics-portal .viewErrorActionTag{color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.teacher-analytics-portal .affectedStudentRowItem.clickable.active .viewErrorActionTag{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.teacher-analytics-portal .affectedStudentSubmeta{flex-wrap:wrap;align-items:center;gap:8px;font-size:.74rem;display:flex}.teacher-analytics-portal .stuEmailTag{color:var(--color-text-muted);font-family:var(--font-mono,monospace)}.teacher-analytics-portal .stuActTag{color:var(--color-accent);align-items:center;gap:4px;font-weight:500;display:inline-flex}.teacher-analytics-portal .stuClassTag{color:#38bdf8;align-items:center;gap:4px;font-weight:500;display:inline-flex}.teacher-analytics-portal .stuTimeTag{color:var(--color-text-dim);align-items:center;gap:4px;display:inline-flex}.teacher-analytics-portal .studentSpecificErrorBox{background:var(--color-surface-card);border:1px solid var(--color-accent-border);border-left:3px solid var(--color-accent);border-radius:8px;margin-left:8px;padding:12px 16px;animation:.2s ease-out fadeInStuErr}.teacher-analytics-portal .studentSpecificErrorHeader{color:var(--color-accent);align-items:center;gap:7px;margin-bottom:8px;font-size:.76rem;font-weight:600;display:flex}.teacher-analytics-portal .studentSpecificErrorPre{color:#fca5a5;white-space:pre-wrap;word-break:break-all;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;margin:0;padding:10px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.5}.teacher-analytics-portal.modalOverlay,.teacher-analytics-modal-overlay.modalOverlay,.teacher-analytics-portal .modalOverlay,.modalOverlay{animation:.18s ease-out modalFadeIn;-webkit-backdrop-filter:blur(8px)!important;z-index:9999!important;box-sizing:border-box!important;background:#000000bf!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;min-height:0!important;margin:0!important;padding:24px 16px!important;display:flex!important;position:fixed!important;inset:0!important;overflow-y:auto!important}.teacher-analytics-portal .classErrorModalCard,.classErrorModalCard{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg,12px)!important;box-sizing:border-box!important;flex-direction:column!important;width:min(1120px,94vw)!important;max-width:1120px!important;height:84vh!important;min-height:540px!important;max-height:820px!important;margin:auto!important;padding:0!important;display:flex!important;overflow:hidden!important;box-shadow:0 20px 50px #00000040,0 4px 16px #0000001a!important}.teacher-analytics-portal .classErrorModalHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 16px;display:flex}.teacher-analytics-portal .modalCloseBtn{color:var(--color-text-dim);cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:1.5rem;line-height:1;transition:all .15s;display:flex}.teacher-analytics-portal .modalCloseBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.teacher-analytics-portal .classErrorHeaderInfo{flex-direction:column;gap:8px;min-width:0;display:flex}.teacher-analytics-portal .classErrorBadgesRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-analytics-portal .classErrorModalTitle{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.teacher-analytics-portal .classErrorMetricsBar{background:var(--color-surface-card);border-bottom:1px solid var(--color-border);flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:12px 24px;display:grid}.teacher-analytics-portal .classErrorMetricItem{flex-direction:column;gap:4px;display:flex}.teacher-analytics-portal .classErrorMetricItem .metricLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim);font-size:.68rem;font-weight:700}.teacher-analytics-portal .classErrorMetricItem .metricValue{color:var(--color-text);align-items:center;gap:6px;font-size:.85rem;display:flex}.teacher-analytics-portal .activityPillStack{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.teacher-analytics-portal .activityPill{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;align-items:center;padding:2px 8px;font-size:.74rem;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #0000000a}.teacher-analytics-portal .classErrorModalTwoColBody,.classErrorModalTwoColBody{background:var(--color-surface)!important;flex:1!important;grid-template-columns:340px 1fr!important;min-height:0!important;display:grid!important;overflow:hidden!important}.teacher-analytics-portal .classErrorColStudents{border-right:1px solid var(--color-border);background:var(--color-surface-card);flex-direction:column;min-height:0;display:flex}.teacher-analytics-portal .errorModalColHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface-card);flex-shrink:0;padding:14px 18px 12px}.teacher-analytics-portal .errorModalColTitle{color:var(--color-text);align-items:center;gap:8px;font-size:.84rem;font-weight:700;display:flex}.teacher-analytics-portal .errorModalColTitle i{color:var(--color-accent);font-size:1rem}.teacher-analytics-portal .errorModalColHint{color:var(--color-text-dim);margin-top:3px;font-size:.72rem;display:block}.teacher-analytics-portal .errorModalStudentsList{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.teacher-analytics-portal .errorModalStudentItem{border-radius:var(--radius-sm,8px);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:10px 12px;transition:all .18s;display:flex;box-shadow:0 1px 2px #0000000a}.teacher-analytics-portal .errorModalStudentItem:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.teacher-analytics-portal .errorModalStudentItem.active{background:var(--color-accent-dim)!important;border-color:var(--color-accent)!important;box-shadow:0 0 0 1px var(--color-accent), 0 2px 6px #0000000f!important}.teacher-analytics-portal .errorModalStudentAvatar{border-radius:50%;flex-shrink:0;width:32px;height:32px;overflow:hidden}.teacher-analytics-portal .errorModalStudentAvatar img,.teacher-analytics-portal .errorModalStudentAvatar svg{object-fit:cover;width:100%;height:100%;display:block}.teacher-analytics-portal .errorModalStudentMeta{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.teacher-analytics-portal .errorModalStudentNameRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.teacher-analytics-portal .errorModalStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:600;overflow:hidden}.teacher-analytics-portal .pickedBadge{background:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:.62rem;font-weight:700;color:#fff!important}.teacher-analytics-portal .errorModalStudentSubmeta{color:var(--color-text-dim);flex-wrap:wrap;align-items:center;gap:6px;font-size:.72rem;display:flex}.teacher-analytics-portal .errorModalStudentSubmeta .stuActTag,.teacher-analytics-portal .errorModalStudentSubmeta .stuClassTag{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:4px;max-width:160px;padding:1px 6px;display:inline-flex;overflow:hidden}.teacher-analytics-portal .errorModalStudentEmailRow{color:var(--color-accent);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;margin:1px 0;font-size:.73rem;font-weight:500;display:flex;overflow:hidden}.teacher-analytics-portal .errorModalStudentEmailRow i{flex-shrink:0;font-size:.8rem}.teacher-analytics-portal .errorModalStudentEmail{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.teacher-analytics-portal .errorModalStudentSubmeta .stuEmailTag,.teacher-analytics-portal .errorModalStudentSubmeta .stuTimeTag{color:var(--color-text-dim);align-items:center;gap:3px;display:inline-flex}.teacher-analytics-portal .pickChevron{color:var(--color-text-dim);flex-shrink:0;font-size:.85rem;transition:transform .18s,color .18s}.teacher-analytics-portal .errorModalStudentItem.active .pickChevron{color:var(--color-accent);transform:translate(2px)}.teacher-analytics-portal .errorModalEmptyStudents{text-align:center;color:var(--color-text-dim);padding:32px 16px;font-size:.82rem}.teacher-analytics-portal .classErrorColDetail{background:var(--color-surface);flex-direction:column;min-height:0;display:flex}.teacher-analytics-portal .errorModalDetailHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 12px;display:flex}.teacher-analytics-portal .errorModalDetailMeta{flex-direction:column;gap:3px;min-width:0;display:flex}.teacher-analytics-portal .errorModalDetailTitle{color:var(--color-text);align-items:center;gap:8px;font-size:.88rem;font-weight:700;display:flex}.teacher-analytics-portal .errorModalDetailTitle i{color:var(--color-accent);font-size:1rem}.teacher-analytics-portal .errorModalDetailSubmeta{color:var(--color-text-dim);align-items:center;gap:10px;font-size:.73rem;display:flex}.teacher-analytics-portal .errorDetailActivity,.teacher-analytics-portal .errorDetailTime{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.teacher-analytics-portal .errorDetailEmail{color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent-dim);border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.teacher-analytics-portal .copyTraceBtn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-sm,6px);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0000000a}.teacher-analytics-portal .copyTraceBtn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.teacher-analytics-portal .errorModalTerminalWrapper{background:var(--color-surface);flex-direction:column;flex:1;min-height:0;padding:16px 20px;display:flex;overflow:hidden}.teacher-analytics-portal .terminalWindowBar{border:1px solid var(--color-border);background:#181c24;border-bottom:none;border-top-left-radius:8px;border-top-right-radius:8px;flex-shrink:0;align-items:center;gap:12px;padding:8px 14px;display:flex}.teacher-analytics-portal .terminalDots{gap:6px;display:flex}.teacher-analytics-portal .terminalDot{border-radius:50%;width:9px;height:9px}.teacher-analytics-portal .dot-red{background:#f87171}.teacher-analytics-portal .dot-yellow{background:#fbbf24}.teacher-analytics-portal .dot-green{background:#34d399}.teacher-analytics-portal .terminalWindowTitle{color:#94a3b8;letter-spacing:.02em;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.7rem}.teacher-analytics-portal .errorTerminalPre{border:1px solid var(--color-border);color:#f87171;white-space:pre-wrap;word-break:break-word;background:#0d1117;border-bottom-right-radius:8px;border-bottom-left-radius:8px;flex:1;min-height:0;margin:0;padding:16px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.83rem;line-height:1.55;overflow-y:auto}.teacher-analytics-portal .errorModalNoSelection{color:var(--color-text-dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;font-size:.85rem;display:flex}@media (width<=1024px){.teacher-analytics-portal .analyticsMainContainer{padding:20px 16px 40px}}@media (width<=768px){.teacher-analytics-portal .analyticsMainContainer{gap:16px;padding:16px 12px 36px!important}.teacher-analytics-portal .headerBg{border-radius:var(--radius-lg,12px)!important;padding:18px 16px!important}.teacher-analytics-portal .headerContainer{flex-direction:column!important;align-items:stretch!important;gap:16px!important}.teacher-analytics-portal .hlTitle{font-size:clamp(1.4rem,5vw,1.85rem)!important}.teacher-analytics-portal .heroSubtitle{font-size:.82rem!important}.teacher-analytics-portal .heroStatsRow{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;width:100%!important;display:grid!important}.teacher-analytics-portal .heroStatDivider{display:none!important}.teacher-analytics-portal .heroActionGroup{width:100%!important}.teacher-analytics-portal .exportBtn{justify-content:center!important;width:100%!important;min-height:42px!important}.teacher-analytics-portal .filterCommandCard{margin-bottom:16px!important;padding:14px 12px!important;overflow:hidden!important}.teacher-analytics-portal .filterControlRow{flex-direction:column!important;align-items:stretch!important;gap:12px!important;width:100%!important;display:flex!important}.teacher-analytics-portal .scopeModeSwitcher{box-sizing:border-box!important;grid-template-columns:1fr 1fr!important;gap:3px!important;width:100%!important;padding:3px!important;display:grid!important}.teacher-analytics-portal .scopeModeBtn{white-space:nowrap!important;box-sizing:border-box!important;justify-content:center!important;width:100%!important;min-width:0!important;padding:8px 4px!important;font-size:.78rem!important}.teacher-analytics-portal .typeSearchWrapper{width:100%!important;min-width:0!important}.teacher-analytics-portal .typeSearchInput{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:40px!important;font-size:.8rem!important}.teacher-analytics-portal .pickSelectWrapper{flex-direction:column!important;align-items:stretch!important;gap:6px!important;width:100%!important;display:flex!important}.teacher-analytics-portal .pickSelectLabel{white-space:normal!important;font-size:.72rem!important}.teacher-analytics-portal .pickSelectBox{width:100%!important;display:flex!important;position:relative!important}.teacher-analytics-portal .pickSelect{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;height:40px!important;font-size:.82rem!important}.teacher-analytics-portal .telemetryCategoryBar{-webkit-overflow-scrolling:touch!important;flex-wrap:nowrap!important;padding:10px 14px!important;overflow-x:auto!important}.teacher-analytics-portal .telemetryCategoryBtn,.teacher-analytics-portal .quickChip{flex-shrink:0!important;min-height:36px!important}.teacher-analytics-portal .analyticsSectionCard{border-radius:var(--radius-lg,12px)!important;margin-bottom:16px!important}.teacher-analytics-portal .sectionCardHeader{padding:14px 16px!important}.teacher-analytics-portal .tableScrollWrapper,.teacher-analytics-portal .analyticsTableWrap{-webkit-overflow-scrolling:touch!important;width:100%!important;overflow-x:auto!important}.teacher-analytics-portal .classErrorModalCard,.classErrorModalCard{border-radius:var(--radius-lg,12px)!important;flex-direction:column!important;width:96vw!important;max-width:96vw!important;height:92dvh!important;min-height:0!important;max-height:92dvh!important;display:flex!important}.teacher-analytics-portal .classErrorModalHeader{padding:14px 16px 12px!important}.teacher-analytics-portal .classErrorModalTitle{padding-right:40px!important;font-size:1.15rem!important;line-height:1.25!important}.teacher-analytics-portal .modalCloseBtn{top:14px!important;right:14px!important}.teacher-analytics-portal .classErrorMetricsBar{grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px 14px!important}.teacher-analytics-portal .classErrorMetricItem--activities{grid-column:1/-1}.teacher-analytics-portal .classErrorModalTwoColBody{flex-direction:column!important;flex:1!important;display:flex!important;overflow-y:auto!important}.teacher-analytics-portal .classErrorColStudents{border-right:none!important;border-bottom:1px solid var(--color-border-subtle,#ffffff14)!important;flex-shrink:0!important;max-height:200px!important}.teacher-analytics-portal .classErrorColDetail{flex:1!important;min-height:240px!important}}@media (width<=640px){.teacher-analytics-portal .analyticsMainContainer{padding:12px 10px 32px!important}.teacher-analytics-portal .headerBg{padding:16px 12px!important}.teacher-analytics-portal .heroStatsRow{grid-template-columns:1fr 1fr!important;gap:8px!important}.teacher-analytics-portal .heroStatVal{font-size:1.15rem!important}.teacher-analytics-portal .analyticsMetricCard{padding:14px!important}.teacher-analytics-portal .metricValue{font-size:1.65rem!important}.teacher-analytics-portal .classErrorMetricsBar{grid-template-columns:1fr!important}}.createClassOverlay{-webkit-backdrop-filter:blur(8px);z-index:2100;background:#000000c2;justify-content:center;align-items:center;padding:16px;animation:.16s ease-out createClassFadeIn;display:flex;position:fixed;inset:0}@keyframes createClassFadeIn{0%{opacity:0}to{opacity:1}}.createClassCard{background:var(--color-surface,#181920);border-radius:var(--radius-lg,14px);border:1px solid var(--color-border,#ffffff1a);box-sizing:border-box;width:100%;max-width:480px;padding:26px 28px;animation:.18s cubic-bezier(.16,1,.3,1) createClassScaleIn;position:relative;box-shadow:0 24px 56px #000000a6,inset 0 1px #ffffff1a}@keyframes createClassScaleIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.createClassCloseBtn{color:var(--color-text-muted,#8b949e);cursor:pointer;border-radius:var(--radius-sm,6px);width:32px;height:32px;transition:all var(--duration-fast,80ms) ease;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:absolute;top:18px;right:18px}.createClassCloseBtn:hover{color:var(--color-text,#fff);background:#ffffff14}.createClassTitle{font-family:var(--font-sans,"GitLab Sans", sans-serif);color:var(--color-text,#fff);letter-spacing:-.01em;margin:0 0 18px;padding-right:36px;font-size:1.25rem;font-weight:700}.createClassForm{flex-direction:column;gap:16px;display:flex}.createClassFormGroup{flex-direction:column;gap:6px;display:flex}.createClassLabel{color:var(--color-text,#fff);margin:0;font-size:.82rem;font-weight:600;line-height:1.2;display:block}.createClassInput,.createClassSelect{background:var(--color-surface-elevated,#20222b);border:1px solid var(--color-border,#ffffff1a);border-radius:var(--radius-md,8px);width:100%;height:42px;color:var(--color-text,#fff);transition:border-color var(--duration-fast,80ms) ease, box-shadow var(--duration-fast,80ms) ease;box-sizing:border-box;padding:0 14px;font-family:inherit;font-size:.88rem}.createClassInput:focus,.createClassSelect:focus{border-color:var(--color-accent,#10b981);box-shadow:0 0 0 3px var(--color-accent-dim,#10b98126);outline:none}.createClassRowSplit{grid-template-columns:1fr 1fr;gap:14px;display:grid}.createClassActions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.createClassBtn{border-radius:var(--radius-md,8px);cursor:pointer;transition:all var(--duration-fast,80ms) ease;border:1px solid #0000;padding:10px 18px;font-size:.88rem;font-weight:600}.createClassBtn:active{transform:scale(.98)}.createClassBtn--secondary{color:var(--color-text,#fff);background:#ffffff0d;border-color:#ffffff1a}.createClassBtn--secondary:hover{background:#ffffff17}.createClassBtn--primary{background:var(--color-accent,#10b981);color:#000;font-weight:700}.createClassBtn--primary:hover:not(:disabled){opacity:.92;box-shadow:0 4px 14px #10b98159}.createClassBtn--primary:disabled{opacity:.55;cursor:not-allowed}.createClassError{color:var(--color-danger,#ef4444);background:#ef44441a;border:1px solid #ef444440;border-radius:6px;padding:8px 12px;font-size:.8rem}@media (width<=640px){.createClassOverlay{padding:12px}.createClassCard{border-radius:14px;max-height:92dvh;padding:20px 16px;overflow-y:auto}.createClassTitle{margin-bottom:14px;padding-right:36px;font-size:1.15rem}.createClassCloseBtn{top:14px;right:14px}}.dean-portal{--primary:var(--color-accent);--text-main:var(--color-text);--text-dim:var(--color-text-dim);--font-mono:var(--font-mono,"GitLab Mono", monospace);background-color:var(--color-background,#0f1015);min-height:100vh;color:var(--color-text,#fff);font-family:var(--font-sans,"GitLab Sans", sans-serif);padding-left:var(--sidebar-w-collapsed,72px);will-change:padding-left;box-sizing:border-box;transition:padding-left .28s cubic-bezier(.2,0,0,1);position:relative;overflow-x:hidden}body.sidebar-pinned .dean-portal{padding-left:var(--sidebar-w-expanded,260px)}@media (width<=768px){.dean-portal,body.sidebar-pinned .dean-portal{padding-left:0}}.dean-portal .bg-glow{background:radial-gradient(circle, var(--color-accent-dim) 0%, transparent 70%);z-index:0;pointer-events:none;border-radius:50%;width:550px;height:550px;position:fixed}.dean-portal .glow-top-left{top:-200px;left:-200px}.dean-portal .glow-bottom-right{bottom:-200px;right:-200px}.dean-portal .navContainer{background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);width:100%;height:56px;box-shadow:var(--navbar-shadow);z-index:1000;box-sizing:border-box;transition:background-color var(--duration-base) ease, border-color var(--duration-base) ease;position:sticky;top:0}.dean-portal .logoProf{box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;max-width:1400px;height:56px;margin:0 auto;padding:0 clamp(16px,2.5vw,36px);display:flex}.dean-portal .contentContainer{z-index:1;box-sizing:border-box;flex-direction:column;gap:20px;width:100%;max-width:1400px;margin:0 auto;padding:24px clamp(16px,2.5vw,36px) 64px;display:flex;position:relative}.dean-portal .deanHero{border-radius:var(--radius-xl,20px);border:1px solid var(--color-border-subtle,#ffffff14);background:var(--color-surface-card,#14171d);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #00000040 0px 4px 16px 0px);flex-direction:column;gap:14px;padding:24px 28px;display:flex;position:relative;overflow:hidden}.dean-portal .deanHero:before{content:"";background:linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent-dim) 60%, transparent 100%);height:2px;position:absolute;top:0;left:0;right:0}.dean-portal .deanHeroTop{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.dean-portal .deanHeroLeft{flex-direction:column;gap:6px;max-width:820px;display:flex}.dean-portal .deanHeroBadges{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dean-portal .deanHeroBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.dean-portal .badgeDot{background:var(--color-accent);width:6px;height:6px;box-shadow:var(--shadow-card);border-radius:50%}.dean-portal .deanHeroSubBadge{border-radius:var(--radius-pill,9999px);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);letter-spacing:.03em;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.dean-portal .deanHeroTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:clamp(1.8rem,3.2vw,2.3rem);font-weight:700;line-height:1.15}.dean-portal .deanHeroSub{color:var(--color-text-muted,#8b949e);margin:0;font-size:.9rem;line-height:1.5}.dean-portal .deanKpiRibbon{grid-template-columns:repeat(4,1fr);gap:16px;width:100%;display:grid}@media (width<=1024px){.dean-portal .deanKpiRibbon{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.dean-portal .deanKpiRibbon{grid-template-columns:1fr}}.dean-portal .kpiCard{background:var(--color-surface-card,#14171d);border:1px solid var(--color-border-subtle,#ffffff14);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);transition:border-color var(--duration-base,.15s) ease;align-items:center;gap:14px;padding:16px 20px;display:flex}.dean-portal .kpiCard:hover{border-color:var(--color-accent-border);transition:border-color var(--duration-base,.15s) ease}.dean-portal .kpiIconWrap{border-radius:var(--radius-md,10px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:44px;height:44px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.dean-portal .kpiContent{flex-direction:column;gap:2px;min-width:0;display:flex}.dean-portal .kpiLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#8b949e);font-size:.72rem;font-weight:600}.dean-portal .kpiValue{font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--color-text);letter-spacing:-.02em;font-size:1.85rem;font-weight:700;line-height:1.1}.dean-portal .kpiSub{color:#8b949ebf;font-size:.76rem}.dean-portal .deanTabPanesContainer{flex-direction:column;gap:20px;display:flex}.dean-portal .tabPane{flex-direction:column;gap:20px;width:100%;display:flex}.dean-portal .deanCard{background:var(--color-surface-card,#14171d);border:1px solid var(--color-border-subtle,#ffffff14);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);flex-direction:column;gap:18px;padding:24px 28px;display:flex;position:relative}.dean-portal .cardHeader{border-bottom:1px solid var(--color-border-subtle,#ffffff14);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;display:flex}.dean-portal .cardHeaderLeft{align-items:center;gap:12px;display:flex}.dean-portal .cardTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);margin:0;font-size:1.25rem;font-weight:700}.dean-portal .cardSub{color:var(--color-text-muted,#8b949e);margin:0;font-size:.84rem}.dean-portal .cardActionLink{color:var(--color-accent);cursor:pointer;border-radius:var(--radius-sm,6px);transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;font-size:.82rem;font-weight:600;display:inline-flex}.dean-portal .cardActionLink:hover{background:var(--color-accent-dim)}.dean-portal .badgePill{border-radius:var(--radius-pill,9999px);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:6px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.dean-portal .badgePill--gold{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770640}.dean-portal .badgePill--lime{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.dean-portal .badgePill--blue{background:var(--color-info-bg);color:var(--color-info);border:1px solid #0284c740}.dean-portal .badgePill--danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262640}.dean-portal .overviewGrid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:20px;display:grid}@media (width<=1024px){.dean-portal .overviewGrid{grid-template-columns:1fr}}.dean-portal .spotlightCard{flex-direction:column;gap:16px;display:flex}.dean-portal .spotlightProfileRow{align-items:center;gap:16px;padding:2px 0 4px;display:flex}.dean-portal .spotlightAvatarWrap{color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b59;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative;box-shadow:0 0 16px #f59e0b26}.dean-portal .spotlightAvatarWrap svg,.dean-portal .spotlightAvatarWrap img{object-fit:cover;border-radius:11px;width:100%;height:100%;display:block}.dean-portal .spotlightAvatarBadge{color:#fff;border:2px solid var(--color-surface);z-index:2;background:#f59e0b;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.65rem;font-weight:800;display:flex;position:absolute;bottom:-2px;right:-2px;box-shadow:0 1px 4px #0000004d}.dean-portal .spotlightScholarDetails{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.dean-portal .spotlightNameRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dean-portal .spotlightName{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}.dean-portal .spotlightEmail{color:var(--color-text-muted,#8b949e);margin:0;font-size:.8rem}.dean-portal .spotlightRankHonor{border-radius:var(--radius-pill,9999px);background:var(--color-warning-bg);color:var(--color-warning);letter-spacing:.03em;text-transform:uppercase;border:1px solid #d9770640;align-items:center;gap:5px;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.dean-portal .spotlightStatsGrid{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;display:grid}.dean-portal .spotlightStatCard{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md,10px);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.dean-portal .spotlightStatVal{font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--color-accent);font-size:1.3rem;font-weight:700;line-height:1.1}.dean-portal .spotlightStatLbl{color:var(--color-text-muted,#8b949e);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.dean-portal .spotlightPodiumWrap{border-top:1px solid var(--color-border-subtle,#ffffff0f);flex-direction:column;gap:8px;padding-top:12px;display:flex}.dean-portal .spotlightPodiumHeader{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#8b949e);justify-content:space-between;align-items:center;font-size:.7rem;font-weight:700;display:flex}.dean-portal .spotlightPodiumList{flex-direction:column;gap:6px;display:flex}.dean-portal .spotlightPodiumItem{background:var(--color-surface-elevated);border:1px solid var(--color-border);transition:background var(--duration-fast,70ms) ease;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.dean-portal .spotlightPodiumItem:hover{background:var(--color-surface-hover)}.dean-portal .podiumLeft{align-items:center;gap:10px;min-width:0;display:flex}.dean-portal .podiumRankBadge{color:var(--color-text);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:16px;font-size:.85rem;font-weight:700;display:inline-flex}.dean-portal .podiumRankBadge--1,.dean-portal .podiumRankBadge--2,.dean-portal .podiumRankBadge--3{color:var(--color-text);background:0 0;border:none}.dean-portal .podiumName{color:var(--color-text);white-space:nowrap;font-size:.82rem;font-weight:600}.dean-portal .podiumSection{color:var(--color-text-muted,#8b949e);background:var(--color-surface-hover);border-radius:4px;padding:1px 6px;font-size:.72rem}.dean-portal .podiumRight{flex-shrink:0;align-items:center;gap:12px;display:flex}.dean-portal .podiumScore{font-family:var(--font-mono,monospace);color:var(--color-accent);font-size:.82rem;font-weight:700}.dean-portal .podiumActs{color:var(--color-text-muted,#8b949e);font-size:.72rem}.dean-portal .commonErrorsContainer{flex-direction:column;flex:1;gap:10px;display:flex}.dean-portal .diagErrorList{flex-direction:column;flex:1;gap:8px;display:flex}.dean-portal .diagErrorRow{background:var(--color-surface-elevated);border:1px solid var(--color-border);transition:all var(--duration-fast,70ms) ease;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.dean-portal .diagErrorRow:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.dean-portal .diagErrorLabel{color:var(--text-main,#fff);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.dean-portal .diagErrorBadge{background:var(--color-danger-bg);color:var(--color-danger);font-size:.75rem;font-weight:700;font-family:var(--font-mono,monospace);white-space:nowrap;border:1px solid #dc262640;border-radius:6px;padding:3px 9px}.dean-portal .diagSummaryFooter{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-text-muted);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding:10px 14px;font-size:.78rem;display:flex}.dean-portal .diagSummaryLeft{align-items:center;gap:8px;display:flex}.dean-portal .diagPulseDot{background:var(--color-accent);width:6px;height:6px;box-shadow:var(--shadow-card);border-radius:50%}.dean-portal .diagSummaryHits{color:var(--color-accent);font-weight:700;font-family:var(--font-mono,monospace)}.dean-portal .overviewBottomGrid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:20px;display:grid}@media (width<=1024px){.dean-portal .overviewBottomGrid{grid-template-columns:1fr}}.dean-portal .cohortTileGrid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width<=640px){.dean-portal .cohortTileGrid{grid-template-columns:1fr}}.dean-portal .cohortTile{background:var(--color-surface-elevated);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base,.15s) ease;border-radius:10px;flex-direction:column;gap:6px;min-height:44px;padding:14px 16px;display:flex}.dean-portal .cohortTile:hover{background:var(--color-surface-hover);border-color:var(--color-accent);transform:translateY(-2px)}.dean-portal .cohortTileTop{justify-content:space-between;align-items:center;display:flex}.dean-portal .cohortSectionName{color:var(--color-text);letter-spacing:.02em;font-size:.95rem;font-weight:700}.dean-portal .cohortTileArrow{color:var(--color-text-muted,#8b949e);transition:transform var(--duration-fast,70ms) ease, color var(--duration-fast,70ms) ease;font-size:.9rem}.dean-portal .cohortTile:hover .cohortTileArrow{color:var(--color-accent);transform:translate(3px)}.dean-portal .cohortMeta{color:var(--color-text-muted,#8b949e);align-items:center;gap:8px;font-size:.76rem;display:flex}.dean-portal .cohortStudentCount{color:var(--color-accent);font-weight:700;font-family:var(--font-mono,monospace)}.dean-portal .cohortCourseLabel{color:#8b949ecc;font-size:.74rem;line-height:1.3}.dean-portal .auditStreamList{flex-direction:column;gap:10px;display:flex}.dean-portal .auditStreamItem{background:var(--color-surface-elevated);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base,.15s) ease;border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.dean-portal .auditStreamItem:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.dean-portal .auditInstructorAvatar{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:36px;height:36px;color:var(--color-accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex}.dean-portal .auditStreamContent{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.dean-portal .auditStreamTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.dean-portal .auditInstructorName{color:var(--color-text);font-size:.84rem;font-weight:600}.dean-portal .auditTime{color:var(--color-text-muted,#8b949e);white-space:nowrap;font-size:.72rem}.dean-portal .auditDetails{color:var(--color-text-muted,#8b949e);margin:0;font-size:.78rem;line-height:1.35}.dean-portal .cardHeaderRight{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.dean-portal .filterGroup{align-items:center;gap:8px;display:flex}.dean-portal .filterLabel{color:var(--color-text-muted,#8b949e);white-space:nowrap;font-size:.8rem;font-weight:600}.dean-portal .sectionCount{text-align:center;border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.02em;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;line-height:1.2;display:inline-flex}.dean-portal .cardSubtitle,.dean-portal .cardSub{color:var(--color-text-muted,#8b949e);margin:0;font-size:.84rem;line-height:1.5}.dean-portal .classSearchWrap,.dean-portal .deanSearchWrap{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);height:36px;color:var(--color-text-muted);min-width:240px;transition:border-color var(--duration-fast,70ms) ease;align-items:center;gap:8px;padding:0 12px;display:flex}.dean-portal .classSearchWrap:focus-within,.dean-portal .deanSearchWrap:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.dean-portal .searchIconWrap{color:var(--color-text-muted,#8b949e);align-items:center;display:flex}.dean-portal .classSearchInput,.dean-portal .deanSearchInput{color:var(--color-text);background:0 0;border:none;outline:none;width:100%;font-size:.84rem}.dean-portal .deanSelect{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1.5px solid var(--color-border);height:40px;box-shadow:var(--shadow-card);color:var(--color-text);cursor:pointer;transition:border-color var(--duration-fast,70ms) ease, box-shadow var(--duration-fast,70ms) ease;outline:none;padding:0 14px;font-size:.84rem;font-weight:500}.dean-portal .deanSelect:hover{border-color:var(--color-border-hover)}.dean-portal .deanSelect:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.dean-portal .deanSelect option{background:var(--color-surface);color:var(--color-text)}.dean-portal .deanRefreshBtn{border-radius:var(--radius-md,8px);background:var(--color-surface-card);border:1px solid var(--color-border);height:40px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.dean-portal .deanRefreshBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.dean-portal .tableScrollWrap,.dean-portal .tableWrap{border-radius:var(--radius-md,10px);border:1px solid var(--color-border);background:var(--color-surface-card);width:100%;overflow-x:auto}.dean-portal .deanTable{border-collapse:collapse;text-align:left;width:100%;font-size:.86rem}.dean-portal .deanTable th{background:var(--color-surface-subtle);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);padding:14px 18px;font-size:.74rem;font-weight:700}.dean-portal .deanTable td{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);vertical-align:middle;background:var(--color-surface-card);padding:14px 18px}.dean-portal .deanTable tr:last-child td{border-bottom:none}.dean-portal .deanTable tr:hover td{background:var(--color-surface-hover)}.dean-portal .tableLoading{text-align:center;color:var(--color-text-muted);padding:32px 20px;font-size:.88rem}.dean-portal .sectionPillsRow,.dean-portal .sectionPillsBar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dean-portal .sectionPill{border-radius:var(--radius-pill,9999px);background:var(--color-surface-card);border:1px solid var(--color-border-subtle,#ffffff14);min-height:42px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:8px 18px;font-size:.82rem;font-weight:600;display:inline-flex}.dean-portal .sectionPill:hover{background:var(--color-surface-hover);color:var(--color-text)}.dean-portal .sectionPill.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.dean-portal .sectionRosterGrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:16px;display:grid}.dean-portal .diagnosticsGrid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px;display:grid}.dean-portal .emptyStateHint{text-align:center;color:var(--color-text-muted,#8b949e);background:var(--color-surface-elevated);border-radius:var(--radius-md,8px);border:1px dashed var(--color-border);padding:24px 16px;font-size:.84rem}.dean-portal .classFacultyHeaderRow{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;display:flex}.dean-portal .cfMetaLeft{flex-direction:column;gap:4px;display:flex}.dean-portal .cfBadgeGroup{align-items:center;gap:8px;display:flex}.dean-portal .logsPaginationRow,.dean-portal .paginationRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;display:flex}.dean-portal .logsPaginationInfo,.dean-portal .paginationPageInfo{color:var(--color-text-muted,#8b949e);font-size:.82rem}.dean-portal .logsPaginationBtns{align-items:center;gap:8px;display:flex}.dean-portal .paginationBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border-subtle,#ffffff14);height:38px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.dean-portal .paginationBtn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.dean-portal .paginationBtn:disabled{opacity:.4;cursor:not-allowed}.dean-portal .paginationPageNumber{font-size:.82rem;font-family:var(--font-mono);color:var(--color-text);padding:0 8px}.dean-portal .telemetryRowInteractive{cursor:pointer;transition:background .16s,transform .16s}.dean-portal .telemetryRowInteractive:hover td{background:var(--color-surface-hover)!important}.dean-portal .telemetryRowInteractive:hover td:first-child{border-left:3px solid var(--primary);padding-left:15px}.dean-portal .telemetryTitleCell{align-items:center;gap:12px;display:flex}.dean-portal .telemetryPreviewIcon{background:var(--color-accent-dim);width:28px;height:28px;color:var(--color-accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s,background .18s;display:inline-flex}.dean-portal .telemetryRowInteractive:hover .telemetryPreviewIcon{background:var(--color-accent-dim);transform:scale(1.08)}.dean-portal .telemetryMetaSmall{align-items:center;gap:6px;margin-top:4px;display:flex}.dean-portal .telemetryLangBadge{text-transform:uppercase;letter-spacing:.04em;color:#38bdf8;background:#38bdf826;border:1px solid #38bdf840;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.dean-portal .telemetrySectionBadge{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.dean-portal .telemetryTraceWrap{flex-direction:column;gap:6px;display:flex}.dean-portal .telemetryClickHint{color:var(--primary);opacity:.75;align-items:center;gap:4px;font-size:11px;font-weight:600;transition:opacity .15s,transform .15s;display:flex}.dean-portal .telemetryRowInteractive:hover .telemetryClickHint{opacity:1}.dean-portal .telemetryRowInteractive:hover .telemetryArrow{transform:translate(3px)}.dean-portal .telemetryArrow{transition:transform .15s;display:inline-block}.miniPreviewModalOverlay{z-index:9999;-webkit-backdrop-filter:blur(10px);box-sizing:border-box;background:#06080cd9;justify-content:center;align-items:center;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) miniPreviewFadeIn;display:flex;position:fixed;inset:0}@keyframes miniPreviewFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.miniPreviewModalWindow{background:var(--color-surface-card);border:1px solid var(--color-border);width:95vw;max-width:1200px;height:88vh;max-height:900px;box-shadow:var(--shadow-card);border-radius:16px;flex-direction:column;display:flex;position:relative;overflow:hidden}.miniPreviewHeader{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 24px;display:flex}.miniPreviewHeaderLeft{flex-direction:column;gap:6px;min-width:0;display:flex}.miniPreviewBadgeRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.miniPreviewBadge{border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.miniPreviewBadge.errorBadge{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}.miniPreviewBadge.langBadge{color:#38bdf8;text-transform:uppercase;letter-spacing:.05em;background:#38bdf826;border:1px solid #38bdf84d}.miniPreviewBadge.sectionBadge{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border)}.miniPreviewClassName{color:var(--color-text-muted);font-size:12px;font-weight:500}.miniPreviewPulse{border-radius:50%;width:7px;height:7px;display:inline-block}.miniPreviewPulse.redPulse{background:#ef4444;animation:1.8s infinite miniRedPulse;box-shadow:0 0 #ef4444b3}@keyframes miniRedPulse{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.miniPreviewTitle{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.28rem;font-weight:700}.miniPreviewMetaRow{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;display:flex}.miniPreviewMetaItem strong{color:var(--color-text)}.miniPreviewMetaSep{opacity:.4}.miniPreviewStatusFail{color:#f87171;font-weight:700}.miniPreviewHeaderRight{flex-shrink:0;align-items:center;gap:10px;display:flex}.miniPreviewFullIdeBtn{background:var(--color-accent-dim);height:36px;color:var(--color-accent);border:1px solid var(--color-accent-border);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-size:.82rem;font-weight:600;transition:all .18s;display:inline-flex}.miniPreviewFullIdeBtn:hover{background:var(--primary);color:#0c0d12;border-color:var(--primary);box-shadow:var(--shadow-card)}.miniPreviewCloseBtn{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:all .18s;display:inline-flex}.miniPreviewCloseBtn:hover{color:#f87171;background:#ef444426;border-color:#ef44444d}.miniPreviewSplitBody{background:var(--color-surface);flex:1;min-height:0;display:flex;overflow:hidden}.miniPreviewLeftPane{border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;width:38%;min-width:320px;max-width:440px;min-height:0;display:flex}.miniPreviewPaneHeader{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:8px;padding:12px 18px;font-size:.76rem;font-weight:700;display:flex}.miniPreviewLeftScroll{flex:1;padding:20px;overflow-y:auto}.miniPreviewPaneLoading{color:var(--color-text-dim);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;font-size:.85rem;display:flex}.miniPreviewSpinner{border:2px solid var(--color-accent-dim);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite miniSpin}@keyframes miniSpin{to{transform:rotate(360deg)}}.miniPreviewInstructionsContent{flex-direction:column;gap:14px;display:flex}.miniPreviewInstructionsText{color:var(--color-text);white-space:pre-wrap;word-break:break-word;font-size:.88rem;line-height:1.65}.miniPreviewRightPane{background:var(--color-surface);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.miniPreviewCodeTabs{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:8px 16px;display:flex}.miniPreviewTabsLeft{align-items:center;gap:6px;display:flex}.miniPreviewTabBtn{height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;padding:0 12px;font-size:.8rem;font-weight:600;transition:all .16s;display:inline-flex}.miniPreviewTabBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.miniPreviewTabBtn.active{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.codeTabDot{border-radius:50%;width:6px;height:6px;display:inline-block}.codeTabDot.errorDot{background:#ef4444}.codeTabDot.starterDot{background:#38bdf8}.miniPreviewCopyBtn{background:var(--color-surface-elevated);border:1px solid var(--color-border);height:28px;color:var(--color-text-muted);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:.74rem;font-weight:600;transition:all .16s;display:inline-flex}.miniPreviewCopyBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.miniPreviewCodeContainer{background:var(--color-surface);flex:1;min-height:0;overflow:auto}.miniPreviewCodeViewer{min-height:100%;font-family:var(--font-mono,"GitLab Mono", monospace);font-size:12.5px;line-height:1.6;display:flex}.miniPreviewGutter{background:var(--color-surface-elevated);border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none;text-align:right;box-sizing:border-box;flex-direction:column;min-width:38px;padding:16px 12px;display:flex}.miniPreviewLineNum{color:#4b5563;font-size:11.5px;line-height:1.6}.miniPreviewCodeLines{color:var(--color-text);font-family:var(--font-mono,"GitLab Mono", monospace);white-space:pre;tab-size:4;flex:1;margin:0;padding:16px 18px;font-size:12.5px;line-height:1.6}.miniPreviewTerminal{border-top:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;flex-shrink:0;height:210px;min-height:140px;display:flex}.miniPreviewTerminalHeader{background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;font-size:11px;display:flex}.terminalHeaderLeft{align-items:center;gap:8px;display:flex}.terminalDot{border-radius:50%;width:9px;height:9px;display:inline-block}.terminalDot.red{background:#ff5f56}.terminalDot.yellow{background:#ffbd2e}.terminalDot.green{background:#27c93f}.terminalTitle{letter-spacing:.04em;color:var(--color-text-muted);margin-left:4px;font-size:11.5px;font-weight:700}.terminalStatusTag{font-family:var(--font-mono,monospace);color:#f87171;background:#ef444426;border:1px solid #ef44444d;border-radius:4px;padding:2px 6px;font-size:10px}.miniPreviewTerminalBody{font-family:var(--font-mono,monospace);background:var(--color-surface);flex:1;padding:12px 18px;font-size:12px;line-height:1.55;overflow-y:auto}.terminalErrorTrace{color:#fca5a5;font-family:var(--font-mono,monospace);white-space:pre-wrap;word-break:break-word;margin:0}.miniPreviewFooter{border-top:1px solid var(--color-border);background:var(--color-surface-card);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.miniPreviewFooterHint{color:var(--color-text-muted);font-size:.8rem}.miniPreviewFooterHint strong{color:var(--color-text)}.miniPreviewFooterActions{align-items:center;gap:10px;display:flex}@media (width<=768px){.miniPreviewSplitBody{flex-direction:column}.miniPreviewLeftPane{border-right:none;border-bottom:1px solid var(--color-border);width:100%;max-width:100%;height:35%}}.deanUrgentNoticeBanner{background:var(--color-danger-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #dc262640;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:14px 20px;display:flex}.reviewApplicationsBtn{background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-card);border-radius:8px;flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;font-family:inherit;font-size:.825rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.reviewApplicationsBtn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.reviewApplicationsBtn:active{transform:translateY(0)}.reviewApplicationsBtn i{font-size:.95rem;transition:transform .2s}.reviewApplicationsBtn:hover i{transform:translate(3px)}.deanBtn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.deanBtn--sm{border-radius:6px;padding:6px 12px;font-size:.8rem}.deanBtn--primary{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);box-shadow:var(--shadow-card)}.deanBtn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--shadow-card);transform:translateY(-1px)}.deanBtn--secondary{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}.deanBtn--secondary:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.deanBtn--danger{color:#f87171;background:#ef44441f;border-color:#ef444459}.deanBtn--danger:hover{color:var(--color-text);background:#ef444440;border-color:#ef4444}.deanUrgentNoticeLeft{color:var(--color-danger);align-items:center;gap:12px;font-size:.925rem;line-height:1.4;display:flex}.deanUrgentNoticeLeft strong{color:var(--color-text)}.urgentNoticePulse{background:#ef4444;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.8s infinite pulse-ring;box-shadow:0 0 10px #ef4444}@keyframes pulse-ring{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.15);box-shadow:0 0 0 8px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.tabCounter--urgent{font-weight:700;animation:2s infinite pulse-ring;box-shadow:0 0 8px #ef444480;color:#fff!important;background:#ef4444!important}.approvalsHeaderSection{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.approvalsTitleWrap{flex:1;min-width:300px}.approvalsTitleRow{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;display:flex}.dean-portal .badgeDot--gold{background:#fbbf24;box-shadow:0 0 6px #fbbf24cc}.dean-portal .badgeDot--lime{background:var(--color-accent);box-shadow:var(--shadow-card)}.dean-portal .badgeDot--danger{background:#f87171;box-shadow:0 0 6px #f87171cc}.approvalsMetricsRow{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}@media (width<=1024px){.approvalsMetricsRow{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.approvalsMetricsRow{grid-template-columns:1fr}}.approvalMetricCard{background:var(--color-surface-card,#14171d);border:1px solid var(--color-border-subtle,#ffffff14);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-card,#ffffff12 0px 1px .5px 0px inset, #0003 0px 2px 8px 0px);cursor:pointer;transition:border-color var(--duration-base,.15s) ease, background-color var(--duration-base,.15s) ease;align-items:center;gap:14px;padding:16px 20px;display:flex}.approvalMetricCard:hover{border-color:var(--color-border-hover)}.approvalMetricCard.selected{border-color:var(--color-accent);background:var(--color-accent-dim);box-shadow:var(--shadow-card)}.approvalMetricIcon{border-radius:var(--radius-md,10px);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.approvalMetricIcon.pending{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.approvalMetricIcon.approved{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.approvalMetricIcon.rejected{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.approvalMetricIcon.all{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info)}.approvalMetricBody{flex-direction:column;gap:2px;min-width:0;display:flex}.approvalMetricLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted,#8b949e);font-size:.72rem;font-weight:600}.approvalMetricValue{font-family:var(--font-mono,"GitLab Mono", monospace);color:var(--color-text);font-size:1.55rem;font-weight:800;line-height:1.1}.approvalMetricSub{color:var(--color-text-muted,#8b949e);margin-top:1px;font-size:.74rem}.approvalsBanner{border-radius:var(--radius-md,8px);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 18px;font-size:.88rem;display:flex}.approvalsBanner.success{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.approvalsBanner.error{color:#fca5a5;background:#ef444414;border:1px solid #ef44444d}.bannerContentLeft{align-items:center;gap:10px;display:flex}.bannerCloseBtn{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;transition:opacity .15s}.bannerCloseBtn:hover{opacity:1}.approvalsStatusTabs{background:var(--color-surface-subtle);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x;align-items:center;gap:2px;max-width:100%;padding:3px;display:flex;overflow-x:auto}.approvalsStatusTabs::-webkit-scrollbar{display:none}.statusFilterBtn{border-radius:var(--radius-sm,6px);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast,70ms) ease;white-space:nowrap;background:0 0;border:1px solid #0000;flex-shrink:0;align-items:center;gap:6px;padding:6px 13px;font-size:.8rem;font-weight:600;display:inline-flex}.statusFilterBtn:hover{color:var(--color-text);background:var(--color-surface-hover)}.statusFilterBtn.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent);font-weight:700}.approvalsTableCard{overflow:hidden;padding:0!important}.approvalsTableCard .cardHeader{border-bottom:1px solid var(--color-border-subtle);padding:18px 24px}.approvalsTable th{background:var(--color-surface-subtle);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 20px;font-size:.74rem;font-weight:700}.approvalsTable td{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);vertical-align:middle;background:var(--color-surface-card);padding:14px 20px}.approvalsTable tr:hover td{background:var(--color-surface-hover)}.applicantProfileCell{align-items:center;gap:12px;display:flex}.applicantAvatar{border-radius:var(--radius-md,10px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);width:36px;height:36px;color:var(--color-accent);font-size:.88rem;font-weight:700;font-family:var(--font-display,"GitLab Sans", sans-serif);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.applicantAvatar svg,.applicantAvatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.applicantInfo{flex-direction:column;gap:2px;display:flex}.applicantName{color:var(--color-text);font-size:.88rem;font-weight:600}.applicantRoleTag{color:var(--color-text-muted,#8b949e);font-size:.72rem}.applicantEmailCell{align-items:center;display:flex}.applicantEmailText{font-family:var(--font-mono,"GitLab Mono", monospace);color:var(--color-text-muted);font-size:.82rem}.applicantDateCell{flex-direction:column;gap:2px;display:flex}.applicantDate{color:var(--color-text);font-size:.82rem;font-weight:500}.applicantTimeSub{color:var(--color-text-muted,#8b949e);font-size:.72rem}.approvalNotesCell{max-width:280px}.approvalOutcomeText{align-items:center;gap:6px;font-size:.82rem;line-height:1.4;display:inline-flex}.approvalOutcomeText.pending{color:var(--color-text-muted,#8b949e)}.approvalOutcomeText.approved{color:var(--color-accent)}.approvalOutcomeText.rejected{color:#fca5a5;text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.reviewedAtSub{color:var(--color-text-muted,#8b949e);font-size:.74rem;font-weight:400}.approvalActionBtns{justify-content:flex-end;align-items:center;gap:8px;display:flex}.resolvedTag{border-radius:var(--radius-pill,9999px);letter-spacing:.02em;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.resolvedTag--approved{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.resolvedTag--rejected{color:var(--color-text-muted);background:#ef444414;border:1px solid #ef444440}.approvalsEmptyState{text-align:center;flex-direction:column;align-items:center;padding:64px 24px;display:flex}.approvalsEmptyIconWrap{border-radius:var(--radius-md,12px);background:var(--color-surface-elevated);border:1px solid var(--color-border);width:56px;height:56px;color:var(--color-text-muted,#8b949e);justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.approvalsEmptyTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);margin:0 0 6px;font-size:1.15rem;font-weight:700}.approvalsEmptySub{color:var(--color-text-muted,#8b949e);max-width:440px;margin:0 auto;font-size:.84rem;line-height:1.5}.rejectModalWindow{max-width:520px}.rejectModalBody{padding:20px 24px}.rejectModalDescription{color:var(--color-text-muted);margin-bottom:16px;font-size:.88rem;line-height:1.5}.rejectReasonTextarea{background:var(--color-surface-card);border:1px solid var(--color-border);width:100%;color:var(--color-text);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;margin-top:6px;margin-bottom:12px;padding:10px 12px;font-family:inherit;font-size:.88rem}.rejectReasonTextarea:focus{border-color:#f87171}.quickReasonsRow{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.quickReasonsLabel{color:var(--color-text-muted);margin-right:4px;font-size:.76rem}.quickReasonTagBtn{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:.74rem;transition:all .15s}.quickReasonTagBtn:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:#dc262659}.dean-portal .searchableSelectWrap{align-items:center;width:auto;display:inline-flex;position:relative}.dean-portal .searchableSelectWrap.fullWidth{width:100%}.dean-portal .activityErrorSearchableSelect{min-width:260px}.dean-portal .searchableSelectInputWrap{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);width:100%;height:40px;box-shadow:var(--shadow-card);transition:border-color var(--duration-fast,70ms) ease, box-shadow var(--duration-fast,70ms) ease;cursor:pointer;align-items:center;display:flex;position:relative}.dean-portal .searchableSelectInputWrap:hover:not(.disabled){border-color:var(--color-border-hover)}.dean-portal .searchableSelectInputWrap.focused{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.dean-portal .searchableSelectInputWrap.disabled{opacity:.5;cursor:not-allowed}.dean-portal .searchableSelectInput{width:100%;height:100%;color:var(--color-text);cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;outline:none;padding:0 32px 0 14px;font-family:inherit;font-size:.84rem;font-weight:500}.dean-portal .searchableSelectInput:focus{cursor:text}.dean-portal .searchableSelectCaret{pointer-events:none;color:var(--color-text-muted);transition:transform var(--duration-fast,.12s) ease;align-items:center;font-size:14px;display:flex;position:absolute;right:12px}.dean-portal .searchableSelectCaret.open{transform:rotate(180deg)}.dean-portal .searchableSelectDropdown{z-index:1200;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:100%;box-shadow:var(--shadow-elevated);max-height:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.dean-portal .searchableSelectDropdown.alignRight{width:max-content;min-width:100%;max-width:380px;left:auto;right:0}.dean-portal .searchableSelectDropdown::-webkit-scrollbar{width:6px}.dean-portal .searchableSelectDropdown::-webkit-scrollbar-track{background:0 0}.dean-portal .searchableSelectDropdown::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:3px}.dean-portal .searchableSelectOption{color:var(--color-text);cursor:pointer;transition:background var(--duration-fast,70ms) ease;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;display:flex}.dean-portal .searchableSelectOption:hover,.dean-portal .searchableSelectOption.highlighted{background:var(--color-surface-hover,#ffffff0f);color:var(--color-text)}.dean-portal .searchableSelectOption.selected{background:var(--color-accent-dim);color:var(--color-accent);font-weight:600}.dean-portal .searchableSelectOptionLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dean-portal .searchableSelectCheck{color:var(--color-accent);flex-shrink:0;margin-left:8px;font-size:14px}.dean-portal .searchableSelectEmpty{color:var(--color-text-muted);text-align:center;padding:12px 14px;font-size:.8rem}@media (width<=1024px){.dean-portal .contentContainer{padding:20px 16px 48px}}@media (width<=768px){.dean-portal .contentContainer{gap:16px;padding:16px 12px 36px!important}.dean-portal .deanHero{border-radius:var(--radius-lg,12px)!important;padding:18px 16px!important}.dean-portal .deanHeroTop{flex-direction:column!important;align-items:stretch!important;gap:14px!important}.dean-portal .deanHeroTitle{font-size:clamp(1.4rem,5vw,1.85rem)!important}.dean-portal .deanHeroSub{font-size:.82rem!important}.dean-portal .deanTabNav,.deanTabNav{-webkit-overflow-scrolling:touch!important;flex-wrap:nowrap!important;gap:6px!important;padding:6px!important;overflow-x:auto!important}.dean-portal .deanTabNavBtn,.deanTabNavBtn{flex-shrink:0!important;min-height:40px!important;padding:8px 14px!important;font-size:.82rem!important}.dean-portal .kpiCard{padding:14px 16px!important}.dean-portal .tableWrapper,.dean-portal .activityLogTableWrapper,.dean-portal .approvalTableWrapper{-webkit-overflow-scrolling:touch!important;width:100%!important;overflow-x:auto!important}.dean-portal .filterControlsRow,.approvalsFilterRow{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.dean-portal .filterControlsRow input,.approvalsFilterRow input,.dean-portal .filterControlsRow select,.approvalsFilterRow select{width:100%!important}.dean-portal .cardHeader{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.dean-portal .cardHeaderLeft{flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;width:100%!important;display:flex!important}.dean-portal .cardTitle{flex:auto!important;min-width:0!important;font-size:1.15rem!important;line-height:1.25!important}.dean-portal .sectionCount{white-space:nowrap!important;text-align:center!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;padding:3px 10px!important;line-height:1.2!important;display:inline-flex!important}.dean-portal .cardHeaderRight{flex-direction:column!important;align-items:stretch!important;gap:10px!important;width:100%!important;display:flex!important}.dean-portal .filterGroup{flex-direction:column!important;align-items:stretch!important;gap:6px!important;width:100%!important;display:flex!important}.dean-portal .filterLabel{width:100%!important}.dean-portal .searchableSelectWrap,.dean-portal .activityErrorSearchableSelect,.dean-portal .searchableSelectInputWrap{width:100%!important;min-width:0!important;max-width:100%!important}.dean-portal .searchableSelectDropdown,.dean-portal .searchableSelectDropdown.alignRight{width:100%!important;max-width:100%!important;left:0!important;right:0!important}.approvalsTableCard .cardHeader{padding:14px 16px!important}.approvalsTableCard .cardHeaderRight{flex-direction:column!important;align-items:stretch!important;gap:10px!important;width:100%!important;display:flex!important}.approvalsTableCard .deanSearchWrap{width:100%!important}.approvalsStatusTabs{-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;touch-action:pan-x!important;width:100%!important;max-width:100%!important;padding:4px!important;display:flex!important;overflow-x:auto!important}.approvalsStatusTabs::-webkit-scrollbar{display:none!important}.statusFilterBtn{white-space:nowrap!important;flex-shrink:0!important}.miniPreviewModalWindow,.rejectModalWindow,.modal-box-danger{border-radius:var(--radius-lg,12px)!important;width:96vw!important;max-width:96vw!important;max-height:92dvh!important;overflow-y:auto!important}.miniPreviewHeader{padding:14px 16px!important}.miniPreviewHeaderLeft h3,.rejectModalTitle{padding-right:38px!important;font-size:1.1rem!important}.miniPreviewSplitBody{flex-direction:column!important}.miniPreviewLeftPane{border-right:none!important;border-bottom:1px solid var(--color-border)!important;width:100%!important;max-height:200px!important}}@media (width<=640px){.dean-portal .contentContainer{padding:12px 10px 32px!important}.dean-portal .deanHero{padding:16px 12px!important}.dean-portal .deanHeroBadges{gap:6px!important}.dean-portal .deanHeroBadge,.dean-portal .deanHeroSubBadge{padding:2px 8px!important;font-size:.68rem!important}.miniPreviewModalWindow,.rejectModalWindow,.modal-box-danger{padding:16px 14px!important}}.dean-teachers-page{background:var(--color-bg);width:100%;min-height:100vh;color:var(--color-text);font-family:inherit;position:relative;overflow-x:hidden}.dean-teachers-page .bg-glow{filter:blur(120px);opacity:.12;pointer-events:none;z-index:0;border-radius:50%;width:500px;height:500px;position:fixed}.dean-teachers-page .glow-top-left{background:radial-gradient(circle,#6366f1 0%,#0000 70%);top:-150px;left:-100px}.dean-teachers-page .glow-bottom-right{background:radial-gradient(circle,#ec4899 0%,#0000 70%);bottom:-150px;right:-100px}.dean-teachers-page .contentContainer{z-index:1;max-width:1440px;margin:0 auto;padding:88px 32px 64px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.dean-teachers-hero{margin-bottom:28px}.dean-teachers-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.dean-teachers-title-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.dean-teachers-badge{text-transform:uppercase;letter-spacing:.05em;color:#6366f1;background:#6366f11f;border:1px solid #6366f13d;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.dean-teachers-title{letter-spacing:-.02em;color:var(--color-text);margin:0;font-size:28px;font-weight:800}.dean-teachers-sub{color:var(--color-text-dim,#94a3b8);max-width:720px;margin:0;font-size:14px;line-height:1.5}.dean-teachers-hero-actions{align-items:center;gap:12px;display:flex}.btn-secondary-dean{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-secondary-dean:hover{background:var(--color-surface-hover,#ffffff0f);border-color:var(--color-border-hover,#fff3);transform:translateY(-1px)}.dean-teachers-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px;display:grid}.kpi-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;align-items:center;gap:16px;padding:18px 20px;transition:transform .2s,border-color .2s;display:flex;box-shadow:0 4px 16px #0000000a}.kpi-stat-card:hover{border-color:#6366f14d;transform:translateY(-2px)}.kpi-icon-wrap{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;display:flex}.kpi-icon-indigo{color:#6366f1;background:#6366f11f}.kpi-icon-emerald{color:#10b981;background:#10b9811f}.kpi-icon-amber{color:#f59e0b;background:#f59e0b1f}.kpi-icon-cyan{color:#06b6d4;background:#06b6d41f}.kpi-stat-meta{flex-direction:column;display:flex}.kpi-stat-label{color:var(--color-text-dim,#94a3b8);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:12px;font-weight:600}.kpi-stat-val{letter-spacing:-.02em;color:var(--color-text);font-size:24px;font-weight:800}.dean-teachers-toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;display:flex}.toolbar-left{flex:1;align-items:center;gap:14px;min-width:280px;display:flex}.search-box-wrap{flex:1;max-width:380px;position:relative}.search-box-icon{color:var(--color-text-dim,#94a3b8);pointer-events:none;font-size:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input-field{background:var(--color-bg);border:1px solid var(--color-border);width:100%;color:var(--color-text);border-radius:8px;outline:none;padding:9px 12px 9px 36px;font-size:13px;transition:border-color .2s,box-shadow .2s}.search-input-field:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.toolbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-select{background:var(--color-surface);border:1.5px solid var(--color-border);box-shadow:var(--shadow-card);color:var(--color-text);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .2s,box-shadow .2s}.filter-select:hover{border-color:var(--color-border-hover)}.filter-select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.filter-select option{background:var(--color-surface);color:var(--color-text)}.roster-count-badge{color:var(--color-text-dim,#94a3b8);background:var(--color-surface-hover);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600}.dean-teachers-table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden;box-shadow:0 4px 20px #0000000a}.table-responsive{width:100%;overflow-x:auto}.teachers-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.teachers-table th{background:var(--color-surface-hover,#ffffff08);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-dim,#94a3b8);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 18px;font-size:11px;font-weight:700}.teachers-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:16px 18px}.teachers-table tbody tr{transition:background-color .15s}.teachers-table tbody tr:hover{background:#6366f108}.teacher-profile-cell{align-items:center;gap:14px;display:flex}.teacher-avatar-wrapper{background:var(--color-bg);border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;width:40px;height:40px;overflow:hidden}.teacher-meta{flex-direction:column;gap:2px;display:flex}.teacher-name-text{color:var(--color-text);font-size:14px;font-weight:700}.teacher-email-text{color:var(--color-text-dim,#94a3b8);font-size:12px}.id-badge{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-border);border-radius:4px;align-items:center;padding:2px 7px;font-family:monospace;font-size:11px;font-weight:600;display:inline-flex}.metric-pill{border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.metric-pill--classes{color:#818cf8;background:#6366f114}.metric-pill--students{color:#34d399;background:#10b98114}.metric-pill--activities{color:#fbbf24;background:#f59e0b14}.btn-delete-teacher{color:#ef4444;cursor:pointer;background:#ef444414;border:1px solid #ef444433;border-radius:7px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.btn-delete-teacher:hover:not(:disabled){color:#fff;background:#ef4444;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 4px 12px #ef444440}.btn-delete-teacher:disabled{opacity:.5;cursor:not-allowed}.empty-roster-state{text-align:center;padding:64px 24px}.empty-roster-icon{color:var(--color-text-dim,#94a3b8);margin-bottom:12px;font-size:48px}.empty-roster-title{color:var(--color-text);margin-bottom:6px;font-size:16px;font-weight:700}.empty-roster-desc{color:var(--color-text-dim,#94a3b8);max-width:400px;margin:0 auto;font-size:13px}.modal-backdrop-dean{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-box-danger{background:var(--color-surface);border:1px solid #ef444459;border-radius:16px;width:100%;max-width:540px;animation:.2s cubic-bezier(.16,1,.3,1) slideUp;overflow:hidden;box-shadow:0 20px 40px #00000059,0 0 0 1px #ef444426}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header-danger{border-bottom:1px solid var(--color-border);background:linear-gradient(#ef44441a 0%,#0000 100%);align-items:flex-start;gap:16px;padding:22px 24px;display:flex}.modal-header-icon{color:#ef4444;background:#ef444426;border:1px solid #ef44444d;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.modal-header-content{flex:1}.modal-header-title{color:var(--color-text);margin:0 0 4px;font-size:18px;font-weight:800}.modal-header-sub{color:var(--color-text-dim,#94a3b8);margin:0;font-size:13px}.modal-body{padding:24px}.cascade-warning-card{background:#ef44440d;border:1px solid #ef444433;border-radius:10px;margin-bottom:20px;padding:14px 16px}.cascade-warning-title{color:#ef4444;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.cascade-items-list{color:var(--color-text);margin:0;padding-left:18px;font-size:12px;line-height:1.6}.cascade-impact-metrics{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.impact-metric-box{background:var(--color-bg);border:1px solid var(--color-border);text-align:center;border-radius:8px;padding:10px 12px}.impact-metric-val{color:var(--color-text);font-size:18px;font-weight:800}.impact-metric-lbl{color:var(--color-text-dim,#94a3b8);text-transform:uppercase;font-size:11px;font-weight:600}.target-teacher-box{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:12px;margin-bottom:20px;padding:12px 14px;display:flex}.modal-footer{background:var(--color-surface);border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.btn-modal-cancel{color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .2s}.btn-modal-cancel:hover{background:var(--color-surface-hover,#ffffff0d)}.btn-modal-confirm-delete{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #ef44444d}.btn-modal-confirm-delete:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.btn-modal-confirm-delete:disabled{opacity:.6;cursor:not-allowed}.dean-toast{z-index:1100;border-radius:10px;align-items:center;gap:10px;padding:14px 20px;font-size:13px;font-weight:600;animation:.25s cubic-bezier(.16,1,.3,1) toastIn;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #00000059}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dean-toast--success{color:#fff;background:#10b981}.dean-toast--error{color:#fff;background:#ef4444}.workspace-teacher-card-compact{background:var(--color-surface-elevated,#ffffff0a);border:1px solid var(--color-border);border-radius:14px;align-items:center;gap:14px;padding:12px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.workspace-teacher-card-compact:hover{border-color:var(--color-border-hover);box-shadow:0 4px 16px #0003}.workspace-teacher-avatar-wrap{background:var(--color-surface-hover);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.workspace-teacher-info{flex-direction:column;min-width:0;display:flex}.workspace-teacher-label-row{align-items:center;gap:6px;margin-bottom:2px;display:flex}.workspace-teacher-sub{color:var(--text-dim,#94a3b8);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.workspace-teacher-name{color:var(--text-main,#f8fafc);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:700;overflow:hidden}.workspace-teacher-email{color:var(--text-dim,#94a3b8);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.workspace-teacher-stats-mini{color:var(--text-dim,#94a3b8);align-items:center;gap:6px;margin-top:3px;font-size:11px;display:flex}.btn-delete-teacher-compact{color:#ef4444;cursor:pointer;white-space:nowrap;background:#ef44441a;border:1px solid #ef444440;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;margin-left:10px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.btn-delete-teacher-compact:hover{color:#fff;background:#ef4444;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 4px 12px #ef444459}.btn-delete-teacher-compact:active{box-shadow:none;transform:translateY(0)}@media (width<=1024px){.dean-teachers-page .contentContainer{padding:72px 20px 48px}}@media (width<=768px){.dean-teachers-page .contentContainer{padding:64px 14px 36px!important}.dean-teachers-hero-top{flex-direction:column!important;align-items:stretch!important;gap:14px!important}.dean-teachers-title{font-size:22px!important}.dean-teachers-hero-actions{width:100%!important}.dean-teachers-hero-actions button{justify-content:center!important;width:100%!important;min-height:42px!important}.dean-teachers-search-bar{flex-direction:column!important;gap:10px!important}.dean-teachers-table-wrap{-webkit-overflow-scrolling:touch!important;width:100%!important;overflow-x:auto!important}.faculty-card-grid{grid-template-columns:1fr!important}}@media (width<=640px){.dean-teachers-page .contentContainer{padding:56px 10px 32px!important}.dean-teachers-title-row{flex-wrap:wrap!important;gap:8px!important}.dean-teachers-badge{font-size:10px!important}}body.ide-active{font-family:var(--font-sans,"GitLab Sans", sans-serif);background-color:var(--color-background,#0f1015);color:var(--color-text,#fff);-webkit-user-select:none;user-select:none;flex-direction:column;height:100vh;display:flex;overflow:hidden}body.ide-active #root{background:var(--color-background,#0f1015);flex-direction:column;height:100vh;display:flex;overflow:hidden}.ide-glow{background:radial-gradient(circle, var(--color-accent-dim) 0%, #0f101500 70%);z-index:0;pointer-events:none;border-radius:50%;width:500px;height:500px;position:fixed}.ide-glow-tl{top:-220px;left:-220px}.ide-glow-br{bottom:-220px;right:-220px}.editorNavbar{background:var(--navbar-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);z-index:40;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex;position:relative}.editorNavLeft{align-items:center;gap:12px;min-width:0;display:flex}.editorNavLeft .landing-brand{cursor:pointer;align-items:center;text-decoration:none;display:inline-flex}.editorNavLeft .brand-text{font-family:var(--font-display,"Space Grotesk", sans-serif);letter-spacing:-.02em;color:var(--color-text);transition:color var(--duration-base,.15s) ease;font-size:1.22rem;font-weight:800}.editorNavLeft .brand-text:hover{color:var(--color-accent)}.editorBackBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);min-height:36px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.editorBackBtn:hover{background:var(--sidebar-item-hover);border-color:var(--color-border-accent);color:var(--color-text);transform:translate(-2px)}.editorNavDivider{color:var(--color-border);-webkit-user-select:none;user-select:none;font-size:.85rem}.editorNavCourse{color:var(--color-text-muted,#8b949e);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:.84rem;font-weight:500;overflow:hidden}.editorNavActivity{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:.88rem;font-weight:600;overflow:hidden}.editorNavRight{align-items:center;gap:12px;display:flex}.autosaveBadge{border-radius:var(--radius-pill,9999px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);align-items:center;gap:6px;padding:4px 10px;font-size:.76rem;font-weight:500;display:inline-flex}.autosaveDot{width:7px;height:7px;transition:background var(--duration-base,.15s) ease;border-radius:50%}.autosaveDot.saved{background:var(--color-accent);box-shadow:var(--shadow-card)}.autosaveDot.saving{background:#f59e0b;box-shadow:0 0 8px #f59e0b80}.editorRunBtn{border-radius:var(--radius-md,8px);background:var(--color-surface,#181a20);border:1px solid var(--color-accent-border);height:38px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:8px;padding:0 14px;font-size:.84rem;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #0000004d}.editorRunBtn:hover:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent);transform:translateY(-1px)}.editorRunBtn:disabled{opacity:.5;cursor:not-allowed}.editorHotkeyBadge{font-family:var(--font-mono,"JetBrains Mono", monospace);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:4px;padding:2px 6px;font-size:.68rem}.editorSubmitBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);height:38px;color:var(--color-on-accent);letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-card);transition:all var(--duration-base,.15s) ease;align-items:center;gap:7px;padding:0 16px;font-size:.84rem;font-weight:700;display:inline-flex}.editorSubmitBtn:hover:not(:disabled){background:var(--color-accent-hover,#bbf696);border-color:var(--color-accent-hover,#bbf696);color:var(--color-on-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.editorSubmitBtn:disabled{opacity:.6;cursor:not-allowed}.teacherPreviewChip{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:32px;color:var(--color-accent);letter-spacing:.03em;align-items:center;gap:6px;padding:0 10px;font-size:.76rem;font-weight:600;display:inline-flex}.studentReviewChip{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:32px;color:var(--color-accent);letter-spacing:.03em;align-items:center;gap:6px;padding:0 12px;font-size:.76rem;font-weight:700;display:inline-flex}.previewModeBanner.reviewVariant{background:var(--color-accent-dim);border-bottom:1px solid var(--color-accent-dim)}.previewModeBanner.overdueVariant{background:#f8717114;border-bottom:1px solid #f8717140}.overdueLivePulse{background:#f87171;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.5s infinite pulseDot;box-shadow:0 0 8px #f87171}.previewModeTag.overdueTag{color:#f87171;background:#f8717126;border-color:#f8717166}.activityOverdueChip{border-radius:var(--radius-pill,9999px);color:#f87171;letter-spacing:.03em;background:#f871711f;border:1px solid #f8717159;align-items:center;gap:6px;padding:5px 12px;font-size:.76rem;font-weight:700;display:inline-flex}.editorSubmitBtn.previewTestBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.editorSubmitBtn.previewTestBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);box-shadow:var(--shadow-card)}.previewModeBanner{background:var(--color-accent-dim);border-bottom:1px solid var(--color-accent-dim);box-sizing:border-box;height:38px;min-height:38px;font-family:var(--font-sans,"GitLab Sans", sans-serif);z-index:25;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;animation:.2s ease-out previewBannerSlide;display:flex}@keyframes previewBannerSlide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.previewModeLeft{align-items:center;gap:10px;min-width:0;display:flex}.previewLivePulse{background:var(--color-accent);width:7px;height:7px;box-shadow:0 0 8px var(--color-accent-glow);border-radius:50%;flex-shrink:0;animation:2s infinite pulseDot}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.previewModeTag{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.05em;border-radius:var(--radius-pill,9999px);flex-shrink:0;align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.previewModeDivider{color:var(--color-text-dim);flex-shrink:0}.previewModeDesc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.previewExitBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border-hover);height:26px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast,70ms) ease;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;font-size:.76rem;font-weight:600;display:inline-flex}.previewExitBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.editorProfileWrap{position:relative}.editorAvatarBtn{background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);width:38px;height:38px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-fast,70ms) ease;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex;position:relative;overflow:hidden}.editorAvatarBtn img,.editorAvatarBtn svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.editorAvatarBtn:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.editorOnlineDot{background:var(--color-accent);border:2px solid var(--color-surface);border-radius:50%;width:9px;height:9px;position:absolute;bottom:0;right:0}.editorDropdownMenu{background:var(--color-surface);border-radius:var(--radius-lg,12px);border:1px solid var(--color-border-subtle,#ffffff14);z-index:100;flex-direction:column;gap:12px;width:260px;padding:16px;animation:.15s cubic-bezier(.16,1,.3,1) dropdownPop;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 48px #0009,inset 0 1px #ffffff1a}@keyframes dropdownPop{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.dropdownUserInfo{flex-direction:column;gap:4px;display:flex}.dropdownUserName{color:var(--color-text);font-size:.95rem;font-weight:600}.dropdownUserRole{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.04em;align-self:flex-start;align-items:center;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.dropdownUserEmail{color:var(--color-text-muted,#8b949e);word-break:break-all;font-size:.78rem}.dropdownDivider{background:var(--color-border-subtle,#ffffff14);height:1px;margin:2px 0}.dropdownSignOutBtn{border-radius:var(--radius-md,8px);color:#f87171;cursor:pointer;width:100%;height:38px;transition:all var(--duration-fast,70ms) ease;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 12px;font-size:.84rem;font-weight:600;display:flex}.dropdownSignOutBtn:hover{color:#ef4444;background:#ef44441f;border-color:#ef444440}.ideWorkspace{background:var(--color-background,#0f1015);z-index:1;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.ideSidebar{background:var(--color-surface-card,#14171d);border-right:1px solid var(--color-border-subtle,#ffffff14);z-index:10;flex-direction:column;flex-shrink:0;width:450px;min-width:360px;max-width:560px;transition:width .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.ideSidebar.collapsed{border-right:none;width:0;min-width:0;overflow:hidden}.sidebarContent{flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebarHeaderArea{border-bottom:1px solid var(--color-border-subtle,#ffffff14);flex-direction:column;gap:8px;padding:16px 20px 14px;display:flex}.sidebarBackBtn{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base,.15s) ease;align-items:center;gap:6px;width:fit-content;margin-bottom:4px;padding:5px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.sidebarBackBtn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text);transform:translate(-2px)}.sidebarTagsRow{align-items:center;gap:8px;display:flex}.activityLangBadge{border-radius:var(--radius-sm,6px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);letter-spacing:.04em;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.activityStatusBadge{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);align-items:center;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.sidebarActivityTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);word-break:break-word;margin:0;font-size:1.35rem;font-weight:700;line-height:1.25}.sidebarMetaFooter{color:var(--color-text-muted,#8b949e);align-items:center;gap:8px;font-size:.8rem;display:flex}.sidebarMetaDot{opacity:.4;font-size:.6rem}.sidebarNavTabs{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);box-sizing:border-box;grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 10px;display:grid}.sidebarNavTab{border-radius:var(--radius-md,8px);background:var(--color-surface);border:1px solid var(--color-border);height:34px;color:var(--color-text-muted);font-family:var(--font-sans,"GitLab Sans", sans-serif);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:background var(--duration-base,.15s) ease, border-color var(--duration-base,.15s) ease, color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;-webkit-user-select:none;user-select:none;box-sizing:border-box;justify-content:center;align-items:center;gap:6px;min-width:0;padding:0 8px;font-size:.74rem;font-weight:600;display:inline-flex}.sidebarNavTab:last-child:nth-child(odd){grid-column:span 2}.sidebarNavTab:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover);transform:translateY(-1px)}.sidebarNavTab:active{transform:translateY(0)}.sidebarNavTab.active{color:var(--color-accent);background:var(--color-accent-dim);border-color:var(--color-accent-border);box-shadow:var(--shadow-card)}.sidebarNavTab i,.sidebarNavTab svg{width:13px;height:13px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.sidebarNavTab span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebarScrollBody{flex:1;padding:20px;overflow-y:auto}.sidebarScrollBody.isAuditLogsMode{flex-direction:column;padding:0;display:flex;overflow:hidden}.instructionsBox{flex-direction:column;gap:12px;display:flex}.instructionsHeading{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted,#8b949e);margin:0;font-size:.82rem;font-weight:700}.instructionsBodyText{color:var(--color-text);white-space:pre-wrap;word-break:break-word;font-size:.92rem;line-height:1.65}.instructionsBodyText code{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-accent);border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:.82rem}.sidebarReferencesSection{border-top:1px solid var(--color-border-subtle,#ffffff14);box-sizing:border-box;flex-direction:column;gap:10px;width:100%;margin-top:20px;padding-top:16px;display:flex}.referencesHeaderToggle{cursor:pointer;width:100%;color:var(--color-text-muted,#8b949e);transition:color var(--duration-base,.15s) ease;text-align:left;box-sizing:border-box;background:0 0;border:none;justify-content:space-between;align-items:center;padding:6px 0;display:flex}.referencesHeaderToggle:hover{color:var(--color-text)}.referencesHeaderTitleWrap{letter-spacing:.05em;text-transform:uppercase;color:inherit;align-items:center;gap:7px;font-size:.78rem;font-weight:700;display:flex}.referencesHeaderWithIcon{align-items:center;gap:7px;margin:0;display:flex}.activityAttachmentsList{box-sizing:border-box;flex-direction:column;gap:8px;width:100%;display:flex}.attachmentFileCard{background:var(--color-surface-elevated,#ffffff08);border:1px solid var(--color-border-subtle,#ffffff14);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:9px;align-items:center;gap:12px;width:100%;padding:8px 12px;text-decoration:none;transition:all .15s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.attachmentFileCard:hover{background:#38bdf80f;border-color:#38bdf84d;transform:translateY(-1px)}.attachmentFileCard:active{transform:scale(.99)}.attachmentFileMeta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex;overflow:hidden}.attachmentFileName{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em;font-size:.8rem;font-weight:600;line-height:1.3;display:block;overflow:hidden}.attachmentSubDetail{color:var(--color-text-muted,#8b949e);text-overflow:ellipsis;white-space:nowrap;font-size:.71rem;line-height:1.25;display:block;overflow:hidden}.attachmentCardActions{flex-shrink:0;align-items:center;gap:5px;margin-left:auto;display:flex}.attachmentActionBtn{background:var(--color-surface-hover);border:1px solid var(--color-border);width:26px;height:26px;color:var(--color-text-muted,#8b949e);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;transition:all .15s;display:inline-flex}.attachmentActionBtn i{font-size:13px}.attachmentActionBtn:hover{transform:scale(1.08)}.attachmentActionBtn:active{transform:scale(.95)}.attachmentActionBtn.previewBtn{color:#38bdf8;background:#38bdf81a;border-color:#38bdf847}.attachmentActionBtn.previewBtn:hover{color:#fff;background:#38bdf838;border-color:#38bdf8}.attachmentActionBtn.downloadBtn{background:var(--color-accent-dim,#10b9811a);border-color:var(--color-accent-border,#10b98147);color:var(--color-accent,#10b981)}.attachmentActionBtn.downloadBtn:hover{background:var(--color-accent,#10b981);border-color:var(--color-accent,#10b981);color:#fff}.emptyReferenceHint{color:var(--color-text-muted,#8b949e);background:var(--color-surface-subtle);border:1px dashed var(--color-border);text-align:center;border-radius:6px;margin:0;padding:14px 10px;font-size:.82rem}.sidebarCollapseBtn{background:var(--color-surface);border:1px solid var(--color-border);width:26px;height:26px;color:var(--color-text-muted,#8b949e);cursor:pointer;z-index:20;transition:all var(--duration-fast,70ms) ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:-13px;box-shadow:0 2px 8px #0006}.sidebarCollapseBtn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent)}.editorFileBarLeft{align-items:center;gap:10px;display:flex}.sidebarRestoreBtn{border-radius:var(--radius-sm,6px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:28px;color:var(--color-accent);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:0 10px;font-size:.76rem;font-weight:600;display:inline-flex}.sidebarRestoreBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:#bbf696}.editorWorkspaceMain{background:var(--color-background,#0f1015);flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.editorFileBar{background:var(--color-surface-card);border-bottom:1px solid var(--color-border-subtle,#ffffff14);flex-shrink:0;justify-content:space-between;align-items:center;height:40px;padding:0 14px;display:flex}.activeFilePill{border-radius:var(--radius-sm,6px);background:var(--color-surface);border:1px solid var(--color-accent-border);color:var(--color-text);align-items:center;gap:7px;padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600;display:inline-flex}.activeFilePill i{color:var(--color-accent)}.editorReadOnlyBadge{background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-sans,"GitLab Sans", sans-serif);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:4px;margin-left:6px;padding:2px 7px;font-size:.72rem;font-weight:600;display:inline-flex}.editorFileActions{align-items:center;gap:8px;display:flex}.editorToolActionBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);height:28px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;align-items:center;gap:6px;padding:0 10px;font-size:.76rem;font-weight:600;display:inline-flex}.editorToolActionBtn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border-hover)}.monacoSurfaceContainer{background:var(--color-surface-card);flex:1;width:100%;min-height:0}.terminalDrawer{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:15;flex-direction:column;flex-shrink:0;height:220px;transition:height .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.terminalDrawer.collapsed{height:38px}.terminalBar{background:var(--color-surface-card);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;height:38px;padding:0 14px;display:flex}.terminalBar:hover{background:var(--color-surface-hover)}.terminalBarLeft{align-items:center;gap:8px;display:flex}.terminalStatusPulse{width:8px;height:8px;transition:all var(--duration-base,.15s) ease;border-radius:50%}.terminalStatusPulse.ready{background:#94a3b8}.terminalStatusPulse.running{background:#f59e0b;box-shadow:0 0 8px #f59e0b99}.terminalStatusPulse.success{background:var(--color-accent);box-shadow:var(--shadow-card)}.terminalStatusPulse.error{background:#ef4444;box-shadow:0 0 8px #ef444499}.terminalBarTitle{color:var(--color-text);font-size:.8rem;font-weight:600}.terminalExecutionPill{background:var(--color-surface-hover);border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600}.terminalExecutionPill.success{color:var(--color-accent);background:var(--color-accent-dim)}.terminalExecutionPill.error{color:#f87171;background:#ef44441a}.terminalExecutionPill.running{color:#fbbf24;background:#f59e0b1a}.terminalBarRight{align-items:center;gap:6px;display:flex}.terminalClearBtn{border:1px solid var(--color-border);height:24px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;background:0 0;border-radius:4px;padding:0 8px;font-size:.72rem;font-weight:600}.terminalClearBtn:hover{background:var(--color-surface-hover);color:var(--color-text)}.terminalToggleIcon{color:var(--color-text-muted,#8b949e);font-size:14px}.terminalOutputPane{background:var(--color-background);flex:1;padding:14px 18px;overflow-y:auto}.terminalPre{white-space:pre-wrap;word-break:break-word;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;line-height:1.6}.terminalPre.error{color:#fca5a5}.terminalPre.success{color:var(--color-text)}.editorModalOverlay{-webkit-backdrop-filter:blur(8px);z-index:200;background:#0a0b0fc7;justify-content:center;align-items:center;padding:20px;animation:.18s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.editorModalCard{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:14px;flex-direction:column;align-items:center;width:100%;max-width:440px;padding:30px 28px 26px;animation:.2s cubic-bezier(.16,1,.3,1) cardScaleIn;display:flex;box-shadow:0 24px 60px #000000bf,inset 0 1px #ffffff14}@keyframes cardScaleIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.modalIconCircle{border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:16px;display:flex}.modalIconCircle.warning{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b4d}.modalIconCircle.success{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.modalIconCircle.failed{color:#f87171;background:#f871711f;border:1px solid #f8717147}.submissionScoreShowcase{flex-direction:column;align-items:center;gap:6px;margin:4px 0 14px;display:flex}.submissionScoreNumberWrap{align-items:baseline;gap:4px;display:flex}.submissionScoreBig{font-size:2.2rem;font-weight:800;font-family:var(--font-mono,monospace);color:var(--color-text)}.submissionScoreTotal{color:var(--color-text-muted,#8b949e);font-size:1.1rem;font-weight:600;font-family:var(--font-mono,monospace)}.submissionResultTag{border-radius:var(--radius-pill,9999px);letter-spacing:.05em;text-transform:uppercase;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.submissionResultTag.tagPassed{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.submissionResultTag.tagFailed{color:#f87171;background:#f8717126;border:1px solid #f8717159}.editorModalTitle{font-family:var(--font-display,"GitLab Sans", sans-serif);color:var(--color-text);letter-spacing:-.015em;margin:0 0 10px;font-size:1.32rem;font-weight:700;line-height:1.3}.editorModalDesc{color:var(--color-text-muted,#94a3b8);max-width:370px;margin:0 0 24px;font-size:.875rem;line-height:1.55}.editorModalActions{justify-content:stretch;align-items:center;gap:12px;width:100%;display:flex}.editorModalActions .modalBtnSecondary,.editorModalActions .modalBtnPrimary,.editorModalActions .modalBtnWarning{white-space:nowrap;box-sizing:border-box;cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;width:auto;min-width:0;height:42px;padding:0 16px;font-size:.86rem;font-weight:600;transition:all .12s cubic-bezier(.16,1,.3,1);display:inline-flex}.modalBtnSecondary{background:var(--color-surface-hover);border:1px solid var(--color-border);height:42px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;font-size:.86rem;font-weight:600;transition:all .12s}.modalBtnSecondary:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.modalBtnWarning{height:42px;color:var(--color-text);cursor:pointer;background:#d97706;border:none;border-radius:8px;font-size:.86rem;font-weight:600;transition:all .12s}.modalBtnWarning:hover{background:#b45309}.modalBtnPrimary{background:var(--color-accent);border:1px solid var(--color-accent-border,var(--color-accent));width:100%;height:44px;color:var(--color-on-accent);cursor:pointer;box-shadow:var(--shadow-card);border-radius:8px;justify-content:center;align-items:center;font-size:.86rem;font-weight:700;transition:all .12s;display:inline-flex}.modalBtnPrimary:hover{background:var(--color-accent-hover);color:var(--color-on-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.modalBtnPrimary:active{transform:translateY(0)}[data-theme=light] .modalBtnPrimary,.light .modalBtnPrimary{color:#fff!important}[data-theme=light] .modalBtnPrimary:hover,.light .modalBtnPrimary:hover{background:var(--color-accent-hover);color:#fff!important}[data-theme=light] .modalBtnSecondary,.light .modalBtnSecondary{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text);box-shadow:var(--shadow-card)}[data-theme=light] .modalBtnSecondary:hover,.light .modalBtnSecondary:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);color:var(--color-text)}.unlockedMilestoneList{text-align:left;flex-direction:column;gap:10px;width:100%;margin:4px 0 20px;display:flex}.milestoneRewardChip{box-sizing:border-box;background:#f59e0b14;border:1px solid #f59e0b47;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;display:flex;box-shadow:0 2px 10px #00000040,inset 0 1px #ffffff0d}.milestoneRewardIconWrap{background:var(--color-warning-bg);width:32px;height:32px;color:var(--color-warning);border:1px solid #d977064d;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.milestoneRewardText{color:var(--color-warning);font-size:.86rem;font-weight:600;line-height:1.3}.milestoneRewardText strong{color:var(--color-warning);margin-left:2px;font-weight:700}.sidebarTabCounterBadge{border-radius:var(--radius-pill,9999px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);min-width:15px;height:15px;color:var(--color-accent);font-size:.62rem;font-weight:700;font-family:var(--font-mono,"GitLab Mono", monospace);flex-shrink:0;justify-content:center;align-items:center;margin-left:2px;padding:0 4.5px;line-height:1;display:inline-flex}.previewModeBanner.inspectionVariant{background:#0284c70d;border-bottom-color:#0284c72e}.previewLivePulse.inspectionPulse{background:#0284c7;box-shadow:0 0 6px #0284c759}.previewModeTag.inspectionTag{color:#0369a1;background:#0284c71f;border-color:#0284c759}[data-theme=dark] .previewModeBanner.inspectionVariant,.dark .previewModeBanner.inspectionVariant{background:#38bdf814;border-bottom-color:#38bdf847}[data-theme=dark] .previewLivePulse.inspectionPulse,.dark .previewLivePulse.inspectionPulse{background:#38bdf8;box-shadow:0 0 8px #38bdf8}[data-theme=dark] .previewModeTag.inspectionTag,.dark .previewModeTag.inspectionTag{color:#38bdf8;background:#38bdf826;border-color:#38bdf859}.returnBoilerplateBtn{margin-right:6px;background:var(--color-accent-dim)!important;border-color:var(--color-accent-border)!important;color:var(--color-accent)!important}.returnBoilerplateBtn:hover{background:var(--color-accent-dim)!important;border-color:var(--color-accent)!important}.submissionsTabPanel{flex-direction:column;gap:14px;display:flex}.submissionsHeaderRow{border-bottom:1px solid var(--color-border-subtle,#ffffff14);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.submissionsTitleArea{flex-direction:column;gap:2px;display:flex}.submissionsCountSubtitle{color:var(--color-text-muted,#8b949e);font-size:.76rem}.submissionsRefreshBtn{border-radius:var(--radius-sm,6px);background:var(--color-surface-hover);border:1px solid var(--color-border);width:28px;height:28px;color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;justify-content:center;align-items:center;display:flex}.submissionsRefreshBtn:hover:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent)}.submissionsRefreshBtn .spin{animation:.7s linear infinite refreshSpin}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.activeSubmissionNotice{border-radius:var(--radius-md,8px);background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-text);align-items:center;gap:8px;padding:8px 12px;font-size:.78rem;display:flex}.activeSubNoticeLeft{align-items:center;gap:7px;display:flex}.activeSubNoticeLeft i{color:var(--color-accent)!important}.activeSubNoticeLeft strong{color:var(--color-text);font-weight:700}.submissionsLoadingWrap{color:var(--color-text-muted,#8b949e);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 16px;font-size:.82rem;display:flex}.submissionsSpinner{border:2px solid var(--color-accent-dim);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite refreshSpin}.submissionsEmptyState{text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg,12px);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:36px 16px;display:flex}.submissionsEmptyIconWrap{background:var(--color-surface-subtle);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.submissionsEmptyTitle{color:var(--color-text);margin:0;font-size:.92rem;font-weight:600}.submissionsEmptyDesc{color:var(--color-text-muted);max-width:280px;margin:0;font-size:.78rem;line-height:1.45}.submissionsCardList{flex-direction:column;gap:10px;display:flex}.submissionCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-lg,10px);transition:all var(--duration-fast,70ms) ease;flex-direction:column;gap:10px;padding:12px;display:flex;box-shadow:0 2px 8px #0000000d}.submissionCard:hover{border-color:var(--color-accent-border);background:var(--color-card-hover,var(--color-surface-elevated))}.submissionCard.activeInspection{background:var(--color-surface-elevated);border-color:#38bdf8;box-shadow:0 0 16px #38bdf833,inset 0 0 0 1px #38bdf84d}.submissionCardTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.submissionStudentInfo{align-items:center;gap:9px;min-width:0;display:flex}.submissionAvatarInitials{background:var(--color-surface-elevated);border:1px solid var(--color-accent-border);width:32px;height:32px;color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex;overflow:hidden}.submissionAvatarInitials img,.submissionAvatarInitials svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.submissionNameCol{flex-direction:column;min-width:0;display:flex}.submissionStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.submissionTimeText{color:var(--color-text-muted,#8b949e);font-size:.7rem}.submissionScoreBadgeWrap{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.submissionStatusPill{border-radius:var(--radius-pill,9999px);letter-spacing:.03em;text-transform:uppercase;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.submissionStatusPill.statusPassed{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.submissionStatusPill.statusSubmitted{background:var(--color-info-bg);color:var(--color-info);border:1px solid #0284c740}.submissionStatusPill.statusFailed{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262640}.submissionScoreNumber{font-size:.76rem;font-weight:700;font-family:var(--font-mono,"GitLab Mono", monospace);color:var(--color-text)}.submissionMilestoneSection{border-radius:var(--radius-md,8px);background:var(--color-surface-elevated);border:1px solid var(--color-border);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.milestoneHeaderLabel{color:var(--color-warning);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:5px;font-size:.72rem;font-weight:700;display:flex}.milestoneHeaderLabel i{color:var(--color-warning)}.submissionMilestonesRow{flex-wrap:wrap;gap:6px;display:flex}.studentEarnedBadge{background:var(--color-warning-bg);border:1px solid #d9770659;border-radius:6px;align-items:center;gap:6px;padding:4px 9px 4px 7px;display:inline-flex;box-shadow:0 1px 2px #0000000d}.studentEarnedBadgeIconWrap{color:var(--color-warning);justify-content:center;align-items:center;display:flex}.studentEarnedBadgeTitle{color:var(--color-warning);font-size:.74rem;font-weight:700}.noMilestonesEarnedHint{color:var(--color-text-dim);font-size:.72rem;font-style:italic}.submissionCardActions{align-items:center;display:flex}.inspectSubmissionBtn{border-radius:var(--radius-md,8px);background:var(--color-accent);border:1px solid var(--color-accent);width:100%;height:32px;color:var(--color-on-accent);font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:background var(--duration-base,.15s) ease, border-color var(--duration-base,.15s) ease, transform var(--duration-fast,70ms) ease, box-shadow var(--duration-base,.15s) ease;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:.78rem;font-weight:600;display:inline-flex}.inspectSubmissionBtn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent);box-shadow:var(--shadow-card);transform:translateY(-1px)}.inspectSubmissionBtn:active{transform:translateY(0)}.inspectSubmissionBtn.isViewing{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-card);font-weight:700}.viewingStudentInspectionPill{border-radius:var(--radius-sm,6px);height:28px;color:var(--color-text);background:#0284c71f;border:1px solid #0284c74d;align-items:center;gap:6px;margin-left:6px;padding:0 10px;font-size:.76rem;animation:.15s ease-out pillFadeIn;display:inline-flex}@keyframes pillFadeIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.viewingStudentInspectionPill i{color:#0284c7}.viewingStudentInspectionPill strong{color:var(--color-text)}.inspectionScoreTag{background:var(--color-surface-hover);font-family:var(--font-mono,"GitLab Mono", monospace);color:#38bdf8;border-radius:4px;align-items:center;padding:1px 5px;font-size:.68rem;font-weight:700;display:inline-flex}.viewingStudentCloseBtn{color:var(--color-text-muted,#8b949e);cursor:pointer;transition:all var(--duration-fast,70ms) ease;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:flex}.viewingStudentCloseBtn:hover{background:var(--color-surface-elevated);color:var(--color-text)}.restoreStarterBarBtn{background:var(--color-accent-dim)!important;border-color:var(--color-accent-border)!important;color:var(--color-accent)!important}.restoreStarterBarBtn:hover{background:var(--color-accent-dim)!important;border-color:var(--color-accent)!important}.activityPointsBadge{border-radius:var(--radius-sm,6px);background:var(--color-info-bg);color:var(--color-info);letter-spacing:.02em;border:1px solid #0284c740;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.sidebarExpectedOutputWrap{border-top:1px solid var(--color-border-subtle,#ffffff14);flex-direction:column;gap:10px;margin-top:18px;padding-top:16px;display:flex}.expectedOutputSectionHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.expectedOutputSectionTitle{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);align-items:center;gap:7px;font-size:.8rem;font-weight:700;display:inline-flex}.expectedOutputSectionTag{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:4px;padding:2px 7px;font-size:.68rem;font-weight:700}.expectedOutputCardsStack{flex-direction:column;gap:10px;display:flex}.expectedOutputCardItem{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;transition:border-color .15s;overflow:hidden}.expectedOutputCardItem:hover{border-color:var(--color-accent-border)}.expectedOutputCardItem.detailed{background:var(--color-surface-elevated)}.expectedOutputItemHeader{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 12px 6px;display:flex}.optionPill{color:var(--color-accent);background:var(--color-accent-dim);border-radius:4px;padding:1px 6px;font-size:.7rem;font-weight:700}.expectedVariantLabel{color:var(--color-text);align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.variantNumber{background:var(--color-accent-dim);width:18px;height:18px;color:var(--color-accent);border-radius:50%;justify-content:center;align-items:center;font-size:.68rem;font-weight:800;display:inline-flex}.expectedOutputTerminalBox{background:var(--color-surface);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:flex-start;padding:10px 12px;display:flex}.expectedOutputPre{color:var(--color-accent);white-space:pre-wrap;word-break:break-all;-webkit-user-select:none;user-select:none;flex:1;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:.84rem;line-height:1.5}.expectedOutputCopyBtn{background:var(--color-surface-hover);border:1px solid var(--color-border-hover);color:var(--color-text-muted,#8b949e);cursor:pointer;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;margin-left:8px;padding:3px 7px;font-size:.7rem;font-weight:600;transition:all .15s;display:inline-flex}.expectedOutputCopyBtn:hover{background:var(--color-surface-elevated);color:var(--color-text);border-color:var(--color-border-hover)}.expectedOutputEmptyCard{background:var(--color-surface-hover);border:1px dashed var(--color-border);color:var(--color-text-muted,#8b949e);border-radius:8px;align-items:center;gap:10px;padding:12px 14px;font-size:.82rem;line-height:1.45;display:flex}.expectedOutputTabPanel{flex-direction:column;gap:16px;display:flex}.expectedOutputHeaderRow{border-bottom:1px solid var(--color-border-subtle,#ffffff14);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.expectedOutputTitleArea{flex-direction:column;gap:2px;display:flex}.expectedOutputCountSubtitle{color:var(--color-text-muted,#8b949e);font-size:.76rem}.expectedOutputScoreCard{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.scoreCardLeft{flex-direction:column;gap:2px;display:flex}.scoreCardLabel{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.68rem}.scoreCardValue{color:#38bdf8;font-size:1.05rem;font-weight:700}.matchRuleTag{color:var(--color-accent);align-items:center;gap:5px;font-size:.72rem;font-weight:600;display:inline-flex}.terminalMatchPill{letter-spacing:.02em;border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.terminalMatchPill.matched{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent)}.terminalMatchPill.mismatched{color:#f87171;background:#ef444426;border:1px solid #ef444459}.terminalExpectedBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);height:24px;color:var(--color-accent);cursor:pointer;border-radius:4px;align-items:center;gap:5px;padding:0 8px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.terminalExpectedBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-text)}.activityCountdownBadge{border-radius:var(--radius-md,8px);height:32px;font-family:var(--font-mono,"GitLab Mono", monospace);letter-spacing:.02em;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 12px;font-size:.82rem;font-weight:700;transition:all .25s;display:inline-flex}.activityCountdownBadge .timerBadgeLabel{font-size:.72rem;font-family:var(--font-sans,"GitLab Sans", sans-serif);text-transform:uppercase;letter-spacing:.04em;opacity:.85}.activityCountdownBadge .timerBadgeValue{font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:800}.activityCountdownBadge.normal{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);box-shadow:var(--shadow-card)}.activityCountdownBadge.normal .timerIconPulse{color:var(--color-accent)}.activityCountdownBadge.warning{color:#fbbf24;background:#fbbf241f;border:1px solid #fbbf2473;animation:2s ease-in-out infinite timerWarningPulse;box-shadow:0 0 16px #fbbf242e}.activityCountdownBadge.warning .timerIconPulse{color:#fbbf24}@keyframes timerWarningPulse{0%,to{box-shadow:0 0 12px #fbbf2426}50%{border-color:#fbbf24b3;box-shadow:0 0 20px #fbbf2459}}.activityCountdownBadge.urgent{color:#f87171;background:#f8717129;border:1px solid #f8717199;animation:1s ease-in-out infinite timerUrgentPulse;box-shadow:0 0 20px #f871714d}.activityCountdownBadge.urgent .timerIconPulse{color:#f87171;animation:.5s ease-in-out infinite timerIconShake}@keyframes timerUrgentPulse{0%,to{border-color:#f8717180;box-shadow:0 0 14px #f8717133}50%{background:#f871713d;border-color:#f87171;box-shadow:0 0 24px #f8717180}}@keyframes timerIconShake{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.timeExpiredModalCard{border-color:#f8717166!important;box-shadow:0 0 40px #f8717133!important}.modalIconCircle.urgent{background:#f8717126;border:1px solid #f8717159}.examModeNavbarBadge{color:#f87171;letter-spacing:.04em;background:#ef444424;border:1px solid #ef444473;border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex;box-shadow:0 0 12px #ef444433}.pasteBlockedToastNotice{z-index:10;background:#1e1414f5;border-bottom:1px solid #ef444480;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;animation:.2s ease-out slideDownFade;display:flex;box-shadow:0 4px 20px #ef444426}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.pasteBlockedNoticeContent{color:#fca5a5;align-items:center;gap:10px;font-size:.82rem;font-weight:500;display:flex}.pasteNoticeDismissBtn{color:#fca5a5;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .15s;display:flex}.pasteNoticeDismissBtn:hover{background:#ef444433}.leaderboardSidebarHeader{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}.leaderboardSidebarSubtitle{color:var(--color-text-muted,#8b949e);margin-top:2px;font-size:.74rem;display:block}.refreshLeaderboardBtn{background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.refreshLeaderboardBtn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.refreshLeaderboardBtn .spinning{animation:.8s linear infinite refreshSpin}.leaderboardEmptyState{text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:40px 16px;display:flex}.leaderboardEmptyIcon{color:var(--color-text-muted);margin-bottom:10px}.leaderboardEmptyTitle{color:var(--color-text);margin:0 0 4px;font-size:.88rem;font-weight:600}.leaderboardEmptySubtitle{color:var(--color-text-muted);max-width:240px;margin:0;font-size:.76rem;line-height:1.4}.leaderboardEntriesList{flex-direction:column;gap:10px;display:flex}.leaderboardRankCard{border:1px solid var(--color-border);background:#14171db3;border-radius:10px;padding:12px 14px;transition:all .2s}.leaderboardRankCard:hover{border-color:var(--color-border-hover);background:#14171df2}.leaderboardRankCard.rankGoldCard{background:linear-gradient(135deg,#f59e0b1f 0%,#14171dcc 100%);border-color:#f59e0b66}.leaderboardRankCard.rankSilverCard{background:linear-gradient(135deg,#9ca3af1f 0%,#14171dcc 100%);border-color:#9ca3af59}.leaderboardRankCard.rankBronzeCard{background:linear-gradient(135deg,#d977061f 0%,#14171dcc 100%);border-color:#d9770659}.leaderboardRankCard.isCurrentUserCard{border-color:var(--color-accent-border);box-shadow:var(--shadow-card)}.leaderboardRankCardTop{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.leaderboardRankBadgeWrap{align-items:center;gap:10px;min-width:0;display:flex}.leaderboardRankNumber{color:#e5e7eb;background:var(--color-surface-hover);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:3px 8px;font-size:.82rem;font-weight:800;display:inline-flex}.leaderboardRankNumber.rank-1{color:#fbbf24;background:#f59e0b40;border:1px solid #f59e0b80}.leaderboardRankNumber.rank-2{color:#e5e7eb;background:#9ca3af40;border:1px solid #9ca3af80}.leaderboardRankNumber.rank-3{color:#f59e0b;background:#d9770640;border:1px solid #d9770680}.leaderboardStudentDetails{flex-direction:column;min-width:0;display:flex}.leaderboardStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:.86rem;font-weight:700;display:flex;overflow:hidden}.leaderboardYouPill{text-transform:uppercase;background:var(--color-accent-dim);border:1px solid var(--color-accent-border);color:var(--color-accent);border-radius:9999px;padding:1px 6px;font-size:.65rem;font-weight:700}.leaderboardStudentEmail{color:var(--color-text-muted,#8b949e);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.leaderboardScoreBlock{flex-shrink:0}.leaderboardScoreVal{color:#e5e7eb;font-size:.82rem}.leaderboardScoreVal strong{color:var(--color-accent);font-size:.95rem}.leaderboardHiddenScoreBadge{color:var(--color-text-muted,#8b949e);background:var(--color-surface-hover);border-radius:4px;padding:2px 6px;font-size:.72rem;font-style:italic}.leaderboardCardMetaRow{border-top:1px solid var(--color-border);color:var(--color-text-muted,#8b949e);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;font-size:.74rem;display:flex}.leaderboardTimeTaken{align-items:center;gap:5px;display:flex}.leaderboardTimeTaken strong{color:var(--color-text)}.leaderboardMilestonesWrap{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.leaderboardMilestoneBadge{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59;border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:.68rem;font-weight:600;display:inline-flex}.modalIconCircle.pending{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b59}.submissionResultTag.tagPending{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59}.submissionStatusPill.statusPendingGrade{color:#fbbf24;background:#f59e0b24;border:1px solid #f59e0b59}.editSubmissionScoreBtn{border-radius:var(--radius-md,8px);color:#0284c7;height:32px;font-family:var(--font-sans,"GitLab Sans", sans-serif);cursor:pointer;transition:all var(--duration-base,.15s) ease;white-space:nowrap;background:#0284c71f;border:1px solid #0284c759;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:.76rem;font-weight:600;display:inline-flex}.editSubmissionScoreBtn:hover{color:#fff;box-shadow:var(--shadow-card);background:#0284c7;border-color:#0284c7;transform:translateY(-1px)}.editSubmissionScoreBtn:active{transform:translateY(0)}[data-theme=dark] .editSubmissionScoreBtn,.dark .editSubmissionScoreBtn{color:#38bdf8;background:#38bdf829;border-color:#38bdf866}[data-theme=dark] .editSubmissionScoreBtn:hover,.dark .editSubmissionScoreBtn:hover{color:#fff;background:#0284c7;border-color:#0284c7}.submissionCardActions{align-items:center;gap:8px;display:flex}.sidebarNavTab .sidebarTabCounterBadge.badgeRedAlert{color:#f87171;background:#ef444433;border-color:#ef444466}.sidebarNavTab .sidebarTabCounterBadge.badgeYellowAlert{color:#fbbf24;background:#f59e0b33;border-color:#f59e0b66}.auditLogsTabPanel{flex-direction:column;flex:1;height:100%;min-height:0;display:flex;overflow:hidden}.auditLogsStickyHeader{background:var(--color-surface-card,#14171d);border-bottom:1px solid var(--color-border);z-index:5;flex-direction:column;flex-shrink:0;gap:12px;padding:16px 20px 14px;display:flex}.auditLogsScrollBody{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 20px 20px;display:flex;overflow-y:auto}.auditLogsHeaderRow{justify-content:space-between;align-items:center;gap:12px;display:flex}.auditLogsTitleArea{flex-direction:column;gap:2px;display:flex}.auditLogsCountSubtitle{color:var(--color-text-muted,#8b949e);font-size:.74rem;font-weight:500}.auditQuickStatsRow{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.auditStatCard{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:8px 4px;transition:all .15s;display:flex}.auditStatValue{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.1}.auditStatLabel{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:3px;font-size:.65rem;font-weight:600}.auditStatCard.statSwitches.hasAlert{background:var(--color-warning-bg);border-color:#d977064d}.auditStatCard.statSwitches.hasAlert .auditStatValue{color:var(--color-warning)}.auditStatCard.statPastes.hasAlert{background:var(--color-danger-bg);border-color:#dc26264d}.auditStatCard.statPastes.hasAlert .auditStatValue{color:var(--color-danger)}.auditControlsRow{flex-direction:column;gap:8px;display:flex}.auditFilterRowInputs{flex-direction:column;gap:6px;display:flex}.auditComboboxWrapper{width:100%;position:relative}.auditComboboxField{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;align-items:center;gap:6px;padding:5px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.auditComboboxField:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.auditFieldIcon{color:var(--color-text-muted);flex-shrink:0;font-size:13px}.auditComboInput{color:var(--color-text);background:0 0;border:none;outline:none;width:100%;font-size:.78rem}.auditComboInput::placeholder{color:var(--color-text-dim)}.auditComboClearBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px;font-size:11px;transition:all .1s;display:flex}.auditComboClearBtn:hover{color:var(--color-text);background:var(--color-surface-hover)}.auditComboToggleBtn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:2px;font-size:11px;transition:transform .15s,color .15s;display:flex}.auditComboToggleBtn:hover{color:var(--color-text)}.auditComboToggleBtn.open{color:var(--color-accent);transform:rotate(180deg)}.auditComboDropdown{background:var(--color-surface);border:1px solid var(--color-border);max-height:210px;box-shadow:var(--shadow-elevated,0 8px 24px #00000040);z-index:50;border-radius:8px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.auditComboItem{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;transition:background .1s;display:flex}.auditComboItem:hover{background:var(--color-surface-hover)}.auditComboItem.active{background:var(--color-accent-dim)}.auditComboItem.active .auditItemTitle{color:var(--color-accent)}.auditItemAvatar{background:var(--color-info-bg);width:22px;height:22px;color:var(--color-info);border:1px solid #0284c740;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:flex;overflow:hidden}.auditItemAvatar img,.auditItemAvatar svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.auditItemAvatar.all{background:var(--color-accent-dim);border-color:var(--color-accent-border);color:var(--color-accent);font-size:.6rem;font-weight:800}.auditItemMeta{text-align:left;flex-direction:column;min-width:0;display:flex}.auditItemTitle{color:var(--color-text);font-size:.8rem;font-weight:600;line-height:1.2}.auditItemSub{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.auditFilterChips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.auditChip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;padding:4px 9px;font-size:.72rem;font-weight:600;transition:all .12s}.auditChip:hover{color:var(--color-text);border-color:var(--color-border-hover)}.auditChip.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.auditChip.alertChip.active{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning)}.auditChip.dangerChip.active{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger)}.auditLogsCardList{flex-direction:column;gap:8px;display:flex}.auditLogCard{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;transition:all .15s;display:flex}.auditLogCard:hover{border-color:var(--color-border-hover);background:var(--color-card-hover,var(--color-surface-elevated))}.auditLogCard.cardWarning{background:#f59e0b08;border-color:#f59e0b40}.auditLogCard.cardDanger{background:#ef44440a;border-color:#ef444447}.auditLogTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.auditStudentWrap{align-items:center;gap:8px;min-width:0;display:flex}.auditStudentAvatar{background:var(--color-info-bg);width:26px;height:26px;color:var(--color-info);border:1px solid #0284c740;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex;overflow:hidden}.auditStudentAvatar img,.auditStudentAvatar svg{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.auditStudentInfo{flex-direction:column;min-width:0;display:flex}.auditStudentName{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.auditTimeText{color:var(--color-text-muted,#8b949e);font-size:.66rem}.auditActionBadge{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:3px 7px;font-size:.68rem;font-weight:600;display:inline-flex}.auditActionBadge.badgeDanger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #dc262640}.auditActionBadge.badgeWarning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #d9770640}.auditActionBadge.badgeSuccess{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid var(--color-accent-border)}.auditActionBadge.badgeInfo{background:var(--color-info-bg);color:var(--color-info);border:1px solid #0284c740}.auditActionBadge.badgeNeutral{background:var(--color-surface-subtle);color:var(--color-text-muted);border:1px solid var(--color-border)}.auditLogDetails{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:5px;padding:6px 9px;overflow-x:auto}.auditLogDetails code{font-family:"JetBrains Mono", "Fira Code", monospace, var(--font-mono);color:var(--color-text);white-space:pre-wrap;word-break:break-word;font-size:.72rem;line-height:1.4}.sidebarMobileBackdrop{display:none}@media (width<=1024px){.sidebarMobileBackdrop{-webkit-backdrop-filter:blur(4px);z-index:45;background:#000000a6;display:block;position:absolute;inset:0}.ideSidebar{z-index:50!important;width:min(85vw,400px)!important;max-width:90vw!important;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .2s!important;position:absolute!important;top:0!important;bottom:0!important;left:0!important;box-shadow:12px 0 36px #000000b3!important}.ideSidebar.collapsed{opacity:0;pointer-events:none;transform:translate(-100%);width:min(85vw,400px)!important;min-width:0!important}.ideSidebar:not(.collapsed){opacity:1;transform:translate(0)}.sidebarCollapseBtn{display:none!important}.sidebarRestoreBtn{display:inline-flex!important}}@media (width<=768px){.editorNavbar{height:52px;padding:0 12px}.editorNavLeft .brand-text{font-size:1.05rem}.editorNavCourse,.editorNavDivider{display:none}.editorNavRight{gap:8px}.examModeNavbarBadge{padding:3px 8px;font-size:.68rem}.activityCountdownBadge{padding:4px 8px;font-size:.72rem}.autosaveBadge{display:none}.editorRunBtn,.editorSubmitBtn{min-height:38px;padding:0 12px;font-size:.8rem}.editorAvatarBtn{width:34px;height:34px}.editorFileBar{height:38px;padding:0 10px}.activeFilePill{padding:3px 8px;font-size:.74rem}.editorReadOnlyBadge{padding:1px 5px;font-size:.65rem}.terminalDrawer{height:180px}.terminalDrawer.collapsed{height:36px}.terminalBar{height:36px;padding:0 10px}.terminalBarTitle{font-size:.75rem}.terminalExecutionPill,.terminalMatchPill{padding:1px 5px;font-size:.65rem}.terminalOutputPane{padding:10px 12px}.terminalPre{font-size:.76rem}.previewModeBanner{z-index:30!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;height:auto!important;min-height:38px!important;padding:8px 14px!important;position:relative!important}.previewModeDesc{white-space:normal;font-size:.74rem}}@media (width<=640px){.editorNavbar{height:48px;padding:0 8px}.ideSidebar{width:min(88vw,360px)!important;top:0!important}.editorRunBtn span,.editorSubmitBtn span{font-size:.75rem}.editorRunBtn,.editorSubmitBtn{padding:0 10px}.editorModalCard{width:100%!important;max-width:calc(100vw - 24px)!important;max-height:92dvh!important;padding:22px 16px!important;overflow-y:auto!important}.editorModalTitle{font-size:1.15rem!important}.editorModalActions{flex-direction:column!important;gap:8px!important;width:100%!important}.editorModalCancelBtn,.editorModalConfirmBtn,.editorModalPrimaryBtn,.modalBtnSecondary,.modalBtnWarning,.modalBtnPrimary{justify-content:center!important;width:100%!important;min-height:42px!important}.pasteBlockedToastNotice{max-width:calc(100vw - 20px)!important;bottom:44px!important;left:10px!important;right:10px!important}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@font-face{font-family:GitLab Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/GitLabSans-BopZMx9w.woff2)format("woff2")}@font-face{font-family:GitLab Sans;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/GitLabSans-Italic-DzvZ03Ir.woff2)format("woff2")}@font-face{font-family:GitLab Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/GitLabMono-CafWbx5u.woff2)format("woff2")}@font-face{font-family:GitLab Mono;font-style:italic;font-weight:400 600;font-display:swap;src:url(/assets/GitLabMono-Italic-DiLS3P6T.woff2)format("woff2")}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-emerald-400:oklch(76.5% .177 163.223);--color-cyan-400:oklch(78.9% .154 211.53);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--blur-xl:24px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mr-1{margin-right:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-16{height:calc(var(--spacing) * 16)}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.border-\[var\(--color-border-accent\)\]{border-color:var(--color-border-accent)}.border-\[var\(--color-danger\)\],.border-\[var\(--color-danger\)\]\/30{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-danger\)\]\/30{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.border-\[var\(--color-info\)\]\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-info\)\]\/30{border-color:color-mix(in oklab, var(--color-info) 30%, transparent)}}.border-\[var\(--color-success\)\]\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-success\)\]\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-\[var\(--color-warning\)\]\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-warning\)\]\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.border-current{border-color:currentColor}.border-indigo-500{border-color:var(--color-indigo-500)}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.border-t-transparent{border-top-color:#0000}.bg-\[\#0b0f19\]{background-color:#0b0f19}.bg-\[\#0b0f19\]\/80{background-color:oklab(16.9539% -.0010451 -.0219853/.8)}.bg-\[var\(--color-accent\)\]{background-color:var(--color-accent)}.bg-\[var\(--color-accent-dim\)\]{background-color:var(--color-accent-dim)}.bg-\[var\(--color-background\)\]{background-color:var(--color-background)}.bg-\[var\(--color-danger\)\]{background-color:var(--color-danger)}.bg-\[var\(--color-danger-bg\)\]{background-color:var(--color-danger-bg)}.bg-\[var\(--color-info\)\]{background-color:var(--color-info)}.bg-\[var\(--color-info-bg\)\]{background-color:var(--color-info-bg)}.bg-\[var\(--color-success\)\]{background-color:var(--color-success)}.bg-\[var\(--color-success-bg\)\]{background-color:var(--color-success-bg)}.bg-\[var\(--color-surface\)\],.bg-\[var\(--color-surface\)\]\/85{background-color:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface\)\]\/85{background-color:color-mix(in oklab, var(--color-surface) 85%, transparent)}}.bg-\[var\(--color-surface-card\)\]{background-color:var(--color-surface-card)}.bg-\[var\(--color-text-dim\)\]{background-color:var(--color-text-dim)}.bg-\[var\(--color-warning\)\]{background-color:var(--color-warning)}.bg-\[var\(--color-warning-bg\)\]{background-color:var(--color-warning-bg)}.bg-\[var\(--navbar-bg\)\]{background-color:var(--navbar-bg)}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-slate-900\/95{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/95{background-color:color-mix(in oklab, var(--color-slate-900) 95%, transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-cyan-400{--tw-gradient-via:var(--color-cyan-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:250\%_100\%\]{background-size:250% 100%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.2px\]{--tw-tracking:-.2px;letter-spacing:-.2px}.tracking-\[1\.5px\]{--tw-tracking:1.5px;letter-spacing:1.5px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-pre{white-space:pre}.text-\[var\(--color-accent\)\]{color:var(--color-accent)}.text-\[var\(--color-background\)\]{color:var(--color-background)}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-info\)\]{color:var(--color-info)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-\[var\(--color-text-muted\)\]{color:var(--color-text-muted)}.text-\[var\(--color-warning\)\]{color:var(--color-warning)}.text-amber-400{color:var(--color-amber-400)}.text-cyan-400\/80{color:#00d2efcc}@supports (color:color-mix(in lab, red, red)){.text-cyan-400\/80{color:color-mix(in oklab, var(--color-cyan-400) 80%, transparent)}}.text-indigo-400{color:var(--color-indigo-400)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.shadow-\[0_0_8px_\#34d399\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#34d399);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--color-accent-dim\)\]{--tw-shadow:var(--color-accent-dim);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-card\)\]{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-elevated\)\]{--tw-shadow:var(--shadow-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-\[0_0_10px_rgba\(16\,185\,129\,0\.45\)\]{--tw-drop-shadow-size:drop-shadow(0 0 10px var(--tw-drop-shadow-color,#10b98173));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:drop-shadow-\[0_0_16px_rgba\(6\,182\,212\,0\.8\)\]:is(:where(.group):hover *){--tw-drop-shadow-size:drop-shadow(0 0 16px var(--tw-drop-shadow-color,#06b6d4cc));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--color-border-accent\)\]:hover{border-color:var(--color-border-accent)}.hover\:bg-\[var\(--color-accent-dim\)\]:hover{background-color:var(--color-accent-dim)}.hover\:bg-\[var\(--color-accent-hover\)\]:hover{background-color:var(--color-accent-hover)}.hover\:bg-\[var\(--color-surface-elevated\)\]:hover{background-color:var(--color-surface-elevated)}.hover\:bg-\[var\(--sidebar-item-hover\)\]:hover{background-color:var(--sidebar-item-hover)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-\[var\(--color-accent\)\]:hover{color:var(--color-accent)}.hover\:text-\[var\(--color-text\)\]:hover{color:var(--color-text)}.hover\:text-cyan-400:hover{color:var(--color-cyan-400)}.hover\:text-slate-100:hover{color:var(--color-slate-100)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[var\(--shadow-elevated\)\]:hover{--tw-shadow:var(--shadow-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-indigo-500\/50:focus{--tw-ring-color:#625fff80}@supports (color:color-mix(in lab, red, red)){.focus\:ring-indigo-500\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-indigo-500) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-20{height:calc(var(--spacing) * 20)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-\[9px\]{font-size:9px}}@media (width>=48rem){.md\:flex{display:flex}}@media (width>=64rem){.lg\:hidden{display:none}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:pl-64{padding-left:calc(var(--spacing) * 64)}}}:root,[data-theme=dark],.dark{--font-sans:"GitLab Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"GitLab Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"GitLab Mono", "JetBrains Mono", monospace;--color-primary:#0e1318;--color-background:#0f1015;--color-surface:#181a20;--color-surface-card:#14171d;--color-surface-elevated:#222630;--color-surface-hover:#181c24;--color-surface-subtle:#181b22;--color-card-hover:#1c212b;--color-accent:#a7f175;--color-accent-hover:#bcf794;--color-accent-dim:#a7f1751f;--color-accent-glow:#a7f17559;--color-on-accent:#0e1318;--color-border:#ffffff14;--color-border-subtle:#ffffff14;--color-border-hover:#ffffff29;--color-border-accent:#a7f175;--color-text:#fff;--color-text-muted:#8b949e;--color-text-dim:#656d76;--color-scheme:dark;--calendar-filter:none;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-pill:9999px;--shadow-card:#ffffff12 0px 1px .5px 0px inset, #ffffff12 0px 0px 0px .5px inset, #00000036 0px 1px 2px 0px, #00000024 0px 2px 4px 0px;--shadow-elevated:#ffffff12 0px 1px .5px 0px inset, #ffffff12 0px 0px 0px .5px inset, #00000059 0px 8px 24px 0px;--duration-fast:70ms;--duration-base:.15s;--duration-slow:1.4s;--ease-standard:ease-in-out;--sidebar-w-collapsed:72px;--sidebar-w-expanded:260px;--sidebar-current-w:var(--sidebar-w-collapsed);--sidebar-bg:#0f1015f5;--sidebar-border:#ffffff14;--sidebar-item-hover:#ffffff0d;--sidebar-item-active-bg:#a7f1751a;--sidebar-item-active-border:#a7f175;--sidebar-text:#fff;--sidebar-text-muted:#8b949e;--sidebar-text-dim:#656d76;--sidebar-shadow:4px 0 24px #00000080;--sidebar-tooltip-bg:#181a20;--sidebar-tooltip-border:#ffffff1f;--navbar-bg:#0f1015e6;--navbar-border:#ffffff14;--navbar-shadow:0 4px 20px #0006;--navbar-dropdown-bg:#181a20;--navbar-item-hover:#ffffff0d;--color-danger:#ef4444;--color-danger-bg:#ef444426;--color-danger-border:#ef444459;--color-warning:#fbbf24;--color-warning-bg:#fbbf2426;--color-warning-border:#fbbf2459;--color-info:#38bdf8;--color-info-bg:#38bdf826;--color-info-border:#38bdf859;--color-success:#10b981;--color-success-bg:#10b98126;--color-success-border:#10b98159;--cat-syntax:#fbbf24;--cat-syntax-bg:#f59e0b1f;--cat-syntax-border:#f59e0b4d;--cat-runtime:#fb7185;--cat-runtime-bg:#f43f5e1f;--cat-runtime-border:#f43f5e4d;--cat-semantic:#c084fc;--cat-semantic-bg:#a855f71f;--cat-semantic-border:#a855f74d;--cat-resource:#38bdf8;--cat-resource-bg:#38bdf81f;--cat-resource-border:#38bdf84d;--sev-high:#fb7185;--sev-high-bg:#f43f5e1f;--sev-high-border:#f43f5e4d;--sev-mid:#fbbf24;--sev-mid-bg:#f59e0b1f;--sev-mid-border:#f59e0b4d;--sev-low:#38bdf8;--sev-low-bg:#38bdf81f;--sev-low-border:#38bdf84d}[data-theme=light],.light{--color-primary:#18191c;--color-background:#faf8f5;--color-surface:#fff;--color-surface-card:#f5f1eb;--color-surface-elevated:#eae4dc;--color-surface-hover:#efe9e0;--color-surface-subtle:#eae4dc;--color-card-hover:#ece4da;--color-accent:#1e6b30;--color-accent-hover:#165324;--color-accent-dim:#1e6b301a;--color-accent-glow:transparent;--color-on-accent:#fff;--color-border:#1e1a1429;--color-border-subtle:#1e1a141a;--color-border-hover:#1e1a1447;--color-border-accent:#1e6b30;--color-text:#111827;--color-text-muted:#374151;--color-text-dim:#4b5563;--color-scheme:light;--calendar-filter:invert(.85);--shadow-card:0 1px 3px #1e1a1414, 0 1px 2px #1e1a140d;--shadow-elevated:0 10px 25px -5px #1e1a141a, 0 8px 10px -6px #1e1a140d;--sidebar-bg:#faf8f5f7;--sidebar-border:#1e1a1424;--sidebar-item-hover:#1e1a1414;--sidebar-item-active-bg:#1e6b301f;--sidebar-item-active-border:#1e6b30;--sidebar-text:#111827;--sidebar-text-muted:#374151;--sidebar-text-dim:#4b5563;--sidebar-shadow:4px 0 24px #1e1a1414;--sidebar-tooltip-bg:#fff;--sidebar-tooltip-border:#1e1a1429;--navbar-bg:#faf8f5f0;--navbar-border:#1e1a141a;--navbar-shadow:0 4px 20px #1e1a140d;--navbar-dropdown-bg:#fff;--navbar-item-hover:#1e1a140d;--color-danger:#dc2626;--color-danger-bg:#dc26261a;--color-danger-border:#dc26264d;--color-warning:#b45309;--color-warning-bg:#f59e0b24;--color-warning-border:#d9770661;--color-info:#0369a1;--color-info-bg:#0369a11a;--color-info-border:#0369a14d;--color-success:#059669;--color-success-bg:#0596691a;--color-success-border:#0596694d;--cat-syntax:#b45309;--cat-syntax-bg:#f59e0b24;--cat-syntax-border:#d9770661;--cat-runtime:#dc2626;--cat-runtime-bg:#dc26261a;--cat-runtime-border:#dc262652;--cat-semantic:#7e22ce;--cat-semantic-bg:#7e22ce1a;--cat-semantic-border:#7e22ce52;--cat-resource:#0369a1;--cat-resource-bg:#0369a11a;--cat-resource-border:#0369a152;--sev-high:#dc2626;--sev-high-bg:#dc26261a;--sev-high-border:#dc262652;--sev-mid:#b45309;--sev-mid-bg:#f59e0b24;--sev-mid-border:#d9770661;--sev-low:#0369a1;--sev-low-bg:#0369a11a;--sev-low-border:#0369a152}html,body{box-sizing:border-box;background-color:var(--color-background);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;transition:background-color .2s,color .2s}*,:before,:after{box-sizing:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}select{background-color:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--radius-md,8px);box-shadow:var(--shadow-card);transition:border-color var(--duration-base,.15s) ease, box-shadow var(--duration-base,.15s) ease;font-family:inherit}select:hover{border-color:var(--color-border-hover)}select:focus{border-color:var(--color-accent);box-shadow:var(--shadow-card);outline:none}select option{background-color:var(--color-surface);color:var(--color-text);padding:6px 10px}body.modal-open,body.sidebar-mobile-locked,body.body-scroll-locked{-webkit-overflow-scrolling:touch;touch-action:none!important;height:100%!important;overflow:hidden!important}html,body{max-width:100vw;overflow-x:clip}@media (width<=768px){.modalOverlay,.modal-overlay,.file-preview-overlay,.custom-modal-overlay{justify-content:center!important;align-items:center!important;padding:12px!important}.modalCard,.modal-card,.modalContent,.modal-content,.file-preview-modal,.custom-modal-card{border-radius:var(--radius-lg,12px)!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;width:100%!important;max-width:min(540px,96vw)!important;max-height:92dvh!important;position:relative!important;overflow-y:auto!important}.modalHeader h2,.modalHeader h3,.modal-header h2,.modal-header h3,.modalTitle,.modal-title,.file-preview-title{word-break:break-word!important;padding-right:40px!important}.modalCloseBtn,.modalClose,.modal-close-btn,.modal-close,.file-preview-close{z-index:10!important;justify-content:center!important;align-items:center!important;min-width:36px!important;min-height:36px!important;display:flex!important;position:absolute!important;top:14px!important;right:14px!important}.modalForm .formRow,.modal-form .form-row,.formGrid,.form-grid{grid-template-columns:1fr!important;gap:12px!important}.modalActions,.modal-actions,.modalFooter,.modal-footer{flex-direction:column-reverse!important;gap:10px!important;width:100%!important;display:flex!important}.modalActions button,.modal-actions button,.modalFooter button,.modal-footer button{justify-content:center!important;width:100%!important;min-height:44px!important}}@media (width<=640px){.modalCard,.modal-card,.modalContent,.modal-content,.file-preview-modal,.custom-modal-card{max-height:94dvh!important;padding:18px 14px!important}}@media (width<=1024px){.contentContainer,.mainContent,.dashboard-content,.portal-content{padding-left:20px!important;padding-right:20px!important}}@media (width<=768px){.contentContainer,.mainContent,.dashboard-content,.portal-content{padding:16px 16px 36px!important}}@media (width<=640px){.contentContainer,.mainContent,.dashboard-content,.portal-content{padding-top:12px!important;padding-left:12px!important;padding-right:12px!important}}@media (width<=768px){.statsGrid,.stats-grid,.analytics-metrics-grid,.dean-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.classesGrid,.classes-grid,.cardGrid,.card-grid{grid-template-columns:1fr!important;gap:14px!important}.actionRow,.search-action-row,.filterBar,.filter-bar{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.actionRow .searchBox,.search-action-row .searchBox,.filterBar .searchBox{width:100%!important;max-width:100%!important}}@media (width<=640px){.statsGrid.single-on-mobile,.stats-grid.single-on-mobile{grid-template-columns:1fr!important}}@media (width<=768px){.responsive-table-wrapper{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md,8px);width:100%;overflow-x:auto}.responsive-table-wrapper table{min-width:600px}button,.btn,select,input[type=text],input[type=search],input[type=email],input[type=password],.pagination-btn{min-height:42px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
