:root{--bg:#f6f8fb;--panel:#fff;--text:#111827;--muted:#6b7280;--accent:#4f46e5;--accent-hover:#6366f1;--border:#e5e7eb;--radius:14px;--shadow:0 8px 24px #0f172a0f;--danger:#b91c1c;--danger-bg:#fef2f2}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--bg);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:960px;min-height:100%;margin:0 auto;padding:28px 20px 40px}.shell.narrow{max-width:420px}.title{margin:0 0 8px;font-size:1.5rem;font-weight:700}.muted{color:var(--muted);margin:0 0 20px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.form-card label{margin-bottom:14px;font-size:.9rem;font-weight:600;display:block}.form-card input,.form-card select{border:1px solid var(--border);width:100%;font:inherit;background:var(--panel);color:var(--text);border-radius:10px;margin-top:6px;padding:10px 12px;display:block}.auth-tabs{border:1px solid var(--border);background:var(--panel);border-radius:10px;gap:0;margin-bottom:16px;display:flex;overflow:hidden}.auth-tab{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;flex:1;padding:10px 12px;font-weight:600}.auth-tab.active{background:var(--accent);color:#fff}.role-pill{color:#4338ca;text-transform:capitalize;background:#eef2ff;border-radius:999px;padding:2px 8px;font-size:.8rem;font-weight:600;display:inline-block}.class-panel{padding:16px 18px}.class-panel-row{margin-bottom:12px}.class-panel-row .btn.secondary{width:auto;min-width:160px}.class-picker{margin:0;font-size:.9rem;font-weight:600;display:block}.class-picker-label{color:var(--muted);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.class-picker select{border:1px solid var(--border);width:100%;max-width:420px;font:inherit;background:var(--panel);color:var(--text);border-radius:10px;padding:10px 12px;display:block}.teacher-class-card{margin-bottom:16px;padding:16px 18px}.teacher-class-roster{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.roster-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:700}.roster-table{margin:10px 0 0;padding:0;list-style:none}.roster-table li{border-bottom:1px solid var(--border);grid-template-columns:minmax(100px,1fr) auto auto;align-items:baseline;gap:10px 16px;padding:8px 0;font-size:.9rem;display:grid}.roster-table li:last-child{border-bottom:none}.roster-uid{font-family:ui-monospace,monospace;font-size:.85rem}.roster-meta{color:var(--muted);white-space:nowrap;font-size:.82rem}@media (width<=640px){.roster-table li{grid-template-columns:1fr;gap:4px}}.teacher-class-card-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.class-panel-actions{flex-wrap:wrap;gap:10px;display:flex}.class-panel-actions .btn.secondary{width:auto;min-width:140px}.progress-dashboard .progress-h2{margin:20px 0 10px;font-size:1.05rem}.progress-summary-card{margin-bottom:24px;padding:18px 20px}.progress-summary-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-summary-body{margin-top:14px;font-size:.95rem;line-height:1.55}.progress-summary-body .summary-h{margin:16px 0 6px;font-size:1rem;font-weight:700}.progress-summary-body .summary-h:first-child{margin-top:0}.progress-summary-body p{margin:0 0 8px}.progress-summary-body ul{margin:0 0 8px;padding-left:1.25rem}.progress-summary-body li{margin:3px 0}.progress-summary-body code{background:#7f7f7f29;border-radius:4px;padding:1px 5px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.smallprint{margin:8px 0 0;font-size:.8rem}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow-x:auto}.progress-table{border-collapse:collapse;width:100%;font-size:.88rem}.progress-table th,.progress-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.progress-table th{background:var(--bg);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.progress-table tr:last-child td{border-bottom:none}.progress-feedback,.progress-notes{max-width:280px}.roster-click-table .btn.secondary{font-size:.85rem}.progress-lesson-block{margin-bottom:28px}.progress-teacher-by-question{padding:18px 20px}.progress-teacher-by-question-hint{margin:0 0 14px}.progress-table-teacher-questions .progress-when-sub{margin-top:4px;line-height:1.35}.progress-teacher-details-cell{vertical-align:top;min-width:7rem}.progress-details-summary{cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600;list-style:none}.progress-details-summary::-webkit-details-marker{display:none}.progress-details-summary:before{content:"▸ ";transition:transform .12s;display:inline-block}details[open]>.progress-details-summary:before{transform:rotate(90deg)}.progress-details-panel{border-top:1px solid var(--border);margin-top:12px;padding:12px 0 4px}.progress-details-lead{margin:0 0 10px}.progress-details-inner-wrap{margin-bottom:14px}.progress-table-nested{font-size:.82rem}.progress-table-nested th,.progress-table-nested td{padding:8px 10px}.progress-attempt-text-block{background:var(--bg);border-left:3px solid var(--border);border-radius:8px;margin:0 0 16px;padding:10px 12px}.progress-attempt-text-head{margin-bottom:8px}.progress-attempt-feedback{white-space:pre-wrap;font-size:.88rem;line-height:1.5}.progress-attempt-notes{margin:8px 0 0;padding-left:1.1rem;font-size:.85rem;line-height:1.45}.progress-teacher-feedback-card{margin-bottom:28px}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:10px 18px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff;width:100%;margin-top:8px}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.secondary{background:var(--panel);width:100%;color:var(--text);border-color:var(--border)}.btn.secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--accent)}.divider{text-align:center;color:var(--muted);margin:16px 0;font-size:.85rem}.hint{color:var(--muted);margin-top:20px;font-size:.8rem}.error{color:var(--danger);margin:0 0 8px;font-size:.9rem}.menu-shell{max-width:900px}.class-dashboard-shell{max-width:1120px}.class-dashboard-hint{margin-top:10px}.teacher-grid-hint{margin:0 0 14px}.lesson-card-slot{display:flex;position:relative}.lesson-card-slot .lesson-card{flex:1}.lesson-card-slot .lesson-card-title{padding-right:34px}.lesson-lock-btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:1rem;line-height:1;transition:border-color .15s,transform .15s;display:flex;position:absolute;top:10px;right:10px}.lesson-lock-btn.is-locked{background:#fff7ed;border-color:#fdba74}.lesson-lock-btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.lesson-lock-btn:disabled{cursor:progress;opacity:.7}.class-student-roster-card{margin-top:8px}.class-student-roster{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.class-student-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:inherit;flex-wrap:wrap;align-items:center;gap:16px;padding:14px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.class-student-row:hover{border-color:var(--accent);background:var(--bg)}.class-student-row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.class-student-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem;font-weight:700}.class-student-uid{color:var(--text);font-size:1rem;font-weight:600}.class-student-meta{color:var(--muted);font-size:.88rem}.class-student-chevron{color:var(--accent);font-size:1.25rem;font-weight:700}.progress-lesson-pick-card{margin-bottom:20px}.progress-teacher-prompt{border-radius:var(--radius);background:var(--bg);border:1px dashed var(--border);margin:0 0 20px;padding:14px 16px}.class-lesson-select-label{color:var(--text);margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.class-lesson-select{border:1px solid var(--border);background:var(--panel);width:100%;max-width:440px;color:var(--text);border-radius:10px;padding:10px 12px;font-size:1rem;display:block}.progress-h3{color:var(--text);margin:0;font-size:1.1rem;font-weight:700}.progress-question-label{font-weight:600}.roster-progress-links{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.roster-all-lessons-link{white-space:nowrap}.menu-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.menu-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.menu-header-actions .btn{white-space:nowrap;width:auto}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.lesson-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;gap:8px;padding:18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.lesson-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}.lesson-card-title{font-size:1rem;font-weight:700}.lesson-card-meta{color:var(--muted);font-size:.85rem}.lesson-page{background:#0f172a;flex-direction:column;height:100%;min-height:100vh;display:flex}.lesson-toolbar{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 14px;display:flex}.lesson-toolbar-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.banner{flex-shrink:0;padding:8px 14px;font-size:.88rem}.banner.info{color:#3730a3;background:#eef2ff;border-bottom:1px solid #c7d2fe}.banner.error{background:var(--danger-bg);color:var(--danger);border-bottom:1px solid #fecaca}.lesson-frame{background:#fff;border:0;flex:1;width:100%;min-height:0}.no-margin{margin:0}.section-title{margin-top:28px;font-size:1.1rem}.form-card-narrow{max-width:420px}.form-card-spaced{margin-bottom:1rem}.terms-checkbox{align-items:flex-start;gap:.6rem;margin-bottom:14px;font-weight:400;display:flex}.terms-checkbox input{flex:none;width:auto;margin:.2rem 0 0}.terms-checkbox span{font-weight:400;line-height:1.45}.banner-spaced{margin-bottom:12px}.stacked-btn{margin-top:.5rem}.signin-error{margin-top:12px}.staff-signin{margin-top:20px}.staff-signin-summary{cursor:pointer;color:var(--muted);font-size:.85rem;font-weight:600;list-style:none}.staff-signin-summary::-webkit-details-marker{display:none}.staff-signin-summary:before{content:"▸ ";transition:transform .12s;display:inline-block}details[open]>.staff-signin-summary:before{transform:rotate(90deg)}.staff-signin-summary:hover,.staff-signin-summary:focus-visible{color:var(--accent)}@font-face{font-family:Inter Display;src:url(../fonts/home/inter-display-600-latin.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2070,U+2074-207E,U+2080-208E,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Display;src:url(../fonts/home/inter-display-700-latin.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2070,U+2074-207E,U+2080-208E,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Switzer;src:url(../fonts/home/switzer-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(../fonts/home/switzer-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(../fonts/home/switzer-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}.home{--home-ink:#101011;--home-ink-2:#2b2b2c;--home-grey:#606266;--home-line:#ececf2;--home-line-2:#dedde8;--home-violet:#5235ef;--home-violet-2:#8771ff;--home-lavender:#8771ff4d;--home-navy:#0f172a;--home-navy-out:#0b1020;--home-display:"Inter Display", system-ui, -apple-system, "Segoe UI", sans-serif;--home-text:"Switzer", system-ui, -apple-system, "Segoe UI", sans-serif;--home-mono:"Cascadia Code", Consolas, ui-monospace, Menlo, monospace;--home-ease:cubic-bezier(.22, 1, .36, 1);--home-bar-h:66px;min-height:100%;color:var(--home-ink);font-family:var(--home-text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;background:#fff;flex-direction:column;font-weight:500;display:flex}.home-bar{z-index:50;transition:border-color .3s var(--home-ease);background:#fff;border-bottom:1px solid #0000;position:sticky;top:0}.home-bar.is-scrolled{border-bottom-color:var(--home-line)}.home-bar-in{max-width:1224px;height:var(--home-bar-h);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:0 24px;display:flex}.home-logo{width:auto;height:34px;display:block}.home-bar-links{align-items:center;gap:24px;display:flex}.home-bar-link{color:var(--home-grey);letter-spacing:-.02em}.home-bar-link:hover{color:var(--home-ink);text-decoration:none}.home-btn{appearance:none;cursor:pointer;white-space:nowrap;font:500 17px/1 var(--home-text);letter-spacing:-.02em;transition:transform .3s var(--home-ease), box-shadow .3s var(--home-ease), background-color .3s var(--home-ease);border:0;justify-content:center;align-items:center;gap:12px;display:inline-flex}.home-btn:focus-visible,.home-text-btn:focus-visible{outline-offset:3px;outline:3px solid #a99bff}.home-btn:active{transform:translateY(1px)}.home-btn-grad{color:#fff;background:linear-gradient(180deg, var(--home-violet) 0%, var(--home-violet-2) 100%);border-radius:30px;padding:12px 10px 12px 28px;box-shadow:0 6px 20px #5235ef99}.home-btn-grad:hover{transform:translateY(-2px);box-shadow:0 12px 30px #5235ef9e}.home-arrow{width:40px;height:40px;color:var(--home-ink);transition:transform .35s var(--home-ease);background:#fff;border-radius:50%;place-items:center;display:grid}.home-btn:hover .home-arrow{transform:translate(3px)}.home-btn-dark{color:#fff;background:var(--home-ink);border-radius:30px;padding:11px 20px;font-size:15px}.home-btn-dark:hover{background:#2c2c30}.home-text-btn{appearance:none;cursor:pointer;font:500 17px/1.2 var(--home-text);letter-spacing:-.02em;color:var(--home-ink);background:0 0;border:0;border-bottom:1.5px solid #10101140;padding:0 0 2px}.home-text-btn:hover{border-bottom-color:var(--home-ink)}.home-main{flex:1 0 auto;width:100%}.home-wrap{width:100%;max-width:1224px;margin:0 auto;padding:0 24px}.home-hero{background:linear-gradient(180deg, #fff 0.45%, var(--home-lavender) 24.3%, var(--home-lavender) 78.8%, #fff 100%);padding:56px 0 104px;overflow:hidden}.home-hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:48px;display:grid}.home-badge{font:500 14px/19.6px var(--home-text);letter-spacing:-.02em;color:var(--home-ink-2);background:#fff;border-radius:30px;align-items:center;gap:10px;margin:0;padding:4px 15px 4px 4px;display:inline-flex;box-shadow:0 1px 3px #0000000d}.home-badge b{background:var(--home-ink);color:#fff;border-radius:30px;padding:2px 10px;font-weight:500}.home-h1{font:600 clamp(2.9rem, 6.6vw, 5.8rem) / 1 var(--home-display);letter-spacing:-.04em;color:var(--home-ink);margin:26px 0 0}.home-lead{max-width:460px;color:var(--home-grey);font:500 clamp(1.05rem, 1.3vw, 1.2rem) / 1.45 var(--home-text);letter-spacing:-.02em;margin:22px 0 0}.home-cta{flex-wrap:wrap;align-items:center;gap:26px;margin-top:36px;display:flex}.home-shot{perspective:1600px;padding:44px 24px 72px 44px;position:relative}.home-ide{background:var(--home-navy);color:#e2e8f0;transform-origin:70%;border-radius:18px;overflow:hidden;transform:rotateY(-10deg)rotateX(5deg);box-shadow:0 2px 6px #1010111a,0 60px 100px -34px #5235ef99}.home-ide-top{background:#0b1224;border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;padding:11px 16px;display:flex}.home-dots{gap:6px;display:flex}.home-dots i{background:#334155;border-radius:50%;width:10px;height:10px;display:block}.home-ide-file{font:600 13px/1 var(--home-mono);color:#94a3b8}.home-shot pre,.home-shot code{font-family:var(--home-mono);font-variant-ligatures:none;letter-spacing:0}.home-ide-code{white-space:pre;counter-reset:home-line;margin:0;padding:14px 0;font-size:15px;line-height:1.8;overflow:hidden}.home-ln{padding-right:18px;display:block}.home-ln:before{counter-increment:home-line;content:counter(home-line);text-align:right;color:#475569;width:46px;padding-right:16px;display:inline-block}.home-ide-out{background:var(--home-navy-out);border-top:1px solid #ffffff0f;padding:12px 20px 44px}.home-ide-out-h{font:700 11px/1 var(--home-text);letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin:0 0 6px}.home-ide-out pre{color:#e5e7eb;margin:0;font-size:15px;line-height:1.6}.home-sx-k{color:#c4b5fd}.home-sx-f{color:#93c5fd}.home-sx-n{color:#7dd3fc}.home-sx-s{color:#6ee7b7}.home-sx-v{color:#fcd34d}.home-card{background:#fff;border-radius:18px;position:absolute;box-shadow:0 1px 2px #1010110f,0 22px 48px -14px #1010114d}.home-card-chip{color:var(--home-ink);align-items:center;gap:10px;padding:10px 16px;font-size:15px;animation:6s ease-in-out -3s infinite alternate home-float;display:flex;top:10px;right:0}.home-card-chip i{background:var(--home-violet-2);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #8771ff40}.home-card-marks{grid-template-columns:auto 1fr;gap:4px 14px;width:min(340px,82%);padding:16px 18px;animation:7s ease-in-out infinite alternate home-float;display:grid;bottom:8px;left:0}.home-card-marks b{font:700 18px/1.2 var(--home-display);letter-spacing:-.02em}.home-card-marks p{color:#3a3b40;margin:0;font-size:14.5px;line-height:1.45}.home-card-marks code{background:#1010110f;border-radius:5px;padding:0 5px;font-size:.92em;font-weight:600}.home-tick{color:#fff;background:#15803d;border-radius:50%;grid-row:span 2;place-items:center;width:38px;height:38px;display:grid}@keyframes home-float{0%{transform:translateY(0)}to{transform:translateY(-12px)}}.home-demo{padding-top:24px;scroll-margin-top:72px}.demo-layout.has-rail{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:48px;display:grid}.home-rail{padding-top:24px;position:sticky;top:96px}.home-rail ol{margin:0;padding:0;list-style:none;position:relative}.home-rail ol:before{content:"";background:var(--home-line);width:2px;position:absolute;top:20px;bottom:20px;left:17px}.home-rail li+li{margin-top:18px}.home-rail-item{cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--home-grey);background:0 0;border:0;align-items:center;gap:14px;padding:0;display:flex;position:relative}.home-rail-item:hover{color:var(--home-ink)}.home-rail-item:focus-visible{outline-offset:4px;border-radius:12px;outline:3px solid #a99bff}.home-rail-num{border:1.5px solid var(--home-line-2);width:36px;height:36px;color:var(--home-grey);font:700 15px/1 var(--home-display);transition:background-color .35s var(--home-ease), border-color .35s var(--home-ease), color .35s var(--home-ease), box-shadow .35s var(--home-ease);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.home-rail-text b{font-size:16px;font-weight:500;line-height:1.25;display:block}.home-rail-text small{color:#8a8c93;font-size:13.5px;display:block}.home-rail-item.is-done .home-rail-num{color:var(--home-violet);border-color:#5235ef73}.home-rail-item.is-active{color:var(--home-ink)}.home-rail-item.is-active .home-rail-num{color:#fff;background:linear-gradient(180deg, var(--home-violet), var(--home-violet-2));border-color:#0000;box-shadow:0 6px 16px #5235ef66}@media (width<=1180px){.demo-layout.has-rail{grid-template-columns:minmax(0,1fr);gap:0}.home-rail{top:calc(var(--home-bar-h) + 1px);z-index:40;border-bottom:1px solid var(--home-line);scrollbar-width:none;background:#fff;margin:0 -24px;padding:10px 24px;overflow-x:auto}.home-rail::-webkit-scrollbar{display:none}.home-rail ol{gap:8px;display:flex}.home-rail ol:before{display:none}.home-rail li+li{margin-top:0}.home-rail-item{border:1px solid var(--home-line);white-space:nowrap;border-radius:30px;gap:8px;width:auto;padding:5px 14px 5px 5px}.home-rail-num{width:28px;height:28px;font-size:13px}.home-rail-text small{display:none}.home-rail-text b{font-size:14px}}@media (width<=640px){.home-rail{margin:0 -16px;padding:8px 16px}}.demo-frame{background:0 0;border:0;width:100%;display:block}.home-footer{border-top:1px solid var(--border);text-align:center;width:100%;max-width:760px;color:var(--muted);margin:0 auto;padding:18px 16px 28px;font-size:.8rem;line-height:1.6}.home-footer p{margin:0 0 4px}.home-footer a{color:inherit;text-underline-offset:2px;text-decoration:underline}.home-footer a:hover{color:var(--accent)}.grecaptcha-badge{visibility:hidden}.signin-dialog-title{margin:0 0 6px;font-size:1.25rem;font-weight:700}.demo-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.demo-sample{background:#f0fdf4;border:1px dashed #15803d;border-radius:12px;margin-top:16px;padding:14px 16px}.demo-sample-label{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#15803d;border-radius:999px;margin-bottom:8px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.demo-sample-heading{color:#14532d;margin:0;font-weight:700}.demo-sample-tick{margin-right:8px;display:inline-block}.demo-sample-feedback{color:#374151;margin:6px 0 0;line-height:1.5}.home .lm-dialog:has(.signin-dialog-title){border:1px solid var(--home-line);border-radius:22px;padding:30px 28px 24px;box-shadow:0 2px 6px #1010110f,0 40px 100px -30px #5235ef73}.home .signin-dialog-title{font:700 28px/1.1 var(--home-display);letter-spacing:-.02em;color:var(--home-ink)}:is(.home .lm-dialog:has(.signin-dialog-title) .muted,.home .lm-dialog:has(.signin-dialog-title) .hint){color:var(--home-grey)}.home .lm-dialog:has(.signin-dialog-title) .btn.primary{background:linear-gradient(180deg, var(--home-violet) 0%, var(--home-violet-2) 100%);font:500 17px/1 var(--home-text);letter-spacing:-.02em;border-radius:30px;margin-top:14px;padding:14px 20px;box-shadow:0 6px 20px #5235ef73}.home .lm-dialog:has(.signin-dialog-title) .btn.primary:hover:not(:disabled){background:linear-gradient(#4a2fe0 0%,#7c64ff 100%)}.home .lm-dialog:has(.signin-dialog-title) .btn.secondary{font:500 16px/1 var(--home-text);border-radius:30px;padding:12px 20px}.home .lm-dialog:has(.signin-dialog-title) .form-card{border-color:var(--home-line);box-shadow:none;border-radius:16px;margin-top:12px}.home .lm-dialog:has(.signin-dialog-title) .form-card label{font-weight:500}.home .lm-dialog:has(.signin-dialog-title) .form-card input{border-color:var(--home-line-2);border-radius:12px}.home .lm-dialog:has(.signin-dialog-title) .form-card input:focus{outline-offset:0;border-color:var(--home-violet);outline:3px solid #8771ff59}.home .lm-dialog:has(.signin-dialog-title) .staff-signin-summary{color:var(--home-grey);font-weight:500}:is(.home .lm-dialog:has(.signin-dialog-title) .staff-signin-summary:hover,.home .lm-dialog:has(.signin-dialog-title) .staff-signin-summary:focus-visible){color:var(--home-violet)}.home .lm-dialog:has(.signin-dialog-title) a{color:var(--home-violet)}@media (width<=1020px){.home-hero-in{grid-template-columns:minmax(0,1fr)}.home-shot{max-width:640px}}@media (width<=640px){.home{--home-bar-h:58px}.home-bar-in{padding:0 16px}.home-logo{height:28px}.home-bar-link{display:none}.home-wrap{padding:0 16px}.home-hero{padding:36px 0 64px}.home-btn-grad{padding:10px 8px 10px 22px;font-size:16px}.home-arrow{width:34px;height:34px}.home-shot{padding:34px 4px 8px 8px}.home-ide{transform:none}.home-ide-code{font-size:13.5px}.home-ln:before{width:34px;padding-right:12px}.home-card-marks{width:auto;margin:-18px 12px 0;position:relative;bottom:auto;left:auto}.home-demo{padding-top:8px}}@media (prefers-reduced-motion:reduce){.home-card{animation:none}.home-bar,.home-btn,.home-arrow{transition:none}}.staff-email-row{align-items:center;gap:8px;display:flex}.staff-email-row input{flex:auto;min-width:0}.staff-domain{color:var(--muted);white-space:nowrap;flex:none;font-size:.9rem}.staff-hint{margin-top:8px}.staff-confirm{margin-top:12px}.staff-confirm-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.staff-confirm-actions .btn{width:auto}.class-list{margin:0;padding:0}.class-list-item{margin-bottom:12px;list-style:none}.class-panel{margin-bottom:20px}.class-panel-empty{margin:12px 0 0}.join-code{letter-spacing:.06em;font-size:1.05em}.badge-inactive{color:var(--muted);font-size:.85rem;font-weight:500}.teacher-class-card{list-style:none}.teacher-class-card-cta{width:auto;padding:6px 14px;font-size:.85rem}.teacher-class-card-meta{margin-top:6px}.roster-empty{margin:8px 0 0}.teacher-class-ops{flex-direction:column;gap:8px;margin-top:12px;display:flex}.teacher-class-ops-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-class-ops input{border:1px solid var(--border);font:inherit;border-radius:8px;flex:220px;padding:6px 10px}.class-student-li{align-items:center;gap:8px;display:flex}.class-student-row{flex:1}.rag-pill{border:1px solid var(--border);background:var(--bg);min-width:26px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.rag-pill.rag-green{color:#15803d;background:#dcfce7;border-color:#86efac}.rag-pill.rag-amber{color:#b45309;background:#fef3c7;border-color:#fcd34d}.rag-pill.rag-red{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.class-roster-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.class-roster-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.class-roster-filter{border:1px solid var(--border);font:inherit;border-radius:10px;padding:7px 10px}.class-roster-rag-filter{align-items:center;gap:6px;display:inline-flex}.class-roster-rag-filter select{border:1px solid var(--border);font:inherit;border-radius:10px;padding:7px 8px}.class-roster-hint{margin-top:4px}.roster-sort-btn{font:inherit;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:.78rem;font-weight:700}.roster-sort-btn[aria-pressed=true]{color:var(--accent)}.roster-student-link{word-break:break-all;font-weight:600}.roster-lesson-strip{flex-wrap:wrap;gap:4px;max-width:220px;display:inline-flex}.roster-dot{background:#d1d5db;border-radius:50%;width:11px;height:11px;display:inline-block}.roster-dot.dot-green,.student-lesson-chip.chip-green .chip-tag{background:#16a34a}.roster-dot.dot-amber{background:#d97706}.roster-dot.dot-red{background:#dc2626}.roster-dot.dot-none{background:#e5e7eb}.class-lesson-stats{flex-wrap:wrap;align-items:center;gap:24px;margin:14px 0 6px;display:flex}.class-lesson-stat{flex-direction:column;display:flex}.class-lesson-stat-num{font-size:1.6rem;font-weight:800;line-height:1.1}.class-lesson-rag-dist{gap:6px;display:inline-flex}.class-lesson-subhead{margin:16px 0 8px;font-size:.95rem;font-weight:700}.class-lesson-qlist{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.class-lesson-qrow{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.class-lesson-qrow:last-child{border-bottom:none}.class-lesson-qtitle{font-size:.9rem}.class-lesson-feedback{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.class-lesson-empty{margin-top:14px}.student-score-header .student-score-top{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.student-score-overall{align-items:center;gap:8px;display:inline-flex}.student-score-num{font-size:1.8rem;font-weight:800;line-height:1}.student-score-strip{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.student-lesson-chip{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:6px;padding:4px 8px;font-size:.8rem;display:inline-flex}.student-lesson-chip .chip-tag{color:#fff;background:#9ca3af;border-radius:6px;padding:1px 6px;font-size:.72rem;font-weight:700}.student-lesson-chip.chip-amber .chip-tag{background:#d97706}.student-lesson-chip.chip-red .chip-tag{background:#dc2626}.student-lesson-chip.chip-none{opacity:.65}.chip-pct{font-weight:600}.class-manage-card .class-manage-panel{margin-top:12px}.class-roster-lesson-pick{align-items:center;gap:6px;display:inline-flex}.class-roster-lesson-pick select{border:1px solid var(--border);font:inherit;border-radius:10px;max-width:240px;padding:7px 8px}.roster-dot.dot-selected{outline:2px solid var(--accent);outline-offset:1px}._trailWrap_1u95l_9{width:100%;margin-top:4px;position:relative}._board_1u95l_16{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}._trace_1u95l_26{fill:none;stroke:#6366f1;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}._pad_1u95l_34{fill:#f59e0b;stroke:#fff;stroke-width:1.5px}._cardItem_1u95l_41{z-index:2;position:absolute}._cardLocked_1u95l_51{box-shadow:none;color:#475569;cursor:not-allowed;background:#f1f5f9;border-style:dashed;border-color:#cbd5e1}._cardLocked_1u95l_51 .lesson-card-meta{color:#5a6a7f}._cardLocked_1u95l_51:hover{border-color:var(--border);transform:none}._cardTitle_1u95l_70{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}._mascot_1u95l_78{z-index:1;pointer-events:none;opacity:.95;position:absolute}@media (prefers-reduced-motion:no-preference){._mascot_1u95l_78{animation:_bob_1u95l_1 var(--dur,7s) ease-in-out infinite;animation-delay:var(--delay,0s)}@keyframes _bob_1u95l_1{0%,to{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-7px) rotate(calc(var(--rot,0deg) + 1.5deg))}}._cursor_1u95l_102{animation:1.1s step-end infinite _blink_1u95l_1}@keyframes _blink_1u95l_1{0%,50%{opacity:1}50.01%,to{opacity:0}}}
