.grade-pill{border-radius:10px;justify-content:center;align-items:center;font-weight:800;transition:transform .15s,box-shadow .15s;display:inline-flex}.grade-pill:hover{transform:translateY(-2px)scale(1.05)}.grade-10{color:#4338ca;background:#e0e7ff;border:1px solid #a5b4fc}.grade-9{color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc}.grade-8{color:#15803d;background:#dcfce7;border:1px solid #86efac}.grade-7{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.grade-6{color:#854d0e;background:#fef9c3;border:1px solid #fef08a}.grade-5{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.grade-4{color:#c2410c;background:#ffedd5;border:1px solid #fed7aa}.grade-3{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.grade-2{color:#9d174d;background:#fce7f3;border:1px solid #fbcfe8}.grade-1{color:#fecaca;background:#450a0a;border:1px solid #991b1b}[data-theme=dark] .grade-10{color:#818cf8;background:#6366f140;border-color:#6366f166}[data-theme=dark] .grade-9{color:#38bdf8;background:#0ea5e940;border-color:#0ea5e966}[data-theme=dark] .grade-8{color:#4ade80;background:#22c55e40;border-color:#22c55e66}[data-theme=dark] .grade-7{color:#34d399;background:#10b98133;border-color:#10b98166}[data-theme=dark] .grade-6{color:#facc15;background:#eab30840;border-color:#eab30866}[data-theme=dark] .grade-5{color:#fbbf24;background:#f59e0b40;border-color:#f59e0b66}[data-theme=dark] .grade-4{color:#fb923c;background:#f9731640;border-color:#f9731666}[data-theme=dark] .grade-3{color:#f87171;background:#ef444440;border-color:#ef444466}[data-theme=dark] .grade-2{color:#f472b6;background:#ec489940;border-color:#ec489966}[data-theme=dark] .grade-1{color:#fca5a5;background:#991b1b66;border-color:#ef444480}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-loader{background:linear-gradient(90deg, var(--border-color) 25%, #ffffff59 50%, var(--border-color) 75%);background-size:200% 100%;border-radius:8px;animation:1.6s ease-in-out infinite skeletonShimmer}[data-theme=dark] .skeleton-loader{background:linear-gradient(90deg,#334155 25%,#475569 50%,#334155 75%) 0 0/200% 100%}:root{--bg-body:#e8edf2;--bg-surface:#fff;--text-primary:#0f172a;--text-muted:#64748b;--border-color:#cbd5e1;--border-focus:#38bdf8;--shadow-sm:0 2px 6px #0f172a1a;--shadow-md:0 6px 24px #0f172a1f;--shadow-lg:0 14px 40px #0f172a29;--btn-primary-bg:#0ea5e9;--btn-primary-hover:#0284c7;--btn-primary-text:#fff;--btn-secondary-bg:#e2e8f0;--btn-secondary-hover:#cbd5e1;--btn-secondary-text:#334155}:root[data-theme=dark]{--bg-body:#0f172a;--bg-surface:#1e293b;--text-primary:#f8fafc;--text-muted:#94a3b8;--border-color:#334155;--border-focus:#38bdf8;--shadow-sm:0 2px 4px #0003;--shadow-md:0 10px 40px #0000004d;--shadow-lg:0 15px 50px #0006;--btn-secondary-bg:#334155;--btn-secondary-hover:#475569;--btn-secondary-text:#f1f5f9}html,body{background:var(--bg-body);color:var(--text-primary);min-height:100vh;margin:0;padding:0;font-family:Inter,Segoe UI,sans-serif;transition:background-color .3s,color .3s}*{box-sizing:border-box}.app-shell{min-height:100vh}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-fade{will-change:opacity;animation:.3s cubic-bezier(.16,1,.3,1) pageFadeIn}.topbar{background:rgba(var(--bg-surface-rgb), .85);border-bottom:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;transition:background-color .3s,border-color .3s;display:flex;position:sticky;top:0}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.topbar-controls{align-items:center;gap:.5rem;display:flex}:root{--bg-surface-rgb:255, 255, 255}:root[data-theme=dark]{--bg-surface-rgb:30, 41, 59}.brand{letter-spacing:.04em;color:var(--text-primary);background:linear-gradient(135deg,#3b9edd,#2563a8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.brand-logo{border-radius:8px;flex-shrink:0;width:28px;height:28px}.nav-links{flex-wrap:wrap;gap:.5rem;display:flex}.nav-links a{color:var(--text-muted);border-bottom:2px solid #0000;border-radius:999px;padding:.45rem .75rem;font-size:.95rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s}.nav-links a:hover{background:var(--btn-secondary-bg);color:var(--text-primary)}.nav-links a.active{color:var(--btn-primary-bg);border-bottom-color:var(--btn-primary-bg);background:0 0;border-radius:0}.page-container{max-width:1100px;margin:0 auto;padding:1rem}@media (width>=1024px){.page-container{max-width:1280px;padding:.85rem 1.25rem}}.mobile-bottom-bar{display:none}@media (width<=640px){.desktop-only,.topbar{display:none!important}.mobile-bottom-bar{z-index:1000;-webkit-backdrop-filter:blur(16px);background:#18191c;border:1px solid #ffffff1f;border-radius:9999px;justify-content:space-around;align-items:center;width:calc(100% - 2rem);max-width:380px;height:60px;padding:.3rem .5rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #00000059}:root[data-theme=light] .mobile-bottom-bar{background:#1e242b;border:1px solid #ffffff1a;box-shadow:0 10px 28px #0f172a40}.bottom-nav-item{color:#94a3b8;flex:1;justify-content:center;align-items:center;height:100%;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.bottom-nav-item .icon-wrapper{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}.nav-icon{stroke-width:2px;width:22px;height:22px;transition:color .2s,transform .2s}.nav-logo-icon{object-fit:contain;border-radius:6px;flex-shrink:0;width:32px;height:32px}.bottom-nav-item:hover .icon-wrapper{color:#f8fafc;background:#ffffff1a}.bottom-nav-item.active .icon-wrapper{color:#0f172a;background:#fff;transform:scale(1.05);box-shadow:0 4px 12px #00000026}.bottom-nav-item.active .nav-icon{stroke-width:2.2px}.page-container{padding:.6rem .75rem 5.5rem}}.page-loader.svelte-jx6mac{z-index:1000;background:var(--bg-body);flex-direction:column;padding-top:4rem;animation:.15s ease-out svelte-jx6mac-fadeIn;display:flex;position:fixed;inset:0}@keyframes svelte-jx6mac-fadeIn{0%{opacity:0}to{opacity:1}}.skeleton-layout.svelte-jx6mac{flex-direction:column;gap:1.5rem;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem 1rem;display:flex}.skeleton-header.svelte-jx6mac{justify-content:space-between;align-items:center;display:flex}.skeleton-cards.svelte-jx6mac{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}@media (width<=760px){.skeleton-cards.svelte-jx6mac{grid-template-columns:1fr}}.skeleton-card.svelte-jx6mac{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:20px;padding:1.25rem}.skeleton-panel.svelte-jx6mac{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:20px;padding:1.5rem}.skeleton-rows.svelte-jx6mac{flex-direction:column;gap:.25rem;display:flex}.skeleton-row.svelte-jx6mac{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.skeleton-row.svelte-jx6mac:last-child{border-bottom:none}.skeleton-block.svelte-jx6mac{background:linear-gradient(90deg, var(--border-color) 25%, color-mix(in srgb, var(--border-color) 50%, var(--bg-surface)) 50%, var(--border-color) 75%);background-size:200% 100%;border-radius:6px;animation:1.5s infinite svelte-jx6mac-shimmer}@keyframes svelte-jx6mac-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.w-16.svelte-jx6mac{width:4rem}.w-24.svelte-jx6mac{width:6rem}.w-32.svelte-jx6mac{width:8rem}.w-1\/3.svelte-jx6mac{width:33%}.w-1\/4.svelte-jx6mac{width:25%}.h-3.svelte-jx6mac{height:.75rem}.h-4.svelte-jx6mac{height:1rem}.h-5.svelte-jx6mac{height:1.25rem}.h-6.svelte-jx6mac{height:1.5rem}.h-8.svelte-jx6mac{height:2rem}.mb-2.svelte-jx6mac{margin-bottom:.5rem}.mb-4.svelte-jx6mac{margin-bottom:1rem}.rounded-full.svelte-jx6mac{border-radius:99px}.onboarding-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;box-sizing:border-box;background:#0f172ab8;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1.25rem;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--bg-surface,#1e293b);border:1px solid var(--border-color,#ffffff1a);border-radius:20px;flex-direction:column;width:100%;max-width:540px;animation:.3s cubic-bezier(.16,1,.3,1) modalPop;display:flex;overflow:hidden;box-shadow:0 25px 60px -15px #00000073}.onboarding-header{text-align:center;border-bottom:1px solid var(--border-color,#ffffff14);background:linear-gradient(#0ea5e914 0%,#0000 100%);padding:1.75rem 1.75rem 1.25rem}.header-badge{margin-bottom:.35rem;font-size:2rem;animation:2.5s ease-in-out infinite floatBounce;display:inline-block}.onboarding-header h2{color:var(--text-primary,#f8fafc);letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:800}.header-subtitle{color:var(--text-muted,#94a3b8);margin:.35rem 0 1.25rem;font-size:.88rem;line-height:1.45}.onboarding-body{flex-direction:column;gap:1.25rem;padding:1.5rem 1.75rem 1.75rem;display:flex}.step-form{flex-direction:column;gap:1.25rem;display:flex}.step-info{flex-direction:column;gap:.25rem;display:flex}.step-title{color:var(--text-primary,#f8fafc);margin:0;font-size:1.15rem;font-weight:700}.step-desc{color:var(--text-muted,#94a3b8);margin:0;font-size:.85rem;line-height:1.4}.form-group{flex-direction:column;gap:.45rem;display:flex}.form-group label{color:var(--text-primary,#f8fafc);font-size:.82rem;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{width:18px;height:18px;color:var(--text-muted,#94a3b8);pointer-events:none;position:absolute;left:.9rem}.code-badge{pointer-events:none;font-size:1rem;position:absolute;right:.9rem}.ob-input{background:var(--bg-body,#0f172a);border:1.5px solid var(--border-color,#ffffff1f);width:100%;color:var(--text-primary,#f8fafc);box-sizing:border-box;border-radius:12px;outline:none;padding:.85rem 1rem .85rem 2.5rem;font-family:inherit;font-size:.95rem;transition:all .2s}.ob-input:focus{border-color:var(--btn-primary-bg,#0ea5e9);box-shadow:0 0 0 3px #0ea5e933}.actions-row{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.actions-end{justify-content:flex-end}.actions-group-right{align-items:center;gap:.75rem;display:flex}.btn-primary-action{background:var(--btn-primary-bg,#0ea5e9);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.75rem 1.4rem;font-family:inherit;font-size:.88rem;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #0ea5e940}.btn-primary-action:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px #0ea5e959}.btn-primary-action:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-finish-action{background:linear-gradient(135deg,#0ea5e9 0%,#10b981 100%);box-shadow:0 4px 15px #10b98140}.btn-secondary-action{color:var(--text-muted,#94a3b8);border:1px solid var(--border-color,#ffffff1f);cursor:pointer;background:0 0;border-radius:12px;padding:.75rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.btn-secondary-action:hover:not(:disabled){color:var(--text-primary,#f8fafc);background:#ffffff0d}.btn-text-skip{color:var(--text-muted,#94a3b8);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:.5rem;font-family:inherit;font-size:.82rem;font-weight:500;text-decoration:underline;transition:color .2s}.btn-text-skip:hover:not(:disabled){color:var(--text-primary,#f8fafc)}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:scale(.94)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes floatBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (width<=520px){.onboarding-card{border-radius:16px}.actions-row,.actions-group-right{flex-direction:column-reverse;align-items:stretch}.btn-primary-action,.btn-secondary-action{width:100%}}.stepper-row.svelte-8odoa8{flex-direction:column;align-items:center;gap:.5rem;display:flex}.stepper-dots.svelte-8odoa8{justify-content:center;align-items:center;gap:.4rem;display:flex}.step-dot.svelte-8odoa8{background:var(--bg-body,#0f172a);width:28px;height:28px;color:var(--text-muted,#94a3b8);border:1.5px solid var(--border-color,#ffffff26);border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;transition:all .25s;display:flex}.step-dot.active.svelte-8odoa8{background:var(--btn-primary-bg,#0ea5e9);color:#fff;border-color:var(--btn-primary-bg,#0ea5e9);box-shadow:0 0 12px #0ea5e980}.step-dot.completed.svelte-8odoa8{color:#10b981;background:#10b98133;border-color:#10b981}.step-line.svelte-8odoa8{background:var(--border-color,#ffffff26);width:32px;height:2px;transition:background .25s}.step-line.active.svelte-8odoa8{background:#10b981}.step-indicator-text.svelte-8odoa8{color:var(--text-muted,#94a3b8);letter-spacing:.02em;font-size:.76rem;font-weight:600}.alert.svelte-1q3qw59{border-radius:10px;align-items:center;gap:.65rem;padding:.75rem 1rem;font-size:.82rem;font-weight:500;display:flex}.alert-error.svelte-1q3qw59{color:#f87171;background:#ef44441f;border:1px solid #ef44444d}.alert-success.svelte-1q3qw59{color:#34d399;background:#10b9811f;border:1px solid #10b9814d}.teacher-notice-box.svelte-1irpnam{background:#0ea5e914;border:1px solid #0ea5e940;border-radius:12px;align-items:flex-start;gap:.85rem;padding:.9rem 1.05rem;display:flex}.teacher-notice-box.is-teacher-role.svelte-1irpnam{background:#f59e0b1a;border-color:#f59e0b59}.notice-icon.svelte-1irpnam{flex-shrink:0;font-size:1.35rem;line-height:1}.notice-content.svelte-1irpnam{flex-direction:column;gap:.2rem;display:flex}.notice-title.svelte-1irpnam{color:var(--text-primary,#f8fafc);margin:0;font-size:.85rem;font-weight:700}.notice-text.svelte-1irpnam{color:var(--text-muted,#94a3b8);margin:0;font-size:.78rem;line-height:1.4}.anon-options-grid.svelte-1k2dvxb{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.anon-card-option.svelte-1k2dvxb{background:var(--bg-body,#0f172a);border:1.5px solid var(--border-color,#ffffff1a);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px;outline:none;flex-direction:column;gap:.4rem;padding:1rem;transition:all .2s;display:flex}.anon-card-option.svelte-1k2dvxb:hover{border-color:#0ea5e980;transform:translateY(-2px)}.anon-card-option.selected.svelte-1k2dvxb{border-color:var(--btn-primary-bg,#0ea5e9);background:#0ea5e914;box-shadow:0 4px 15px #0ea5e926}.option-header.svelte-1k2dvxb{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.option-avatar.svelte-1k2dvxb{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.1rem;display:flex}.avatar-public.svelte-1k2dvxb{background:#0ea5e926}.avatar-anon.svelte-1k2dvxb{background:#a855f726}.radio-indicator.svelte-1k2dvxb{border:1.5px solid var(--border-color,#fff3);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:flex}.radio-indicator.checked.svelte-1k2dvxb{border-color:var(--btn-primary-bg,#0ea5e9);background:var(--btn-primary-bg,#0ea5e9)}.radio-dot.svelte-1k2dvxb{background:#fff;border-radius:50%;width:6px;height:6px}.option-title.svelte-1k2dvxb{color:var(--text-primary,#f8fafc);margin:0;font-size:.88rem;font-weight:700}.option-desc.svelte-1k2dvxb{color:var(--text-muted,#94a3b8);margin:0;font-size:.75rem;line-height:1.35}@media (width<=520px){.anon-options-grid.svelte-1k2dvxb{grid-template-columns:1fr}}
