:root{--brand:#4f46e5;--brand-strong:#4338ca;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:var(--ink-user-light,#132523);--text:var(--text-user-light,#2f4c49);--muted:var(--muted-user-light,#557c78);--faint:var(--faint-user-light,#739c97);--bg:var(--bg-user-light,#f3f9f9);--surface:#fff;--surface-2:var(--surface-2-user-light,#e7f4f2);--border:var(--border-user-light,#cee9e6);--border-strong:var(--border-strong-user-light,#abd3cf);--primary:var(--primary-user-light,#1e8076);--primary-strong:var(--primary-strong-user-light,#1c9286);--primary-soft:var(--primary-soft-user-light,#def7f4);--primary-softer:var(--primary-softer-user-light,#f2faf9);--ring:var(--ring-user-light,#30cfbf4d);--on-primary:var(--on-primary-user-light,#fff);--primary-lift:var(--primary-lift-user-light,#51d6c9);--panel:var(--panel-user,#132523);--panel-2:var(--panel-2-user,#0c1c1b);--panel-text:var(--panel-text-user,#a4ccc8);--panel-bright:var(--panel-bright-user,#d0e7e5);--panel-link:var(--panel-link-user,#97d8d2);--rule:var(--rule-user-light,#4fa19838);--margin-rule:var(--margin-rule-user-light,#4ed0c3);--sky:#2f7d8c;--success:#3f7a4f;--success-bg:#eef5ee;--success-border:#c2dbc6;--danger:#b23c2c;--danger-bg:#fdf0ec;--danger-border:#f0c9bd;--warn:#855610;--warn-bg:#fdf4e5;--warn-border:#eed9ac;--gold:#c08b2e;--r-sm:6px;--r:10px;--r-lg:14px;--shadow-sm:0 1px 0 #2418120a;--shadow:0 2px 6px #2418120f;--shadow-lg:0 6px 18px #2418121a;--line-height-px:32px;--font:"Heebo", "Segoe UI", system-ui, -apple-system, Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h,4rem) + .75rem)}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-color:var(--bg);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--line-height-px) - 1px), var(--rule) calc(var(--line-height-px) - 1px), var(--rule) var(--line-height-px));margin:0;line-height:1.6}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3,h4{color:var(--ink);margin:0 0 .5rem;font-weight:700;line-height:1.25}h1{letter-spacing:-.01em;font-size:1.65rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .5rem}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}b,strong{color:var(--ink)}.muted{color:var(--muted);font-size:.92rem}.icon{vertical-align:-.18em;flex-shrink:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;background:var(--ink);color:var(--bg);border-radius:var(--r-sm);padding:.5rem 1rem;transition:top .15s;position:absolute;top:-48px;right:12px}.skip-link:focus{top:10px}.center-screen,.loading{min-height:40vh;color:var(--muted);justify-content:center;align-items:center;font-size:1.05rem;display:flex}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{background:var(--surface);border-top:3px solid var(--primary);border-bottom:1px solid var(--border);z-index:50;position:sticky;top:0}.app-header__inner{align-items:center;gap:.75rem;max-width:1320px;margin:0 auto;padding:.55rem 1.25rem;display:flex}.app-brand{color:var(--ink);align-items:center;gap:.5rem;font-weight:800;display:flex}.app-brand__mark{flex:none;display:block}.app-brand__text{flex-direction:column;line-height:1.15;display:flex}.app-brand__title{letter-spacing:.005em;direction:ltr;unicode-bidi:isolate;font-size:1.12rem}.app-brand__tagline{color:var(--muted);font-size:.78rem;font-weight:600}.app-brand--on-dark{color:#fff;margin-bottom:.6rem}.app-brand--on-dark .app-brand__tagline{color:#ffffffb8}.print-brand{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);direction:ltr;unicode-bidi:isolate;margin:.1rem 0 0;font-size:.8rem;font-weight:700}.app-nav{flex:1;gap:.1rem;min-width:0;margin-inline-start:.35rem;display:flex}.app-nav__link{border-radius:var(--r-sm);color:var(--muted);white-space:nowrap;padding:.43rem .68rem;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.app-nav__link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}@media (width>=1121px) and (width<=1280px){.app-nav__link{padding:.42rem .48rem;font-size:.86rem}.app-user__name{display:none!important}}.app-nav__link.is-active{background:var(--primary-softer);color:var(--primary-strong);box-shadow:inset 0 -2px 0 var(--primary)}.app-user{align-items:center;gap:.35rem;margin-inline-start:auto;display:flex}.app-user__profile{color:var(--ink);border-radius:var(--r-sm);align-items:center;gap:.45rem;padding:.2rem .35rem;text-decoration:none;display:flex}.app-user__profile:hover{background:var(--surface-2);text-decoration:none}.app-user__profile:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.app-user__name{color:var(--ink);align-items:center;gap:.45rem;font-size:.92rem;font-weight:600;display:flex}.role-badge{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;padding:.14rem .5rem;font-size:.7rem;font-weight:700}.nav-toggle{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;color:var(--ink);background:0 0;padding:.4rem .6rem;font-size:1.15rem;line-height:1;display:none}.header-error{max-width:1140px;color:var(--danger);margin:0 auto;padding:.4rem 1.25rem;font-size:.85rem}.app-main{padding:1.6rem 1.25rem 2.5rem;flex:1;width:100%;max-width:1140px;margin:0 auto;padding-inline-start:2.9rem;position:relative}.app-main:before{content:"";background:var(--margin-rule);opacity:.5;pointer-events:none;width:2px;position:absolute;inset-block:.4rem;inset-inline-start:1.7rem}.app-main:focus{outline:none}.app-footer{border-top:1px solid var(--border);background:var(--surface);text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.35rem;padding:1.1rem;font-size:.84rem;display:flex}.app-footer__brand{color:var(--faint);font-size:.8rem}.app-brand--link{text-decoration:none}.app-brand--link:hover .app-brand__title{color:var(--primary-strong)}.app-brand--link:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm);outline:none}.header-feedback__label{font-size:.84rem}.header-utility span,.header-logout span{font-size:.82rem}.header-notification-icon{display:inline-flex;position:relative}.notification-dot{background:var(--danger);border:1px solid var(--surface);border-radius:50%;width:7px;height:7px;position:absolute;inset-block-start:-3px;inset-inline-end:-4px}.notification-count{background:var(--primary-soft);min-width:1.35rem;height:1.35rem;color:var(--primary-strong);border-radius:999px;justify-content:center;align-items:center;padding:0 .28rem;display:inline-flex;font-size:.72rem!important}@media (width<=700px){.header-feedback__label,.header-utility>span:not(.header-notification-icon),.header-logout>span{display:none}}.btn{border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1.05rem;font-family:inherit;font-size:.94rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform 50ms;display:inline-flex}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.btn--primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn--primary:hover{background:var(--primary-strong)}.btn--secondary{background:var(--ink);color:#fff}.btn--secondary:hover{background:#3a2620}.btn--ghost{border-color:var(--border-strong);color:var(--ink);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{border-color:var(--danger-border);color:var(--danger);background:0 0}.btn--danger:hover{background:var(--danger-bg)}.btn--sm{padding:.32rem .68rem;font-size:.84rem}.btn--lg{border-radius:var(--r);padding:.75rem 1.4rem;font-size:1.02rem}.btn--block{width:100%}.cta-row{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.page{animation:.22s fade}@keyframes fade{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.page__head{margin-bottom:1.2rem}.page__head--row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:1.1rem;padding:1.2rem 1.3rem}.connection-error{text-align:center;max-width:420px}.card-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.9rem;margin-top:1rem;display:grid}.nav-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);color:var(--text);padding:1.25rem;transition:border-color .15s,background .15s;display:block}.nav-card:hover{border-color:var(--primary);background:var(--primary-softer);box-shadow:inset -3px 0 0 var(--primary);text-decoration:none}.nav-card__icon{background:var(--primary-soft);width:40px;height:40px;color:var(--primary-strong);border-radius:10px;justify-content:center;align-items:center;margin-bottom:.65rem;display:inline-flex}.nav-card h3{color:var(--ink)}.nav-card p{color:var(--muted);margin:0;font-size:.88rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.75rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);text-align:center;padding:.9rem .8rem}.stat-card__icon{color:var(--muted);margin-bottom:.3rem}.stat-card__value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800;line-height:1.1}.stat-card__label{color:var(--muted);margin-top:.3rem;font-size:.8rem}.stat-card--known{border-color:var(--success-border);background:var(--success-bg)}.stat-card--known .stat-card__value{color:var(--success)}.stat-card--learning{background:#eef6f7;border-color:#b9d5da}.stat-card--learning .stat-card__value{color:var(--sky)}.stat-card--difficult{border-color:var(--danger-border);background:var(--danger-bg)}.stat-card--difficult .stat-card__value{color:var(--danger)}.stat-card--new{border-color:var(--border);background:var(--surface-2)}.stat-card--new .stat-card__value{color:var(--muted)}.banner{border-radius:var(--r);background:var(--surface);border:1px solid #0000;align-items:flex-start;gap:.9rem;margin-bottom:1.1rem;padding:1rem 1.15rem;display:flex}.banner__icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.15rem;display:inline-flex}.banner h3{margin-bottom:.2rem;font-size:1rem}.banner p{color:var(--text);margin:0;font-size:.92rem}.banner--success{background:var(--success-bg);border-color:var(--success-border)}.banner--success .banner__icon{background:var(--success-border);color:var(--success)}.banner--info{background:var(--primary-softer);border-color:var(--primary-soft)}.banner--info .banner__icon{background:var(--primary-soft)}.progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:20px;position:relative;overflow:hidden}.progress__fill{background:var(--primary);border-radius:999px;height:100%;transition:width .4s}.progress__label{color:var(--ink);justify-content:center;align-items:center;font-size:.74rem;font-weight:700;display:flex;position:absolute;inset:0}.progress--plain .progress__label{display:none}.progress--plain{height:14px}.badge{white-space:nowrap;border-radius:999px;padding:.16rem .55rem;font-size:.76rem;font-weight:700;display:inline-block}.badge--new{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge--learning{color:var(--sky);background:#eef6f7;border:1px solid #b9d5da}.badge--difficult{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.badge--known{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.chip{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;padding:.22rem .7rem;font-size:.78rem;font-weight:700}.difficulty{gap:3px;display:inline-flex}.difficulty__dot{background:var(--border-strong);border-radius:50%;width:7px;height:7px}.difficulty__dot.is-on{background:var(--primary)}.alert{border-radius:var(--r-sm);margin-bottom:.9rem;padding:.7rem 1rem;font-size:.9rem;font-weight:600}.alert--error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.alert--success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.empty-state{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--r);padding:2.2rem 1rem}.form{flex-direction:column;gap:.95rem;display:flex}.field{flex-direction:column;gap:.3rem;display:flex}.field__label{color:var(--ink);font-size:.88rem;font-weight:600}.input{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);width:100%;padding:.55rem .8rem;font-family:inherit;font-size:max(16px,.97rem);transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--ring);outline:none}.form-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.9rem;margin-bottom:.9rem;display:grid}.form-inline h3{margin-bottom:.9rem}.checkbox{cursor:pointer;align-items:center;gap:.4rem;margin-inline-start:1rem;font-size:.9rem;display:inline-flex}.filters{grid-template-columns:2fr 1fr 1fr;align-items:end;gap:.9rem;display:grid}.account-context{background:var(--surface-2);border-radius:var(--r-sm);padding:.5rem .8rem;font-size:.9rem}.switch-account{margin-top:.6rem}.login-screen{background:var(--bg);align-items:stretch;min-height:100vh;display:flex}.login-screen--split{grid-template-columns:1.05fr 1fr;display:grid}.login-side{background-color:var(--panel);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--line-height-px) - 1px), #ffe2c40f calc(var(--line-height-px) - 1px), #ffe2c40f var(--line-height-px));color:var(--panel-bright);border-inline-end:3px solid var(--primary);flex-direction:column;justify-content:center;gap:1rem;padding:3rem 3.2rem;display:flex;position:relative;overflow:hidden}.login-side h2{color:#fff;font-size:1.7rem;line-height:1.3}.login-side p{color:var(--panel-text);max-width:42ch}.login-side__points{flex-direction:column;gap:.65rem;margin-top:.8rem;display:flex}.login-side__point{color:var(--panel-bright);align-items:flex-start;gap:.6rem;font-size:.95rem;display:flex}.login-side__point .icon{color:var(--primary);margin-top:.2rem}.login-panel{justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex}.login-card{width:100%;max-width:400px}.login-card__brand{margin-bottom:1.4rem}.login-card__brand h1{margin:.7rem 0 .2rem;font-size:1.45rem}.login-card__brand p{color:var(--muted);margin:0;font-size:.93rem}.login-card__hint{color:var(--muted);margin-top:1.2rem;font-size:.85rem}.practice{max-width:660px;margin:0 auto}.practice__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.avatar{background:var(--surface-2);color:var(--muted);border:1px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.friend-cell{align-items:center;gap:.5rem;display:inline-flex}.friend-pending{border-bottom:1px dashed var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem 0;display:flex}.friend-pending:last-child{border-bottom:0}.friend-pending__name{align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.friend-remove{cursor:pointer;color:var(--muted);opacity:.55;background:0 0;border:0;border-radius:50%;padding:2px;display:inline-flex}.friend-remove:hover,.friend-remove:focus-visible{opacity:1;color:var(--danger)}.kudos-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.85rem;font-weight:700;display:inline-flex}.kudos-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.kudos-btn.is-sent{color:var(--primary);border-color:var(--primary);background:var(--surface-2);cursor:default}.kudos-count{color:var(--muted);align-items:center;gap:.3rem;font-size:.85rem;font-weight:700;display:inline-flex}.reading-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem;display:grid}.reading-card{color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s;display:block}.reading-card:hover{box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.reading-card__top{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.reading-card__title{text-align:left;margin:0 0 .1rem;font-size:1.15rem}.reading-card__he{margin:0 0 .4rem}.reading-card__best{align-items:center;gap:.3rem;margin:.4rem 0 0;font-size:.88rem;font-weight:600;display:flex}.reading-card__best.is-perfect{color:var(--success)}.reading-text{font-size:1.05rem;line-height:1.75}.reading-text__head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.reading-text h1{text-align:left;margin:0 0 .5rem;font-size:1.45rem}.reading-text p{margin:0 0 .8rem}.reading-result{text-align:center}.reading-q{border:1px solid var(--border);border-radius:var(--r-md,10px);margin:0 0 .9rem;padding:.8rem 1rem}.reading-q legend{text-align:left;padding:0 .4rem;font-weight:700}.reading-q__options{gap:.45rem;display:grid}.reading-opt{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:var(--surface);text-align:left;align-items:flex-start;gap:.55rem;padding:.5rem .7rem;display:flex}.reading-opt input{margin-top:3px}.reading-opt.is-selected{border-color:var(--primary);background:var(--surface-2)}.reading-opt.is-correct{border-color:var(--success);background:var(--success-bg,var(--surface-2));font-weight:600}.reading-opt.is-wrong{border-color:var(--danger);opacity:.85}.app-nav__icon{display:none}@media (width<=760px){.app-nav__icon{opacity:.75;flex-shrink:0;display:inline-flex}.app-nav__link{align-items:center;gap:.55rem;display:flex}.app-nav__link.is-active .app-nav__icon{opacity:1}}.tabbar{bottom:0;z-index:60;background:var(--surface);border-top:1px solid var(--border);padding:.3rem .4rem calc(.3rem + env(safe-area-inset-bottom));display:none;position:fixed;inset-inline:0;box-shadow:0 -2px 12px #0000000f}.tabbar__item{border-radius:var(--r-sm);color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:.35rem .2rem;font-size:.68rem;font-weight:600;text-decoration:none;display:flex}.tabbar__item:hover{text-decoration:none}.tabbar__item.is-active{color:var(--primary)}@media (width<=720px){.tabbar{display:flex}.has-tabbar .app-main,.has-tabbar .app-footer{padding-bottom:76px}}@media print{.tabbar{display:none}}.password-field{position:relative}.password-field .input{width:100%;padding-inline-end:2.6rem}.password-field__toggle{inset-inline-end:.45rem;cursor:pointer;color:var(--muted);border-radius:var(--r-sm,6px);background:0 0;border:0;align-items:center;padding:.3rem;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.password-field__toggle:hover,.password-field__toggle:focus-visible{color:var(--ink)}.practice__score{white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:1.4rem 1.5rem}.quiz-card__top{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.quiz-word{text-align:center;letter-spacing:.01em;color:var(--ink);overflow-wrap:anywhere;min-width:0;max-width:100%;margin:0;padding:1.1rem 0 .4rem;font-size:clamp(2rem,6vw,2.7rem);font-weight:800}.quiz-word:focus,.quiz-definition:focus{outline:none}.quiz-context{text-align:center;margin:0 0 1.2rem;font-size:.88rem}.quiz-options{gap:.65rem;margin-top:1rem;display:grid}.quiz-option{text-align:start;border:1.5px solid var(--border);border-radius:var(--r);background:var(--surface);cursor:pointer;color:var(--text);align-items:center;gap:.75rem;padding:.8rem .95rem;font-family:inherit;font-size:1.06rem;transition:border-color .13s,background .13s;display:flex}@media (hover:hover) and (pointer:fine){.quiz-option:hover:not(:disabled),.mock-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-softer)}}.quiz-option:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.quiz-option:disabled{cursor:default}.quiz-option__num{background:var(--surface-2);border:1px solid var(--border);width:26px;height:26px;color:var(--muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.quiz-option__text{flex:1}.quiz-option>.icon{flex:none;margin-inline-start:auto}.quiz-option.is-correct>.icon{color:var(--success)}.quiz-option.is-wrong>.icon{color:var(--danger)}.quiz-option.is-selected{border-color:var(--primary);background:var(--primary-softer)}.quiz-option.is-correct{border-color:var(--success);background:var(--success-bg)}.quiz-option.is-correct .quiz-option__num{background:var(--success);border-color:var(--success);color:#fff}.quiz-option.is-wrong{border-color:var(--danger);background:var(--danger-bg)}.quiz-option.is-wrong .quiz-option__num{background:var(--danger);border-color:var(--danger);color:#fff}.quiz-option.is-dim{opacity:.5}.quiz-feedback{border-radius:var(--r);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;margin-top:1.1rem;padding:.85rem 1rem;display:flex}.quiz-feedback.is-correct{background:var(--success-bg);border:1px solid var(--success-border)}.quiz-feedback.is-wrong{background:var(--danger-bg);border:1px solid var(--danger-border)}.quiz-feedback__msg{color:var(--ink);font-weight:700}.quiz-example{text-align:left;color:var(--ink);opacity:.92;direction:ltr;margin-top:.45rem;font-size:.95rem;font-weight:400;line-height:1.5;display:block}.quiz-example strong{text-underline-offset:3px;font-weight:800;text-decoration:underline}.quiz-hint{text-align:center;margin:1rem 0 0;font-size:.8rem}.sprint-intro{text-align:center;max-width:560px;margin:0 auto}.sprint-intro .card{padding:2rem 1.6rem}.sprint-best{color:var(--muted);margin-top:.4rem;font-size:.92rem}.sprint-timer{font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:1.05rem;font-weight:800;display:inline-flex}.sprint-timer.is-low{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.sprint-score{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.sprint-result{text-align:center;padding:1.6rem 1.2rem}.sprint-result__score{color:var(--primary);font-variant-numeric:tabular-nums;font-size:3.4rem;font-weight:800;line-height:1.1}.sprint-result__label{color:var(--muted);margin-bottom:.8rem}.sprint-newbest{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);border-radius:999px;align-items:center;gap:.45rem;margin-bottom:.9rem;padding:.35rem .9rem;font-size:.9rem;font-weight:700;display:inline-flex}.streak-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem;margin-bottom:1.1rem;display:grid}.streak-card{align-items:center;gap:.9rem;margin-bottom:0;display:flex}.streak-card__flame{background:var(--primary-soft);width:46px;height:46px;color:var(--primary-strong);border:1px solid var(--primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.streak-card.is-cold .streak-card__flame{background:var(--surface-2);color:var(--faint);border-color:var(--border)}.streak-card__num{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1.15}.streak-card__label{color:var(--muted);font-size:.84rem}html.lang-ar body,html.lang-ar button,html.lang-ar input,html.lang-ar select,html.lang-ar textarea{font-family:Tajawal,Heebo,Segoe UI,system-ui,-apple-system,Arial,sans-serif}.lang-switch{border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;display:inline-flex;overflow:hidden}.lang-switch__btn{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;padding:.3rem .8rem;font-size:.84rem;font-weight:600}.lang-switch__btn.is-active{background:var(--primary);color:var(--on-primary)}.lang-switch__btn:focus-visible{box-shadow:inset 0 0 0 3px var(--ring);outline:none}.terms-gate{z-index:5000;background:#140c0899;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.terms-gate__card{max-width:440px}.register-terms{align-items:flex-start;margin:.2rem 0 .8rem;font-size:.85rem}.register-terms input{margin-top:.2rem}.privacy-warning{border:1px solid color-mix(in srgb, var(--primary) 48%, transparent);border-radius:var(--r);background:color-mix(in srgb, var(--primary) 10%, var(--surface));color:var(--text);align-items:flex-start;gap:.75rem;padding:.9rem 1rem;display:flex}.privacy-warning svg{color:var(--primary);flex:none;margin-top:.1rem}.privacy-warning div{gap:.2rem;display:grid}.privacy-warning span{color:var(--muted);font-size:.88rem;line-height:1.55}.pseudonym-card{max-width:560px;margin-inline:auto}.pseudonym-confirmation strong{color:var(--text)}.pseudonym-account-note{text-align:center;margin-top:1rem;font-size:.82rem}.pseudonym-create-notice{gap:.55rem;margin:.55rem 0;display:grid}.profile-setup-screen{align-items:flex-start;padding-block:1.5rem}.profile-setup-card{max-width:680px;margin-inline:auto}.setup-progress{grid-template-columns:repeat(3,1fr);gap:.55rem;margin:1rem 0 1.4rem;display:grid}.setup-progress>span{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);background:var(--surface-2);place-items:center;gap:.12rem;padding:.55rem;font-weight:800;display:grid}.setup-progress>span.is-active{border-color:var(--primary);color:var(--primary-strong);background:var(--primary-softer)}.setup-progress small{font-size:.72rem;font-weight:600}.weekly-path{border-color:color-mix(in srgb, var(--primary) 36%, var(--border));background:linear-gradient(135deg, var(--surface), var(--primary-softer));justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.weekly-path__body h2{margin:.45rem 0 .35rem}.weekly-path__body p{margin:.25rem 0}.weekly-path__action{flex:none}.content-review-filter{max-width:360px}.content-review-table small{color:var(--faint);margin-top:.3rem;display:block}.content-review-table code{overflow-wrap:anywhere}.content-review-details{max-width:420px;margin-top:.4rem}.content-review-details summary{color:var(--primary);cursor:pointer;font-size:.78rem}.reading-explanation{border-inline-start:3px solid var(--success);background:var(--success-soft);border-radius:8px;margin:.65rem 0 0;padding:.65rem .8rem}.mock-card--learning-preview{padding:1.15rem}.learning-preview__headline{align-items:center;gap:.8rem;padding:1.1rem 0;display:flex}.learning-preview__headline strong,.learning-preview__headline span{display:block}.learning-preview__headline span{color:var(--faint);margin-top:.2rem;font-size:.86rem}.learning-preview__icon{width:46px;height:46px;color:var(--primary);background:var(--primary-softer);border-radius:14px;place-items:center;display:grid}.learning-preview__steps{gap:.55rem;display:grid}.learning-preview__step{border:1px solid var(--border);border-radius:12px;align-items:center;gap:.65rem;padding:.65rem .75rem;display:flex}.learning-preview__step>svg{color:var(--primary);flex:none}.learning-preview__step b,.learning-preview__step small{display:block}.learning-preview__step small{color:var(--faint);margin-top:.1rem}.learning-preview__cta{width:100%;margin-top:.9rem}@media (width<=680px){.weekly-path{flex-direction:column;align-items:stretch}.weekly-path__action{width:100%}}.setup-step{gap:.8rem;display:grid}.setup-step h2{margin:0;font-size:1.15rem}.setup-actions{justify-content:space-between;gap:.7rem;margin:1rem 0;display:flex}.setup-actions .btn:last-child{margin-inline-start:auto}.address-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.address-option{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:var(--surface);align-items:flex-start;gap:.65rem;padding:.8rem;display:flex}.address-option.is-active{border-color:var(--primary);background:var(--primary-softer);box-shadow:0 0 0 2px var(--ring)}.address-option input{margin-top:.22rem}.address-option span{gap:.15rem;display:grid}.address-option small{color:var(--muted)}.name-rejection{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:var(--r);margin-top:1rem;padding:1rem}.name-rejection h3{margin:0 0 .4rem}.name-suggestions{flex-wrap:wrap;gap:.45rem;margin:.7rem 0;display:flex}.appeal-box{border-top:1px solid var(--border);gap:.55rem;margin-top:.8rem;padding-top:.8rem;display:grid}.identity-offer{border-color:var(--success-border);background:var(--success-bg)}.appeal-list{gap:.8rem;margin-bottom:1rem;display:grid}.appeal-details{gap:.45rem;margin:.7rem 0;display:grid}.appeal-details div{grid-template-columns:minmax(95px,.3fr) 1fr;gap:.7rem;display:grid}.appeal-details dt{color:var(--muted);font-weight:700}.appeal-details dd{overflow-wrap:anywhere;margin:0}.admin-reauth{border-color:var(--warn-border)}.placement-page{max-width:720px;margin-inline:auto}.placement-intro,.placement-result{text-align:center}.placement-intro ul{text-align:start;gap:.45rem;max-width:560px;margin:1rem auto;display:grid}.placement-meta{color:var(--muted);justify-content:space-between;align-items:center;display:flex}.placement-meta strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.1rem}.placement-band{color:var(--primary-strong);margin:.6rem 0;font-size:1.35rem;font-weight:800}@media (width<=560px){.address-options{grid-template-columns:1fr}.profile-setup-screen{padding-block:0}}.suggest-word-page{max-width:900px}.suggestion-form-card{border-color:color-mix(in srgb, var(--primary) 34%, var(--border))}.suggestion-fields{align-items:end}.badge--suggestion-pending{color:#8a6600;background:#d4a72c2e}.badge--suggestion-approved{color:#15803d;background:#22c55e29}.badge--suggestion-rejected{color:#b91c1c;background:#ef444424}.faq-item{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);margin-bottom:.5rem;padding:0}.faq-item summary{cursor:pointer;color:var(--ink);padding:.7rem .9rem;font-weight:600;list-style-position:inside}.faq-item[open] summary{border-bottom:1px solid var(--border)}.faq-item p{color:var(--muted);margin:0;padding:.7rem .9rem}.release{margin-bottom:1rem}.release__title{color:var(--ink);margin:0 0 .3rem;font-size:1rem}.tour-backdrop{z-index:4000;background:#140c088c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tour-backdrop--clear{background:0 0;display:block}.tour-spotlight{border-radius:var(--r);box-shadow:0 0 0 9999px #140c088c, 0 0 0 3px var(--primary);pointer-events:none;transition:all .25s;position:fixed}.tour-card{z-index:4001;width:min(330px,100vw - 24px);box-shadow:var(--shadow-lg);padding:1rem 1.1rem;position:fixed}.tour-card--center{text-align:center;width:min(430px,100vw - 24px);position:relative}.tour-card__step{color:var(--primary-strong);margin:0 0 .2rem;font-size:.72rem;font-weight:700}.tour-card__actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.qr-modal{text-align:center;max-width:430px}.qr-modal__img{border:1px solid var(--border);border-radius:var(--r);background:#fff;width:min(320px,80vw);margin:.6rem auto;display:block}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:.8rem;margin-bottom:.8rem;display:flex}.filter-bar__item{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.filter-bar__item .input{min-width:150px}.filter-bar__item--grow{flex:1;min-width:180px}.filter-bar__count{white-space:nowrap;padding-bottom:.5rem;font-size:.8rem}.nudge--survey{max-width:360px}.nudge__scale{gap:.4rem;margin:.5rem 0 .2rem;display:flex}.nudge__score{border-radius:var(--r-sm);cursor:pointer;border:1.5px solid var(--border-strong);background:var(--surface);font:inherit;color:var(--muted);flex:1;padding:.45rem 0;font-weight:700}.nudge__score.is-active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.nudge__scale-label{color:var(--faint);text-align:center;margin:0 0 .4rem;font-size:.76rem}.nudge__chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem;display:flex}.nudge__chip{cursor:pointer;font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:.28rem .6rem;font-size:.8rem}.nudge__chip.is-active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-strong);font-weight:600}.nudge__note{resize:vertical;width:100%;margin-bottom:.5rem;font-size:.84rem}.nudge__error{color:var(--danger);margin:0 0 .4rem;font-size:.8rem}.spell-showfull{color:var(--muted);justify-content:center;margin-top:.6rem;font-size:.82rem}.mock-card--done{text-align:center;padding:2rem 1.4rem}.mock-done__icon{background:var(--success-bg);width:52px;height:52px;color:var(--success);border:1.5px solid var(--success-border);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.7rem;display:inline-flex}.mock-done__title{color:var(--ink);margin:0 0 .4rem;font-size:1.15rem}.mock-done__text{color:var(--muted);margin:0 0 1.1rem;font-size:.92rem}.mock-done__actions{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.unit-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.5rem;margin-top:.9rem;display:grid}.unit-tile{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);text-align:center;gap:.35rem;padding:.5rem;display:grid}.unit-tile__head{color:var(--muted);justify-content:center;align-items:center;gap:.3rem;display:flex}.unit-tile__number{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:800}.unit-tile__bar{background:var(--surface-2);border-radius:999px;height:5px;overflow:hidden}.unit-tile__bar span{background:var(--primary);height:100%;transition:width .4s;display:block}.unit-tile__meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.74rem}.unit-tile.is-complete{border-color:var(--success-border);background:var(--success-bg)}.unit-tile.is-complete .unit-tile__head{color:var(--success)}.unit-tile.is-locked{opacity:.5}.unit-tile.is-current{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.current-unit__chapter{font-size:.9rem;font-weight:400}.mission-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.mission-list li{color:var(--text);align-items:center;gap:.5rem;font-size:.92rem;display:flex}.mission-list li.is-done{color:var(--success)}.mission-list li.is-done span{text-decoration:line-through;text-decoration-thickness:1px}.mission-list__count{color:var(--muted);font-variant-numeric:tabular-nums;margin-inline-start:auto;font-size:.82rem}.notification-list{gap:.75rem;margin-top:1rem;display:grid}.notification-item{align-items:flex-start;gap:.8rem;display:flex}.notification-item h2{margin:0 0 .25rem;font-size:1rem}.notification-item p{margin:0 0 .25rem}.notification-item.is-unread{border-inline-start:4px solid var(--primary)}.stat-card-link{color:inherit;border-radius:var(--radius);text-decoration:none}.stat-card-link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.accepted-answers{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.accepted-answer-list{gap:.5rem;padding:0;list-style:none;display:grid}.accepted-answer-list li{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.release-hero{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:1.5rem;padding:1rem 1.15rem}.release--professional{border-inline-start:3px solid var(--primary);padding-inline-start:1.15rem}.release__head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.release__head h3,.release__head p{margin:0}.release--professional h4{margin-bottom:.35rem}.streak-line{align-items:center;gap:.5rem;margin-top:.7rem;font-size:.9rem;display:flex}.shield-chip{align-items:center;gap:.25rem;margin-inline-start:auto;font-size:.8rem;display:inline-flex}.xp-chip,.level-chip,.combo-chip,.unit-done-tag{font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .55rem;font-size:.8rem;font-weight:700;display:inline-flex}.xp-chip{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn)}.level-chip{background:var(--primary-soft);border:1px solid var(--primary);color:var(--primary-strong)}.combo-chip{background:var(--primary-softer);border:1px solid var(--primary-soft);color:var(--primary-strong)}.unit-done-tag{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.skeleton{gap:.55rem;display:grid}.skeleton__line{border-radius:var(--r-sm);background:var(--surface-2);width:100%;animation:1.4s ease-in-out infinite skeleton-pulse;display:block}.skeleton__line--title{width:40%;height:20px;margin-bottom:.9rem}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}.session-summary{text-align:center;max-width:560px;margin:0 auto;padding:1.8rem 1.4rem}.session-summary__icon{background:var(--success-bg);width:54px;height:54px;color:var(--success);border:1.5px solid var(--success-border);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.7rem;display:inline-flex}.session-summary__title{color:var(--ink);margin:0 0 .9rem;font-size:1.2rem}.session-summary__score{color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.session-summary__sub{color:var(--muted);margin:.35rem 0 1rem;font-size:.95rem}.session-summary__facts{text-align:start;gap:.45rem;margin:0 0 1.2rem;padding:0;list-style:none;display:grid}.session-summary__facts li{color:var(--text);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.92rem;display:flex}.session-summary__facts li.is-muted{color:var(--muted)}.session-summary__words{flex-wrap:wrap;gap:.4rem;margin-inline-start:.2rem;display:flex}.session-summary__words bdi{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:.1rem .5rem;font-size:.82rem}.session-summary__actions{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.session-best{text-align:start;background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);border-radius:var(--r);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-bottom:.9rem;padding:.6rem .9rem;font-size:.9rem;display:flex}.session-summary.is-celebrating .session-summary__icon{animation:.5s ease-out session-pop}@keyframes session-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.session-meter{flex:1;align-items:center;gap:.6rem;min-width:140px;display:flex}.session-meter__count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.session-meter__left{color:var(--primary-strong);font-size:.85rem;font-weight:700}.next-action{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.next-action__body{flex:1;min-width:220px}.next-action__body h2{margin:.3rem 0 .25rem;font-size:1.25rem}.next-action__sub{color:var(--muted);margin:0;font-size:.93rem}.next-action__meta{color:var(--muted);margin:.4rem 0 0;font-size:.83rem}.next-action__cta{flex:none}@media (width<=560px){.next-action__cta,.next-action__cta .btn{width:100%}}.weak-words{flex-wrap:wrap;gap:.45rem;margin:.6rem 0 1rem;display:flex}.weak-word{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:baseline;gap:.4rem;padding:.25rem .7rem;font-size:.87rem;display:inline-flex}.weak-word small{color:var(--muted);font-size:.76rem}.practice-modes>summary{cursor:pointer;color:var(--ink);padding:.2rem 0;font-weight:700;list-style:none}.practice-modes>summary::-webkit-details-marker{display:none}.practice-modes>summary:after{content:" ▾";color:var(--muted)}.practice-modes[open]>summary:after{content:" ▴"}.practice-modes>summary:focus-visible{box-shadow:0 0 0 4px var(--ring);border-radius:var(--r-sm);outline:none}.known-tag{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success);border-radius:999px;align-items:center;gap:.35rem;margin-top:.5rem;padding:.25rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.update-toast{z-index:3000;background:var(--surface);border:1.5px solid var(--primary);border-radius:var(--r-lg);max-width:min(92vw,540px);box-shadow:var(--shadow-lg);align-items:center;gap:.9rem;padding:.85rem 1.1rem;animation:.35s ease-out update-toast-in;display:flex;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%)}.update-toast__icon{background:var(--primary-soft);width:40px;height:40px;color:var(--primary-strong);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.update-toast__body{flex-direction:column;gap:.1rem;display:flex}.update-toast__body b{color:var(--ink);font-size:.95rem}.update-toast__body span{color:var(--muted);font-size:.84rem}.update-toast .btn{white-space:nowrap;flex-shrink:0}@keyframes update-toast-in{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes update-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.update-toast,.update-toast__icon .icon{animation:none}}.goal-line{justify-content:space-between;align-items:center;margin-bottom:.35rem;font-size:.85rem;display:flex}.goal-done{color:var(--success);font-weight:700}.days-strip{align-items:flex-end;gap:4px;height:34px;margin-top:.55rem;display:flex}.days-strip__bar{background:var(--border);border-radius:3px 3px 0 0;flex:1;min-width:6px}.days-strip__bar.is-active{background:var(--primary-soft);border:1px solid var(--primary)}.days-strip__bar.is-goal{background:var(--primary)}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.badge-card{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);text-align:center;padding:.85rem}.badge-card__icon{background:var(--surface-2);width:42px;height:42px;color:var(--faint);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;display:inline-flex}.badge-card.is-earned{border-color:var(--primary);background:var(--primary-softer)}.badge-card.is-earned .badge-card__icon{background:var(--primary-soft);color:var(--primary-strong);border-color:var(--primary)}.badge-card__title{color:var(--ink);font-size:.9rem;font-weight:700}.badge-card:not(.is-earned) .badge-card__title{color:var(--muted)}.badge-card__desc{color:var(--muted);font-size:.76rem;line-height:1.4}.badge-card__progress{color:var(--faint);font-variant-numeric:tabular-nums;margin-top:.3rem;font-size:.74rem}.rank-chip{background:var(--surface-2);border:1px solid var(--border);min-width:28px;height:28px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:inline-flex}.rank-chip.rank-1{color:#92400e;background:#fef3c7;border-color:#fcd34d}.rank-chip.rank-2{background:var(--surface-2);border-color:var(--border-strong);color:#6b5445}.rank-chip.rank-3{color:#9a3412;background:#ffedd5;border-color:#fdba74}tr.is-me td{background:var(--primary-softer)}.leaderboard-me{background:var(--primary-softer);border:1px solid var(--primary-soft);border-radius:var(--r);flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.9rem;padding:.8rem 1rem;font-size:.95rem;display:flex}.tabs{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.tab{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .15s;display:inline-flex}.tab:hover{border-color:var(--primary)}.tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.tab__count{background:var(--surface-2);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 .42rem;font-size:.76rem}.tab.is-active .tab__count{color:#fff;background:#ffffff2e}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.91rem}.table th,.table td{text-align:start;border-bottom:1px solid var(--border);padding:.62rem .85rem}.table th{background:var(--surface-2);color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:700}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--primary-softer)}.cell-en{color:var(--ink);font-weight:700}.row-actions{gap:.4rem;display:flex}.row-review td{background:var(--warn-bg)}.load-more{text-align:center;margin-top:.9rem}.th-sort{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-weight:700;display:inline-flex}.th-sort:hover{color:var(--ink)}.th-sort.is-active{color:var(--primary-strong)}.th-sort:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:4px;outline:none}.modal-backdrop{z-index:90;background:#0b152680;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;padding:1.4rem;overflow-y:auto}.credentials{background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-sm);margin:.6rem 0;padding:.8rem 1rem}.credentials__head{color:var(--ink);margin-bottom:.3rem;font-weight:700}.landing{background:var(--surface);color:var(--text);flex-direction:column;min-height:100vh;display:flex}.landing-nav{z-index:60;background:var(--surface);border-top:3px solid var(--primary);border-bottom:1px solid var(--border);position:sticky;top:0}.landing-nav__inner{align-items:center;gap:1.1rem;max-width:1140px;margin:0 auto;padding:.7rem 1.25rem;display:flex}.landing-nav__links{align-items:center;gap:1.1rem;margin-inline-start:auto;display:flex}.landing-nav__links a:not([class*=btn]){color:var(--muted);font-size:.92rem;font-weight:600}.landing-nav__links a:not([class*=btn]):hover{color:var(--ink);text-decoration:none}.hero{background-color:var(--bg);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--line-height-px) - 1px), var(--rule) calc(var(--line-height-px) - 1px), var(--rule) var(--line-height-px));border-bottom:1px solid var(--border);position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:var(--margin-rule);opacity:.5;width:2px;position:absolute;inset-block:0;inset-inline-start:max(1.25rem,50% - 570px + 1.25rem)}.hero__inner{grid-template-columns:1.08fr .92fr;align-items:center;gap:3rem;max-width:1140px;margin:0 auto;padding:4.2rem 1.25rem 4.6rem;padding-inline-start:2.9rem;display:grid;position:relative}.hero__kicker{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;align-items:center;gap:.45rem;margin-bottom:1.1rem;padding:.3rem .8rem;font-size:.82rem;font-weight:700;display:inline-flex}.hero__title{letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(2rem,4.6vw,3.1rem);font-weight:800;line-height:1.15}.hero__accent{color:var(--primary)}.hero__sub{color:var(--muted);max-width:52ch;margin-bottom:1.6rem;font-size:1.08rem}.hero__ctas{flex-wrap:wrap;gap:.8rem;display:flex}.hero__note{color:var(--muted);margin-top:1rem;font-size:.85rem}.hero__visual{min-height:380px;padding-bottom:2rem;position:relative}.mock-card{z-index:2;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);box-shadow:var(--shadow);max-width:380px;margin-inline-start:auto;padding:1.3rem;position:relative}.mock-card__bar{justify-content:flex-end;align-items:center;margin-bottom:.8rem;display:flex}.mock-card__q{color:var(--muted);font-size:.8rem}.mock-word{text-align:center;color:var(--ink);padding:.5rem 0 1rem;font-size:2rem;font-weight:800}.mock-options{gap:.5rem;display:grid}.mock-option{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);text-align:start;cursor:pointer;border-radius:10px;align-items:center;gap:.6rem;padding:.55rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,background .15s,color .15s;display:flex}.mock-option:focus-visible{border-color:var(--primary);box-shadow:0 0 0 4px var(--ring);outline:none}.mock-option:disabled{cursor:default}.mock-option__text{flex:1}.mock-option__mark{flex:none}.mock-option__num{background:var(--surface-2);border:1px solid var(--border);width:22px;height:22px;color:var(--muted);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.mock-option.is-right{border-color:var(--success);background:var(--success-bg);color:var(--success);font-weight:700}.mock-option.is-right .mock-option__num{background:var(--success);border-color:var(--success);color:#fff}.mock-option.is-wrong{border-color:var(--danger);background:var(--danger-bg);color:var(--danger);font-weight:700}.mock-option.is-wrong .mock-option__num{background:var(--danger);border-color:var(--danger);color:#fff}.mock-option.is-dim{opacity:.45}.mock-result{justify-content:space-between;align-items:center;gap:.7rem;min-height:30px;margin-top:.9rem;font-size:.86rem;font-weight:600;display:flex}.mock-result .is-correct{color:var(--success)}.mock-result .is-wrong{color:var(--danger)}.mock-next{font:inherit;color:var(--primary-strong);cursor:pointer;background:0 0;border:none;flex:none;align-items:center;gap:.3rem;padding:.2rem 0;font-weight:700;display:inline-flex}.mock-next:hover{text-decoration:underline}.mock-next:focus-visible{box-shadow:0 0 0 4px var(--ring);border-radius:4px;outline:none}.mock-float{z-index:3;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);align-items:center;gap:.6rem;padding:.7rem .95rem;font-size:.85rem;font-weight:600;display:flex;position:absolute}.mock-float--streak{top:-18px;color:var(--primary-strong);inset-inline-start:2%}.mock-float--progress{bottom:-30px;color:var(--ink);min-width:200px;inset-inline-end:-8px}.mock-float--progress .progress{flex:1;height:14px}.mock-float--progress .progress__label{font-size:.62rem}.strip{border-block:1px solid var(--border);background:var(--surface-2)}.strip__inner{text-align:center;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;max-width:1140px;margin:0 auto;padding:1.4rem 1.25rem;display:grid}.strip__num{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.strip__label{color:var(--muted);font-size:.86rem}.section{max-width:1140px;margin:0 auto;padding:4rem 1.25rem 1rem}.section__head{text-align:center;max-width:640px;margin:0 auto 2.4rem}.section__kicker{color:var(--primary);letter-spacing:.02em;margin-bottom:.4rem;font-size:.85rem;font-weight:700}.section__title{font-size:clamp(1.5rem,3vw,2rem)}.section__sub{color:var(--muted)}.features-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.feature{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:1.4rem;transition:border-color .15s,box-shadow .15s}.feature:hover{border-color:var(--primary);background:var(--primary-softer)}.feature__icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary-strong);border-radius:11px;justify-content:center;align-items:center;margin-bottom:.8rem;display:inline-flex}.feature h3{font-size:1.02rem}.feature p{color:var(--muted);margin:0;font-size:.92rem}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.step{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:1.4rem;position:relative}.step__num{background:var(--ink);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:.7rem;font-size:.95rem;font-weight:800;display:inline-flex}.step h3{font-size:1rem}.step p{color:var(--muted);margin:0;font-size:.92rem}.roles-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.role-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:1.3rem}.role-card__head{align-items:center;gap:.6rem;margin-bottom:.7rem;display:flex}.role-card__head .icon{color:var(--primary)}.role-card h3{margin:0}.role-card ul{color:var(--muted);gap:.3rem;margin:0;padding-inline-start:1.1rem;font-size:.92rem;display:grid}.cta-band{background:var(--panel);color:#fff;border-top:3px solid var(--primary);margin:4rem 0 0}.cta-band__inner{text-align:center;max-width:1140px;margin:0 auto;padding:3rem 1.25rem}.cta-band h2{color:#fff;font-size:clamp(1.4rem,3vw,1.9rem)}.cta-band p{color:var(--panel-text);max-width:60ch;margin:0 auto 1.4rem}.cta-band .btn--primary{background:var(--primary);color:var(--on-primary)}.cta-band .btn--primary:hover{background:var(--primary-lift)}.landing-footer{background:var(--panel-2);color:var(--panel-text)}.landing-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1140px;margin:0 auto;padding:1.6rem 1.25rem;font-size:.86rem;display:flex}.landing-footer a{color:var(--panel-link)}.flashcards-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;display:grid}.flashcard{border:1.5px dashed var(--border-strong);background:var(--surface);break-inside:avoid;border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.flashcard__side{flex-direction:column;justify-content:center;min-height:68px;padding:.7rem .8rem;display:flex}.flashcard__side--en{border-inline-end:1.5px dashed var(--border-strong)}.flashcard__en{color:var(--ink);font-size:1.05rem;font-weight:800}.flashcard__meta{color:var(--muted);font-size:.72rem}.flashcard__he{color:var(--ink);text-align:center;font-size:.98rem}.test-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;display:flex}.test-sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:2rem}.test-sheet__header{border-bottom:2px solid var(--ink);margin-bottom:1.4rem;padding-bottom:1rem}.test-sheet__header h2{text-align:center}.test-sheet__meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:.7rem;font-size:.9rem;display:flex}.test-sheet__instr{text-align:center;color:var(--muted);margin-top:.4rem}.test-list{columns:2;column-gap:2.4rem;margin:0;padding-inline-start:1.4rem}.test-item{break-inside:avoid;margin-bottom:.85rem}.test-item__content{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.test-item__en{min-width:110px;color:var(--ink);font-weight:700}.test-item__line{border-bottom:1px dotted var(--faint);flex:1;min-width:120px;min-height:1.2em}.test-item__answer{color:var(--primary-strong);font-weight:600}@media (width<=900px){.hero__inner{padding-top:3rem;grid-template-columns:1fr;gap:2.4rem;padding-inline-start:2.2rem}.hero:before{inset-inline-start:1rem}.hero__visual{min-height:0}.mock-card{margin-inline:auto}.login-screen--split{grid-template-columns:1fr}.login-side{display:none}}@media (width<=1120px){.nav-toggle{order:3;margin-inline-start:auto;display:block}.app-user{order:4}.app-user__name{display:none}.app-nav{flex-direction:column;flex-basis:100%;order:5;gap:.15rem;margin:0;padding-top:.5rem;display:none}.app-nav--open{display:flex}.app-header__inner{flex-wrap:wrap}.app-nav__icon{opacity:.75;display:inline-flex}.app-nav__link{align-items:center;gap:.55rem;display:flex}}@media (width<=760px){.app-main{padding-inline-start:2rem}.app-main:before{inset-inline-start:1rem}.filters{grid-template-columns:1fr}.test-list{columns:1}.flashcards-grid{grid-template-columns:1fr}.landing-nav__links a:not(.btn){display:none}.landing-nav__inner{flex-wrap:wrap;gap:.55rem;padding-inline:1rem}.landing-nav__links{justify-content:space-between;gap:.55rem;width:100%;margin-inline-start:0}.landing-nav__links .btn,.landing-nav__links .lang-switch__btn{min-height:44px}h1{font-size:1.35rem}}@media print{html,html[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#111827;--text:#374151;--muted:#6b7280;--faint:#8a94a3;--bg:#fff;--surface:#fff;--surface-2:#f3f4f6;--border:#e5e7eb;--border-strong:#d1d5db;--primary-strong:#0f766e}body{color:#000;background:#fff}.test-list{columns:2}.app-header,.app-footer,.no-print,.test-actions{display:none!important}.app-main{max-width:none;padding:0}.test-sheet{box-shadow:none;border:none;padding:0}.test-item__line{border-bottom-color:#000}.flashcards-grid{grid-template-columns:repeat(2,1fr);gap:0}.flashcard{border-color:#a89482;border-radius:0}.flashcard__side--en{border-inline-end-color:#a89482}.page__head{display:none}.print-title{text-align:center;margin-bottom:1rem;display:block!important}}.print-title{display:none}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:var(--ink-user-dark,#e8f7f6);--text:var(--text-user-dark,#c3dfdc);--muted:var(--muted-user-dark,#87aba8);--faint:var(--faint-user-dark,#5f817e);--bg:var(--bg-user-dark,#0d1716);--surface:var(--surface-user-dark,#13201f);--surface-2:var(--surface-2-user-dark,#1a2d2b);--border:var(--border-user-dark,#243d3b);--border-strong:var(--border-strong-user-dark,#2f514e);--primary:var(--primary-user-dark,#5ad8cc);--primary-strong:var(--primary-strong-user-dark,#8be4db);--primary-soft:var(--primary-soft-user-dark,#1c3633);--primary-softer:var(--primary-softer-user-dark,#142422);--ring:var(--ring-user-dark,#5ad8cc59);--on-primary:var(--on-primary-user-dark,#0f2422);--primary-lift:var(--primary-lift-user-dark,#7be0d6);--rule:var(--rule-user-dark,#cef3ef0d);--margin-rule:var(--margin-rule-user-dark,#37a095);--sky:#63b3c2;--success:#74be86;--success-bg:#16281a;--success-border:#305d3a;--danger:#e8776a;--danger-bg:#2e1815;--danger-border:#6d3229;--warn:#dfa94b;--warn-bg:#2c2211;--warn-border:#6b5218;--gold:#e0b054;--shadow-sm:0 1px 0 #0000004d;--shadow:0 2px 8px #0006;--shadow-lg:0 8px 24px #00000080}[data-theme=dark] .app-header,[data-theme=dark] .landing-nav{background:var(--surface)}[data-theme=dark] .tab.is-active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}[data-theme=dark] .tab.is-active .tab__count{color:var(--on-primary);background:#00000040}[data-theme=dark] .step__num{background:var(--primary);color:var(--on-primary)}[data-theme=dark] .btn--primary{color:var(--on-primary)}[data-theme=dark] .btn--secondary{background:var(--border-strong);color:var(--ink)}[data-theme=dark] .btn--secondary:hover{background:#5c4331}[data-theme=dark] .progress__label{color:#fff;text-shadow:0 0 3px #000000e6,0 0 1px #000}[data-theme=dark] .landing{background:var(--bg)}[data-theme=dark] .table tbody tr:hover td{background:var(--primary-softer)}[data-theme=dark] .rank-chip.rank-1{color:#e8c65f;background:#3c2f0c;border-color:#6b5216}[data-theme=dark] .rank-chip.rank-2{color:#d3c3b2;background:#302620;border-color:#52402f}[data-theme=dark] .rank-chip.rank-3{color:#e0a06a;background:#3a2412;border-color:#7c4a1d}[data-theme=dark] .badge-card.is-earned{background:var(--primary-soft)}[data-theme=dark] .stat-card--learning{background:#17262a;border-color:#2c4348}[data-theme=dark] .badge--learning{color:var(--sky);background:#17262a;border-color:#2c4348}[data-theme=dark] .login-screen{background:var(--bg)}[data-theme=dark] .flashcard{background:var(--surface)}.theme-options{flex-wrap:wrap;gap:.7rem;display:flex}.theme-option{border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;align-items:center;gap:.5rem;padding:.55rem 1rem;font-weight:600;display:inline-flex}.theme-option:hover{border-color:var(--primary)}.theme-option.is-active{border-color:var(--primary);background:var(--primary-soft)}.theme-swatch{border:1px solid var(--border-strong);border-radius:50%;width:18px;height:18px}.theme-swatch--light{background:linear-gradient(135deg,#fff 50%,#e5e7eb 50%)}.theme-swatch--dark{background:linear-gradient(135deg,#211913 50%,#17110d 50%)}.theme-swatch--system{background:linear-gradient(135deg,#fff 50%,#211913 50%)}.recovery-code{letter-spacing:.12em;background:var(--surface-2);border:1.5px dashed var(--border-strong);border-radius:var(--r);color:var(--ink);text-align:center;-webkit-user-select:all;user-select:all;max-width:340px;margin:1rem auto;padding:.9rem 1.2rem;font-family:Consolas,Courier New,monospace;font-size:1.6rem;font-weight:700}.spell-card{text-align:center}.spell-meaning{color:var(--ink);margin:.6rem 0 1rem;font-size:1.35rem;font-weight:700}.spell-word{letter-spacing:.02em;direction:ltr;flex-wrap:wrap;justify-content:center;gap:2px;margin:.4rem 0 1rem;font-family:Consolas,Courier New,monospace;font-size:2.2rem;font-weight:700;display:inline-flex}.spell-word.is-wrong-flash{animation:.18s spellShake}@keyframes spellShake{0%,to{transform:translate(0)}30%{transform:translate(-4px)}70%{transform:translate(4px)}}.spell-char{border-bottom:3px solid var(--border-strong);min-width:.72em;color:var(--faint);padding:.05em .06em;transition:color .1s,border-color .1s}.spell-char.is-done{color:var(--success);border-bottom-color:var(--success)}.spell-char.is-current{color:var(--ink);border-bottom-color:var(--primary);background:var(--primary-softer);border-radius:4px 4px 0 0}.spell-char.is-current.is-wrong{color:var(--danger);border-bottom-color:var(--danger);background:var(--danger-bg)}.spell-char--separator{min-width:.9em;color:var(--muted);border-bottom-color:#0000;justify-content:center;align-items:center;font-size:.75em;display:inline-flex}.spell-char--separator.is-done{color:var(--muted);border-bottom-color:#0000}.spell-done{color:var(--success);margin:.3rem 0;font-weight:700}.spell-input{opacity:0;pointer-events:none;width:1px;height:1px;font-size:16px;position:absolute}.session-review{text-align:start;border-top:1px solid var(--border);margin-top:1rem;padding-top:.8rem}.session-review>summary{cursor:pointer;color:var(--ink);align-items:center;gap:.45rem;font-weight:700;display:flex}.session-review__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:.75rem;display:grid}.session-review__item{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);align-items:flex-start;gap:.55rem;padding:.65rem;display:flex}.session-review__item.is-correct>.icon{color:var(--success)}.session-review__item.is-wrong>.icon{color:var(--danger)}.session-review__item div{flex-direction:column;min-width:0;display:flex}.session-review__item span,.session-review__item small{color:var(--muted)}@media (width<=620px){.session-review__list{grid-template-columns:1fr}}.certificate{max-width:760px;margin:0 auto}.certificate__border{border:3px solid var(--primary);border-radius:var(--r-lg);background:var(--surface);text-align:center;box-shadow:var(--shadow);padding:2.6rem 2.2rem;position:relative}.certificate__border:before{content:"";border:1px solid var(--border-strong);border-radius:calc(var(--r-lg) - 6px);pointer-events:none;position:absolute;inset:10px}.certificate__brand{color:var(--muted);justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.2rem;font-weight:700;display:flex}.certificate__title{color:var(--primary-strong);letter-spacing:.02em;font-size:2.1rem;font-weight:800}.certificate__sub{color:var(--muted);margin-top:.8rem}.certificate__name{color:var(--ink);margin:.4rem 0 1rem;font-size:2.4rem;font-weight:800}.certificate__text{max-width:46ch;color:var(--text);margin:0 auto 2rem}.certificate__meta{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.certificate__sign{flex:1;max-width:180px}.certificate__line{border-bottom:1.5px solid var(--ink);height:2rem;margin-bottom:.3rem}.certificate__sign span{color:var(--muted);font-size:.8rem}.certificate__date{color:var(--ink);font-weight:700}@media print{.certificate{max-width:none}.certificate__border{box-shadow:none}}.guide-card{background:var(--primary-softer);border:1px solid var(--primary-soft);border-inline-start:4px solid var(--primary);border-radius:var(--r);margin-bottom:1.1rem;padding:1rem 1.15rem}.guide-card__head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.guide-card__head h3{color:var(--primary-strong);align-items:center;gap:.45rem;margin:0;display:flex}.guide-card__steps{gap:.4rem;margin:.6rem 0 .9rem;padding-inline-start:1.2rem;display:grid}.guide-card__steps li{color:var(--text);font-size:.93rem}.guide-open{margin-bottom:.9rem}.install-banner{bottom:0;z-index:80;background:var(--surface);border-top:1px solid var(--border);padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom,0px));align-items:center;gap:.7rem;animation:.3s slideUp;display:flex;position:fixed;inset-inline:0;box-shadow:0 -6px 24px #0b152624}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:none}}.install-banner__icon{flex-shrink:0;width:40px;height:40px;font-size:.9rem}.install-banner__text{color:var(--muted);flex-direction:column;flex:1;font-size:.85rem;line-height:1.35;display:flex}.install-banner__text b{color:var(--ink);font-size:.92rem}.install-banner__share{vertical-align:-2px}.install-banner__actions{flex-shrink:0;gap:.4rem;display:flex}@media (width>=821px){.install-banner{display:none}}.sprint-history{flex-direction:column;gap:.4rem;display:flex}.sprint-history__item{border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.sprint-history__row{background:var(--surface);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:start;border:none;align-items:center;gap:.7rem;padding:.6rem .9rem;display:flex}.sprint-history__row:hover{background:var(--primary-softer)}.sprint-history__row.is-open{background:var(--surface-2)}.sprint-history__date{color:var(--muted);min-width:90px;font-size:.88rem}.sprint-history__score{font-variant-numeric:tabular-nums;margin-inline-start:auto}.run-detail{border-top:1px solid var(--border);padding:.6rem .7rem .8rem}.run-detail__ok{color:var(--success)}.run-detail__bad,.run-detail__chosen-wrong{color:var(--danger)}[data-style=simple] body{background-image:none}[data-style=simple] .app-main{padding-inline-start:1.25rem}[data-style=simple] .app-main:before{display:none}[data-style=simple] .landing,[data-style=simple] .hero{background-image:none}[data-style=simple] .app-header{border-top-width:2px}input,textarea,[contenteditable=true],.selectable,.selectable *{-webkit-user-select:text;user-select:text}.speak-btn{border:1.5px solid var(--border-strong);background:var(--surface);width:38px;height:38px;color:var(--primary-strong);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:border-color .15s,background .15s,transform .1s;display:inline-flex}.speak-btn:hover{border-color:var(--primary);background:var(--primary-softer)}.speak-btn:active{transform:scale(.94)}.speak-btn:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.speak-btn--sm{width:30px;height:30px}.quiz-word-row{justify-content:center;align-items:center;gap:.7rem;display:flex}.seg{border:1.5px solid var(--border-strong);background:var(--surface);border-radius:999px;padding:2px;display:inline-flex}.seg__btn{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:.28rem .8rem;font-size:.82rem;font-weight:700;transition:background .15s,color .15s}.seg__btn.is-active{background:var(--primary);color:#fff}.seg__btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.quiz-option--en .quiz-option__text{text-align:left;direction:ltr;font-size:.92rem;line-height:1.45}.spell-audio{justify-content:center;align-items:center;gap:.6rem;margin:.4rem 0 .2rem;display:flex}.spell-audio .speak-btn{width:52px;height:52px}.appearance-modal{z-index:3500;background:#140c088c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.appearance-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:92vh;padding:1.4rem 1.5rem;overflow-y:auto}.swatch-grid{flex-wrap:wrap;gap:.55rem;margin:.6rem 0 .2rem;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:46px;height:46px;padding:0;transition:transform .12s,border-color .12s;position:relative}.swatch:hover{transform:scale(1.08)}.swatch.is-active{border-color:var(--ink)}.swatch:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.swatch__check{color:#fff;justify-content:center;align-items:center;height:100%;display:flex}.style-pick{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.6rem;display:grid}.style-pick__btn{border:2px solid var(--border);border-radius:var(--r);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);text-align:center;padding:.7rem;transition:border-color .15s,background .15s}.style-pick__btn.is-active{border-color:var(--primary);background:var(--primary-softer)}.style-pick__btn:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.style-pick__preview{border:1px solid var(--border);background:var(--surface-2);border-radius:6px;justify-content:center;align-items:center;height:58px;margin-bottom:.45rem;display:flex;position:relative;overflow:hidden}.style-pick__preview .mini-card{background:var(--surface);border:1px solid var(--border);width:72%;height:42px;box-shadow:var(--shadow-sm);border-radius:4px;position:relative}.style-pick__preview .mini-card:before{content:"";top:6px;background:var(--primary);border-radius:3px;width:42%;height:5px;position:absolute;inset-inline-start:8px}.style-pick__preview--notebook .mini-card{background-image:linear-gradient(to left, transparent 0, transparent 3px, var(--margin-rule) 3px, var(--margin-rule) 4.5px, transparent 4.5px), repeating-linear-gradient(to bottom, transparent 0, transparent 10px, var(--rule) 10px, var(--rule) 11px);background-position:0 0,0 16px;background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%}.appearance-actions{justify-content:flex-end;gap:.6rem;margin-top:1.1rem;display:flex}[data-role=teacher] .table-wrap,[data-role=teacher] .table-wrap *,[data-role=school_admin] .table-wrap,[data-role=school_admin] .table-wrap *,[data-role=superadmin] .table-wrap,[data-role=superadmin] .table-wrap *{-webkit-user-select:text;user-select:text}.brand-mark{-webkit-user-select:none;user-select:none;border-radius:27%;flex:none;line-height:0;display:inline-flex;box-shadow:0 2px 6px -2px #4338ca8c}.brand-mark svg{width:100%;height:100%;display:block}.a11y{bottom:16px;z-index:95;position:fixed;inset-inline-start:16px}.a11y__button{background:var(--primary);width:46px;height:46px;color:var(--on-primary);border:2px solid var(--surface);box-shadow:var(--shadow-lg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .12s;display:flex}.a11y__button:hover{transform:scale(1.06)}.a11y__button:focus-visible{box-shadow:0 0 0 4px var(--ring), var(--shadow-lg);outline:none}.a11y__panel{bottom:56px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(300px,100vw - 32px);box-shadow:var(--shadow-lg);padding:1rem 1.1rem;position:absolute;inset-inline-start:0}.a11y__title{margin-bottom:.7rem;font-size:1rem}.a11y__row{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;font-size:.92rem;display:flex}.a11y__row .seg__btn{padding-inline:.55rem}.a11y__toggle{cursor:pointer}.a11y__toggle input{accent-color:var(--primary);width:17px;height:17px}.a11y__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:.8rem;padding-top:.7rem;font-size:.88rem;display:flex}@media print{.a11y{display:none}}html[data-a11y-font="1"]{font-size:112.5%}html[data-a11y-font="2"]{font-size:125%}html[data-a11y-spacing=on] body{letter-spacing:.02em;word-spacing:.06em;line-height:1.9}html[data-a11y-links=on] a{text-underline-offset:2px;text-decoration:underline}html[data-a11y-motion=off] *,html[data-a11y-motion=off] :before,html[data-a11y-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}html[data-a11y-contrast=on]{--text:var(--ink);--muted:var(--text);--faint:var(--muted);--border:var(--border-strong)}html[data-a11y-contrast=on] body{background-image:none}html[data-a11y-contrast=on] .app-main:before{display:none}.feedback-cats{flex-wrap:wrap;gap:.5rem;display:flex}.feedback-cat{border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.9rem;font-weight:600;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.feedback-cat:hover{border-color:var(--primary)}.feedback-cat.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.feedback-cat:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}textarea.input{resize:vertical;min-height:120px;font:inherit;line-height:1.6}.info-page{flex:1;width:100%;max-width:760px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.info-page h1{margin-bottom:1rem}.info-page h2{margin-top:1.6rem;font-size:1.1rem}.info-page ul{color:var(--text);gap:.35rem;padding-inline-start:1.2rem;display:grid}.info-page p{margin-bottom:.6rem}[data-style=simple] .hero{background-image:none}[data-style=simple] .hero:before{display:none}[data-style=simple] .hero__inner{padding-inline-start:1.25rem}.theme-swapping *,.theme-swapping :before,.theme-swapping :after{transition:none!important}.word-report-btn{cursor:pointer;font:inherit;color:var(--primary-strong);text-underline-offset:3px;background:0 0;border:none;border-radius:4px;align-items:center;gap:.3rem;margin-top:.7rem;padding:.2rem .4rem;font-size:.8rem;text-decoration:underline;display:inline-flex}.word-report-btn:hover{color:var(--primary)}.word-report-btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.contact-band{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);border-inline-start:4px solid var(--primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.5rem 1.7rem;display:flex}.hp-field{opacity:0;width:1px;height:1px;position:absolute;inset-inline-start:-9999px}.attach-row{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.attach-preview{align-items:flex-start;gap:.7rem;display:flex}.attach-preview img{border-radius:var(--r-sm);border:1px solid var(--border-strong);max-width:220px;max-height:140px;display:block}.nudge{bottom:16px;z-index:90;background:var(--surface);border:1px solid var(--border);border-inline-start:4px solid var(--primary);border-radius:var(--r);width:min(320px,100vw - 32px);box-shadow:var(--shadow-lg);padding:.9rem 1rem;animation:.35s ease-out nudge-in;position:fixed;inset-inline-end:16px}@keyframes nudge-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.nudge__close{top:8px;cursor:pointer;color:var(--faint);background:0 0;border:none;border-radius:4px;padding:4px;display:flex;position:absolute;inset-inline-start:8px}.nudge__close:hover{color:var(--ink)}.nudge__title{color:var(--ink);margin:0 0 .2rem;font-weight:800}.nudge__text{color:var(--muted);margin:0 0 .7rem;font-size:.88rem}.nudge__actions{gap:.5rem;display:flex}@media print{.nudge{display:none}}.quiz-definition{text-align:center;color:var(--ink);direction:ltr;margin:.4rem 0 .2rem;padding:0 .5rem;font-size:1.35rem;font-weight:700;line-height:1.45}.join-codes{flex-wrap:wrap;gap:.7rem;display:flex}.join-code{border:1.5px dashed var(--border-strong);border-radius:var(--r);background:var(--primary-softer);align-items:center;gap:.9rem;padding:.6rem .9rem;display:flex}.join-code__code{letter-spacing:.14em;color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800}.assignment-banner{align-items:center}.assignment-banner .btn{flex:none}.teacher-insights-grid{align-items:start;gap:clamp(1rem,2vw,1.5rem);margin-bottom:clamp(1.25rem,2.5vw,2rem)}.teacher-insights-top{margin-top:0}.teacher-quick-actions{margin-block:1rem 1.25rem}.learning-prefs-card{text-align:start;width:min(94vw,520px)}:root{--ease-out:cubic-bezier(.2, .75, .25, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1)}::selection{background:var(--primary-soft);color:var(--ink)}.btn{transition:background .15s, border-color .15s, box-shadow .15s, transform .12s var(--ease-out), color .15s}.btn:active:not(:disabled){transform:translateY(1px)scale(.985)}.btn--primary:hover:not(:disabled){box-shadow:0 2px 0 var(--primary-strong)}.btn--danger-solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--danger-solid:hover:not(:disabled){background:#96301f;border-color:#96301f}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.card-grid>*,.page>.card,.stat-grid>*{animation:rise-in .38s var(--ease-out) backwards}.card-grid>:nth-child(2),.page>.card:nth-of-type(2),.stat-grid>:nth-child(2){animation-delay:40ms}.card-grid>:nth-child(3),.page>.card:nth-of-type(3),.stat-grid>:nth-child(3){animation-delay:80ms}.card-grid>:nth-child(4),.page>.card:nth-of-type(4),.stat-grid>:nth-child(4){animation-delay:.12s}.card-grid>:nth-child(5),.page>.card:nth-of-type(5){animation-delay:.16s}.card-grid>:nth-child(n+6),.page>.card:nth-of-type(n+6){animation-delay:.2s}a.card,.card--link,.reading-card,.unit-tile,button.card{transition:border-color .15s, transform .18s var(--ease-out), background .15s}a.card:hover,.card--link:hover,.reading-card:hover,.unit-tile:hover,button.card:hover{border-color:var(--primary);text-decoration:none;transform:translateY(-2px)}a.card:active,.card--link:active,.reading-card:active,.unit-tile:active,button.card:active{transform:translateY(0)}@keyframes spin{to{transform:rotate(360deg)}}.loading{gap:.7rem;animation:.4s both fade-late}.loading:before{content:"";border:2.5px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;flex:none;width:1.15rem;height:1.15rem;animation:.75s linear infinite spin}@keyframes fade-late{0%,40%{opacity:0}to{opacity:1}}.skeleton__line{background:linear-gradient(90deg, var(--surface-2) 0%, var(--primary-softer) 45%, var(--surface-2) 90%);background-size:220% 100%;animation:1.3s ease-in-out infinite skeleton-sweep}@keyframes skeleton-sweep{0%{background-position:120% 0}to{background-position:-120% 0}}.alert{animation:alert-in .28s var(--ease-out) both}.alert--error{animation:alert-in .28s var(--ease-out) both, nudge-x .36s ease .1s}@keyframes alert-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes nudge-x{0%,to{transform:none}25%{transform:translate(-4px)}60%{transform:translate(3px)}}.quiz-option{transition:border-color .13s, background .13s, transform .14s var(--ease-out), opacity .2s}.quiz-option:active:not(:disabled){transform:scale(.99)}.quiz-option.is-correct{animation:answer-pop .42s var(--ease-spring)}.quiz-option.is-correct .quiz-option__num{animation:num-pop .42s var(--ease-spring)}.quiz-option.is-wrong{animation:.34s nudge-x}@keyframes answer-pop{0%{transform:scale(1)}40%{transform:scale(1.018)}to{transform:scale(1)}}@keyframes num-pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}.quiz-feedback{animation:rise-in .3s var(--ease-out) backwards}.progress__fill{transition:width .6s var(--ease-out);animation:grow-x .8s var(--ease-out) both;transform-origin:100%}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero__accent{background-image:linear-gradient(transparent 62%, var(--primary-soft) 62%, var(--primary-soft) 92%, transparent 92%);animation:marker-sweep .9s var(--ease-out) .25s both;background-position:100%;background-repeat:no-repeat;background-size:100% 100%}@keyframes marker-sweep{0%{background-size:0% 100%}to{background-size:100% 100%}}.hero__copy>*{animation:rise-in .5s var(--ease-out) backwards}.hero__copy>:nth-child(2){animation-delay:60ms}.hero__copy>:nth-child(3){animation-delay:.12s}.hero__copy>:nth-child(4){animation-delay:.18s}.hero__copy>:nth-child(n+5){animation-delay:.24s}.hero__visual{animation:rise-in .6s var(--ease-out) .15s backwards}.input{transition:border-color .15s,box-shadow .15s,background .15s}.input[aria-invalid=true]{border-color:var(--danger)}.modal-backdrop{background:#24181285}.dialog-backdrop{z-index:3500;background:#24181285;justify-content:center;align-items:center;padding:1rem;animation:.18s both backdrop-in;display:flex;position:fixed;inset:0}.dialog-backdrop.is-closing{animation:.14s both backdrop-out}.dialog{background:var(--surface);width:min(100%,460px);max-height:calc(100vh - 2rem);color:var(--text);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:dialog-in .26s var(--ease-spring) both;padding:1.25rem 1.35rem 1.1rem;overflow-y:auto}.dialog--danger{border-top-color:var(--danger)}.dialog-backdrop.is-closing .dialog{animation:.14s both dialog-out}.dialog__head{align-items:center;gap:.65rem;margin-bottom:.55rem;display:flex}.dialog__icon{background:var(--primary-soft);width:2.2rem;height:2.2rem;color:var(--primary-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.dialog--danger .dialog__icon{background:var(--danger-bg);color:var(--danger)}.dialog__title{margin:0;font-size:1.15rem}.dialog__body p{white-space:pre-line;margin:0 0 .6rem;line-height:1.6}.dialog__field{margin-top:.6rem}.dialog__code{letter-spacing:.12em;font-variant-numeric:tabular-nums;max-width:11rem}.dialog__actions{flex-wrap:wrap;gap:.6rem;margin-top:1.1rem;display:flex}.dialog__actions .btn{min-width:7rem}@media (width<=480px){.dialog-backdrop{align-items:flex-end;padding:0}.dialog{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;animation-name:sheet-in}.dialog-backdrop.is-closing .dialog{animation-name:sheet-out}.dialog__actions{flex-direction:column-reverse}.dialog__actions .btn{width:100%}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{to{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}@keyframes dialog-out{to{opacity:0;transform:translateY(6px)scale(.98)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-out{to{transform:translateY(100%)}}@supports (scrollbar-color:auto){html{scrollbar-color:var(--border-strong) transparent}}.empty-state--hero{animation:rise-in .4s var(--ease-out) backwards;justify-items:center;gap:.35rem;padding:2.6rem 1.25rem;display:grid}.empty-state--hero h2{margin:.4rem 0 0;font-size:1.25rem}.empty-state--hero p{max-width:34rem;margin:0 auto;line-height:1.7}.empty-state__icon{background:var(--primary-soft);width:3.4rem;height:3.4rem;color:var(--primary-strong);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.table-wrap{background:linear-gradient(to left, var(--surface) 30%, transparent) right center / 2.5rem 100% no-repeat local, linear-gradient(to right, var(--surface) 30%, transparent) left center / 2.5rem 100% no-repeat local, radial-gradient(farthest-side at 100% 50%, var(--scroll-shadow,#24181224), transparent) right center / .9rem 100% no-repeat scroll, radial-gradient(farthest-side at 0 50%, var(--scroll-shadow,#24181224), transparent) left center / .9rem 100% no-repeat scroll;background-color:var(--surface)}@media (width<=900px){.a11y__button{width:40px;height:40px}.a11y{bottom:12px;inset-inline-start:12px}}.login-screen:not(.login-screen--split)>.login-panel{flex:auto}.login-screen:not(.login-screen--split){background-color:var(--bg);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--line-height-px) - 1px), var(--rule) calc(var(--line-height-px) - 1px), var(--rule) var(--line-height-px))}.login-screen:not(.login-screen--split) .login-card{border-top:4px solid var(--primary);max-width:440px;animation:rise-in .4s var(--ease-out) backwards}[data-theme=dark] .btn--danger-solid{color:#1f0f0b}[data-theme=dark] .btn--danger-solid:hover:not(:disabled){background:#f08e82;border-color:#f08e82}[data-theme=dark] .dialog-backdrop,[data-theme=dark] .modal-backdrop{background:#0000009e}.not-found-screen{background-color:var(--bg);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--line-height-px) - 1px), var(--rule) calc(var(--line-height-px) - 1px), var(--rule) var(--line-height-px));flex-direction:column;min-height:100vh;display:flex}.not-found-screen__bar{background:var(--surface);border-top:3px solid var(--primary);border-bottom:1px solid var(--border);padding:.7rem 1.25rem}.not-found-screen main{flex:1;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.not-found{justify-content:center;padding-block:clamp(.5rem,3vw,2rem);display:flex}.not-found__sheet{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(100%,620px);animation:rise-in .45s var(--ease-out) backwards;padding:clamp(1.6rem,4vw,2.6rem) clamp(1.2rem,4vw,2.6rem) 1.6rem;position:relative}.not-found__sheet:before{content:"";top:0;bottom:0;background:var(--margin-rule);opacity:.55;border-radius:2px;width:2px;position:absolute;inset-inline-start:2.1rem}.not-found__digits{color:var(--ink);letter-spacing:-.03em;direction:ltr;justify-content:center;align-items:center;gap:clamp(.2rem,1.5vw,.6rem);font-size:clamp(4.6rem,16vw,7.5rem);font-weight:900;line-height:1;display:flex}.not-found__digits>span{animation:digit-drop .6s var(--ease-spring) backwards}.not-found__digits>span:last-child{animation-delay:.12s}.not-found__lens{width:.92em;height:.92em;color:var(--primary);animation:lens-in .6s var(--ease-spring) 60ms backwards, lens-search 3.2s ease-in-out .8s infinite;transform-origin:43% 43%;flex:none}.not-found__glint{stroke:var(--primary-soft)}@keyframes digit-drop{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}@keyframes lens-in{0%{opacity:0;transform:scale(.5)rotate(-30deg)}to{opacity:1;transform:none}}@keyframes lens-search{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-5px,3px)rotate(-7deg)}55%{transform:translate(4px,-2px)rotate(6deg)}80%{transform:translate(-2px,-3px)rotate(-3deg)}}.not-found__entry{text-align:left;border-radius:var(--r-sm);background:var(--primary-softer);border:1px dashed var(--border-strong);max-width:26rem;margin:1.1rem auto 1.3rem;padding:.75rem 1rem}.not-found__entry p{margin:0}.not-found__word{color:var(--ink);font-size:1.15rem;font-weight:800}.not-found__phon{color:var(--muted);font-size:.9rem;margin-top:.1rem!important}.not-found__def{color:var(--text);margin-top:.35rem!important}.not-found__def:before{content:"1. ";color:var(--primary-strong);font-weight:700}.not-found__title{margin-bottom:.4rem;font-size:clamp(1.35rem,3.6vw,1.7rem)}.not-found__sub{color:var(--muted);max-width:30rem;margin:0 auto .6rem;line-height:1.65}.not-found__path{margin:0 0 1.2rem}.not-found__path code{overflow-wrap:anywhere;background:var(--surface-2);max-width:100%;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;font-size:.85rem;display:inline-block}.not-found__actions{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.not-found__report{margin:1.2rem 0 0;font-size:.9rem}.not-found__report a{color:var(--primary-strong);font-weight:600}@media (width<=480px){.not-found__actions .btn{width:100%}.not-found__sheet:before{inset-inline-start:1rem}}.not-found__sheet{padding-inline:clamp(3rem,6vw,3.6rem) clamp(1.2rem,4vw,2.6rem)}.not-found__entry{width:min(100%,26rem)}@media (width<=480px){.not-found__sheet{padding-inline:2rem 1rem}}.age-declaration{border:1px solid var(--border);border-radius:var(--r);margin:0 0 .9rem;padding:.7rem .9rem .5rem}.age-declaration legend{padding:0 .35rem}.radio-row{cursor:pointer;align-items:flex-start;gap:.55rem;padding:.35rem 0;line-height:1.5;display:flex}.radio-row input{accent-color:var(--primary);flex:none;margin-top:.3rem}.level-filter{scrollbar-width:thin;gap:.45rem;margin:0 0 .6rem;padding:.15rem 0 .6rem;display:flex;overflow-x:auto}.level-filter__btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:.38rem .85rem;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.level-filter__btn:hover{border-color:var(--primary)}.level-filter__btn.is-active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.level-filter__btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.reading-level{margin:0 0 1.6rem}.reading-level__head{margin:0 0 .7rem}.reading-level__head h2{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .15rem;font-size:1.2rem;display:flex}.reading-level__head p{margin:0;font-size:.9rem}.reading-level__cefr{letter-spacing:.04em;background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:800}.reading-card__meta{font-size:.8rem}.chip--soft{background:var(--surface-2);color:var(--muted);border-color:var(--border)}.reading-bar{align-items:center}.reading-bar__chips{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.reading-result__score{font-size:2.6rem;font-weight:800;line-height:1.1}.reading-instructions{color:var(--ink);text-align:left;border-inline-start:3px solid var(--primary);background:var(--primary-softer);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:0 0 .8rem;padding:.15rem .7rem;font-weight:700}.reading-glossary{padding:.9rem 1.1rem}.reading-glossary__title{align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:1rem;display:flex}.reading-glossary dl{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.35rem 1rem;margin:0;display:grid}.reading-glossary__row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:.5rem;padding:.2rem 0;display:flex}.reading-glossary dt{color:var(--ink);font-weight:700}.reading-glossary dd{color:var(--text);margin:0}.reading-text{position:relative}.reading-para{padding-inline-start:2rem;position:relative}.reading-para__num{inset-inline-start:0;background:var(--surface-2);width:1.45rem;height:1.45rem;color:var(--muted);font-size:.72rem;font-weight:700;font-family:var(--font);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:.1rem}.reading-sentence{border-radius:4px;transition:background .15s,box-shadow .15s}.reading-sentence.is-chosen{background:var(--primary-soft);box-shadow:0 2px 0 var(--primary)}.reading-sentence.is-evidence{background:var(--success-bg);box-shadow:0 2px 0 var(--success)}.reading-sentence__tag{background:var(--primary);min-width:1.05rem;height:1.05rem;color:var(--on-primary);vertical-align:super;border-radius:999px;justify-content:center;align-items:center;margin-inline-start:.15rem;font-size:.65rem;font-weight:800;display:inline-flex}.reading-text.is-picking{box-shadow:0 0 0 3px var(--ring)}.reading-sentence.is-pickable{font:inherit;color:inherit;text-align:inherit;cursor:pointer;line-height:inherit;-webkit-text-decoration:underline dotted var(--border-strong);text-decoration:underline dotted var(--border-strong);text-underline-offset:4px;background:0 0;border:0;margin:0;padding:.05rem .1rem;display:inline}.reading-sentence.is-pickable:hover,.reading-sentence.is-pickable:focus-visible{background:var(--primary-soft);-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);outline:none}.reading-pick-banner{top:calc(var(--header-h,4rem) + .5rem);z-index:5;background:var(--ink);color:var(--surface);border-radius:var(--r);animation:alert-in .25s var(--ease-out) both;justify-content:space-between;align-items:center;gap:.6rem;margin:-.2rem 0 .8rem;padding:.55rem .8rem;font-size:.92rem;font-weight:600;display:flex;position:sticky}.reading-pick-banner .btn{color:var(--surface);border-color:#ffffff73}[data-theme=dark] .reading-pick-banner{background:var(--primary);color:var(--on-primary)}[data-theme=dark] .reading-pick-banner .btn{color:var(--on-primary);border-color:#0000004d}.reading-q{position:relative}.reading-q legend{align-items:center;gap:.5rem;width:100%;padding:0 .3rem;font-weight:600;display:flex}.reading-q__num{background:var(--ink);width:1.65rem;height:1.65rem;color:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:inline-flex}.reading-q__instruction{color:var(--muted);flex:1;font-size:.88rem;font-weight:600}.reading-q__points{background:var(--danger-bg);color:var(--danger);border-radius:999px;flex:none;padding:.1rem .5rem;font-size:.8rem;font-weight:800}.reading-q__points.is-right{background:var(--success-bg);color:var(--success)}.reading-q__stem{color:var(--ink);text-align:left;margin:.35rem 0 .6rem;font-weight:700;line-height:1.55}.reading-q.is-right{border-color:var(--success-border)}.reading-q.is-missed{border-color:var(--danger-border)}.reading-opt{align-items:flex-start;gap:.55rem;display:flex}.reading-opt__letter{border:1px solid var(--border-strong);width:1.35rem;height:1.35rem;color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:.1rem;font-size:.75rem;font-weight:700;display:inline-flex}.reading-opt input{opacity:0;width:1px;height:1px;position:absolute}.reading-opt:has(input:focus-visible){box-shadow:0 0 0 3px var(--ring)}.reading-opt.is-selected .reading-opt__letter{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.reading-opt.is-correct .reading-opt__letter{background:var(--success);border-color:var(--success);color:#fff}.reading-opt.is-wrong .reading-opt__letter{background:var(--danger);border-color:var(--danger);color:#fff}.tf-choice{gap:.6rem;margin:0 0 .6rem;display:flex}.tf-choice__btn{border-radius:var(--r-sm);border:1.5px solid var(--border-strong);background:var(--surface);max-width:10rem;color:var(--ink);font:inherit;letter-spacing:.04em;cursor:pointer;transition:background .15s, border-color .15s, transform .12s var(--ease-out);flex:1;padding:.55rem .8rem;font-weight:800}.tf-choice__btn:hover:not(:disabled){border-color:var(--primary)}.tf-choice__btn:active:not(:disabled){transform:scale(.98)}.tf-choice__btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.tf-choice__btn.is-selected{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tf-choice__btn.is-correct{background:var(--success-bg);border-color:var(--success);color:var(--success)}.tf-choice__btn.is-wrong{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.tf-choice__btn:disabled{cursor:default}.tf-evidence{justify-items:start;gap:.45rem;display:grid}.tf-evidence__quote{border-inline-start:3px solid var(--primary);background:var(--primary-softer);border-radius:0 var(--r-sm) var(--r-sm) 0;text-align:left;width:100%;margin:0;padding:.5rem .75rem;font-style:italic}.tf-evidence__quote.is-correct{border-color:var(--success);background:var(--success-bg)}.tf-evidence__quote.is-wrong{border-color:var(--danger);background:var(--danger-bg)}.tf-evidence__empty{margin:0;font-size:.88rem}.tf-evidence__answer{text-align:left;margin:0;font-size:.92rem}.reading-table-wrap{margin:0}.reading-table td{vertical-align:middle}.reading-table td:first-child{color:var(--ink);width:42%;font-weight:600}.reading-table__select{width:100%;min-width:9rem}.reading-table tr.is-right td{background:var(--success-bg)}.reading-table tr.is-missed td{background:var(--danger-bg)}.reading-table__fix{color:var(--success);margin-top:.3rem;font-size:.85rem;font-weight:700}.reading-open{resize:vertical;width:100%;min-height:4.5rem;font-family:inherit;line-height:1.5}.reading-open__note{margin:.35rem 0 0;font-size:.82rem}.reading-model{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);text-align:left;margin-top:.6rem;padding:.65rem .85rem}.reading-model p{margin:0 0 .35rem}.reading-model ul{margin:0;padding-inline-start:1.2rem}.reading-submit{z-index:4;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:.8rem;padding:.6rem .8rem;display:flex;position:sticky;bottom:.6rem}@media (width<=720px){.reading-submit{bottom:calc(4.6rem + env(safe-area-inset-bottom,0px))}.reading-para{padding-inline-start:1.7rem}.tf-choice__btn{max-width:none}}.login-card__top{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.login-card__top .lang-switch{margin-inline-start:auto}.login-screen--split .login-card__logo{display:none}@media (width<=900px){.login-screen--split .login-card__logo{display:flex}}.login-card__hint--tight{margin-top:.35rem}.register-closed h1{margin:.9rem 0 .4rem;font-size:1.4rem}.register-closed .form{margin-top:.8rem}#main:focus{outline:none}.login-panel#main{min-width:0}.forgot-card__title{align-items:center;gap:.45rem;margin:0 0 .5rem;font-size:1.05rem;display:flex}.forgot-card__title .icon{color:var(--primary-strong);flex-shrink:0}.forgot-footnote{margin:.4rem 0 0;font-size:.85rem}.feedback-contact{border:1px solid var(--border);border-radius:var(--r-sm);gap:.2rem;margin:0;padding:.8rem .9rem .2rem;display:grid}.feedback-contact legend{padding:0 .3rem}.eyebrow{color:var(--primary-strong);letter-spacing:.02em;margin:0 0 .4rem;font-size:.85rem;font-weight:700;display:block}.cta-band .btn--ghost{color:#fff;background:0 0;border-color:#fff6}.cta-band .btn--ghost:hover,.cta-band .btn--ghost:focus-visible{color:#fff;background:#ffffff1a;border-color:#ffffffa6}.hero__visual .mock-card__bar{flex-wrap:wrap;justify-content:space-between;gap:.5rem}@media (width<=900px){.hero__visual .mock-float--streak{top:-34px}}@media (width<=480px){.hero__visual .mock-float{display:none}}@media (width<=760px){.landing-nav .app-brand__tagline{display:none}.landing-nav__inner{flex-wrap:nowrap}.landing-nav__links{justify-content:flex-end;width:auto;margin-inline-start:auto}}@media (width<=380px){.landing-nav{position:static}}.landing-footer__links{flex-wrap:wrap;align-items:center;gap:0 .35rem;display:flex}.landing-footer a{padding:.35rem .15rem;display:inline-block}.release__version{margin:0;font-size:1.1rem}.release--professional ul{margin-top:.6rem}.release__earlier{color:var(--muted);gap:.35rem;margin:0;padding:.7rem .9rem .7rem 0;padding-inline-start:2rem;display:grid}.legal-page .card{margin-bottom:1rem}.legal-page .card h2{align-items:center;gap:.45rem;margin-top:0;display:flex}.legal-page .card h2 .icon{color:var(--primary-strong);flex-shrink:0}.legal-note{background:var(--primary-softer);border:1px solid var(--primary-soft);color:var(--ink);font-weight:600}:root{--focus:var(--primary-strong);--radius:var(--r);--success-soft:var(--success-bg);--faint:var(--faint-user-light,#739c97)}[data-theme=dark]{--focus:var(--primary-strong);--radius:var(--r);--success-soft:var(--success-bg);--faint:var(--faint-user-dark,#5f817e)}.stat-card-link{border-radius:var(--r)}.reading-explanation{background:var(--success-bg)}.reading-q{border-radius:var(--r)}a,.tabbar__item.is-active,.section__kicker,.content-review-details summary,.kudos-btn.is-sent,.kudos-btn:hover:not(:disabled),.word-report-btn:hover{color:var(--primary-strong)}.btn--primary,.cta-band .btn--primary,.lang-switch__btn.is-active,.nudge__score.is-active,.level-filter__btn.is-active,.tf-choice__btn.is-selected,.seg__btn.is-active,.reading-opt.is-selected .reading-opt__letter,.reading-sentence__tag{background:var(--primary-strong);border-color:var(--primary-strong);color:var(--on-primary)}.btn--primary:hover:not(:disabled),.cta-band .btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary-strong) 86%, #000);border-color:color-mix(in srgb, var(--primary-strong) 86%, #000);box-shadow:0 2px 0 color-mix(in srgb, var(--primary-strong) 70%, #000)}[data-theme=dark] .btn--primary:hover:not(:disabled),[data-theme=dark] .cta-band .btn--primary:hover:not(:disabled){background:var(--primary);border-color:var(--primary)}[data-theme=dark] .tab.is-active,[data-theme=dark] .step__num,[data-theme=dark] .reading-pick-banner{background:var(--primary-strong);border-color:var(--primary-strong);color:var(--on-primary)}html[data-a11y-contrast=on]{--primary:var(--primary-strong)}.badge--learning{color:#256571}[data-theme=dark] .badge--learning{color:var(--sky)}.weekly-path{background:var(--primary-softer)}.badge--suggestion-pending{background:var(--warn-bg);color:var(--warn)}.badge--suggestion-batched{color:#256571;background:#eef6f7}.badge--suggestion-approved{background:var(--success-bg);color:var(--success)}.badge--suggestion-rejected{background:var(--danger-bg);color:var(--danger)}[data-theme=dark] .badge--suggestion-batched{color:var(--sky);background:#17262a}.install-banner{box-shadow:0 -6px 24px #24181224}body{-webkit-user-select:text;user-select:text}.quiz-card,.quiz-options,.spell-meaning,.mock-word,.mock-options,.reading-q{-webkit-user-select:none;user-select:none}.nav-toggle{justify-content:center;align-items:center;min-width:40px;min-height:40px;display:none}@media (width<=1120px){.nav-toggle{display:inline-flex}}.app-nav__link--logout{cursor:pointer;width:100%;font:inherit;text-align:start;border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;margin-top:.25rem;padding-top:.6rem;font-size:.9rem;font-weight:600;display:none}.app-nav__link--logout:hover{background:var(--surface-2);color:var(--ink)}.app-nav__link--logout:focus-visible{box-shadow:inset 0 0 0 3px var(--ring);outline:none}@media (width<=700px){.app-header__inner{gap:.4rem;padding:.45rem .85rem}.app-user{gap:.2rem}.header-logout{display:none}.app-nav__link--logout{align-items:center;gap:.55rem;display:flex}.app-header .btn--sm{min-height:40px;padding-inline:.55rem}.app-user__profile{min-height:40px}.header-utility.header-notifications>span.notification-count{display:inline-flex}.header-notifications .notification-dot{display:none}}@media (width<=900px){.a11y{inset-inline-start:12px}}@media (width<=720px){.nudge{bottom:64px;width:auto;max-width:none;inset-inline:12px}.update-toast{bottom:64px}body:has(.has-tabbar) .a11y{bottom:calc(72px + env(safe-area-inset-bottom,0px))}.has-tabbar .nudge{bottom:calc(124px + env(safe-area-inset-bottom,0px))}.has-tabbar .install-banner{bottom:calc(60px + env(safe-area-inset-bottom,0px))}body:has(.has-tabbar) .update-toast{bottom:calc(124px + env(safe-area-inset-bottom,0px))}body:has(.has-tabbar):has(.install-banner) .a11y{bottom:calc(140px + env(safe-area-inset-bottom,0px))}}@media (width<=820px){body:has(.install-banner):not(:has(.has-tabbar)) .a11y{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.install-banner__icon{flex:none}.install-banner__share{vertical-align:-2px;margin-inline:.1rem}.update-toast__icon .icon{animation:none}.update-toast__actions{flex-shrink:0;gap:.4rem;display:flex}@media (width<=560px){.update-toast{flex-wrap:wrap;gap:.6rem .8rem;width:calc(100vw - 24px);max-width:none}.update-toast__body{flex:200px}.update-toast__actions{justify-content:flex-end;width:100%}}.session-note{z-index:150;border-radius:var(--r);background:var(--warn-bg);width:min(520px,100vw - 24px);color:var(--ink);border:1px solid var(--warn-border);box-shadow:var(--shadow);align-items:center;gap:.55rem;padding:.65rem .8rem;font-size:.9rem;line-height:1.45;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.session-note>.icon{color:var(--warn)}.session-note span{flex:1}.session-note__close{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:6px;display:inline-flex}.session-note__close:hover{color:var(--ink)}.session-note__close:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.route-error{min-height:70vh;padding:1rem}.route-error__card,.connection-error{text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:440px;display:flex}.route-error__card h1,.connection-error h1{margin:.4rem 0 0;font-size:1.3rem}.route-error__actions{justify-content:center;margin-top:.4rem}.connection-error__lang{margin-top:.6rem}.swatch-name{margin:.45rem 0 0;font-size:.84rem}.mock-card__bar{flex-wrap:wrap;justify-content:space-between;gap:.5rem}.learning-preview__headline span,.learning-preview__step small{color:var(--muted)}@media (width<=900px){.mock-float--streak{top:-34px}}@media (width<=480px){.mock-float{display:none}}.info-shell .landing-nav__links{align-items:center;gap:.5rem;display:flex}.info-page:focus{outline:none}.info-footer__links a,.landing-footer__inner a{padding:.35rem .15rem;display:inline-block}@media (width<=760px){.info-shell .landing-nav__links .lang-switch{margin-inline-end:auto}}.tour-card:focus-within{outline:none}.tour-card .btn:focus-visible{box-shadow:0 0 0 4px var(--ring)}.weekly-path.next-action{background:var(--primary-softer)}.streak-card__flame.is-cold{background:var(--surface-2);color:var(--faint);border-color:var(--border)}.streak-row--single{grid-template-columns:1fr}.spell-word{row-gap:.4rem;font-size:clamp(1.35rem,6.5vw,2.2rem)}.spell-word__group{white-space:nowrap;gap:2px;display:inline-flex}.placement-meta{flex-wrap:wrap;gap:.6rem}.placement-band{overflow-wrap:anywhere}.settings-page{max-width:640px;margin:0 auto}.settings-group{margin-top:1.6rem}.settings-group:first-of-type{margin-top:.4rem}.settings-group__title{letter-spacing:.04em;color:var(--muted);text-transform:none;border-bottom:1px solid var(--border);margin:0 0 .55rem;padding-bottom:.35rem;font-size:.82rem;font-weight:700}.settings-page .card>h3{align-items:center;gap:.45rem;margin-bottom:.45rem;font-size:1.08rem;display:flex}.settings-page .card>h3 .icon{color:var(--primary-strong);flex:none}.settings-status{margin:.5rem 0 0;font-size:.88rem}.settings-hint{margin:.25rem 0 0;font-size:.86rem}.settings-note{margin:0 0 .6rem;font-size:.88rem}.settings-divider{border-top:1px solid var(--border);margin:1.1rem 0 .9rem}.settings-checks{flex-direction:column;gap:.7rem;display:flex}.settings-checks .checkbox{align-items:flex-start;margin-inline-start:0;line-height:1.45}.settings-checks .checkbox input{flex:none;margin-top:.2rem}.settings-proof{gap:.8rem;max-width:380px;margin-top:.8rem}.settings-code-input{letter-spacing:.06em;max-width:200px}.settings-secret{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);width:fit-content;max-width:100%;color:var(--ink);overflow-wrap:anywhere;margin:.25rem 0 .4rem;padding:.35rem .6rem;font-size:.85rem;display:block}.settings-page .field small{font-size:.82rem;line-height:1.45}@media (width<=480px){.settings-proof,.settings-code-input{max-width:none}}.progress-legend{margin:.1rem 0 .4rem;font-size:.88rem}.answer-counts{white-space:nowrap;gap:.7rem;display:inline-flex}.answer-counts>span{align-items:center;gap:.2rem;display:inline-flex}.answer-counts>span:first-child .icon{color:var(--success)}.answer-counts>span:last-child .icon{color:var(--danger)}.certificate__logo{flex:none}@media print{html,html[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff}html[data-theme=dark] body{color:#374151;background:#fff}.certificate,[data-theme=dark] .certificate{--ink:#111827;--text:#374151;--muted:#6b7280;--faint:#9ca3af;--bg:#fff;--surface:#fff;--surface-2:#f3f4f6;--border:#e5e7eb;--border-strong:#d1d5db;--primary:#0f9488;--primary-strong:#0f766e;color:#374151;background:#fff}.certificate__border{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border-color:#0f9488}.certificate__border:before{border-color:#d1d5db}.certificate__title{color:#0f766e}.certificate__name,.certificate__date{color:#111827}.certificate__sub,.certificate__brand,.certificate__sign span{color:#6b7280}.certificate__text{color:#374151}.certificate__line{border-bottom-color:#111827}.certificate .brand-mark{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.stat-card-link{color:inherit;border-radius:var(--r-sm);text-decoration:none;display:block}.stat-card-link:focus-visible{box-shadow:0 0 0 4px var(--ring);outline:none}.stat-card-link:hover .stat-card,.stat-card-link:focus-visible .stat-card{border-color:var(--primary)}.release-hero{border-radius:var(--r)}.teacher-home .plain-list,.teacher-student .plain-list,.teacher-insights .plain-list,.teacher-test .plain-list{gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.teacher-summary h2{margin-top:0}.teacher-summary__grid{margin-top:.4rem}.teacher-summary__note{margin:.7rem 0 0;font-size:.82rem}.teacher-goal{border-top:1px solid var(--border);margin-top:1rem;padding-top:.8rem}.teacher-goal__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.teacher-goal__meta{margin:.4rem 0 0;font-size:.86rem}.teacher-goal__new{margin:1.1rem 0 .2rem;font-size:1rem}.teacher-goal-history{margin-top:1rem}.teacher-goal-history summary{cursor:pointer;color:var(--muted);font-weight:600}.teacher-goal-history summary:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm);outline:none}.credentials:focus{outline:none}.credentials:focus-visible{box-shadow:0 0 0 4px var(--ring)}.credentials__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.credentials__head h3{margin:0;font-size:1rem}.credentials__url{color:var(--text);margin:.2rem 0 .7rem;font-size:.9rem}.credentials__secret{letter-spacing:.05em;color:var(--ink);white-space:nowrap;direction:ltr;unicode-bidi:isolate;font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:1rem;font-weight:600}.credentials .alert[role=note]{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}.teacher-students__actions{flex-wrap:wrap;margin:0}.students-table td{vertical-align:top}.students-table tr.is-inactive td{background:var(--surface-2)}.student-link{color:var(--ink);font-weight:600;text-decoration:none}.student-link:hover span{text-decoration:underline}.student-link:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm);outline:none}.student-badge{vertical-align:middle;margin-inline-start:.4rem}.student-progress,.student-activity{flex-direction:column;gap:.1rem;min-width:9.5rem;display:flex}.student-progress .muted,.student-activity .muted{font-size:.8rem}.students-legend{margin-top:.6rem;font-size:.8rem}.names-hint{margin:0 0 .6rem;font-size:.85rem}.join-code-form{align-items:end;margin-bottom:.4rem}.join-code-form__help{margin:0 0 .8rem;font-size:.8rem}.join-code__meta{font-size:.82rem}.qr-modal .join-code__code{text-align:center;font-size:2.4rem}.qr-modal__or{margin:.6rem 0 .1rem}.qr-modal__url{color:var(--ink);margin:0;font-family:Consolas,Courier New,monospace;font-size:1.05rem}@media (width<=600px){.students-table .col-username{display:none}.teacher-students__actions .btn{flex:auto;justify-content:center}}.back-link{align-items:center;gap:.3rem;text-decoration:none;display:inline-flex}.teacher-student__meta{margin:.2rem 0 0}.teacher-student__badges{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0;display:flex}.teacher-student__badges:empty{display:none}.teacher-student__facts li{color:var(--text)}.insights-days__bars{height:64px}.insights-days__labels{justify-content:space-between;margin-top:.25rem;font-size:.75rem;display:flex}.insights-days__table{margin-top:.4rem;font-size:.86rem}.insights-days__table summary{cursor:pointer;color:var(--muted)}.insights-days__table summary:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm);outline:none}.insights-wrong{color:var(--danger)}.sent-tests__item{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem 0;display:flex}.sent-tests__item:last-child{border-bottom:0}.teacher-words__mine{align-self:end;margin-bottom:.55rem}.content-review-table .review-note{max-width:320px;color:var(--muted);overflow-wrap:anywhere;unicode-bidi:isolate;margin-top:.35rem;font-size:.78rem;display:block}.content-review-details__label{color:var(--muted);font-weight:700}.content-review-details small{margin-top:.3rem;display:block}.content-review-filters{grid-template-columns:2fr 1fr}.content-review-hint{margin:-.25rem 0 1rem}.content-review-head{flex-wrap:wrap;align-items:baseline;gap:.75rem}.content-review-table .row-actions,.school-students-table .row-actions{flex-wrap:wrap}.table-wrap.is-refreshing{opacity:.6;transition:opacity .15s}@media (prefers-reduced-motion:reduce){.table-wrap.is-refreshing{transition:none}}.pager{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.9rem;display:flex}.pager__num{font-variant-numeric:tabular-nums;justify-content:center;min-width:2.25rem}.pager__num[aria-current=page]{cursor:default;opacity:1}.pager__gap{color:var(--muted);padding:0 .15rem}.reject-row td,.transfer-row td{background:var(--surface-2)}.reject-row__form,.transfer-row__form{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.reject-row__form .field{flex:280px;margin:0}.transfer-row__form .field{flex:0 320px;margin:0}.reject-row__form textarea{resize:vertical;min-height:2.6rem}.passage-preview{gap:1rem;padding:.5rem 0;display:grid}.passage-preview__label{color:var(--muted);margin-bottom:.2rem;font-size:.78rem;font-weight:700;display:block}.passage-preview__titles p{margin:.1rem 0}.passage-preview__text{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);text-align:left;padding:.9rem 1rem}.passage-preview__text p{margin:0 0 .6rem}.passage-preview__glossary ul{margin:0;padding-inline-start:1.2rem}.passage-preview__questions{gap:.9rem;margin:0;padding-inline-start:1.4rem;display:grid}.passage-preview__questions>li{border-bottom:1px solid var(--border);padding-bottom:.8rem}.passage-preview__questions .chip{margin-bottom:.35rem}.passage-preview__q{text-align:left}.passage-preview__options{margin:.35rem 0 0;padding-left:1.2rem;padding-right:0}.passage-preview__options li.is-answer{color:var(--success);font-weight:700}.passage-preview .answer-mark{vertical-align:-2px;color:var(--success);margin-left:.3rem}.passage-preview__table{margin-top:.5rem}.passage-preview__table th,.passage-preview__table td{text-align:left;vertical-align:top}.passage-preview__open ul,.passage-preview__tf ul{margin:.2rem 0 0;padding-inline-start:1.2rem}.passage-preview__tf li[dir=ltr]{text-align:left}.passage-preview__open p,.passage-preview__tf p{margin:.35rem 0}.passage-preview-row>td{background:var(--surface-2)}.filters--4{grid-template-columns:2fr 1fr 1fr 1fr}.filters__full{grid-column:1/-1}.filters--4 .checkbox,.modal .checkbox{margin:0}.practice-blocked{max-width:220px;font-size:.8rem;line-height:1.35;display:inline-block}.review-note-line{overflow-wrap:anywhere;margin:-.25rem 0 .75rem}.modal textarea.input{resize:vertical}.admin-home__review{margin:.6rem 0 0}.admin-home__links{margin-bottom:1.5rem}.admin-home__schools-head{margin-top:.5rem}.school-users-search{min-width:220px;margin:0}.form-hint{margin-top:.5rem}.danger-zone{border-color:var(--danger-border)}.danger-zone h2{color:var(--danger)}.school-home__note{margin:.5rem 0 0;font-size:.85rem}.school-students-table td{white-space:nowrap}.school-students-table td:first-child{white-space:normal;min-width:170px}.school-students-table tr.is-disabled td{color:var(--muted)}@media (width<=760px){.filters--4,.content-review-filters{grid-template-columns:1fr}.pager{justify-content:center}.school-users-search{width:100%;min-width:0}.reject-row__form,.transfer-row__form{flex-direction:column;align-items:stretch}.transfer-row__form .field{flex-basis:auto}}.table-wrap{position:relative}fieldset{min-width:0}.tour-backdrop--dim{background:#140c088c}.tour-backdrop--clear{touch-action:pinch-zoom}.tour-card{opacity:0;transition:opacity .15s;top:0;left:0}.tour-card.is-ready,.tour-card--center{opacity:1}@media (prefers-reduced-motion:reduce){.tour-spotlight,.tour-card{transition:none}}.retention-notice{border-inline-start:4px solid var(--primary-strong,var(--primary));margin-bottom:1rem}.retention-notice h2{align-items:center;gap:.45rem;margin:0 0 .4rem;font-size:1.05rem;display:flex}.retention-notice p{margin:0 0 .75rem}.retention-notice.is-done{color:var(--success);align-items:center;gap:.5rem;font-weight:600;display:flex}.live-banner{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--warn-border);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.88rem;font-weight:600;display:flex}.live-banner a{color:inherit;text-decoration:underline}.teacher-live .live-meta{align-self:center;margin:0}.teacher-live .live-note{margin-top:.75rem;font-size:.85rem}.teacher-live .live-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.live-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.live-row{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.7rem .9rem;display:flex}.live-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:700}.live-state{white-space:nowrap;font-size:.85rem}.live-state .muted{font-size:inherit;color:inherit;opacity:.8}.live-dot{background:var(--muted);border-radius:50%;flex:none;width:.7rem;height:.7rem}.live-row--active .live-dot{background:var(--success)}.live-row--active .live-state{color:var(--success)}.live-row--away{border-color:var(--danger-border);background:var(--danger-bg)}.live-row--away .live-dot{background:var(--danger)}.live-row--away .live-state{color:var(--danger);font-weight:700}.live-row--offline .live-state{color:var(--muted)}@media (prefers-reduced-motion:no-preference){.live-row--active .live-dot{animation:2s ease-in-out infinite live-pulse}}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.45}}@media print{.live-banner{display:none}}.legal-page section[id]{scroll-margin-top:5.5rem}:where(button,a,summary,input,select,textarea,[tabindex]):focus-visible,.btn:focus-visible,.quiz-option:focus-visible,.mock-option:focus-visible,.lang-switch__btn:focus-visible,.th-sort:focus-visible,.app-user__profile:focus-visible,.seg__btn:focus-visible,.speak-btn:focus-visible,.a11y__button:focus-visible{outline:3px solid var(--primary-strong);outline-offset:2px}.input:focus-visible{outline:3px solid var(--primary-strong);outline-offset:1px}.info-page p a,.info-page li a,.legal-page p a,.legal-page li a,.muted a,p a:not(.btn){text-underline-offset:2px;text-decoration:underline}:root{--input-border:#8f7a68;--scroll-shadow:#24181224}[data-theme=dark]{--input-border:#8a7766;--scroll-shadow:#00000080}.input{border-color:var(--input-border)}input[type=checkbox],input[type=radio]{accent-color:var(--primary-strong)}@media (width<=820px){.input,select.input,textarea.input{font-size:16px}}@media (width<=1120px){.app-nav--open{overscroll-behavior:contain;max-height:calc(100dvh - 64px);overflow-y:auto}}.password-field__toggle{justify-content:center;min-width:40px;min-height:40px}.tabbar__item{font-size:max(.72rem,11.5px)}.live-banner{z-index:60;position:relative}.offline-banner{background:var(--warn-bg);color:var(--warn);text-align:center;border-bottom:1px solid var(--warn-border);padding:.5rem 1rem;font-size:.88rem;font-weight:600}@media print{.offline-banner{display:none}}.a11y{z-index:4100}@media (hover:none),(pointer:coarse){.quiz-hint{display:none}}.teacher-live .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}@media (width<=480px){.teacher-live .stat-card{padding:.6rem .4rem}.teacher-live .stat-card__value{font-size:1.25rem}.teacher-live .stat-card__label{font-size:.74rem}}.filters--4 .checkbox{margin:0}.filters--4 .teacher-words__mine{margin-bottom:.55rem}.nudge__hint{margin:0 0 .5rem;font-size:.78rem}.reading-text{scroll-margin-top:calc(var(--header-h,4rem) + 1rem)}.reading-opt__mark{flex:none;margin-inline-start:auto;font-weight:800}.reading-opt.is-correct .reading-opt__mark{color:var(--success)}.reading-opt.is-wrong .reading-opt__mark{color:var(--danger)}.reading-q__options .reading-sentence.is-pickable,.reading-text .reading-sentence.is-pickable{display:inline}@media (width<=720px){.reading-table tr{padding:.5rem 0;display:block}.reading-table td{border:0;width:100%;padding:.2rem .5rem;display:block}.reading-table td:first-child{width:100%}.reading-table__select{width:100%;min-width:0}}.spell-word:has(.spell-input:focus){outline:2px solid var(--primary-strong);outline-offset:4px;border-radius:4px}.spell-word{max-width:100%}@media print{.flashcard__side--en{border-inline-end:0}.flashcard__side:not(.flashcard__side--en){border-inline-start:1.5px dashed #a89482}}[data-theme=dark] .quiz-option.is-correct .quiz-option__num,[data-theme=dark] .mock-option.is-right .mock-option__num,[data-theme=dark] .reading-opt.is-correct .reading-opt__letter{color:var(--success-bg)}[data-theme=dark] .quiz-option.is-wrong .quiz-option__num{color:var(--danger-bg)}@media (width<=720px){body:has(.has-tabbar):has(.install-banner) .update-toast{bottom:calc(190px + env(safe-area-inset-bottom,0px))}}@media (width>=721px) and (width<=820px){body:has(.install-banner) .a11y{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}@media (width<=480px){.dialog{animation-timing-function:var(--ease-out)}}html[data-a11y-spacing=on] :is(p,li,label,dd,td,th,blockquote,.reading-text,.reading-q__stem,.quiz-definition,.quiz-option__text,.dialog__body p,.passage-preview__text p,textarea){line-height:1.9!important}.release__section+.release__section{margin-top:1rem}.release__section h3{color:var(--primary);margin:0 0 .4rem;font-size:1rem}.release__title{margin:.2rem 0 .6rem;font-weight:700}.app-brand__subject{color:var(--primary-strong);background:var(--primary-soft);vertical-align:.12em;letter-spacing:0;direction:rtl;unicode-bidi:isolate;border-radius:999px;margin:0 .4rem 0 0;padding:.05rem .5rem;font-size:.78rem;font-weight:800}.hub{--primary:var(--brand);--primary-strong:var(--brand-strong)}.hub-hero{padding:4.5rem 1.25rem 3rem}.hub-hero__inner{text-align:center;max-width:760px;margin:0 auto}.hub-hero__kicker{color:var(--brand-strong);background:color-mix(in srgb, var(--brand) 10%, transparent);border-radius:999px;margin-bottom:1rem;padding:.3rem .85rem;font-size:.88rem;font-weight:700;display:inline-block}.hub-hero__title{margin-bottom:.9rem;font-size:clamp(2rem,6vw,3.2rem);line-height:1.15}.hub-hero__sub{color:var(--text);max-width:620px;margin:0 auto;font-size:1.1rem}.hub-subjects,.hub-schools{max-width:1040px;margin:0 auto;padding:1rem 1.25rem 2.5rem}.hub-subjects>h2,.hub-schools>h2{text-align:center;margin-bottom:1.25rem}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.hub-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:.4rem;padding:1.4rem 1.2rem 1.2rem;display:flex;position:relative;overflow:hidden}.hub-card__stripe{background:var(--subject);height:6px;position:absolute;inset:0 0 auto}.hub-card h3{color:var(--ink);margin:.2rem 0 0;font-size:1.25rem}.hub-card p{color:var(--muted);flex:1;margin:0 0 .6rem}.hub-card__btn{background:var(--subject);color:#fff;border-color:var(--subject);align-self:flex-start}.hub-card__btn:hover{filter:brightness(.92);text-decoration:none}.hub-card__soon{color:var(--muted);border:1px dashed var(--border-strong);border-radius:999px;align-self:flex-start;padding:.2rem .7rem;font-size:.85rem;font-weight:700}.hub-schools{text-align:center}.hub-schools p{max-width:620px;color:var(--text);margin:0 auto 1rem}@media (width<=520px){.hub-hero{padding-top:3rem}}.hub .btn--primary{--on-primary:#fff;color:#fff;background:var(--brand);border-color:var(--brand)}.hub .btn--primary:hover{background:var(--brand-strong)}:root:not([data-theme=dark]){--bg:#f4f6f8;--surface:#fff;--surface-2:#eef1f4;--border:#e2e7ec;--border-strong:#cbd3dc;--ink:#0f1c24;--text:#33424d;--muted:#5c6b77;--faint:#6b7883;--rule:transparent;--primary:#0f766e;--primary-strong:#115e59;--primary-soft:#ccfbf1;--primary-softer:#effcf9;--on-primary:#fff;--ring:#0f766e4d;--hero-a:#0f766e;--hero-b:#0e7490}[data-theme=dark]{--bg:#0b1217;--surface:#121c23;--surface-2:#18242d;--border:#22313b;--border-strong:#33454f;--ink:#eaf1f4;--text:#c3cfd6;--muted:#8fa0ab;--faint:#66767f;--rule:transparent;--primary:#2dd4bf;--primary-strong:#5eead4;--primary-soft:#2dd4bf2e;--primary-softer:#2dd4bf14;--on-primary:#042f2e;--ring:#2dd4bf59;--hero-a:#115e59;--hero-b:#155e75}:root{--display:"Fredoka", "Heebo", system-ui, sans-serif;--lift:0 1px 2px #0f1c240d, 0 8px 22px -14px #0f1c2438;--lift-hi:0 2px 4px #0f1c240f, 0 16px 32px -16px #0f1c244d;--r-card:18px;--tone-green:#15803d;--tone-blue:#0369a1;--tone-orange:#c2410c;--tone-slate:#475569}[data-theme=dark]{--lift:0 1px 2px #0006, 0 10px 26px -14px #000000b3;--lift-hi:var(--lift);--tone-green:#4ade80;--tone-blue:#38bdf8;--tone-orange:#fb923c;--tone-slate:#94a3b8}body{background-image:none;background-color:var(--bg)}:is(h1,h2,h3,.quiz-word,.stat-card__value,.tabbar__item,.seg__btn,.hub-hero__title,.hero h1,.login-card h1,.app-brand__title,.sprint-result__score){font-family:var(--display)}.btn{font-family:var(--display);letter-spacing:.005em;font-weight:600}h1{letter-spacing:0;font-weight:700}h2,h3{font-weight:600}.app-brand__title{font-size:1.22rem;font-weight:700}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}.app-brand--link,.app-brand--link:hover,.app-brand--link:focus,.app-brand--link *{text-decoration:none!important}.app-brand--link{cursor:pointer;border-radius:12px}.app-brand--link:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.brand-mark{transition:transform .35s var(--ease-out)}.brand-mark__spark{transform-box:fill-box;transform-origin:50%}@media (hover:hover) and (pointer:fine){.app-brand--link:hover .brand-mark{transform:rotate(-8deg)scale(1.06)}.app-brand--link:hover .brand-mark__spark{animation:spark-twinkle .6s var(--ease-out)}}@keyframes spark-twinkle{0%{transform:scale(1)}45%{transform:scale(1.45)}to{transform:scale(1)}}.app-brand__subject{background:var(--primary-softer);color:var(--primary-strong);border:1px solid var(--primary-soft)}.app-brand--on-dark .app-brand__subject{color:#fff;background:#ffffff29;border-color:#0000}.app-shell{background:var(--bg)}.app-main{padding-inline-start:1.25rem}.app-main:before{display:none}.app-header{border-top:0;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px)}.app-footer{border-top-color:var(--border);background:0 0}.app-shell .page>.page__head{isolation:isolate;background:var(--surface);border:1px solid var(--border);box-shadow:var(--lift);animation:hero-in .55s var(--ease-out) backwards;border-radius:22px;margin:0 0 1.4rem;padding:1.4rem 1.5rem;position:relative;overflow:hidden}.app-shell .page>.page__head:before{content:"";z-index:-1;pointer-events:none;inset-inline-end:-6rem;background:var(--primary-softer);border-radius:50%;width:16rem;height:16rem;position:absolute;top:-9rem}.app-shell .page>.page__head h1{margin-bottom:.25rem}.app-shell .page>.page__head p{max-width:65ch;margin-bottom:0}@keyframes hero-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}@keyframes drift{0%{transform:translate(0,0)rotate(0)}to{transform:translate(-12px,14px)rotate(12deg)}}.app-shell[data-role=student] .page>.page__head{background:linear-gradient(125deg, var(--hero-a), var(--hero-b));color:#fff;border:0}.app-shell[data-role=student] .page>.page__head :where(*):not(.btn,.btn *,input,select,option,.badge,.chip){color:inherit}.app-shell[data-role=student] .page>.page__head p{opacity:.92}.app-shell[data-role=student] .page>.page__head:before{inset-inline-end:-5.5rem;background:#ffffff1f;width:17rem;height:17rem;animation:10s ease-in-out infinite alternate drift;top:-8.5rem}.app-shell[data-role=student] .page>.page__head:after{content:"";z-index:-1;pointer-events:none;inset-inline-start:14%;border:14px solid #ffffff1a;border-radius:50%;width:9rem;height:9rem;animation:8s ease-in-out 1s infinite alternate-reverse drift;position:absolute;bottom:-5.5rem}.app-shell[data-role=student] .page>.page__head :is(.btn--ghost,.btn--secondary){color:#fff;box-shadow:none;background:#ffffff24;border-color:#ffffff73}.app-shell[data-role=student] .page>.page__head :is(.btn--ghost,.btn--secondary):hover{background:#ffffff3d}.app-shell[data-role=student] .page>.page__head .btn--primary{color:var(--primary-strong);background:#fff;border-color:#fff;box-shadow:0 3px #00000026}.app-shell[data-role=student] .page>.page__head .btn--primary:hover{background:#effcf9}.app-shell[data-role=student] .page>.page__head :is(.badge,.chip){color:#fff;background:#ffffff2e;border-color:#0000}[data-theme=dark] .app-shell[data-role=student] .page>.page__head .btn--primary{color:#115e59}.guide-open{margin-inline-start:auto;width:fit-content;margin-bottom:1rem;display:flex;border-radius:999px!important}.app-shell .page>.page__head:not(.page__head--row):has(+.guide-open){padding-bottom:3.5rem}.app-shell .page>.page__head:not(.page__head--row)+.guide-open{z-index:2;margin-top:-4.35rem;margin-inline-end:1.1rem;margin-bottom:2.05rem;position:relative}.app-shell[data-role=student] .page>.page__head:not(.page__head--row)+.guide-open{color:#fff;box-shadow:none;background:#ffffff29;border-color:#ffffff80}.app-shell :is(.card,.quiz-card,.nav-card,.banner,.badge-card,.flashcard,.guide-card,.empty-state,.table-wrap){background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--lift);transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out), border-color .2s}.app-shell .empty-state{border-style:dashed;border-color:var(--border-strong);box-shadow:none}@media (hover:hover) and (pointer:fine){.app-shell :is(.nav-card,.badge-card,a.card):hover{box-shadow:var(--lift-hi);border-color:color-mix(in srgb, var(--primary) 40%, var(--border));transform:translateY(-3px)}}.app-shell :is(.banner,.guide-card){border-inline-start:4px solid var(--primary)}.app-shell .banner--success{border-inline-start-color:var(--tone-green)}.app-shell .nav-card__icon{background:var(--primary-softer);color:var(--primary);border:1px solid var(--primary-soft);border-radius:12px}.app-shell .nav-card:hover .nav-card__icon{animation:icon-wiggle .5s var(--ease-out)}@keyframes icon-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-10deg)scale(1.08)}65%{transform:rotate(6deg)}}.app-shell .badge-card__progress,.app-shell .badge-card__progress *{color:var(--muted)}.app-shell .page>:is(.card,.banner,.guide-card,.card-grid,.stat-grid,section){margin-bottom:1.25rem}.app-shell .card{padding:1.35rem 1.4rem}.app-shell .card-grid{gap:1.1rem}.app-shell .stat-grid{gap:.9rem}@media (width<=560px){.app-main{padding-inline:1rem}.app-shell .card{padding:1.15rem 1.1rem}.app-shell .page>.page__head{border-radius:20px;padding:1.25rem 1.2rem}}.app-shell .btn,.login-card .btn,.hub .btn,.landing .btn{background-image:none;border-width:1.5px;border-radius:12px;transition:transform .1s,box-shadow .12s,background-color .15s,border-color .15s,color .15s}.app-shell .btn--primary,.login-card .btn--primary,.landing .btn--primary{background-color:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 3px 0 var(--primary-strong)}.app-shell .btn--primary:hover:not(:disabled),.login-card .btn--primary:hover:not(:disabled),.landing .btn--primary:hover{background-color:var(--primary-strong);border-color:var(--primary-strong);color:var(--on-primary)}.app-shell .btn--ghost{background-color:var(--surface);border-color:var(--border-strong);color:var(--ink);box-shadow:0 2px 0 var(--border)}.app-shell .btn--ghost:hover:not(:disabled){background-color:var(--surface-2);color:var(--ink)}.app-shell .btn--secondary{box-shadow:0 2px #0003}.app-shell :is(.btn--primary,.btn--ghost,.btn--secondary):active:not(:disabled),.login-card .btn--primary:active:not(:disabled){box-shadow:0 1px 0 var(--border-strong);transform:translateY(2px)}.app-shell .btn--sm{border-radius:10px}.app-shell .btn:focus-visible{box-shadow:0 0 0 4px var(--ring)}.app-shell :is(.input,select.input){border:1.5px solid var(--border-strong);background-color:var(--surface);border-radius:12px}.app-shell .stat-card{--tone:var(--primary);isolation:isolate;background:var(--surface);border:1px solid var(--border);box-shadow:var(--lift);color:var(--text);animation:tile-in .5s var(--ease-out) backwards;border-radius:16px;position:relative;overflow:hidden}.app-shell .stat-card:before{content:"";background:var(--tone);height:4px;position:absolute;inset:0 0 auto}@keyframes tile-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.app-shell .stat-card .stat-card__value{color:var(--tone);font-size:2rem;font-weight:700}.app-shell .stat-card .stat-card__label{color:var(--muted);font-weight:500}.app-shell .stat-card .stat-card__icon{color:var(--tone)}.app-shell .stat-card--known{--tone:var(--tone-green)}.app-shell .stat-card--learning{--tone:var(--tone-blue)}.app-shell .stat-card--difficult{--tone:var(--tone-orange)}.app-shell .stat-card--new{--tone:var(--tone-slate)}.app-shell .stat-grid>:nth-child(2) .stat-card,.app-shell .stat-grid>.stat-card:nth-child(2){animation-delay:60ms}.app-shell .stat-grid>:nth-child(3) .stat-card,.app-shell .stat-grid>.stat-card:nth-child(3){animation-delay:.12s}.app-shell .stat-grid>:nth-child(4) .stat-card,.app-shell .stat-grid>.stat-card:nth-child(4){animation-delay:.18s}.app-shell[data-role=student] .stat-card:after{content:"";z-index:-1;pointer-events:none;background:color-mix(in srgb, var(--tone) 11%, transparent);position:absolute}.app-shell[data-role=student] .stat-grid>:nth-child(4n+1) .stat-card:after,.app-shell[data-role=student] .stat-grid>.stat-card:nth-child(4n+1):after{inset-inline-start:-2rem;border-radius:50%;width:6.5rem;height:6.5rem;bottom:-2.8rem}.app-shell[data-role=student] .stat-grid>:nth-child(4n+2) .stat-card:after,.app-shell[data-role=student] .stat-grid>.stat-card:nth-child(4n+2):after{inset-inline-end:-1.3rem;border:10px solid color-mix(in srgb, var(--tone) 13%, transparent);background:0 0;border-radius:50%;width:5rem;height:5rem;top:-1.4rem}.app-shell[data-role=student] .stat-grid>:nth-child(4n+3) .stat-card:after,.app-shell[data-role=student] .stat-grid>.stat-card:nth-child(4n+3):after{background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--tone) 10%, transparent) 0 7px, transparent 7px 16px);width:45%;height:160%;inset:-30% -8% auto auto;transform:rotate(18deg)}.app-shell[data-role=student] .stat-grid>:nth-child(4n+4) .stat-card:after,.app-shell[data-role=student] .stat-grid>.stat-card:nth-child(4n+4):after{inset-inline-start:.8rem;border-radius:12px;width:3.6rem;height:3.6rem;top:-1.3rem;transform:rotate(24deg)}.app-shell .progress{background:var(--surface-2);border:0;height:16px;box-shadow:inset 0 1px 2px #0f1c2414}.app-shell .progress--plain{height:10px}.app-shell .progress__fill{background-color:var(--primary);background-image:repeating-linear-gradient(-45deg,#ffffff2e 0 8px,#0000 8px 16px);background-size:22px 100%;animation:1.2s linear infinite stripes}@keyframes stripes{to{background-position:22px 0}}.app-shell .seg{border:1.5px solid var(--border-strong);background:var(--surface)}.app-shell .seg__btn{transition:background-color .2s var(--ease-out), color .2s;font-size:.88rem;font-weight:600}.app-shell .seg__btn.is-active{background-color:var(--primary);color:var(--on-primary)}.app-shell .next-action{border-inline-start:4px solid var(--primary)}.app-shell .next-action h2{font-size:1.4rem}.app-shell .next-action .btn--primary{animation:2.8s ease-in-out 1.2s infinite cta-breathe}@keyframes cta-breathe{0%,to{box-shadow:0 3px 0 var(--primary-strong), 0 0 0 0 transparent}50%{box-shadow:0 3px 0 var(--primary-strong), 0 0 0 6px var(--primary-soft)}}.app-shell .quiz-word{animation:word-in .4s var(--ease-out);font-size:clamp(2.4rem,9vw,3.2rem);font-weight:600}@keyframes word-in{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:none}}.app-shell .quiz-option{border:1.5px solid var(--border-strong);box-shadow:0 2px 0 var(--border);transition:transform .12s var(--ease-out), box-shadow .12s, border-color .15s, background-color .15s;border-radius:14px;font-weight:500}@media (hover:hover) and (pointer:fine){.app-shell .quiz-option:hover:not(:disabled){border-color:var(--primary);background-color:var(--primary-softer);box-shadow:0 4px 0 var(--primary-soft);transform:translateY(-2px)}}.app-shell .quiz-option:active:not(:disabled){box-shadow:0 1px 0 var(--border);transform:translateY(2px)}.app-shell .quiz-option__num{border:1.5px solid var(--border-strong);background:var(--surface-2);width:30px;height:30px;font-family:var(--display);border-radius:50%;font-size:.9rem}.app-shell .quiz-option.is-selected{border-color:var(--primary);box-shadow:0 2px 0 var(--primary)}.app-shell .quiz-option.is-correct{border-color:var(--tone-green);box-shadow:0 2px 0 var(--tone-green);animation:correct-pop .42s var(--ease-out)}.app-shell .quiz-option.is-wrong{border-color:var(--tone-orange);box-shadow:0 2px 0 var(--tone-orange);animation:.4s wrong-shake}@keyframes correct-pop{0%{transform:scale(1)}35%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes wrong-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.sprint-result__score{animation:num-pop .6s var(--ease-out)}.app-shell .page>*{animation:rise-in .5s var(--ease-out) backwards}.app-shell .page>:nth-child(2){animation-delay:60ms}.app-shell .page>:nth-child(3){animation-delay:.12s}.app-shell .page>:nth-child(4){animation-delay:.18s}.app-shell .page>:nth-child(5){animation-delay:.24s}.app-shell .page>:nth-child(n+6){animation-delay:.3s}.app-shell .page>.page__head{animation-name:hero-in;animation-delay:0s}.app-shell .tabbar{border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:.25rem;padding-inline:.5rem;box-shadow:0 -8px 24px -16px #0f1c2459}.app-shell .tabbar__item{border-radius:12px;font-size:.74rem;font-weight:600;transition:background-color .2s,color .2s,transform .12s}.app-shell .tabbar__item:active{transform:scale(.94)}.app-shell .tabbar__item.is-active{background-color:var(--primary-softer);color:var(--primary)}.app-shell .tabbar__item.is-active .icon{animation:correct-pop .35s var(--ease-out)}@media (width<=1120px){.app-nav--open{animation:menu-in .28s var(--ease-out)}.app-nav--open>*{animation:rise-in .32s var(--ease-out) backwards}.app-nav--open>:nth-child(2){animation-delay:30ms}.app-nav--open>:nth-child(3){animation-delay:60ms}.app-nav--open>:nth-child(4){animation-delay:90ms}.app-nav--open>:nth-child(5){animation-delay:.12s}.app-nav--open>:nth-child(6){animation-delay:.15s}.app-nav--open>:nth-child(n+7){animation-delay:.18s}.app-nav__link{border-radius:12px}.app-nav__link.is-active{background-color:var(--primary-softer);color:var(--primary-strong);box-shadow:inset 3px 0 0 var(--primary)}.nav-toggle .icon{transition:transform .25s var(--ease-out)}.nav-toggle[aria-expanded=true] .icon{transform:rotate(90deg)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.app-nav__link.is-active{color:var(--primary-strong)}.students-table td.student-progress,.students-table td.student-activity{display:table-cell}.student-progress>*,.student-activity>*{display:block}.students-table td{white-space:normal}.students-table .row-actions .btn{white-space:nowrap}.hub-card.is-soon{opacity:1}.hub-card.is-soon :is(p,.hub-card__soon){color:var(--muted)}.login-screen{background:var(--bg);position:relative;overflow:hidden}.login-screen:before,.login-screen:after{content:"";pointer-events:none;z-index:0;border-radius:50%;position:absolute}.login-screen:before{inset-inline-start:-8rem;background:var(--primary-softer);width:26rem;height:26rem;animation:12s ease-in-out infinite alternate drift;top:-10rem}.login-screen:after{inset-inline-end:-5rem;border:28px solid color-mix(in srgb, var(--primary) 9%, transparent);width:16rem;height:16rem;animation:9s ease-in-out infinite alternate-reverse drift;bottom:-6rem}.login-screen>:not(.skip-link){z-index:1;position:relative}.login-side{border-inline-end:0;background:linear-gradient(150deg, var(--hero-a), var(--hero-b))!important}.login-side :is(p,.login-side__point){color:#ffffffe6}.login-side__point .icon{color:#fff}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--lift-hi);animation:hero-in .5s var(--ease-out) backwards;border-radius:22px;padding:1.8rem 1.6rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]){--side:#12202b;--side-line:#ffffff17;--side-text:#ffffffbd}[data-theme=dark] .app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]){--side:#0a1218}@media (width>=1121px){.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]){padding-inline-start:252px}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-header{background:var(--side);z-index:50;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;width:252px;position:fixed;inset-block:0;inset-inline-start:0;overflow-y:auto}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-header__inner{flex-direction:column;align-items:stretch;gap:1rem;max-width:none;height:100%;padding:1.15rem .85rem 1rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-brand{color:#fff;border-bottom:1px solid var(--side-line);padding:.15rem .45rem 1rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-brand__subject{color:#fff;background:#ffffff24}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav{flex-direction:column;flex:1;gap:3px;margin:0}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__link{color:var(--side-text);transition:background .18s, color .18s, padding .18s var(--ease-out);border-radius:12px;align-items:center;gap:.7rem;padding:.65rem .8rem;font-size:.95rem;display:flex;position:relative}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__icon{opacity:.85;display:inline-block}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__link:hover{color:#fff;background:#ffffff14;padding-inline-start:1rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__link.is-active{color:#fff;background:#ffffff24;box-shadow:inset 3px 0 #5eead4}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__link:focus-visible{outline-offset:-2px;outline:2px solid #fff}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-nav__link--logout{display:none}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user{border-top:1px solid var(--side-line);flex-direction:column;align-items:stretch;gap:.4rem;margin:0;padding-top:.85rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user__profile{color:#fff;padding:.35rem .45rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user__profile:hover{background:#ffffff14}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user__name{color:#fff;overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:.1rem;min-width:0;font-size:.88rem;display:flex!important}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .role-badge{color:var(--side-text);background:0 0;padding:0;font-size:.75rem;font-weight:600}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user .btn{min-height:38px;box-shadow:none;color:var(--side-text);background:0 0;border:0;justify-content:flex-start;gap:.6rem;font-size:.9rem}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user .btn:hover{color:#fff;background:#ffffff14}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-user .btn span{display:inline}.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin]) .app-main{max-width:1240px;padding:2rem 2.25rem 3rem}body:has(.app-shell:is([data-role=teacher],[data-role=school_admin],[data-role=superadmin])) .a11y{inset-inline-start:268px}}
