@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/outfit-500.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/outfit-600.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/outfit-700.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/outfit-800.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(system-ui),local(-apple-system),local(BlinkMacSystemFont),local(Segoe UI),local(Roboto);size-adjust:107%;ascent-override:92%;descent-override:22%;line-gap-override:0%}:root{--bg-main:#0b0f19;--bg-card:#151e30bf;--bg-card-hover:#1e2a44d9;--border-color:#ffffff1a;--border-active:#6366f180;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f159;--accent-emerald:#10b981;--accent-emerald-glow:#10b98140;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--accent-red:#f87171;--accent-red-glow:#f8717140;--accent-cyan:#06b6d4;--accent-purple:#a855f7;--accent-purple-glow:#a855f74d;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--shadow-card:0 12px 32px 0 #0000005e;--radius-lg:20px;--radius-md:12px;--radius-sm:8px;--bg-modal:#151e30;--bg-modal-elevated:#1a243a;--bg-overlay:#0b0f19d9;--font-main:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Outfit", sans-serif;--fs-xs:clamp(.8125rem, .79rem + .12vw, .875rem);--fs-sm:clamp(.875rem, .85rem + .15vw, .9375rem);--fs-base:clamp(1rem, .97rem + .2vw, 1.0625rem);--fs-md:clamp(1.125rem, 1.08rem + .3vw, 1.25rem);--fs-lg:clamp(1.35rem, 1.28rem + .45vw, 1.55rem);--fs-xl:clamp(1.6rem, 1.5rem + .7vw, 1.95rem);--z-nav:900;--z-header:1000;--z-modal:1000;--z-offline-banner:9998;--z-confetti-burst:9998;--z-confetti-canvas:9999;--z-overlay:10000;--z-overlay-elevated:10001;--z-tooltip:10005;--z-consolation-toast:10090;--z-toast:10100;--z-max:2147480000}html{overscroll-behavior:none;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:clamp(1rem,.94rem + .3vw,1.125rem);overflow-x:hidden}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background:var(--bg-main);color:var(--text-main);overscroll-behavior:none;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;background-image:radial-gradient(at 10% 10%,#6366f126 0,#0000 50%),radial-gradient(at 90% 90%,#10b9811f 0,#0000 50%),radial-gradient(#06b6d414 0,#0000 50%);min-height:100dvh;line-height:1.6;overflow-x:hidden}button,a,input,select,textarea,[role=button],.nav-item-btn,.card,.deck-card,.metric-card,.vocab-card,.fc-card,.word-row,.mastery-bar-card,.heatmap-card-compact{touch-action:manipulation}.hidden,[hidden],.is-hidden{display:none!important}#teacherView,#adminView{content-visibility:auto;contain-intrinsic-size:800px}.confetti-word-burst-overlay{pointer-events:none;width:100%;height:100%;z-index:var(--z-confetti-burst,9998);position:fixed;top:0;left:0;overflow:hidden}.confetti-word-burst-pill{opacity:0;color:#fef08a;letter-spacing:.02em;white-space:nowrap;will-change:transform, opacity;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172af2;border:1.5px solid #f59e0bd9;border-radius:999px;padding:.35rem .85rem;font-size:.92rem;font-weight:800;position:absolute;transform:translate(-50%,-50%)scale(.3);box-shadow:0 8px 24px #000000bf,0 0 16px #f59e0b59}.confetti-word-burst-pill--mobile{font-size:.82rem}.confetti-canvas{pointer-events:none;width:100%;height:100%;z-index:var(--z-confetti-canvas,9999);position:fixed;top:0;left:0}.app-header{padding:.75rem 1.5rem;padding-top:max(.75rem, env(safe-area-inset-top,.75rem));padding-left:calc(1.5rem + env(safe-area-inset-left));padding-right:calc(1.5rem + env(safe-area-inset-right));-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:var(--z-header);background:#0f172af2;justify-content:space-between;align-items:center;gap:1rem;transition:padding .3s,background .3s;display:flex;position:sticky;top:0}.logo-container{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.logo-icon{background:linear-gradient(135deg, var(--primary), var(--accent-cyan));border-radius:var(--radius-md);width:40px;height:40px;box-shadow:0 0 16px var(--primary-glow);flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;display:flex}.logo-block{-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;gap:2px;display:flex}.logo-part-learn{font-family:var(--font-display);letter-spacing:.22em;color:#fff;text-transform:uppercase;font-size:1.1rem;font-weight:800;line-height:1}.logo-part-book{font-family:var(--font-display);letter-spacing:.18em;color:#818cf8;background:linear-gradient(135deg,#818cf8 0%,#38bdf8 100%);-webkit-text-fill-color:transparent;text-transform:uppercase;-webkit-background-clip:text;font-size:1.1rem;font-style:italic;font-weight:900;line-height:1}.top-nav-menu{border:1px solid var(--border-color);border-radius:var(--radius-md);scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;background:#1e293bbf;align-items:center;gap:4px;max-width:100%;padding:4px;display:flex;overflow-x:auto}.top-nav-menu::-webkit-scrollbar{display:none}.nav-item-btn{color:var(--text-muted);border-radius:var(--radius-sm);font-family:var(--font-main);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;gap:.35rem;padding:.5rem 1rem;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.nav-item-btn:hover{color:var(--text-main);background:#ffffff0d}.nav-item-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 10px var(--primary-glow)}.nav-btn-icon{justify-content:center;align-items:center;display:inline-flex;position:relative}.nav-badge{background:var(--accent-rose);color:#fff;pointer-events:none;box-sizing:border-box;border:1px solid #0f172a;border-radius:9999px;justify-content:center;align-items:center;min-width:13px;height:13px;padding:0 2px;font-size:9px;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:1px;right:-1px;box-shadow:0 0 6px #f43f5e99}.nav-btn-icon .nav-badge{top:-3px;right:-5px}.header-controls{flex-shrink:0;align-items:center;gap:.75rem;margin-left:auto;display:flex}.user-controls-pill{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293bcc;flex-shrink:0;align-items:center;gap:.25rem;padding:.2rem .35rem;transition:border-color .2s,box-shadow .2s;display:inline-flex}.user-controls-pill:hover{border-color:#6366f173}.pill-icon-btn{color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:34px;height:34px;padding:0 .35rem;font-size:1.15rem;transition:all .15s;display:inline-flex;position:relative}.pill-icon-btn:hover{background:#ffffff1f}.pill-icon-btn.active{background:var(--primary);color:#fff;box-shadow:0 0 8px #6366f173}.streak-badge-top{color:#fff7ed;border-radius:var(--radius-full,9999px);white-space:nowrap;-webkit-backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;cursor:pointer;background:linear-gradient(135deg,#fb923c38 0%,#ef44442e 100%);border:1px solid #fb923c73;flex-shrink:0;align-items:center;gap:.38rem;padding:.32rem .75rem;font-size:.84rem;font-weight:800;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;box-shadow:0 2px 10px #f9731638,inset 0 1px #fff3}.streak-badge-top:hover{background:linear-gradient(135deg,#fb923c59 0%,#ef444447 100%);border-color:#fb923cb3;transform:translateY(-1px);box-shadow:0 4px 16px #f9731661,inset 0 1px #ffffff59}.streak-badge-top:active{transform:scale(.95);box-shadow:0 1px 6px #f973164d}.streak-badge-top .streak-fire{filter:drop-shadow(0 0 6px #f97316d9);transform-origin:bottom;font-size:.95rem;line-height:1;animation:3s ease-in-out infinite streakFlameFlicker;display:inline-block}.streak-badge-top .streak-count{font-variant-numeric:tabular-nums;color:#fef08a;text-shadow:0 1px 4px #0009,0 0 10px #f59e0b66;letter-spacing:-.01em;font-weight:800}.streak-badge-top .streak-medal{filter:drop-shadow(0 0 4px #fff6);margin-left:.15rem;font-size:.95rem;line-height:1;display:inline-block}@keyframes streakFlameFlicker{0%,to{filter:drop-shadow(0 0 5px #f97316bf);transform:scale(1)rotate(0)}25%{filter:drop-shadow(0 0 8px #ef4444e6);transform:scale(1.08)rotate(-2deg)}50%{filter:drop-shadow(0 0 10px #f59e0bf2);transform:scale(1.14)rotate(2deg)translateY(-.5px)}75%{filter:drop-shadow(0 0 7px #f97316cc);transform:scale(1.06)rotate(-1deg)}}@media (width<=1024px){.app-header{flex-wrap:nowrap;gap:.75rem;padding:.65rem 1rem}.app-header .logo-block,.app-header .nav-btn-label{display:none}.nav-item-btn{justify-content:center;min-width:42px;padding:.5rem .8rem;font-size:1.15rem}.top-nav-menu{gap:4px;padding:4px}}@media (width<=768px){.app-header{padding:.45rem .65rem;padding-top:max(.45rem, env(safe-area-inset-top,.45rem));padding-left:calc(.65rem + env(safe-area-inset-left));padding-right:calc(.65rem + env(safe-area-inset-right));gap:.4rem}.app-header .logo-container{display:none}.header-controls{justify-content:space-between;width:100%;margin-left:0}.nav-item-btn{min-width:44px;min-height:44px;padding:.45rem .65rem;font-size:1.05rem}.gear-btn{min-width:44px;height:44px;min-height:44px;font-size:1rem}.streak-badge-top{background:linear-gradient(135deg,#fb923c42 0%,#ef444433 100%);border:1.2px solid #fb923c8c;border-radius:9999px;gap:.24rem;padding:.28rem .6rem;font-size:.8rem;box-shadow:0 2px 10px #f9731647,inset 0 1px #ffffff38}.streak-badge-top .streak-fire{font-size:.9rem}.streak-badge-top .streak-count{font-size:.84rem}.app-header #topBarChipBadge,.app-header .streak-badge-top .streak-day-label{display:none}}@media (pointer:coarse){.nav-item-btn,.gear-btn{min-width:44px;min-height:44px}}.api-indicator{border:1px solid var(--border-color);font-size:var(--fs-xs);letter-spacing:.07em;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:#1e293bb3;border-radius:9999px;align-items:center;gap:.38rem;padding:.32rem .62rem;font-weight:700;transition:all .2s;display:inline-flex}.api-indicator:hover{color:var(--text-main);background:#1e293be6;border-color:#6366f173}.api-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 #0000}.api-dot--ok{background:#22c55e;animation:2s infinite api-pulse-green;box-shadow:0 0 8px #22c55eb3}.api-dot--error{background:#ef4444;animation:2s infinite api-pulse-red;box-shadow:0 0 8px #ef4444b3}.api-dot--warn{background:var(--accent-amber);animation:2s infinite api-pulse-amber;box-shadow:0 0 8px #f59e0b99}.api-dot--checking{background:var(--text-dim);animation:1.2s infinite api-pulse-amber}@keyframes api-pulse-green{0%{box-shadow:0 0 #22c55eb3}70%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes api-pulse-red{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes api-pulse-amber{0%{box-shadow:0 0 #f59e0b99}70%{box-shadow:0 0 0 6px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}.admin-toggle{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#1e293bcc;gap:4px;padding:4px;display:flex}.admin-toggle .toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;transition:all .2s}.admin-toggle .toggle-btn.active{background:var(--primary);color:#fff;font-weight:700}.auth-overlay{width:100dvw;height:100dvh;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:var(--z-modal);background-color:#0b0f19e6;background-image:radial-gradient(circle at 18% 22%,#6366f138 0,#0000 48%),radial-gradient(circle at 82% 78%,#06b6d42e 0,#0000 48%),radial-gradient(circle,#a855f71a 0,#0000 52%);justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.auth-card{-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);text-align:center;box-sizing:border-box;background:#151e30b8;border:1px solid #ffffff1f;border-top-color:#ffffff42;border-radius:24px;width:90%;max-width:400px;padding:2.25rem 2rem;box-shadow:0 24px 60px #000000a6,0 0 35px #6366f124}.auth-card .logo-icon{background:linear-gradient(135deg, var(--primary), #8b5cf6, var(--accent-cyan));border:1px solid #ffffff47;border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1.25rem;display:flex;box-shadow:0 8px 24px #6366f173}.auth-card-title{font-size:1.75rem;font-family:var(--font-display);color:#fff;letter-spacing:-.02em;margin-bottom:.35rem;font-weight:700}.auth-form-group{text-align:left;margin-bottom:.9rem}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-icon{color:var(--text-dim);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:.95rem;transform:translateY(-50%)}.auth-card .auth-input{width:100%;color:var(--text-main);box-sizing:border-box;background:#0f172abf;border:1px solid #ffffff1f;border-radius:12px;padding:.75rem 1rem .75rem 2.6rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .2s}.auth-input::placeholder{color:#475569;opacity:1}.auth-card .auth-input:focus{border-color:var(--primary);background:#0f172ae6;outline:none;box-shadow:0 0 0 3.5px #6366f138}.auth-card .auth-input--password{padding-right:2.75rem}.auth-password-toggle{cursor:pointer;color:var(--text-muted);opacity:.75;z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:.35rem;font-size:1.1rem;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.auth-password-toggle:hover,.auth-password-toggle:focus{opacity:1;transform:translateY(-50%)scale(1.08)}.auth-password-toggle .pw-icon-hide,.auth-password-toggle.is-revealed .pw-icon-show{display:none}.auth-password-toggle.is-revealed .pw-icon-hide{display:block}.auth-card .auth-submit-btn{letter-spacing:.02em;background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.85rem;padding:.8rem 1.25rem;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 4px 18px #6366f166}.auth-card .auth-submit-btn:hover{filter:brightness(1.08);box-shadow:0 6px 22px var(--border-active)}.auth-card .auth-submit-btn:active{box-shadow:0 2px 10px var(--primary-glow);transform:scale(.98)}@media (width<=480px){.auth-overlay{padding-top:max(1rem, env(safe-area-inset-top,0px));padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;align-items:center;overflow-y:auto}.auth-card{border-radius:20px;max-width:350px;padding:1.75rem 1.35rem}.auth-card-title{font-size:1.55rem}}.sso-divider{opacity:.6;align-items:center;gap:.6rem;margin:1.1rem 0 .6rem;font-size:.8rem;display:flex}.sso-divider:before,.sso-divider:after{content:"";border-top:1px solid;flex:1}.sso-btn--branded{cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;display:flex}.sso-btn--google{color:#1f1f1f}.sso-btn--microsoft{color:#5e5e5e}.sso-btn--branded svg{flex:none;width:18px;height:18px}.sso-btn--branded:hover{background:#f8f9fa;box-shadow:0 1px 2px #00000026}.sso-btn--google:focus-visible{outline-offset:2px;outline:2px solid #4285f4}.sso-btn--microsoft:focus-visible{outline-offset:2px;outline:2px solid #0067b8}.sso-btn--branded:active{transform:translateY(1px)}.sso-btn:disabled{opacity:.55;cursor:not-allowed}.sso-btn--branded+.sso-btn--branded{margin-top:.6rem}#loginForm{text-align:left;margin-top:1.5rem}#loginNicknameHp{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}#authErrorMsg{color:var(--accent-rose);text-align:center;border-radius:var(--radius-sm);background:#f43f5e1a;border:1px solid #f43f5e40;margin-bottom:1rem;padding:.6rem;font-size:.85rem;font-weight:600}.sso-signup-hint{text-align:center;color:var(--text-muted);margin:.75rem 0 0;font-size:.85rem}.login-throttle-hint{margin-top:.25rem;font-size:.75rem;font-weight:400;display:block}.practice-container{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.practice-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:680px;display:flex}.active-deck-badge{color:var(--text-main);border-radius:var(--radius-md);border:1px solid var(--border-color);background:#1e293b99;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.95rem;font-weight:700;display:flex}.back-btn{border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;background:#1e293bcc;padding:.5rem 1rem;font-weight:600;transition:all .2s}.back-btn:hover{color:var(--text-main);border-color:var(--text-muted)}.practice-header .mode-selector{margin-left:auto}.mode-selector{border-radius:var(--radius-md);background:#1e293bcc;gap:.5rem;padding:4px;display:flex}.mode-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;min-height:44px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:all .2s}.mode-btn.active{background:var(--primary);color:#fff}.mode-selector.disabled{opacity:.45;pointer-events:none;cursor:not-allowed}.mode-btn:disabled{cursor:not-allowed;opacity:.6}.mode-label-short{display:none}.mode-label-full{display:inline}@media (pointer:coarse){.mode-btn{min-width:44px;min-height:44px}}.progress-wrapper{width:100%;max-width:680px}.progress-container{align-items:center;gap:.5rem;display:flex}.progress-info{color:var(--text-muted);white-space:nowrap;flex-shrink:0;min-width:max-content;font-size:.85rem;font-weight:600}.progress-track{background:#ffffff14;border-radius:4px;flex:1;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), var(--accent-cyan));width:0%;height:100%;transition:width .3s}.card-wrapper{perspective:1200px;cursor:pointer;width:100%;max-width:680px;height:420px}.card-inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:var(--radius-lg);transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.card-inner.flipped{transform:rotateY(180deg)}.card-face.card-back,.card-inner.flipped .card-face.card-front{visibility:hidden}.card-inner.flipped .card-face.card-back{visibility:visible}.card-face{backface-visibility:hidden;border-radius:var(--radius-lg);background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:100%;height:100%;box-shadow:var(--shadow-card);border:1px solid #ffffff26;flex-direction:column;justify-content:space-between;padding:2.5rem;transition:visibility 0s linear .3s;display:flex;position:absolute}.card-face.card-back{background-color:#111827f2;background-image:radial-gradient(circle at 0%,#f43f5e17 0%,#0000 60%),radial-gradient(circle at 100%,#10b98133 0%,#0000 60%);border-color:#6366f14d;padding:1.85rem 2.25rem 1.35rem;transform:rotateY(180deg)}body:has(#learnSection:not([hidden])){background-image:radial-gradient(at 10% 10%,#6366f126 0,#0000 50%),radial-gradient(#06b6d414 0,#0000 50%)}.card-top{justify-content:space-between;align-items:center;display:flex}.card-pos-badge{color:#a5b4fc;font-size:var(--fs-xs);text-transform:uppercase;background:#6366f133;border-radius:12px;padding:.2rem .6rem;font-weight:700}.audio-btn{color:#fff;cursor:pointer;background:#6366f133;border:1px solid #6366f166;border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;min-height:44px;font-size:1.1rem;transition:all .2s;display:flex}.audio-btn:hover{background:var(--primary);transform:scale(1.08)}.card-center{text-align:center;margin:.2rem 0}.card-word{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:.15rem;font-size:2.1rem;font-weight:800}.card-phonetic{color:var(--accent-cyan);margin-bottom:.6rem;font-size:.95rem;font-weight:600}.examples-container{text-align:left;flex-direction:column;align-self:center;gap:.5rem;width:max-content;max-width:88%;margin-top:.4rem;margin-left:auto;margin-right:auto;display:flex}.card-hint-notice{text-align:left;font-size:var(--fs-xs);color:var(--text-dim);opacity:.6;filter:grayscale();-webkit-user-select:none;user-select:none;transition:opacity .2s,filter .2s;position:absolute;bottom:.5rem;left:.65rem}.card-hint-notice:hover{opacity:.9;filter:grayscale(0%)}.card-hint-desktop{display:inline}.card-hint-mobile{display:none}@media (width<=768px){.card-hint-desktop{display:none}.card-hint-mobile{display:inline}}#cardTranslationBack{text-align:left;word-wrap:break-word;overflow-wrap:break-word;flex:1;min-width:0}.card-face.card-front .card-center{flex-direction:column;justify-content:center;align-items:center;margin:auto 0;display:flex}.card-face.card-front .card-word{margin-bottom:.35rem;font-size:2.5rem}.card-face.card-front .card-phonetic{font-size:1.1rem}.card-face.card-back .card-center{flex-direction:column;flex:1;align-items:center;width:100%;margin:.35rem 0 0;display:flex}.card-face.card-back .card-word{color:var(--text-main);letter-spacing:-.01em;margin-top:0;margin-bottom:0;font-size:1.9rem;font-weight:700}.card-face.card-back .definition-box{text-align:center;max-width:95%;margin-top:1.55rem;margin-bottom:0}#cardDefinitionBack{color:#86efac;text-shadow:0 0 20px #86efac2e;margin:0;font-size:1.08rem;font-weight:600;line-height:1.45}.card-face.card-back .examples-container{flex-direction:column;gap:.6rem;width:100%;max-width:95%;margin-top:auto;margin-bottom:auto;display:flex}.card-face.card-back .example-sentence{color:var(--text-main);text-align:left;border-left:2.5px solid var(--border-active);background:#6366f10d;border-radius:0 6px 6px 0;margin:0;padding:.4rem .8rem;font-size:.9rem;font-style:italic;line-height:1.45}.translation-box{color:#cbd5e1;-webkit-backdrop-filter:blur(12px);cursor:default;background:linear-gradient(#1e293b73 0%,#0f172aa6 100%);border:1px solid #94a3b829;border-radius:9999px;flex-direction:column;justify-content:center;align-items:center;width:auto;max-width:92%;margin-top:.2rem;margin-bottom:.2rem;padding:.35rem .85rem;font-size:.88rem;font-weight:600;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 16px #0003,inset 0 1px #ffffff0f}.translation-box.expanded{border-radius:var(--radius-md,12px);padding:.45rem .9rem}.translation-box:has(#cardTranslationToggleBtn[aria-expanded=true]){border-radius:var(--radius-md,12px);padding:.45rem .9rem}.translation-box:hover{border-color:#6366f152;box-shadow:0 6px 20px #00000040,0 0 16px #6366f11a}.practice-actions{gap:1.5rem;width:100%;max-width:680px;display:flex}.action-btn{border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem;font-size:1rem;font-weight:700;transition:all .2s;display:flex}.btn-again{color:#fda4af;background:#f43f5e26;border:1px solid #f43f5e66}.btn-again:hover,.btn-again:active,.btn-again.is-pressed{background:var(--accent-rose);color:#fff;transform:scale(.97);box-shadow:0 4px 16px #f43f5e73}.btn-mastered{color:#6ee7b7;background:#10b98126;border:1px solid #10b98166}.btn-mastered:hover,.btn-mastered:active,.btn-mastered.is-pressed{background:var(--accent-emerald);color:#fff;box-shadow:0 4px 16px var(--accent-emerald-glow);transform:scale(.97)}.shortcut-key{min-width:1.35rem;height:1.35rem;font-family:inherit;font-size:var(--fs-xs);opacity:.85;-webkit-user-select:none;user-select:none;background:#00000047;border:1px solid #ffffff2e;border-radius:4px;justify-content:center;align-items:center;margin-left:.45rem;padding:0 .35rem;font-weight:700;line-height:1;transition:all .2s;display:inline-flex;box-shadow:0 1px 2px #00000059,inset 0 1px #ffffff1f}.action-btn:hover .shortcut-key,.action-btn.is-pressed .shortcut-key{color:#fff;opacity:1;background:#00000073;border-color:#ffffff59}@media (hover:none),(pointer:coarse),(width<=768px){.practice-actions .shortcut-key,.action-btn .shortcut-key,.shortcut-key{display:none}}.deck-badge-mastered{color:#fcd34d;font-size:var(--fs-xs);white-space:nowrap;background:linear-gradient(135deg,#f59e0b33,#fbbf241a);border:1px solid #f59e0b80;border-radius:999px;padding:.2rem .6rem;font-weight:700}.vocab-grid-card.is-mastered{border-color:#f59e0b59}.vocab-grid-card.is-mastered:hover{border-color:#f59e0b99;box-shadow:0 0 20px #f59e0b26}@keyframes masteredPulse{0%{filter:drop-shadow(0 0 8px #f59e0b40);transform:scale(1)}to{filter:drop-shadow(0 0 16px #f59e0b73);transform:scale(1.02)}}.completion-title-mastered{background:linear-gradient(135deg, #fbbf24, var(--accent-amber), #fcd34d);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #f59e0b59);-webkit-background-clip:text;background-clip:text;animation:1.2s ease-in-out infinite alternate masteredPulse}@keyframes screenBreathe{0%{transform:scale(.97)}45%{transform:scale(1.03)}to{transform:scale(1)}}.celebrate-breathe{will-change:transform;animation:.8s cubic-bezier(.22,1,.36,1) screenBreathe}@keyframes crownDrop{0%{opacity:0;transform:translate(-50%,-48px)scale(.6)rotate(-10deg)}50%{opacity:1;transform:translate(-50%,6px)scale(1.12)rotate(3deg)}75%{transform:translate(-50%,-4px)scale(.96)rotate(-1deg)}to{opacity:1;transform:translate(-50%)scale(1)rotate(0)}}.crown-drop{pointer-events:none;z-index:9998;filter:drop-shadow(0 4px 14px #f59e0b66);font-size:3.4rem;line-height:1;animation:.72s cubic-bezier(.34,1.56,.64,1) both crownDrop;display:inline-block;position:fixed}@keyframes goldEdgeShimmer{0%{border-color:#f59e0b59;box-shadow:0 0 16px #f59e0b1f,inset 0 0 12px #f59e0b0a}50%{border-color:#fbbf24a6;box-shadow:0 0 28px #f59e0b47,inset 0 0 20px #f59e0b14}to{border-color:#f59e0b59;box-shadow:0 0 16px #f59e0b1f,inset 0 0 12px #f59e0b0a}}#deckCompletionContainer .teacher-panel.card-gold-shimmer,.teacher-panel.card-gold-shimmer,.card-gold-shimmer{border-color:#f59e0b73;animation:3.2s ease-in-out infinite goldEdgeShimmer}#quizContainer{width:100%;max-width:680px}#quizContainer .teacher-panel{text-align:center}#quizQuestionWord{margin-bottom:.5rem;font-size:2rem}#quizInstruction{color:var(--text-muted);margin-bottom:1.5rem}#quizOptionsGrid{flex-direction:column;gap:.8rem;display:flex}#quizOptionsGrid:not([hidden]){display:flex}#deckCompletionContainer{text-align:center;width:100%;max-width:600px}#deckCompletionContainer .teacher-panel{padding:2.5rem 2rem}#completionEmoji{margin-bottom:.5rem;font-size:3rem}#completionTitle{color:var(--text-main);margin-bottom:.5rem;font-size:1.8rem}#completionSubtitle{color:var(--text-muted);margin-bottom:1.5rem}.completion-score-box{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a99;margin-bottom:2rem;transition:all .3s;position:relative;overflow:hidden}#deckCompletionContainer #completionScoreBox.completion-dual-stats,.completion-dual-stats{padding:1.5rem}.completion-stat-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}.completion-stat-card{border-radius:var(--radius-sm,8px);background:#1e293b80;border:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex}.completion-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,var(--text-muted));margin-bottom:.25rem;font-size:.8rem;font-weight:700}#completionScorePct,#completionMasteryPct{font-size:2.2rem;font-weight:800;line-height:1.1}#completionScorePct{color:var(--accent-emerald)}#completionMasteryPct{color:var(--accent-indigo,#818cf8)}#completionScoreDetail,#completionMasteryDetail{color:var(--text-dim);margin-top:.35rem;font-size:.88rem}.completion-mastery-explainer{color:var(--text-muted,var(--text-muted));margin:0;font-size:.82rem;line-height:1.4}#deckCompletionContainer #backToDecksBtn{padding:.8rem 1.5rem;font-size:.95rem}#deckCompletionContainer #celebrateReadStoryBtn,#deckCompletionContainer #tryAgainDeckBtn{padding:.8rem 1.75rem;font-size:1rem}#deckCompletionContainer .teacher-panel>div:last-of-type{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}@keyframes perfectShimmerGlow{0%,to{box-shadow:0 0 20px var(--accent-emerald-glow), 0 0 40px #10b9811a, inset 0 0 16px #10b9811f;border-color:#10b9818c}50%{border-color:#34d399e6;box-shadow:0 0 32px #10b98173,0 0 64px #34d39940,inset 0 0 28px #34d39938}}@keyframes perfectSweep{0%{transform:translate(-120%)skew(-25deg)}35%,to{transform:translate(220%)skew(-25deg)}}@keyframes perfectTextGlow{0%,to{text-shadow:0 0 16px #34d399b3,0 0 32px #10b98166;transform:scale(1)}50%{text-shadow:0 0 28px #34d399f2,0 0 56px #10b98199,0 0 80px #34d3994d;transform:scale(1.03)}}#deckCompletionContainer #completionScoreBox.perfect-score-shimmer,#completionScoreBox.perfect-score-shimmer,.perfect-score-shimmer{background:radial-gradient(circle at 50% 30%,#10b98138 0%,#0f172ae0 80%);border-color:#10b98199;animation:3s ease-in-out infinite perfectShimmerGlow}.perfect-score-shimmer:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000 0%,#ffffff14 25%,#34d39961 50%,#ffffff26 60%,#0000 100%);width:100%;height:100%;animation:3.2s cubic-bezier(.4,0,.2,1) infinite perfectSweep;position:absolute;top:0;left:0}.perfect-score-shimmer #completionScorePct{z-index:2;animation:3s ease-in-out infinite perfectTextGlow;display:inline-block;position:relative}.perfect-score-shimmer #completionScoreDetail{z-index:2;position:relative}.translation-toggle-btn{color:#cbd5e1;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:9999px;align-items:center;gap:.45rem;padding:.2rem .6rem;font-family:inherit;font-size:.84rem;font-weight:600;transition:color .15s,transform .15s;display:inline-flex}.translation-toggle-btn:hover{color:#fff;transform:scale(1.02)}.translation-toggle-icon{font-size:.95rem;transition:transform .2s}.translation-toggle-btn:hover .translation-toggle-icon{transform:scale(1.15)}.translation-expanded-wrap{flex-direction:column;align-items:center;gap:.45rem;width:100%;margin-top:.25rem;animation:.25s cubic-bezier(.16,1,.3,1) fadeInScale;display:flex}@keyframes fadeInScale{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.translation-text{color:var(--text-main);text-align:center;letter-spacing:.01em;text-shadow:0 1px 2px #0006;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;padding:.1rem .25rem;font-size:1.02rem;font-weight:700}.translation-meta{font-size:var(--fs-xs);color:var(--text-dim,var(--text-muted));border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;width:100%;padding-top:.45rem;display:flex}.translation-disclaimer{opacity:.85;letter-spacing:.01em;-webkit-user-select:none;user-select:none;font-style:normal}.translation-meta-sep{opacity:.35;-webkit-user-select:none;user-select:none}.translation-report-btn{color:#fda4af;font-family:inherit;font-size:var(--fs-xs);cursor:pointer;background:#f43f5e1f;border:1px solid #f43f5e47;border-radius:9999px;align-items:center;gap:.3rem;padding:.2rem .6rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 1px 3px #0003}.translation-report-btn:hover:not(:disabled){color:#fff;background:#f43f5e38;border-color:#f43f5e80;transform:translateY(-1px);box-shadow:0 3px 8px #f43f5e40}.translation-report-btn:active:not(:disabled){transform:scale(.97)}.translation-report-btn:disabled{cursor:default;color:#6ee7b7;opacity:1;box-shadow:none;background:#10b98124;border-color:#10b98152;transform:none}.report-modal-card{border:1px solid var(--border-color,#94a3b838);border-radius:var(--radius-lg,18px);width:92%;max-width:500px;color:var(--text-main,var(--text-main));background:linear-gradient(160deg,#1a243af5 0%,#0f172afa 100%);padding:1.75rem;animation:.25s cubic-bezier(.16,1,.3,1) modalCardPop;box-shadow:0 25px 50px -12px #000000a6,0 0 30px #6366f11f}@keyframes modalCardPop{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}body.report-keyboard-open #reportTranslationModal .report-modal-card{max-height:calc(100dvh - 1rem);overflow-y:auto}.report-context-summary{border-radius:var(--radius-md,12px);background:#0b0f19a6;border:1px solid #94a3b824;flex-direction:column;gap:.55rem;margin-bottom:1.1rem;padding:.9rem 1.1rem;display:flex}.report-context-row{justify-content:space-between;align-items:center;gap:.75rem;font-size:.86rem;display:flex}.report-context-label{color:var(--text-muted,var(--text-muted));text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:500}.report-context-val{color:var(--text-main,var(--text-main));text-align:right;word-break:break-word;font-weight:600}.report-context-val.text-warning{color:#fbbf24;white-space:nowrap;text-overflow:ellipsis;background:#f59e0b1f;border:1px solid #f59e0b47;border-radius:6px;min-width:0;max-width:100%;padding:.18rem .65rem;font-weight:700;overflow:hidden}.form-textarea{border:1px solid var(--border-color,#94a3b833);border-radius:var(--radius-sm,8px);width:100%;color:var(--text-main,var(--text-main));font-family:var(--font-main);resize:vertical;box-sizing:border-box;background:#0b0f19a6;outline:none;min-height:75px;padding:.75rem .9rem;font-size:.9rem;line-height:1.45;transition:border-color .2s,box-shadow .2s}.form-textarea:focus{border-color:var(--primary,var(--primary));box-shadow:0 0 0 3px #6366f138}.textarea-counter{font-size:var(--fs-xs);color:var(--text-dim,var(--text-dim));text-align:right;letter-spacing:.02em;margin-top:.3rem}.form-error-text{color:#fb7185;margin-top:.4rem;font-size:.8rem;font-weight:600}.report-modal-card .modal-actions{justify-content:flex-end;align-items:center;gap:1rem;width:100%;margin-top:1.25rem;display:flex}.report-modal-card .modal-actions #cancelReportBtn,.report-modal-card .modal-actions #submitReportBtn{border-radius:var(--radius-md,10px);box-sizing:border-box;justify-content:center;align-items:center;min-height:42px;padding:.65rem 1.35rem;font-size:.92rem;font-weight:700;display:inline-flex}.report-modal-card .modal-actions #cancelReportBtn{border:1px solid var(--border-color,#94a3b840);color:var(--text-muted,var(--text-muted));background:#1e293bb3}.report-modal-card .modal-actions #cancelReportBtn:hover{color:var(--text-main,#fff);background:#334155cc;border-color:#94a3b866}.quiz-option-btn{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-md);text-align:left;cursor:pointer;font-size:.95rem;line-height:1.4;font-family:var(--font-main);background:#1e293bb3;padding:1rem 1.25rem;transition:all .2s}.quiz-option-btn.quiz-option-btn--correct,#quizOptionsGrid .quiz-option-btn--correct{background:var(--accent-emerald-glow);border-color:var(--accent-emerald);color:#6ee7b7}.quiz-option-btn.quiz-option-btn--incorrect,#quizOptionsGrid .quiz-option-btn--incorrect{border-color:var(--accent-rose);color:#fda4af;background:#f43f5e40}@media (width<=768px){main.main-container:has(#learnSection:not([hidden])){padding-top:.35rem;padding-bottom:.35rem}div#studentView:has(#learnSection:not([hidden])){padding-bottom:calc(48px + max(4px, env(safe-area-inset-bottom,0px)))}.practice-container{gap:.55rem;width:100%;max-width:100%}.practice-container .practice-header{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.practice-container .practice-header .back-btn{display:none}.practice-header #activeDeckTitleHeader.active-deck-badge,#activeDeckTitleHeader{border-radius:var(--radius-md);flex-direction:column;flex:auto;justify-content:center;align-items:flex-start;gap:.1rem;min-width:0;max-width:60%;padding:.3rem .6rem;font-size:.82rem;display:flex}#activeDeckTitleHeader .deck-category-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600;line-height:1.1}#activeDeckTitleHeader .deck-topic-label,#activeDeckTitleHeader #activeDeckTitleName{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.86rem;font-weight:700;line-height:1.2;overflow:hidden}.practice-container .practice-header .mode-selector{flex:none;gap:.25rem;margin-left:auto;padding:2px;display:flex}.practice-header .mode-btn .mode-label-full{display:none}.practice-header .mode-btn .mode-label-short{display:inline}.practice-container .practice-header .mode-selector .mode-btn,.practice-header .mode-btn{min-width:unset;border-radius:var(--radius-sm);flex:none;min-height:32px;padding:.25rem .6rem;font-size:.78rem}.progress-wrapper{margin:0}.progress-info{font-size:var(--fs-xs)}.practice-actions{padding-bottom:max(.15rem, env(safe-area-inset-bottom,0px));gap:.65rem;width:100%;max-width:680px;margin-top:.35rem;margin-bottom:0}.practice-actions .action-btn{min-height:48px;padding:.65rem .85rem;font-size:.94rem}#studentView #deckCompletionContainer,#deckCompletionContainer{margin-bottom:0;padding-bottom:0}#deckCompletionContainer .teacher-panel{padding:1.1rem .85rem 1.25rem}#deckCompletionContainer #completionEmoji{margin-bottom:.25rem;font-size:2rem}#deckCompletionContainer #completionTitle{margin-bottom:.2rem;font-size:1.25rem}#deckCompletionContainer #completionSubtitle{margin-bottom:.6rem;font-size:.8rem}#deckCompletionContainer #completionScoreBox{margin-bottom:.85rem;padding:.65rem .65rem .5rem}#deckCompletionContainer .completion-stat-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.45rem}#deckCompletionContainer .completion-stat-card{padding:.55rem .4rem}#deckCompletionContainer .completion-stat-label{margin-bottom:.15rem;font-size:.68rem}#deckCompletionContainer #completionScorePct,#deckCompletionContainer #completionMasteryPct{font-size:1.45rem;line-height:1.1}#deckCompletionContainer #completionScoreDetail,#deckCompletionContainer #completionMasteryDetail{margin-top:.2rem;font-size:.72rem}#deckCompletionContainer #completionMasteryExplainer{margin:.25rem 0 0;font-size:.68rem;line-height:1.3}#deckCompletionContainer button{padding:.6rem 1rem;font-size:.88rem}.card-wrapper{width:100%;height:auto;min-height:clamp(380px,54vh,480px)}.card-inner{height:auto;display:grid}.card-face{grid-area:1/1;height:auto;min-height:clamp(380px,54vh,480px);padding:1.25rem 1.1rem 1.6rem;position:relative}.card-face.card-back{padding:1.1rem 1.1rem 1.5rem}#flipCardContainer .card-face.card-front .card-word,.card-wrapper .card-face.card-front .card-word{font-size:clamp(2rem,6vw,2.4rem)}#flipCardContainer .card-face.card-front .card-phonetic,.card-wrapper .card-face.card-front .card-phonetic{font-size:clamp(.95rem,3.4vw,1.1rem)}.card-face.card-back .card-center{justify-content:space-evenly;margin-top:.2rem}.card-face.card-back .card-word{margin-top:0;font-size:clamp(1.45rem,4.8vw,1.75rem);line-height:1.2}.card-face.card-back .definition-box{max-width:100%;margin-top:.45rem;margin-bottom:0}#cardDefinitionBack{font-size:clamp(.94rem,3.2vw,1.05rem);line-height:1.42}.card-face.card-back .examples-container{gap:.45rem;max-width:100%;margin-top:.85rem;margin-bottom:0}.card-face.card-back .example-sentence{padding:.35rem .65rem;font-size:clamp(.82rem,2.9vw,.88rem);line-height:1.38}.translation-box{border-radius:9999px;align-self:center;width:auto;max-width:max-content;margin-top:.5rem;margin-bottom:.2rem;padding:.25rem .85rem;display:inline-flex}.translation-box.expanded{border-radius:var(--radius-md,12px);width:100%;max-width:calc(100% - 48px);margin-right:auto;padding:.4rem .75rem;display:flex}.translation-box:has(#cardTranslationToggleBtn[aria-expanded=true]){border-radius:var(--radius-md,12px);width:100%;max-width:calc(100% - 48px);margin-right:auto;padding:.4rem .75rem;display:flex}.translation-toggle-btn{gap:.35rem;padding:.15rem .35rem;font-size:.85rem}.translation-toggle-icon{font-size:.95rem}.translation-meta{font-size:var(--fs-xs);gap:.45rem}.translation-report-btn{font-size:var(--fs-xs);padding:.15rem .5rem}#studentView #quizContainer .teacher-panel,#quizContainer .teacher-panel{padding:1rem .85rem 2.8rem}#quizQuestionWord{margin-top:0;margin-bottom:.4rem;font-size:1.45rem}#quizContainer .quiz-instruction,.quiz-instruction{display:none}#quizOptionsGrid{gap:.45rem}#quizOptionsGrid .quiz-option-btn,#quizContainer .quiz-option-btn{min-height:auto;padding:.55rem .85rem;font-size:.86rem;line-height:1.32}.report-modal-card{width:95%;max-width:440px;padding:1.25rem 1rem}.report-context-summary{gap:.45rem;width:100%;margin-bottom:.85rem;padding:.75rem .85rem}.report-modal-card .form-group{width:100%}.report-modal-card .form-textarea{width:100%;padding:.75rem .85rem;font-size:.95rem}.report-modal-card .modal-actions{gap:.85rem;margin-top:1.1rem}.report-modal-card .modal-actions #cancelReportBtn,.report-modal-card .modal-actions #submitReportBtn{min-height:42px;padding:.6rem 1.25rem;font-size:.9rem}#quizContainer .teacher-panel{padding-bottom:3.5rem}}.completion-stat-grid.sv11-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.completion-stat-card.sv11-card{border-radius:var(--radius-sm);background:#1e293b80;border:1px solid #ffffff14;padding:1rem}.completion-stat-label.sv11-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;font-size:.8rem;font-weight:700}.sv11-score-detail{color:var(--text-dim);margin-top:.35rem;font-size:.88rem}.completion-mastery-explainer.sv11-explainer{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.4}.card-cmd-badge{color:#fcd34d;font-size:var(--fs-xs,.75rem);letter-spacing:.04em;text-transform:uppercase;background:#f59e0b33;border:1px solid #f59e0b66;border-radius:12px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-weight:700;display:inline-flex}.card-mark-scheme-box{text-align:center;max-width:95%;color:var(--text-main,#f8fafc);background:#f59e0b14;border:1px dashed #f59e0b59;border-radius:8px;margin:.75rem auto 0;padding:.5rem .85rem;font-size:.95rem;line-height:1.4}.card-mark-scheme-box .mark-scheme-label{color:#fbbf24;text-transform:uppercase;letter-spacing:.03em;margin-right:.35rem;font-size:.8rem;font-weight:700}.card-mark-scheme-box .mark-scheme-text{color:#fef3c7;font-style:italic}.cmdterm-filter-label{color:#fcd34d;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;margin-top:.25rem;font-size:.85rem;font-weight:600;display:inline-flex}.cmdterm-filter-label input[type=checkbox]{accent-color:#f59e0b;cursor:pointer}select.cloze-select{appearance:none;color:#cbd5e1;font-family:var(--font-main);border-radius:var(--radius-sm,8px);cursor:pointer;vertical-align:middle;background:#0f172ae0 url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a855f7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;border:1.5px dashed #a855f78c;outline:none;max-width:100%;min-height:40px;margin:.15rem .35rem;padding:.45rem 1.85rem .45rem .8rem;font-size:.92rem;font-weight:600;transition:border-color .22s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1),color .22s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #00000040}@media (pointer:coarse){select.cloze-select{min-height:44px;margin:4px;padding:8px 32px 8px 14px}}select.cloze-select:hover{box-shadow:0 0 12px var(--accent-purple-glow);color:#fff;background-color:#1e293bf2;border-style:solid;border-color:#c084fc}select.cloze-select:focus{border-style:solid;border-color:var(--accent-purple);background-color:#1e293bf2;box-shadow:0 0 0 3px #a855f759}select.cloze-select.cloze-select--filled,select.cloze-select[data-filled=true]{border-style:solid;border-color:var(--accent-purple);color:#fff;box-shadow:0 0 12px var(--accent-purple-glow), 0 2px 6px #0000004d;background:#1a152eeb url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c084fc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;font-weight:700}select.cloze-select:has(option:checked:not([value=""])){border-style:solid;border-color:var(--accent-purple);color:#fff;box-shadow:0 0 12px var(--accent-purple-glow), 0 2px 6px #0000004d;background:#1a152eeb url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c084fc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;font-weight:700}select.cloze-select.cloze-select--unfilled,select.cloze-select[data-filled=false]{color:var(--text-muted);border-style:dashed;border-color:#a855f78c}#readingPassageBody select.cloze-select.cloze-select--correct,select.cloze-select.cloze-select--correct{color:#6ee7b7;background-color:#10b98129;border-style:solid;border-color:#10b981d9;box-shadow:0 0 12px #10b9814d}#readingPassageBody select.cloze-select.cloze-select--incorrect,select.cloze-select.cloze-select--incorrect{color:#fda4af;background-color:#f43f5e29;border-style:solid;border-color:#f43f5ed9;box-shadow:0 0 12px #f43f5e4d}.reading-badge{font-size:var(--fs-xs);color:#d8b4fe;background:#a855f724;border:1px solid #a855f766;border-radius:9999px;align-items:center;gap:6px;padding:.35rem .85rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 0 12px #a855f733}.loading-spinner{border:3.5px solid #6366f133;border-top-color:var(--primary);border-radius:50%;width:38px;height:38px;animation:.9s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-story-paragraph{margin-bottom:1.25rem;font-size:.95rem;line-height:1.85}.ai-notice-box{border-radius:var(--radius-md);text-align:center;background:#6366f11a;border:1px solid #6366f14d;margin:1rem 0;padding:1.5rem}.ai-notice-icon{margin-bottom:.5rem;font-size:2rem}.ai-notice-title{color:#a5b4fc;margin-bottom:.4rem;font-size:1.1rem}.ai-notice-desc{color:var(--text-muted);max-width:480px;margin:0 auto 1.25rem;font-size:.85rem}#readingLengthSlider,#readingLengthSlider:hover{accent-color:var(--primary)}#readingLengthSlider::-webkit-slider-thumb:hover{background:var(--primary)}#readingLengthSlider::-webkit-slider-thumb:active{background:var(--primary)}#readingLengthSlider::-moz-range-thumb:hover{background:var(--primary)}#readingLengthSlider::-moz-range-thumb:active{background:var(--primary)}#readingLengthSlider::-moz-range-progress:hover{background:var(--primary)}@keyframes btnShimmerSweep{0%{background-position:-200%}to{background-position:200%}}@keyframes btnReadyPulse{0%,to{transform:translateY(0);box-shadow:0 0 14px #a855f773,0 4px 16px #6366f14d}50%{transform:translateY(-1px);box-shadow:0 0 24px #a855f7cc,0 6px 24px #ec489973}}#readingSubmitFooter #submitReadingBtn.btn-ready-shimmer,#submitReadingBtn.btn-ready-shimmer,.btn-ready-shimmer{background:linear-gradient(90deg, var(--primary) 0%, var(--accent-purple) 25%, #ec4899 50%, var(--accent-purple) 75%, var(--primary) 100%);color:#fff;cursor:pointer;background-size:200%;border:1px solid #ffffff4d;font-weight:700;animation:3.2s linear infinite btnShimmerSweep,2.4s ease-in-out infinite btnReadyPulse}#readingSubmitFooter #submitReadingBtn.btn-ready-shimmer:hover,#submitReadingBtn.btn-ready-shimmer:hover,.btn-ready-shimmer:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 0 28px #a855f7e6,0 8px 28px #ec489980}.reading-score-hero{border-radius:var(--radius-md,14px);box-shadow:0 8px 32px #0006, inset 0 1px 0 var(--border-color);background:linear-gradient(135deg,#0f172aeb 0%,#1e1b4bd9 100%);border:1.5px solid #a855f766;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:1rem;padding:.85rem 1.25rem;transition:all .3s;display:flex}.reading-score-hero--emerald{box-shadow:0 8px 32px #0006, 0 0 24px #10b98133, inset 0 1px 0 var(--border-color);border-color:#10b98180}.reading-score-hero--amber{box-shadow:0 8px 32px #0006, 0 0 24px #f59e0b2e, inset 0 1px 0 var(--border-color);border-color:#f59e0b80}.reading-score-hero-left{flex-direction:column;flex:auto;gap:.25rem;min-width:240px;max-width:100%;margin:0;padding:0;display:flex}.reading-score-hero-right{flex-wrap:wrap;flex:0 auto;align-items:center;gap:.5rem;margin-left:auto;display:flex}.reading-score-hero-pct{letter-spacing:-.02em;white-space:normal;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:clamp(1.02rem,.68rem + 1.7vw,1.35rem);font-weight:800;display:inline-flex}.reading-score-hero-subtitle{color:var(--text-muted);word-break:normal;overflow-wrap:break-word;margin:0;font-size:.84rem;line-height:1.45}.reading-score-pill{color:#fff;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:.35rem;padding:.32rem .85rem;font-size:.82rem;font-weight:700;display:inline-flex}.reading-explainer-card{border-radius:var(--radius-md,12px);background:#0f172abf;border:1px solid #f43f5e59;padding:1.1rem 1.25rem;transition:all .2s;box-shadow:0 4px 16px #0000004d}.reading-explainer-card:hover{border-color:#f43f5e8c;transform:translateY(-1px)}.reading-explainer-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.reading-explainer-badges{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.reading-badge-correct{color:#6ee7b7;background:#10b9812e;border:1px solid #10b98166;border-radius:6px;align-items:center;gap:4px;padding:.25rem .65rem;font-size:.82rem;font-weight:700;display:inline-flex}.reading-badge-incorrect{color:#fda4af;background:#f43f5e2e;border:1px solid #f43f5e66;border-radius:6px;align-items:center;gap:4px;padding:.25rem .65rem;font-size:.82rem;font-weight:700;display:inline-flex}.reading-explainer-box{color:#e2e8f0;background:#6366f11a;border-left:3.5px solid #818cf8;border-radius:0 8px 8px 0;padding:.65rem .9rem;font-size:.86rem;line-height:1.5}.reading-explainer-box em{color:#c7d2fe;font-style:normal}.reading-perfect-hero{border-radius:var(--radius-md,14px);box-shadow:0 8px 32px #0006, 0 0 24px var(--accent-emerald-glow);background:radial-gradient(circle at 25% 30%,#10b98138 0%,#0f172af0 85%);border:1.5px solid #10b98199;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:1rem;padding:.85rem 1.25rem;animation:3s ease-in-out infinite perfectShimmerGlow;display:flex}#readingPassageBody select.cloze-select.cloze-select--graded,select.cloze-select.cloze-select--graded{pointer-events:none;background-image:none;padding-right:.75rem;transition:all .45s cubic-bezier(.16,1,.3,1)}#readingPassageBody select.cloze-select.cloze-select--glow-correct,select.cloze-select.cloze-select--glow-correct{color:#6ee7b7;background:#10b98124;border-color:#10b981bf;border-radius:6px;font-weight:700;box-shadow:0 0 16px #10b98159,inset 0 0 8px #10b98126}#readingPassageBody select.cloze-select.cloze-select--glow-incorrect,select.cloze-select.cloze-select--glow-incorrect{color:#fda4af;background:#f43f5e24;border-color:#f43f5ebf;border-radius:6px;font-weight:700;box-shadow:0 0 16px #f43f5e4d,inset 0 0 8px #f43f5e26}@keyframes waxSealStamp{0%{opacity:0;filter:drop-shadow(0 20px 30px #000000e6);transform:scale(2.2)rotate(-25deg)}60%{opacity:1;filter:drop-shadow(0 6px 14px #f59e0b80);transform:scale(.92)rotate(3deg)}80%{transform:scale(1.05)rotate(-1deg)}to{opacity:1;filter:drop-shadow(0 4px 16px #f59e0b59);transform:scale(1)rotate(0)}}.reading-wax-seal{background:radial-gradient(circle at 35% 30%, var(--accent-amber) 0%, #b45309 60%, #78350f 100%);color:#fffbeb;font-family:var(--font-display,"Outfit", sans-serif);letter-spacing:.04em;text-transform:uppercase;will-change:transform, opacity;border:2px solid #fef08acc;border-radius:9999px;align-items:center;gap:.5rem;margin-left:auto;padding:.45rem 1.1rem;font-size:.84rem;font-weight:800;animation:.65s cubic-bezier(.34,1.56,.64,1) both waxSealStamp;display:inline-flex;box-shadow:0 4px 18px #b4530980,inset 0 1px 2px #fff6}@keyframes odometerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.reading-odometer-pill{color:#6ee7b7;box-shadow:0 4px 14px var(--accent-emerald-glow);background:#0f172ad9;border:1.5px solid #10b98180;border-radius:9999px;align-items:center;gap:.45rem;padding:.35rem .9rem;font-size:.86rem;font-weight:700;animation:2s ease-in-out infinite odometerPulse;display:inline-flex}.reading-keepsake-card{border-radius:var(--radius-md,12px);background:radial-gradient(circle at 10% 0,#6366f11f 0%,#0f172ad9 70%);border:1px solid #6366f14d;flex-direction:column;margin-top:1rem;padding:.85rem 1.15rem;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000059}.reading-keepsake-card:before{content:"";background:linear-gradient(90deg, var(--primary) 0%, var(--accent-emerald) 50%, var(--accent-amber) 100%);height:2px;position:absolute;top:0;left:0;right:0}.reading-conquered-list{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.reading-conquered-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-right:.25rem;font-weight:700}.reading-conquered-chip{color:#fef08a;font-size:var(--fs-xs);background:#f59e0b26;border:1px solid #f59e0b73;border-radius:9999px;align-items:center;gap:.25rem;padding:.2rem .65rem;font-weight:700;transition:transform .18s;display:inline-flex}.reading-conquered-chip:hover{border-color:#f59e0bcc;transform:translateY(-1px)scale(1.04);box-shadow:0 0 10px #f59e0b4d}button.reading-conquered-chip{cursor:pointer;min-height:44px;font-family:inherit}.reading-conquered-chip:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}@media (width<=768px){#readingScorecard .reading-score-hero,#readingScorecard .reading-perfect-hero,.reading-score-hero,.reading-perfect-hero{flex-direction:column;align-items:stretch;gap:.45rem;padding:.75rem 1rem}#readingScorecard .reading-score-hero-left,.reading-score-hero-left{flex:none;gap:.2rem;width:100%;min-width:100%;margin:0;padding:0}#readingScorecard .reading-score-hero-subtitle,.reading-score-hero-subtitle{margin:0;padding:0;font-size:.82rem;line-height:1.4}#readingScorecard .reading-score-hero-right,.reading-score-hero-right{justify-content:flex-start;gap:.45rem;width:100%;margin-top:.25rem;margin-left:0}}.reading-badge{font-size:var(--fs-xs);color:#d8b4fe;white-space:nowrap;background:#a855f724;border:1px solid #a855f766;border-radius:9999px;flex-shrink:0;align-items:center;gap:4px;padding:.35rem .85rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 0 12px #a855f733}@media (width<=768px){#readingHeaderRow{flex-flow:column wrap;align-items:flex-start;gap:.5rem}.reading-badge{font-size:var(--fs-xs);white-space:nowrap;gap:3px;padding:.22rem .55rem}#readingBadge .reading-badge-diff,#readingBadge .reading-badge-sep,#readingBadge .reading-badge-label,.reading-badge .reading-badge-diff,.reading-badge .reading-badge-sep,.reading-badge .reading-badge-label{display:none}#readingPassageBody{font-size:1.05rem;line-height:1.85}.ai-story-paragraph{font-size:16px;line-height:1.85}#readingSubmitFooter{flex-direction:column;align-items:stretch;gap:.75rem}#submitReadingBtn{width:100%;min-height:48px}}#readingPassageBody{color:var(--text-main);margin-bottom:1.5rem;font-size:1.05rem;line-height:1.8}#readingSubmitFooter{border-top:1px solid var(--border-color);padding-top:1rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}#readingStagePanel{margin-bottom:0}#readingHeaderRow{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem}#readingHeaderRow:not([hidden]){display:flex}#readingTitle{color:#fff;margin-top:.2rem;font-size:1.15rem;font-weight:700}#readingBadge{gap:6px}#readingFooterHintText{color:var(--text-muted);margin:0;font-size:.84rem}#submitReadingBtn{padding:.6rem 1.4rem}#readingScorecard{border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1.25rem}#readingSubmitFooter:not([hidden]){display:flex}#readingHeaderRow,#readingPassageBody,#readingScorecard{scroll-margin-top:max(4.5rem, calc(env(safe-area-inset-top,0px) + 3.5rem))}.reading-scorecard-actions{flex-direction:column;gap:.75rem;margin:1.25rem 0;display:flex}#readingFeedbackList:not([hidden]){display:flex}#readingFeedbackList{flex-direction:column;gap:.75rem}.reading-accordion-btn{border-radius:var(--radius-md,12px);color:#f1f5f9;width:100%;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;background:#1e293bd9;border:1px solid #a855f766;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;font-size:.95rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 16px #00000040}.reading-accordion-btn:hover{background:#2d234bf2;border-color:#a855f7bf;transform:translateY(-1px);box-shadow:0 0 20px #a855f759}.reading-accordion-btn .accordion-left{align-items:center;gap:.65rem;display:flex}.reading-accordion-btn .accordion-icon{font-size:1.15rem}.reading-accordion-btn .accordion-chevron{font-size:var(--fs-xs);color:var(--text-muted);transition:transform .25s}.reading-accordion-btn.is-open{border-color:var(--accent-purple);box-shadow:0 0 16px var(--accent-purple-glow);background:#2d234bf2}.reading-accordion-btn.is-open .accordion-chevron{color:#d8b4fe}.reading-accordion-btn--boost{background:linear-gradient(135deg,#1e293be6 0%,#371341bf 100%);border-color:#ec489973}.reading-accordion-btn--boost:hover{border-color:#ec4899cc;box-shadow:0 0 20px #ec489959}.reading-accordion-btn--boost.is-open{border-color:#ec4899;box-shadow:0 0 16px #ec48994d}.word-boost-callout-banner{border-radius:var(--radius-md,12px);background:linear-gradient(135deg,#ec489926 0%,#a855f726 100%);border:1px solid #ec489980;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 .5rem;padding:1rem 1.25rem;animation:2s ease-in-out infinite alternate wordBoostGlowPulse;display:flex;box-shadow:0 4px 20px #ec489933}@keyframes wordBoostGlowPulse{0%{border-color:#ec489966;box-shadow:0 0 10px #ec489933}to{border-color:#ec4899d9;box-shadow:0 0 22px #ec489980}}.word-boost-callout-left{align-items:center;gap:.75rem;display:flex}.word-boost-callout-icon{font-size:1.6rem}.word-boost-callout-title{color:#f472b6;font-size:.95rem;font-weight:700}.word-boost-callout-sub{color:#cbd5e1;margin-top:.15rem;font-size:.82rem}.word-boost-callout-action-btn{background:linear-gradient(135deg, #ec4899 0%, var(--accent-purple) 100%);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:700;transition:transform .2s,box-shadow .2s}.word-boost-callout-action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ec489966}.reading-accordion-btn--boost.word-boost-prompt-pulse{animation:2s ease-in-out infinite alternate wordBoostGlowPulse}@media (prefers-reduced-motion:reduce){.word-boost-callout-banner,.reading-accordion-btn--boost.word-boost-prompt-pulse{animation:none}}.reading-redemption-container{margin:.5rem 0;display:block}.redemption-card{background:linear-gradient(145deg,#1e293bd9,#0f172af2);border:1px solid #8b5cf666;border-radius:12px;padding:1.25rem 1.5rem;animation:.35s ease-out forwards fadeInRedemption;box-shadow:0 8px 24px #00000059}@keyframes fadeInRedemption{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.redemption-header{border-bottom:1px solid #94a3b826;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;padding-bottom:.65rem;display:flex}.redemption-badge{color:#f472b6;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg,#ec489940,#a855f759);border:1px solid #ec489980;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-weight:800;display:inline-flex}.redemption-progress{color:var(--text-muted);font-size:.82rem}.redemption-subtitle{color:var(--text-muted);margin-top:-.25rem;margin-bottom:.85rem;font-size:.84rem;line-height:1.45}.redemption-progress strong{color:var(--text-main)}.redemption-question-text{color:var(--text-main);margin:.75rem 0 1rem;font-size:1.05rem;font-weight:700;line-height:1.5}.redemption-options-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem;margin-bottom:1rem;display:grid}.redemption-option-btn{cursor:pointer;-webkit-user-select:none;user-select:none;color:#e2e8f0;background:#1e293bb3;border:1.5px solid #94a3b840;border-radius:8px;outline:none;align-items:center;gap:.65rem;padding:.75rem 1rem;transition:all .18s;display:flex}.redemption-option-btn:hover:not(.redemption-option-btn--disabled){background:#334155e6;border-color:#a855f799;transform:translateY(-1px);box-shadow:0 4px 12px #a855f733}.redemption-option-btn:focus-visible:not(.redemption-option-btn--disabled){border-color:var(--accent-purple);box-shadow:0 0 0 3px #a855f766}.redemption-opt-letter{width:24px;height:24px;font-size:var(--fs-xs);color:var(--text-muted);background:#94a3b826;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.redemption-opt-text{font-size:.92rem;font-weight:600;line-height:1.35}.redemption-option-btn--disabled{cursor:default;pointer-events:none}#readingRedemptionContainer .redemption-option-btn.option-correct,.redemption-option-btn.option-correct{border-color:var(--accent-emerald);color:#6ee7b7;background:#10b98133;box-shadow:0 0 14px #10b98159}.redemption-option-btn.option-correct .redemption-opt-letter{background:var(--accent-emerald);color:#064e3b}#readingRedemptionContainer .redemption-option-btn.option-incorrect,.redemption-option-btn.option-incorrect{border-color:var(--accent-rose);color:#fda4af;background:#f43f5e33;box-shadow:0 0 14px #f43f5e59}.redemption-option-btn.option-incorrect .redemption-opt-letter{background:var(--accent-rose);color:#881337}#readingRedemptionContainer .redemption-option-btn.option-correct-reveal,.redemption-option-btn.option-correct-reveal{color:#a7f3d0;background:#10b9811f;border-color:#10b98199}.redemption-feedback-box{margin:.85rem 0}.redemption-expl-pill{border-radius:8px;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;font-size:.88rem;line-height:1.45;display:flex}.redemption-expl-pill--correct{color:#a7f3d0;background:#10b98126;border:1px solid #10b98159}.redemption-expl-pill--supportive{color:#fde68a;background:#f59e0b26;border:1px solid #f59e0b59}.redemption-expl-icon{flex-shrink:0;font-size:1.05rem}.redemption-actions{justify-content:flex-end;margin-top:.75rem;display:flex}.redemption-actions[hidden],.redemption-feedback-box[hidden]{display:none}.redemption-next-btn{background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:700;transition:all .18s}.redemption-next-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #6366f166}.redemption-summary-banner{border-radius:10px;align-items:center;gap:1rem;padding:1rem 1.25rem;animation:.35s ease-out forwards fadeInRedemption;display:flex}.redemption-summary-banner--celebrate{background:linear-gradient(135deg, var(--accent-emerald-glow), #05966959);border:1.5px solid #10b98199}.redemption-summary-banner--celebrate .redemption-summary-title{color:#6ee7b7}.redemption-summary-banner--celebrate .redemption-summary-desc{color:#d1fae5}.redemption-summary-banner--practice{background:linear-gradient(135deg,#6366f133,#8b5cf640);border:1.5px solid #8b5cf673}.redemption-summary-banner--practice .redemption-summary-title{color:#c4b5fd}.redemption-summary-banner--practice .redemption-summary-desc{color:#e0e7ff}.redemption-summary-icon{flex-shrink:0;font-size:2rem}.redemption-summary-title{margin:0 0 .25rem;font-size:1.05rem;font-weight:800}.redemption-summary-desc{margin:0;font-size:.88rem;line-height:1.4}.rd11-gen-wrap{text-align:center;padding:2.8rem 1rem 2rem}.loading-spinner.rd11-gen-spinner{margin:0 auto 1rem}.rd11-gen-title{color:#a5b4fc;margin-bottom:.9rem;font-size:1.15rem;font-weight:700}.rd11-err-wrap{text-align:center;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b66;padding:2.5rem 1rem}.rd11-err-icon{margin-bottom:.5rem;font-size:2rem}.rd11-err-title{color:var(--accent-rose);margin-bottom:.4rem;font-size:1rem}.rd11-err-msg{color:var(--text-muted);max-width:420px;margin:0 auto 1rem;font-size:.85rem}.rd11-err-detail{color:var(--text-dim);font-size:var(--fs-xs)}.rd11-err-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.btn-primary.rd11-err-btn,.back-btn.rd11-err-btn{padding:.4rem .9rem;font-size:.85rem}.reading-score-hero-pct.rg16-pct-perfect{color:#6ee7b7}.reading-score-hero-pct.reading-score-hero-pct--perfect,.reading-score-hero-pct.reading-score-hero-pct--pass{color:var(--accent-emerald)}.reading-score-hero-pct.reading-score-hero-pct--partial{color:var(--accent-amber)}.reading-score-hero-pct.reading-score-hero-pct--low{color:var(--accent-rose)}.reading-tip{opacity:1;border:1px solid var(--border-color);text-align:left;background:#1e293b73;border-radius:10px;max-width:520px;margin:0 auto;padding:.85rem 1rem;transition:opacity .4s}.reading-tip-title{margin-bottom:.25rem;font-size:.95rem;font-weight:700}.reading-tip-title--centered{text-align:center;margin-bottom:0;font-weight:600}.reading-tip-body{color:var(--text-muted);font-size:.85rem;line-height:1.4}.reading-score-hero-right.rg16-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.reading-score-pill.rg16-pill-emerald{color:#a7f3d0;background:#10b98133;border-color:#10b98166}.rg16-gap-title{color:#cbd5e1;font-size:.85rem;font-weight:700}.reading-subview{width:100%;transition:opacity .25s,transform .25s}.reading-hub-view{justify-content:center;width:100%;display:flex}.reading-hub-card{width:100%;max-width:540px;margin:0 auto;padding:.6rem 1.4rem 1rem}.reading-hub-header{margin-bottom:.5rem}.reading-hub-title{color:#a5b4fc;align-items:center;gap:.45rem;margin:0;font-size:1rem;font-weight:700;display:flex}.reading-hub-form{flex-direction:column;gap:.5rem;display:flex}.reading-hub-field{gap:.25rem;margin-bottom:0}.reading-hub-field label{color:var(--text-muted,var(--text-muted));margin-bottom:0;font-size:.8rem;font-weight:600}.reading-hub-field .form-control{min-height:40px;padding:.45rem .65rem;font-size:.85rem}.reading-slider-labels{color:var(--text-dim);justify-content:space-between;margin-top:.2rem;font-size:.7rem;display:flex}.reading-generate-btn{width:100%;min-height:44px;margin-top:.25rem;padding:.6rem 1.1rem;font-size:.95rem;font-weight:700}.reading-hub-saved{border-top:1px solid var(--border-color);margin-top:.6rem;padding-top:.5rem}.reading-hub-saved-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.reading-hub-saved-title{color:#a5b4fc;align-items:center;gap:.35rem;margin:0;font-size:.85rem;font-weight:700;display:flex}.reading-hub-saved-count{color:var(--text-muted);background:#1e293bcc;border-radius:8px;padding:.15rem .45rem;font-size:.7rem}.reading-hub-saved-list{flex-direction:column;gap:.4rem;max-height:240px;padding-right:2px;display:flex;overflow-y:auto}.reading-hub-saved-empty{color:var(--text-dim);margin:0;padding:.4rem 0;font-size:.75rem;font-style:italic}.saved-reading-empty{color:var(--text-dim);text-align:center;padding:.5rem;font-size:.8rem}.saved-reading-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff08;margin-bottom:.5rem;padding:.65rem .75rem;transition:all .2s}.saved-reading-title{color:var(--text-main);font-size:.85rem;font-weight:600;line-height:1.3}.saved-reading-meta{color:var(--text-dim);justify-content:space-between;margin-top:.35rem;font-size:.75rem;display:flex}.saved-reading-score{font-weight:700}.saved-reading-score--pass{color:var(--accent-emerald)}.saved-reading-score--fail{color:var(--accent-amber)}.saved-reading-retry-btn{color:var(--text-main);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:9999px;margin-top:.45rem;padding:.3rem .85rem;font-size:.75rem;font-weight:700;display:inline-block}.saved-reading-retry-btn:hover{border-color:var(--accent-emerald);color:var(--accent-emerald)}.saved-reading-retry-btn:focus-visible{outline:2px solid var(--accent-emerald);outline-offset:2px}@media (width<=768px){main.main-container:has(#readSection:not([hidden]) #readingHubSubView:not([hidden])){overscroll-behavior:none;padding-top:.35rem;padding-bottom:.35rem;overflow-y:hidden}.main-container:has(#readSection:not([hidden]) #readingHubSubView:not([hidden])){overscroll-behavior:none;padding-top:.35rem;padding-bottom:.35rem;overflow-y:hidden}div#studentView:has(#readSection:not([hidden]) #readingHubSubView:not([hidden])){padding-bottom:calc(48px + max(4px, env(safe-area-inset-bottom,0px)));overscroll-behavior:none;overflow-y:hidden}#studentView:has(#readSection:not([hidden]) #readingHubSubView:not([hidden])){padding-bottom:calc(48px + max(4px, env(safe-area-inset-bottom,0px)));overscroll-behavior:none;overflow-y:hidden}#readSection:has(#readingHubSubView:not([hidden])){overscroll-behavior:none;touch-action:pan-x pan-y;max-height:calc(100dvh - 110px);overflow-y:auto}.reading-hub-view{overscroll-behavior:none;overflow:hidden}#readSection .section-header{margin-bottom:.65rem}#readSection .section-title h2{margin-bottom:.15rem;font-size:1.35rem}#readSection .section-title p{margin:0;font-size:.8rem}.reading-hub-card{border-radius:var(--radius-md,14px);padding:.4rem .85rem .6rem}.reading-hub-header{margin-top:0;margin-bottom:.35rem}.reading-hub-title{font-size:.95rem}.reading-hub-form{gap:.35rem}.reading-hub-field:not(.reading-hub-field--slider){flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.reading-hub-field:not(.reading-hub-field--slider) label{white-space:nowrap;text-align:left;flex:none;min-width:90px;font-size:.75rem}.reading-hub-field:not(.reading-hub-field--slider) .form-control{flex:none;width:60%;max-width:220px;min-height:36px;margin-left:auto;padding:.3rem .55rem;font-size:.82rem}.reading-hub-field--slider{gap:.15rem;margin-top:.1rem}.reading-hub-field--slider label{text-align:center;width:100%;font-size:.75rem;display:block}.reading-slider-labels{margin-top:.1rem;font-size:.68rem}.reading-generate-btn{min-height:40px;margin-top:.1rem;margin-bottom:.15rem;padding:.45rem 1rem;font-size:.88rem}.reading-hub-saved{margin-top:.45rem;padding-top:.45rem}.reading-hub-saved-header{margin-bottom:.25rem}.reading-hub-saved-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;gap:.35rem;max-height:210px}.saved-reading-retry-btn{margin-top:.3rem;padding:.25rem .7rem}.reading-hub-saved-list .saved-reading-item,.saved-reading-item{margin-bottom:0;padding:.45rem .6rem}#readingStageSubView .reading-stage-topbar,.reading-stage-topbar{margin-bottom:.5rem;display:flex}#readingStageSubView .reading-back-btn,.reading-back-btn{min-height:40px;padding:.4rem .8rem;font-size:.85rem;display:inline-flex}.reading-back-btn:focus-visible{outline:2px solid var(--accent-violet,var(--accent-purple));outline-offset:2px}}.reading-stage-view{width:100%;max-width:860px;margin:0 auto}.reading-stage-topbar{justify-content:flex-start;align-items:center;margin-bottom:1rem;display:flex}.reading-back-btn{color:#cbd5e1;border-radius:var(--radius-sm,8px);cursor:pointer;background:#1e293bb3;border:1px solid #ffffff1f;align-items:center;gap:.5rem;min-height:44px;padding:.55rem 1rem;font-size:.88rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.reading-back-btn:hover{color:#fff;background:#334155e6;border-color:#a855f773;transform:translate(-2px)}.reading-back-btn:active{transform:translate(-4px)scale(.98)}.reading-celebration-modal{inset:0;width:100vw;height:100dvh;z-index:var(--z-max);isolation:isolate;box-sizing:border-box;opacity:0;visibility:hidden;pointer-events:none;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .3s cubic-bezier(.16,1,.3,1),visibility .3s;display:flex;position:fixed;inset:0;transform:translateZ(0)}#readingCelebrationModal.reading-celebration-modal.reading-celebration-modal--active,.reading-celebration-modal.reading-celebration-modal--active{opacity:1;visibility:visible;pointer-events:auto}.reading-celebration-backdrop{-webkit-backdrop-filter:blur(20px);cursor:pointer;background:#0b0f19e0;position:absolute;inset:0}.reading-celebration-dialog{z-index:1;-webkit-overflow-scrolling:touch;text-align:center;border-radius:var(--radius-lg,24px);width:100%;max-width:480px;max-height:calc(100dvh - 3rem);padding:2.2rem 2rem;padding-bottom:calc(2.2rem + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 0,#a855f740 0%,#6366f126 45%,#0f172afa 85%);border:1.5px solid #a855f773;margin:auto;transition:transform .4s cubic-bezier(.16,1,.3,1);position:relative;overflow-y:auto;transform:scale(.9)translateY(20px);box-shadow:0 25px 50px -12px #000000d9,0 0 40px #a855f740}.reading-celebration-modal--active .reading-celebration-dialog{transform:scale(1)translateY(0)}.reading-celebration-confetti{letter-spacing:.3em;margin-bottom:.5rem;font-size:1.4rem;animation:2s ease-in-out infinite readingSparkle}@keyframes readingSparkle{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.reading-celebration-emoji{margin-bottom:.5rem;font-size:3.6rem;line-height:1;animation:.6s cubic-bezier(.34,1.56,.64,1) readingBookBounce}@keyframes readingBookBounce{0%{transform:scale(0)rotate(-15deg)}70%{transform:scale(1.15)rotate(5deg)}to{transform:scale(1)rotate(0)}}.reading-celebration-title{color:#fff;letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.6rem;font-weight:800}.reading-celebration-subtitle{color:var(--text-muted,var(--text-muted));margin:0 0 1.5rem;font-size:.9rem}.reading-celebration-hero-stat{border-radius:var(--radius-md,16px);background:#0f172abf;border:1.5px solid #a855f759;margin-bottom:1rem;padding:1.25rem 1.5rem;box-shadow:0 8px 24px #00000059}.reading-celebration-stat-label{color:#c084fc;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-size:.8rem;font-weight:700}.reading-celebration-words-delta{color:var(--accent-purple);text-shadow:0 0 24px #a855f766;margin-bottom:.4rem;font-size:2.8rem;font-weight:900;line-height:1.1;animation:.5s ease-out readingWordsPulse}@keyframes readingWordsPulse{0%{opacity:.5;transform:scale(.85)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.reading-celebration-total-wrap{color:#cbd5e1;font-size:.92rem}.reading-celebration-total-num{color:#38bdf8;font-size:1.05rem;font-weight:800}.reading-celebration-secondary-score{margin-bottom:1.5rem}.reading-celebration-score-pill{color:#cbd5e1;background:#1e293bb3;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.85rem;font-weight:700;display:inline-flex}.reading-celebration-improved{color:#6ee7b7;text-align:center;background:#10b9811f;border:1px solid #10b98173;border-radius:9999px;margin:-.75rem 0 1.25rem;padding:.45rem 1rem;font-size:.9rem;font-weight:700}.reading-celebration-improved[hidden]{display:none}.reading-celebration-action{justify-content:center;display:flex}.reading-celebration-btn{color:#fff;background:linear-gradient(135deg, var(--accent-purple) 0%, #7c3aed 100%);border-radius:var(--radius-md,12px);cursor:pointer;border:none;width:100%;min-height:48px;font-size:1rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #a855f766}.reading-celebration-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #a855f78c}.reading-celebration-btn:active{transform:translateY(0)scale(.98)}.cloze-gloss{opacity:.85;margin-left:.35em;font-style:italic;font-weight:600}.reading-fallback-note{color:var(--text-secondary,#475569);background:var(--surface-2,#94a3b81f);border-radius:var(--radius-md,12px);margin:0 0 .75rem;padding:.55rem .8rem;font-size:.9rem;line-height:1.4}.reading-flag-row{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.reading-flag-btn{font-family:var(--font-main,inherit);font-size:var(--fs-xs,.75rem);color:var(--text-muted,#64748b);border-radius:var(--radius-sm,6px);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:.15rem .4rem;line-height:1.2;text-decoration:underline}.reading-flag-btn:hover,.reading-flag-btn:focus-visible{color:var(--accent-amber,#d97706)}.reading-flag-ack{font-size:var(--fs-xs,.75rem);color:var(--text-muted,#64748b);font-style:italic}@keyframes reading-delta-pop{0%{opacity:0;transform:translateY(8px)scale(.9)}60%{opacity:1;transform:translateY(-2px)scale(1.06)}to{opacity:1;transform:translateY(0)scale(1)}}.reading-celebration-words-delta--enter{animation:.52s cubic-bezier(.34,1.56,.64,1) both reading-delta-pop}@media (prefers-reduced-motion:reduce){.reading-celebration-words-delta--enter{animation:none}}.cloze-dropzone{border-bottom:2px dashed var(--color-accent,#6c63ff);cursor:pointer;vertical-align:baseline;min-width:5ch;min-height:1.6em;color:var(--color-text-muted,#888);border-radius:4px;justify-content:center;align-items:center;padding:.1em .5em;font-style:italic;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.cloze-dropzone:focus{outline:2px solid var(--color-accent,#6c63ff);outline-offset:2px}.cloze-dropzone[data-placed-word]:not([data-placed-word=""]){border-bottom-style:solid;border-color:var(--color-accent,#6c63ff);color:var(--color-text,#222);font-style:normal;font-weight:600}.cloze-dropzone--correct{color:#166534!important;background:#dcfce7!important;border-color:#22c55e!important}.cloze-dropzone--glow-correct{box-shadow:0 0 0 3px #22c55e40}.cloze-dropzone--incorrect{color:#991b1b!important;background:#fee2e2!important;border-color:#ef4444!important}.cloze-dropzone--glow-incorrect{box-shadow:0 0 0 3px #ef444440}.cloze-dropzone--graded{pointer-events:none}.word-bank{background:var(--color-surface-raised,#f8f7ff);border:1px solid var(--color-border,#e0e0e0);border-radius:8px;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.word-bank-chip{background:var(--color-card-bg,#fff);border:1.5px solid var(--color-accent,#6c63ff);cursor:pointer;color:var(--color-accent,#6c63ff);-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;padding:.3em .8em;font-size:.95rem;font-weight:500;transition:background .13s,opacity .13s,transform .1s;display:inline-flex}.word-bank-chip:focus{outline:2px solid var(--color-accent,#6c63ff);outline-offset:2px}.word-bank-chip--selected{background:var(--color-accent,#6c63ff);color:#fff;transform:scale(1.05)}.word-bank-chip[data-placed=true]{opacity:.35;pointer-events:none;cursor:default}.word-bank-chip[data-placed=true].word-bank-chip--moveable{pointer-events:auto;cursor:pointer}.word-bank--complete .word-bank-chip{opacity:.5}.word-bank-chip[hidden]{display:none}.word-bank-chip{touch-action:manipulation}.cloze-dropzone--filled{color:var(--color-text,#222);background:#6c63ff14;border-bottom-style:solid;font-style:normal;font-weight:600}.cloze-input{vertical-align:baseline;border:none;border-bottom:2px dashed var(--color-accent,#6c63ff);font:inherit;color:var(--color-text,#222);text-align:center;-webkit-text-size-adjust:100%;background:0 0;border-radius:3px;min-width:4ch;padding:.1em .4em;font-size:.97em;transition:border-color .15s,background .15s;display:inline-block}.cloze-input:focus{outline:2px solid var(--color-accent,#6c63ff);outline-offset:2px;border-bottom-style:solid}.cloze-input--correct{border-bottom-style:solid;color:#166534!important;background:#dcfce7!important;border-color:#22c55e!important}.cloze-input--incorrect{border-bottom-style:solid;color:#991b1b!important;background:#fee2e2!important;border-color:#ef4444!important}.cloze-input--graded{pointer-events:none;cursor:default}.cloze-input-scaffold{color:var(--color-accent,#6c63ff);-webkit-user-select:none;user-select:none;pointer-events:none;margin-right:.1em;font-weight:700;display:inline-block}#studentDecksFeed[hidden],#universalReviewBar[hidden],#decksGrid[hidden]{display:none}.decks-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2.5rem;display:grid}.vocab-grid-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b80;flex-direction:column;gap:.75rem;padding:1.25rem;transition:transform .2s,border-color .2s;display:flex}.vocab-grid-card:hover{border-color:var(--accent-cyan);transform:translateY(-2px)}.vocab-table-container{box-sizing:border-box;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;max-width:100%;margin-bottom:1rem;display:block;overflow-x:auto}.vocab-table{border-collapse:collapse;text-align:left;table-layout:fixed;width:100%;min-width:520px;font-size:.88rem}.vocab-table th{color:var(--text-muted);text-transform:uppercase;font-weight:700;font-size:var(--fs-xs);letter-spacing:.05em;border-bottom:1px solid var(--border-color);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;white-space:normal;background:#0f172acc;padding:.75rem .85rem}.vocab-table td{color:var(--text-main);vertical-align:middle;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;white-space:normal;border-bottom:1px solid #ffffff0d;padding:.75rem .85rem}.vocab-table tr:hover td{background:#1e293b66}.vocab-word-title{color:var(--text-main);cursor:pointer;text-underline-offset:4px;align-items:center;gap:.35rem;font-size:1.02rem;font-weight:800;line-height:1.25;-webkit-text-decoration:underline dotted #06b6d499;text-decoration:underline dotted #06b6d499;transition:all .2s;display:inline-flex}.vocab-word-title:hover{color:var(--accent-cyan);-webkit-text-decoration:underline dotted var(--accent-cyan);-webkit-text-decoration:underline dotted var(--accent-cyan);text-decoration:underline dotted var(--accent-cyan)}.universal-review-bar{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#1e293bd9,#0f172af2);border:1px solid #06b6d459;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;padding:1.1rem 1.4rem;display:flex;box-shadow:0 4px 20px #00000040}.universal-review-bar-content{flex-direction:column;gap:.25rem;display:flex}.universal-review-bar-title{color:var(--text-main);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;display:flex}.universal-review-bar-desc{color:var(--text-muted);font-size:.85rem}.universal-review-btn{background:linear-gradient(135deg, var(--accent-cyan), #0284c7);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.92rem;font-weight:700;transition:transform .15s,opacity .15s;display:inline-flex}.universal-review-btn:hover{opacity:.95;transform:translateY(-1px)}.student-decks-feed{flex-direction:column;gap:2rem;margin-bottom:2.5rem;display:flex}.deck-feed-section{flex-direction:column;gap:1rem;display:flex}.deck-feed-section-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-bottom:.5rem;display:flex}.deck-feed-section-title{color:var(--text-main);align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.deck-feed-section-subtitle{color:var(--text-muted);margin-top:.15rem;font-size:.82rem}.deck-feed-section-count{color:var(--text-muted);background:#ffffff14;border-radius:9999px;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.vocab-grid-card.deck-card-spotlight,.vocab-grid-card.deck-card-spotlight:hover{background:linear-gradient(135deg,#f59e0b14,#1e293b99);border:1px solid #f59e0b66;box-shadow:0 0 15px #f59e0b26}.vocab-grid-card.card--focus-deck{position:relative}.deck-badge-empty{color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;background:#94a3b826;border-radius:4px;padding:.15rem .5rem;font-weight:600}.deck-accordion-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.deck-accordion-header:hover{background:#ffffff08}.deck-accordion-chevron{transition:transform .2s;display:inline-block}.deck-accordion.collapsed .deck-accordion-chevron{transform:rotate(-90deg)}.deck-accordion.collapsed .deck-feed-grid{display:none}.deck-power-table-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.deck-power-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.deck-power-table th.sortable:hover{color:var(--accent-cyan);background:#1e293be6}.deck-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem;display:flex}.deck-card-title{color:var(--text-main);font-size:1.1rem;line-height:1.3}.deck-card-desc{color:var(--text-muted);margin-bottom:.75rem;font-size:.82rem;line-height:1.4}.deck-card-metrics{width:100%;margin-bottom:.85rem}.deck-card-metrics-row{font-size:var(--fs-xs);color:var(--text-dim);justify-content:space-between;align-items:center;margin-bottom:.3rem;display:flex}.deck-card-metric-label{color:var(--text-main);font-weight:600}.deck-card-activity-text{font-size:var(--fs-xs);color:var(--text-muted)}.deck-card-pct{color:var(--accent-cyan);font-weight:700}.deck-card-pct.pct-solid{color:var(--accent-emerald)}.deck-card-pct.pct-mastered{color:#fcd34d}.deck-card-pct.pct-empty{color:var(--text-dim)}.deck-card-progress-track{background:#ffffff14;border-radius:3px;width:100%;height:5px;overflow:hidden}.deck-card-progress-bar{height:100%;transition:width .3s}.deck-card-progress-bar.bar-empty{background:#ffffff1f}.deck-card-progress-bar.bar-learning{background:var(--accent-cyan)}.deck-card-progress-bar.bar-solid{background:var(--accent-emerald)}.deck-card-progress-bar.bar-mastered{background:linear-gradient(90deg, var(--accent-amber), #fcd34d)}.deck-card-actions{gap:.5rem;margin-top:auto;display:flex}.deck-card-btn{flex:100%;padding:.55rem;font-size:.85rem}.deck-card-btn-spotlight,.deck-card-btn-brushup{flex:1}.deck-badge-spotlight{color:#fbbf24;font-size:var(--fs-xs);background:#f59e0b33;border-radius:4px;padding:.15rem .5rem;font-weight:700}.deck-badge-mastered-tag{color:var(--accent-amber);font-weight:700;font-size:var(--fs-xs)}.lb-study-this-badge{background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;font-size:var(--fs-xs);z-index:10;pointer-events:none;border-radius:9999px;align-self:flex-start;align-items:center;gap:6px;margin-top:2px;margin-bottom:2px;padding:4px 12px;font-weight:700;animation:2.5s ease-in-out infinite lb-studyFloat;display:inline-flex;position:relative;top:0;box-shadow:0 4px 14px #6366f173}.lb-study-this-avatar{transform-origin:70% 70%;font-size:1rem;animation:2.5s ease-in-out infinite lb-studyWiggle;display:inline-block}@keyframes lb-studyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes lb-studyWiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(4deg)}}.vocab-grid-card.card--focus-deck,.vocab-grid-card.card--focus-deck:hover{box-shadow:0 0 0 2px var(--border-active), 0 8px 24px #6366f12e;border-color:#6366f1cc}.homework-section{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b66;margin-bottom:1rem;overflow:hidden}.shw-head{width:100%;color:var(--text-main);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.7rem 1rem;font-size:1rem;font-weight:800;display:flex}.shw-chev{color:var(--text-muted)}.shw-list{flex-direction:column;gap:.55rem;padding:0 1rem 1rem;display:flex}.shw-list[hidden]{display:none}.shw-item{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a80;justify-content:space-between;gap:.9rem;padding:.7rem .9rem;display:flex}.shw-item.is-done{opacity:.62}.shw-main{flex:1;min-width:0}.shw-title{color:var(--text-main);font-size:.92rem;font-weight:700}.shw-tag-slot{font-size:var(--fs-xs);color:var(--text-muted);margin-left:.4rem}.shw-sub{color:var(--text-muted);margin-top:.15rem;font-size:.78rem}.shw-sub.is-overdue{color:#dc2626;font-weight:700}.shw-progress{background:#94a3b840;border-radius:999px;height:6px;margin-top:.4rem;overflow:hidden}.shw-fill{background:linear-gradient(135deg, var(--primary), #8b5cf6);border-radius:999px;height:100%}.shw-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.4rem;display:flex}.shw-chip{color:#64748b;white-space:nowrap;border:1px solid #64748b;border-radius:999px;padding:.1rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.shw-chip--not_started,.shw-chip--ended{color:#64748b;border-color:#64748b}.shw-chip--in_progress{color:#0ea5e9;border-color:#0ea5e9}.shw-chip--completed{color:#16a34a;border-color:#16a34a}.shw-chip--overdue{color:#dc2626;border-color:#dc2626}.shw-practise{background:var(--primary,var(--primary));color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.35rem .8rem;font-size:.8rem;font-weight:700}.teacher-deck-filter-toolbar,.admin-classes-filter-toolbar{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b8c;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:1rem;padding:.55rem .85rem;display:flex}.admin-col-toolbar-label{color:var(--text-muted);align-items:center;gap:.4rem;margin-right:.25rem;font-size:.8rem;font-weight:600;display:flex}.admin-col-toolbar-chips{flex-wrap:wrap;flex:1;align-items:center;gap:.45rem;display:flex}.admin-reset-col-btn{padding:.2rem .55rem;font-size:.74rem}.admin-table-page-info{color:var(--text-muted);font-size:.85rem}.teacher-filter-chip,.admin-column-chip{font-size:var(--fs-xs);color:var(--text-main);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;background:#0f172a8c;border-radius:6px;align-items:center;gap:.38rem;padding:.22rem .55rem;font-weight:500;transition:all .15s;display:inline-flex}.teacher-filter-chip:hover,.admin-column-chip:hover{background:#1e293bd9;border-color:#6366f173}.teacher-filter-chip input[type=checkbox],.admin-column-chip input[type=checkbox]{width:.95rem;height:.95rem;accent-color:var(--primary,var(--primary));cursor:pointer;margin:0}.admin-classes-table tbody tr.admin-classes-row:hover{background:#6366f114}.teacher-example-pill{color:#a5b4fc;font-size:var(--fs-xs);cursor:pointer;vertical-align:middle;background:#6366f12e;border:1px solid #6366f166;border-radius:9999px;align-items:center;gap:.25rem;margin-left:.35rem;padding:.12rem .45rem;font-weight:600;line-height:1.2;transition:all .15s;display:inline-flex}.teacher-example-pill:hover{color:#fff;background:#6366f152;border-color:#6366f1a6;transform:translateY(-1px)}.teacher-example-pill.teacher-example-collapse{color:var(--text-dim);background:#94a3b826;border-color:#94a3b84d;margin-left:0}.teacher-example-pill.teacher-example-collapse:hover{color:var(--text-main);background:#94a3b847}@media (width<=768px){#vocabListSection .section-header{flex-direction:column;align-items:stretch;gap:.75rem}#vocabListSection .section-header .mode-selector{align-self:stretch}#vocabListSection .section-header .mode-btn{flex:1 1 0;padding:.5rem .6rem}.universal-review-bar{flex-direction:column;align-items:stretch;gap:.85rem;padding:1rem 1.1rem}.universal-review-bar-title{flex-wrap:wrap;row-gap:.35rem}.universal-review-btn{justify-content:center;width:100%}#vocabTableHeader{gap:.6rem}#vocabSubjectFilter,#vocabTopicFilter{flex:40%;min-width:0;max-width:none}#vocabTableHeader #vocabSearchInput{flex:100%;max-width:none}#vocabTableCount{flex:100%;margin-left:0}.vocab-item-row{justify-content:space-between;align-items:center;gap:12px;min-height:60px;display:flex}.vocab-item-left{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vocab-word-headline{flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;display:flex}.vocab-phonetic-text{overflow-wrap:break-word;word-break:break-word;min-width:0;max-width:100%}.vocab-item-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.audio-play-btn{flex-shrink:0;width:44px;min-width:44px;height:44px;min-height:44px}#vocabSearchInput{min-height:44px;font-size:16px}#vocabTableView.teacher-panel{-webkit-backdrop-filter:none;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}#vocabTableView .vocab-table{min-width:0}#vocabTableView .vocab-table thead{display:none}#vocabTableView .vocab-table tbody{flex-direction:column;gap:10px;display:flex}#vocabTableView .vocab-table tbody tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);min-height:60px;padding:12px 14px;display:block;border-bottom:1px solid var(--border-color)!important}#vocabTableView .vocab-table tbody td{border-bottom:none;min-width:0;padding:.25rem 0;display:block}#vocabTableView .vocab-table tbody tr:only-child td{padding:2rem 1rem}}.sd-batch-pill{color:var(--accent-cyan);background:#06b6d433;border-radius:9999px;padding:.15rem .5rem;font-size:.8rem;font-weight:600}.decks-grid.deck-feed-grid.sd-section-grid{margin-top:.5rem;margin-bottom:0}.sd-table-search-wrap{flex:1;align-items:center;gap:.75rem;max-width:400px;display:flex}input.form-control.sd-table-search{width:100%}.sd-table-count{color:var(--text-muted);font-size:.85rem}.deck-power-table th.sd-col-title{width:28%}.deck-power-table th.sd-col-category,.deck-power-table th.sd-col-mastery{width:18%}.deck-power-table th.sd-col-words{width:12%}.deck-power-table th.sd-col-practiced{width:14%}.deck-power-table th.sd-col-action{text-align:right;width:10%}.vocab-table td.sd-empty-cell{text-align:center;color:var(--text-muted);padding:2rem}.sd-row-title{color:var(--text-main);font-weight:700}.sd-muted-sm{color:var(--text-muted);font-size:.85rem}.sd-mastery-wrap{align-items:center;gap:.5rem;display:flex}.sd-mastery-track{background:#ffffff14;border-radius:2px;flex:1;max-width:60px;height:4px;overflow:hidden}.sd-mastery-val{font-weight:700}.sd-mastery-val--solid{color:var(--accent-emerald)}.sd-mastery-val--learning{color:var(--accent-cyan)}.sd-mastery-fill{height:100%}.sd-mastery-fill--solid{background:var(--accent-emerald)}.sd-mastery-fill--learning{background:var(--accent-cyan)}.vocab-table td.sd-cell-action{text-align:right}button.btn-primary.sd-table-practice{padding:.35rem .75rem;font-size:.8rem}.sd-empty-grid{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:3rem}.vocab-table td.vt-empty-cell{text-align:center;color:var(--text-muted);padding:2rem}.vocab-table td.vt-cell{padding:.85rem 1rem}.vocab-table td.vt-cell-def{color:var(--text-muted);font-size:.85rem;line-height:1.4}.vocab-table td.vt-cell-trans{color:var(--accent-cyan);font-size:.85rem;font-weight:500}.vocab-table td.vt-cell-status{min-width:120px}.vocab-table td.vt-cell-deck{font-size:var(--fs-xs);vertical-align:middle}.vocab-table .vt-archive-tag{font-size:var(--fs-xs);color:#fbbf24;background:#f59e0b2e;border:1px solid #f59e0b59;border-radius:6px;padding:.15rem .45rem;font-weight:700}.vocab-table .vt-deck-name{color:var(--text-muted);font-weight:500}.vocab-table .vt-pron-row{align-items:center;gap:.45rem;margin-top:.25rem;display:inline-flex}.vocab-table .vt-ipa-btn{cursor:pointer;font-size:.85rem}.vocab-table .vt-phonetic{font-size:var(--fs-xs);color:var(--text-dim);font-style:italic;font-weight:500}.vocab-table .vt-pos{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem;font-weight:600}.vocab-table .vt-mastery{flex-direction:column;gap:.25rem;display:flex}.vocab-table .vt-mastery-head{font-size:var(--fs-xs);justify-content:space-between;align-items:center;display:flex}.vocab-table .vt-mastery-pct{color:var(--text-dim);font-weight:600}.vocab-table .vt-track{background:var(--border-color);border-radius:3px;height:6px;overflow:hidden}.vocab-table .vt-mastery-status{font-weight:600}.vocab-table .vt-mastery-status--solid{color:var(--accent-emerald)}.vocab-table .vt-mastery-status--learning,.vocab-table .vt-mastery-status--struggling{color:var(--accent-amber)}.vocab-table .vt-mastery-status--new{color:var(--text-dim)}.vocab-table .vt-track-fill{height:100%}.vocab-table .vt-track-fill--solid{background:var(--accent-emerald)}.vocab-table .vt-track-fill--learning,.vocab-table .vt-track-fill--struggling{background:var(--accent-amber)}.vocab-table .vt-track-fill--new{background:var(--text-dim)}.chart-point-node .hover-score-text{opacity:0;pointer-events:none;transition:opacity .2s}.chart-point-node:hover .hover-score-text{opacity:1}.chart-point-node:hover .chart-dot-circle{r:7;fill:#34d399}.chart-point-node:focus .hover-score-text,.chart-point-node:active .hover-score-text{opacity:1}.chart-point-node:focus .chart-dot-circle,.chart-point-node:active .chart-dot-circle{r:7;fill:#34d399}.chart-point-node:focus{outline:none}.chart-point-node.ch16-point{cursor:pointer}.vocab-chart-card.ch16-card{margin-top:1rem}.ch16-canvas-wrap{box-sizing:border-box;background:0 0;border:none;width:100%;padding:0}.ch16-svg{width:100%;height:auto;display:block;overflow:visible}#vocabTableHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}#decksEmptyState{text-align:center;padding:3rem 1.5rem}#decksEmptyState .empty-state-icon{margin-bottom:1rem;font-size:3rem}#decksEmptyState h3{margin-bottom:.5rem}#decksEmptyState p{color:var(--text-muted);max-width:400px;margin:0 auto 1.5rem}#vocabSearchInput{max-width:320px}#vocabTableCount{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.85rem}#vocabTableWrap{overflow-x:auto}.vocab-table th:first-child{width:25%}.vocab-table th:nth-child(2){width:32%}.vocab-table th:nth-child(3){width:18%}.vocab-table th:nth-child(4){width:12%}.vocab-table th:nth-child(5){width:13%}.deck-info-btn{min-width:44px;min-height:44px;color:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;background:#06b6d41a;border:1px solid #06b6d459;flex:none;justify-content:center;align-items:center;padding:0 .6rem;font-size:1rem;font-weight:700;line-height:1;display:inline-flex}.deck-info-btn:hover{border-color:var(--accent-cyan);background:#06b6d433}.deck-card-header .deck-info-btn{margin-left:auto}.deck-card-header:has(.deck-info-btn){flex-wrap:wrap}.table-info-btn{white-space:nowrap;margin-right:.5rem;font-size:.8rem}.deck-words-sheet{z-index:var(--z-modal);background:#02061799;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.deck-words-dialog{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;max-width:32rem;max-height:min(80vh,36rem);padding:1.1rem 1.25rem;overflow-y:auto}.deck-words-head{align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.deck-words-title{min-width:0;color:var(--text-main);overflow-wrap:break-word;flex:auto;font-size:1.05rem}.deck-words-count{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.deck-words-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.deck-words-item{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.6rem 0;display:flex}.deck-words-word{color:var(--text-main);overflow-wrap:break-word;font-weight:700}.deck-words-trans{color:var(--accent-cyan);overflow-wrap:break-word}.deck-words-mastery{font-size:var(--fs-xs);white-space:nowrap;margin-left:auto;font-weight:600}.deck-words-mastery--solid{color:var(--accent-emerald)}.deck-words-mastery--learning,.deck-words-mastery--struggling{color:var(--accent-amber)}.deck-words-mastery--new{color:var(--text-dim)}.deck-words-empty{color:var(--text-muted);text-align:center;padding:1.5rem 0}@media (width>=640px){.deck-words-sheet{align-items:center}}#vocabTableView .vocab-pager-btn{min-height:44px;color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;background:#06b6d41f;border:1px solid #06b6d466;padding:.5rem 1rem;font-size:.85rem;font-weight:700}#vocabTableView .vocab-pager-btn:hover{border-color:var(--accent-cyan);background:#06b6d438}#vocabTableView .vocab-pager-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border-color);color:var(--text-dim);background:0 0}#statsSection{scroll-margin-top:80px}.stats-section-header{margin-bottom:1.25rem}.stats-welcome-subtitle{color:var(--text-muted);font-size:var(--fs-sm);margin-top:.25rem}.stats-row-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.25rem;display:grid}.streak-card-compact{text-align:center;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-color);box-sizing:border-box;-webkit-backdrop-filter:blur(12px);min-height:140px;box-shadow:var(--shadow-card);flex-direction:column;justify-content:center;align-items:center;padding:1.25rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.streak-card-compact:hover{border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 6px 20px #00000059}.streak-card-compact:active{transform:scale(.98)}.streak-hero-card{text-align:left;cursor:pointer;flex-direction:row;justify-content:center;align-items:center;gap:1.5rem;margin-bottom:1.25rem;display:flex}.streak-card-flame{background:linear-gradient(145deg,#1e293bd9 0%,#0f172af2 100%);border:1px solid #fb923c59;box-shadow:0 4px 20px #0000004d,inset 0 1px #ffffff14}.streak-card-flame:before{content:"";pointer-events:none;background:radial-gradient(circle,#f9731638 0%,#ef44440f 50%,#0000 70%);border-radius:50%;width:140px;height:140px;position:absolute;top:50%;left:61px;transform:translate(-50%,-50%)}.streak-card-flame:hover{border-color:#fb923c99;box-shadow:0 6px 24px #f9731647,inset 0 1px #ffffff26}.streak-ring-wrapper{flex-shrink:0;width:104px;height:104px;position:relative}.streak-ring-backlight{pointer-events:none;z-index:0;opacity:0;filter:blur(2.5px)drop-shadow(0 0 5px #fbbf24bf);will-change:transform, opacity;background:conic-gradient(#0000 0deg 240deg,#d977061f 270deg,#f59e0b66 310deg,#fbbf24bf 345deg,#fef08afa 360deg);border-radius:50%;width:104px;height:104px;animation:3.2s cubic-bezier(.25,.8,.25,1) .3s forwards streakRingBacklightOrbit;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#0000 36px,#000 42px 50px,#0000 56px);mask-image:radial-gradient(circle,#0000 36px,#000 42px 50px,#0000 56px)}.streak-ring-backlight:after{content:"";background:radial-gradient(circle, #fff 20%, #fef08a 50%, var(--accent-amber) 85%, transparent 100%);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:52px;transform:translate(-50%,-50%);box-shadow:0 0 6px #fef08ae6,0 0 10px #f59e0bbf}@keyframes streakRingBacklightOrbit{0%{opacity:0;transform:rotate(0)}12%{opacity:.95}45%{opacity:.95}65%{opacity:.65}85%{opacity:.22}96%{opacity:.03}to{opacity:0;transform:rotate(720deg)}}.streak-hero-card:hover .streak-ring-backlight{animation:1.6s cubic-bezier(.25,.8,.25,1) forwards streakRingBacklightSingle}.streak-hero-card:active .streak-ring-backlight{opacity:.85;transition:opacity .15s;transform:rotate(180deg)}@keyframes streakRingBacklightSingle{0%{opacity:0;transform:rotate(0)}12%{opacity:.95}45%{opacity:.95}65%{opacity:.6}85%{opacity:.2}to{opacity:0;transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.streak-ring-backlight{opacity:.3;background:radial-gradient(circle,#fbbf2473 0%,#0000 70%);animation:none;transform:none}.streak-ring-backlight:after{display:none}.streak-hero-card:hover .streak-ring-backlight{opacity:.5;animation:none}}.streak-ring-svg{z-index:1;width:100%;height:100%;display:block;position:relative;overflow:visible}.streak-ring-bg{fill:none;stroke:#ffffff14;stroke-width:6px}.streak-ring-accent{fill:none;stroke:url(#streakRingGrad);stroke-width:6px;stroke-linecap:round;filter:drop-shadow(0 0 6px #f59e0b73)}.streak-ring-stop-start{stop-color:var(--accent-amber)}.streak-ring-stop-end{stop-color:var(--accent-rose)}.streak-ring-center{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0}.streak-flame-cluster{justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex;position:relative}.streak-flame-icon{z-index:2;filter:drop-shadow(0 0 8px #f973168c);transform-origin:bottom;font-size:1.5rem;line-height:1;position:relative}.streak-flame-bg{z-index:1;pointer-events:none;opacity:0;transform-origin:bottom;will-change:transform, opacity;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex;position:absolute;inset:0}.streak-flame-left{animation:3.2s cubic-bezier(.25,.8,.25,1) .3s forwards streakFlameBurnLeft}.streak-flame-right{animation:3.2s cubic-bezier(.25,.8,.25,1) .3s forwards streakFlameBurnRight}.streak-hero-card:hover .streak-flame-left{animation:1.6s cubic-bezier(.25,.8,.25,1) forwards streakFlameBurnLeftSingle}.streak-hero-card:hover .streak-flame-right{animation:1.6s cubic-bezier(.25,.8,.25,1) forwards streakFlameBurnRightSingle}@keyframes streakFlameBurnLeft{0%{opacity:0;filter:drop-shadow(0 0 4px #f9731699);transform:translate(-1px,2px)rotate(-6deg)scale(.92)}12%{opacity:.7;filter:drop-shadow(0 0 6px #ef4444bf);transform:translate(-3px)rotate(-14deg)scale(1.02)}28%{filter:drop-shadow(0 0 8px #f59e0bcc);transform:translate(-4px,-1px)rotate(-18deg)scale(1.06)}45%{opacity:.7;filter:drop-shadow(0 0 6px #f97316bf);transform:translate(-3px)rotate(-13deg)scale(1.02)}65%{opacity:.48;transform:translate(-3px,1px)rotate(-16deg)scale(1.04)}85%{opacity:.16;transform:translate(-2px,1px)rotate(-12deg)scale(.98)}96%{opacity:.02}to{opacity:0;transform:translate(-1px,2px)rotate(-6deg)scale(.92)}}@keyframes streakFlameBurnRight{0%{opacity:0;filter:drop-shadow(0 0 4px #f9731699);transform:translate(1px,2px)rotate(6deg)scale(.92)}12%{opacity:.7;filter:drop-shadow(0 0 6px #ef4444bf);transform:translate(3px)rotate(14deg)scale(1.02)}32%{filter:drop-shadow(0 0 8px #f59e0bcc);transform:translate(4px,-1px)rotate(18deg)scale(1.06)}45%{opacity:.7;filter:drop-shadow(0 0 6px #f97316bf);transform:translate(3px)rotate(13deg)scale(1.02)}65%{opacity:.48;transform:translate(3px,1px)rotate(16deg)scale(1.04)}85%{opacity:.16;transform:translate(2px,1px)rotate(12deg)scale(.98)}96%{opacity:.02}to{opacity:0;transform:translate(1px,2px)rotate(6deg)scale(.92)}}@keyframes streakFlameBurnLeftSingle{0%{opacity:0;transform:translate(-1px,2px)rotate(-6deg)scale(.92)}15%{opacity:.7;transform:translate(-3px)rotate(-14deg)scale(1.04)}45%{opacity:.7;transform:translate(-4px,-1px)rotate(-17deg)scale(1.06)}65%{opacity:.45;transform:translate(-3px,1px)rotate(-14deg)scale(1.02)}85%{opacity:.15;transform:translate(-2px,1px)rotate(-10deg)scale(.96)}to{opacity:0;transform:translate(-1px,2px)rotate(-6deg)scale(.92)}}@keyframes streakFlameBurnRightSingle{0%{opacity:0;transform:translate(1px,2px)rotate(6deg)scale(.92)}15%{opacity:.7;transform:translate(3px)rotate(14deg)scale(1.04)}45%{opacity:.7;transform:translate(4px,-1px)rotate(17deg)scale(1.06)}65%{opacity:.45;transform:translate(3px,1px)rotate(14deg)scale(1.02)}85%{opacity:.15;transform:translate(2px,1px)rotate(10deg)scale(.96)}to{opacity:0;transform:translate(1px,2px)rotate(6deg)scale(.92)}}.streak-ring-center .metric-value{font-family:var(--font-display);color:#fff7ed;text-shadow:0 0 12px #f59e0b80;white-space:nowrap;font-size:1.05rem;font-weight:800;line-height:1.1}.streak-hero-info{flex-direction:column;justify-content:center;align-items:flex-start;gap:.25rem;min-width:0;display:flex}.streak-hero-title{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--accent-amber);margin:0;font-weight:700}.streak-hero-card:focus-visible{outline:2px solid var(--border-active);outline-offset:2px}.streak-hero-hint{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:2px;margin:2px 0 0;line-height:1.3;display:inline-flex}.streak-hero-hint-chevron{color:var(--accent-amber);font-size:1em;transition:transform .2s;display:inline-block}.streak-hero-card:hover .streak-hero-hint-chevron{transform:translate(3px)}.stats-best-pill{color:#fcd34d;border-radius:var(--radius-full);background:#f59e0b1f;border:1px solid #f59e0b47;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-flex}.stats-chip-pill{color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-full);background:#ffffff0f;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-flex}.stats-chip-pill.is-empty{color:var(--text-dim);font-weight:600}.heatmap-card-compact{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);text-align:center;box-sizing:border-box;-webkit-backdrop-filter:blur(12px);min-height:140px;box-shadow:var(--shadow-card);flex-direction:column;justify-content:center;align-items:center;margin-bottom:1.25rem;padding:1.15rem 1rem;display:flex;position:relative;overflow:visible}.heatmap-header-row{justify-content:space-between;align-items:center;width:100%;max-width:230px;margin-bottom:.45rem;display:flex}.heatmap-title{color:var(--text-main);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;margin:0;font-weight:700}.heatmap-range-pill{color:var(--accent-cyan);border-radius:var(--radius-full);background:#06b6d41f;border:1px solid #06b6d440;padding:1px 7px;font-size:13px;font-weight:600}.heatmap-weekdays-row{width:100%;max-width:230px;font-size:var(--fs-xs);color:var(--text-muted);text-align:center;box-sizing:border-box;grid-template-columns:repeat(7,1fr);gap:5px;margin:0 auto 3px;font-weight:700;display:grid}.heatmap-weekdays-row span{text-align:center;justify-content:center;align-items:center;width:100%;display:flex}.heatmap-grid-compressed{box-sizing:border-box;grid-template-columns:repeat(7,1fr);gap:5px;width:100%;max-width:230px;margin:.2rem auto .35rem;display:grid;position:relative;overflow:visible}#statsSection .heatmap-card-compact [data-tooltip]:after,#statsSection .heatmap-card-compact [data-tooltip]:hover:after,#statsSection .heatmap-cell[data-tooltip]:after,#statsSection .heatmap-cell[data-tooltip]:hover:after{content:none;opacity:0;visibility:hidden;pointer-events:none;display:none}.heatmap-cell{aspect-ratio:1;border:1px solid var(--border-color);cursor:pointer;box-sizing:border-box;background:#ffffff14;border-radius:4px;justify-content:center;align-items:center;width:100%;min-width:15px;min-height:15px;transition:transform .15s,background-color .2s,box-shadow .2s;display:inline-flex;position:relative}@media (pointer:coarse){.heatmap-cell:before{content:"";z-index:1;width:44px;min-width:44px;height:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}@media (hover:hover) and (pointer:fine){.heatmap-cell:hover{z-index:20;transform:scale(1.25)}}.heatmap-cell.lvl-0{background:#1e293be6;border:1px solid #ffffff1f}.heatmap-cell.lvl-1{background:#10b98159;border:1px solid #10b98199}.heatmap-cell.lvl-2{box-shadow:0 0 6px var(--accent-emerald-glow);background:#10b981b3;border:1px solid #10b981e6}.heatmap-cell.lvl-3{background:var(--accent-emerald);border:1px solid #6ee7b7;box-shadow:0 0 10px #10b981b3}@keyframes todayPulse{0%,to{box-shadow:0 0 0 1.5px var(--accent-orange,#f97316), 0 0 4px #f9731666}50%{box-shadow:0 0 0 2px var(--accent-orange,#f97316), 0 0 9px #f97316cc}}.heatmap-cell.is-today{border-color:var(--accent-orange,#f97316);animation:2.4s ease-in-out infinite todayPulse}.heatmap-cell.is-selected{outline:2px solid var(--accent-blue,#38bdf8);outline-offset:1px;z-index:10;box-shadow:0 0 8px #38bdf880}.heatmap-detail-card{border:1px solid var(--border-active);border-radius:var(--radius-sm);font-size:var(--fs-xs);color:var(--text-main);box-sizing:border-box;text-align:center;background:#0f172ab3;justify-content:center;align-items:center;width:100%;max-width:230px;min-height:2.2rem;margin-top:.5rem;padding:.5rem .75rem;font-weight:600;transition:all .2s;display:flex}.metric-card-secondary{text-align:center}.metric-card-icon{margin-bottom:.25rem;font-size:1.5rem;line-height:1}.metric-card-secondary .metric-title{letter-spacing:.05em;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.2rem;font-weight:700}.metric-card-secondary .metric-value{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:800;line-height:1.2}.metric-val-readings{color:var(--accent-emerald);text-shadow:0 0 12px var(--accent-emerald-glow)}.metric-val-words{color:var(--accent-amber);text-shadow:0 0 12px var(--accent-amber-glow)}.mastery-bar-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;margin-bottom:1.25rem;padding:1.25rem;transition:box-shadow .2s,border-color .2s}.mastery-bar-card:hover{border-color:var(--primary-glow);box-shadow:0 6px 24px #00000059,0 0 16px #10b9811f}.mastery-bar-header{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.85rem;display:flex}.mastery-title{font-weight:700;font-size:var(--fs-base);color:var(--text-main);transition:color .2s}.mastery-bar-card:hover .mastery-title{color:#f1f5f9}.mastery-counter-badge{color:var(--accent-cyan);border-radius:var(--radius-sm);font-size:var(--fs-xs);white-space:nowrap;background:#6366f11f;border:1px solid #6366f14d;padding:.25rem .65rem;font-weight:700;transition:transform .2s,border-color .2s,box-shadow .2s}.mastery-bar-card:hover .mastery-counter-badge{border-color:#06b6d480;transform:scale(1.03);box-shadow:0 0 10px #06b6d440}.mastery-proportional-track{border-radius:var(--radius-full);border:1px solid var(--border-color);background:#0f172ae6;height:14px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.mastery-proportional-track:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff14 50%,#0000 100%);width:100%;height:100%;animation:4.5s linear infinite masterySheen;position:absolute;top:0;left:-100%}@keyframes masterySheen{0%{left:-100%}35%,to{left:100%}}@media (prefers-reduced-motion:reduce){.mastery-proportional-track:after{animation:none}.mastery-seg{transition:none}}.mastery-seg{height:100%;transition:width 1.1s cubic-bezier(.22,1,.36,1);position:relative}.seg-mastered{background:linear-gradient(90deg, #059669 0%, var(--accent-emerald) 100%);box-shadow:0 0 12px var(--accent-emerald-glow)}.seg-learning{background:linear-gradient(90deg, #d97706 0%, var(--accent-amber) 100%);box-shadow:0 0 8px #f59e0b66}.seg-unstudied{background:#ffffff0f}#barSegmentMastered,#barSegmentLearning{width:0%}#barSegmentUnstudied{width:100%}.mastery-legend-row{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.85rem;display:flex}.legend-item{align-items:center;gap:.45rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.dot-mastered{background:var(--accent-emerald);box-shadow:0 0 6px var(--accent-emerald-glow)}.dot-learning{background:var(--accent-amber);box-shadow:0 0 6px var(--accent-amber-glow)}.dot-unstudied{background:#fff3}.stats-chart-section{margin-bottom:1.5rem}.stats-chart-section .vocab-chart-card.ch16-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-card);margin-top:0;padding:1rem .85rem .6rem}@media (width<=768px){.stats-section-header{margin-top:.25rem;margin-bottom:.85rem}.streak-hero-card{justify-content:flex-start;gap:.85rem;margin-bottom:.85rem}.stats-chart-section{margin-bottom:.85rem}.stats-chart-section .vocab-chart-card.ch16-card{padding:.85rem .75rem .4rem}.mastery-bar-card{margin-bottom:.85rem;padding:1rem}.heatmap-card-compact{margin-bottom:.85rem}.heatmap-detail-card{max-width:none}.stats-row-grid{grid-template-columns:repeat(2,1fr);gap:.65rem;margin-bottom:.85rem}.stats-row-grid .streak-card-compact{padding:.75rem}}[data-parent-stats] .parent-stats-title{margin:0 0 .75rem}[data-parent-stats] .parent-stats-grid{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.metric-card .metric-value.parent-last-active{font-size:1rem}.parent-activity-line{color:var(--text-muted);margin:0 0 1rem;font-size:.9rem}.parent-msgrow{flex-wrap:wrap;gap:.5rem;display:flex}.teacher-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-sizing:border-box;width:100%;max-width:100%;padding:2rem;overflow:hidden}.admin-tab-content,#adminDeckDetailView,#adminDecksOverview{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}.metric-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b99;padding:1.25rem}.grammar-kanban-grid{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}@media (width<=1024px){.grammar-kanban-grid{grid-template-columns:1fr}}.teacher-stats-table{border-collapse:collapse;width:100%;font-size:.82rem}.teacher-stats-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border-color);padding:.45rem .6rem;font-size:.72rem}.teacher-stats-table td{border-bottom:1px solid #ffffff0a;padding:.4rem .6rem}.metric-title{color:var(--text-dim);text-transform:uppercase;font-size:.8rem;font-weight:700}.metric-value{font-size:1.8rem;font-family:var(--font-display);color:var(--text-main);margin-top:.25rem;font-weight:800}.teacher-stats-table{border-collapse:collapse;text-align:left;width:100%;min-width:600px;font-size:.82rem}.teacher-stats-table th{border-bottom:1px solid var(--border-color);color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;padding:.45rem .6rem;font-size:.75rem;font-weight:600}.teacher-stats-table td{vertical-align:middle;word-break:break-word;overflow-wrap:break-word;border-bottom:1px solid #ffffff0a;padding:.45rem .6rem}.teacher-stats-table tbody tr:hover{background:#ffffff08}.admin-deck-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b99;flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.admin-deck-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-deck-title{color:var(--text-main);margin:.2rem 0;font-size:1.15rem}.admin-deck-desc{color:var(--text-muted);font-size:.85rem;line-height:1.4}.admin-deck-badge{color:#a5b4fc;background:#6366f126;border:1px solid #6366f14d;border-radius:20px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);border:1px solid var(--primary);color:var(--text-main);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:var(--z-modal);background:#0f172a;border-radius:6px;padding:.3rem .65rem;font-size:.73rem;font-weight:600;transition:opacity 50ms ease-out,transform 50ms ease-out;position:absolute;bottom:135%;left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 4px 16px #000000d9}[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.btn-admin-sm{padding:.3rem .55rem;font-size:.8rem}.btn-admin-danger{color:var(--accent-rose)}.main-container{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}@media (width<=768px){.main-container{padding:.65rem .75rem}}.section-header{justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;display:flex}.section-title h2{font-family:var(--font-display);font-size:1.8rem;font-weight:700}.section-title p{color:var(--text-muted);font-size:.95rem}#pinInput::placeholder{letter-spacing:.15em;color:var(--text-dim);opacity:.6}.form-group{flex-direction:column;gap:.4rem;min-width:0;margin-bottom:1.25rem;display:flex}.form-group label{color:var(--text-muted);font-size:.85rem;font-weight:600}.form-control{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font-main);box-sizing:border-box;background:#0f172acc;outline:none;width:100%;max-width:100%;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s}.form-control:focus{border-color:var(--primary)}textarea.form-control{resize:vertical;min-height:80px}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 4px 14px var(--primary-glow);border:none;padding:.75rem 1.5rem;font-weight:700;transition:all .2s}.btn-primary:hover{box-shadow:0 6px 20px var(--primary-glow);transform:translateY(-1px)}.modal-overlay{width:100dvw;height:100dvh;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal);opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;pointer-events:auto}:is(body:has(#profileModal.active),body:has(#privacyPolicyModal.active)){overflow:hidden}body.scroll-locked{width:100%;position:fixed;left:0;overflow:hidden}.modal-content,.modal-card:not(.report-modal-card){background:var(--bg-modal,var(--bg-modal));border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-main);width:90%;max-width:600px;max-height:90dvh;padding:2rem;overflow:hidden auto;box-shadow:0 24px 60px #000000a6}.modal-card.modal-large{width:95%;max-width:980px}#classStudentPicker{border:1px solid var(--border-color);background:var(--bg-modal-elevated,var(--bg-modal-elevated));border-radius:6px;flex-direction:column;gap:.25rem;max-height:160px;margin-top:.35rem;padding:.5rem;display:flex;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm,8px);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.25rem .5rem;font-size:1.5rem;line-height:1;transition:color .15s,background .15s,transform .15s;display:inline-flex}.modal-close:hover{color:var(--text-main);background:#ffffff14}.modal-close:active{transform:scale(.95)}.modal-close--circle{background:#ffffff0f;border-radius:50%;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:1.15rem}.modal-close--circle:hover{background:#ffffff1f}.modal .form-error-tip,.modal .form-error-msg,.modal .form-field-error,#classNameError,#bulkImportError,#profileDisplayNameError,#classAddStudentsError,#adminClassAddStudentsError{color:var(--accent-red,var(--accent-red));letter-spacing:.01em;margin-top:.35rem;font-size:.82rem;font-weight:600;line-height:1.4}.modal .form-error-tip:empty,.modal .form-error-msg:empty,.modal .form-field-error:empty,#classNameError:empty,#bulkImportError:empty,#profileDisplayNameError:empty,#classAddStudentsError:empty,#adminClassAddStudentsError:empty{display:none}.privacy-policy-btn{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--text-muted);background:#1e293b66;justify-content:space-between;align-items:center;margin-top:1rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600;transition:background .2s,border-color .2s,color .2s;display:flex}.privacy-policy-btn>span:first-child{align-items:center;gap:.5rem;display:flex}.privacy-policy-btn .policy-chevron{color:var(--text-dim);font-size:1.1rem}.privacy-policy-btn:hover{color:var(--text-main);background:#1e293bb3;border-color:#6366f173}.privacy-policy-btn:active{transform:scale(.99)}#privacyPolicyTitle{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}@media (width<=768px){.modal-overlay{padding:.75rem;padding-top:max(1rem, env(safe-area-inset-top))}#profileModal,#privacyPolicyModal,#reportTranslationModal{padding-top:max(3.5rem, calc(env(safe-area-inset-top,44px) + 1.25rem));padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom,20px) + 1rem));align-items:center}#profileModal .modal-content,#privacyPolicyModal .modal-content,#reportTranslationModal .report-modal-card{max-height:calc(100vh - max(3.5rem, calc(env(safe-area-inset-top,44px) + 1.25rem)) - 2rem);max-height:calc(100dvh - max(3.5rem, calc(env(safe-area-inset-top,44px) + 1.25rem)) - 2rem);margin:auto 0}.modal-content,.modal-card:not(.report-modal-card){width:100%;max-width:100%;max-height:calc(100dvh - 1.5rem);padding:1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));border-radius:var(--radius-md,12px)}.modal-card.modal-large{width:100%}.modal-content .modal-header,.modal-card:not(.report-modal-card) .modal-header,#bulkImportModal .modal-card>div:first-child{z-index:5;background:var(--bg-modal,var(--bg-modal));margin:-1.25rem -1.25rem 1.25rem;padding:1rem 1.25rem;position:sticky;top:-1.25rem}}#classReassignModal .modal-content{max-width:440px}#classReassignModalBody{margin:.5rem 0 1rem;line-height:1.5}#classReassignModalActions{justify-content:flex-end;gap:.5rem;display:flex}#profileModal .modal-content{max-width:440px}#profileModalBody{padding:.5rem 0}#profileModalAccountLabel{margin-bottom:.35rem;font-size:.85rem;font-weight:600}#profileModalAccountCard{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#1e293b99;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}#profileUserAvatarSpan{font-size:1.2rem}#profileDisplayNameGroup{margin-bottom:1rem}#profileDisplayNameGroup label{color:var(--text-muted);font-size:.85rem}#profileForm button[type=submit]{width:100%;margin-top:.5rem}#profileModal hr{border:none;border-top:1px solid var(--border-color);margin:1.25rem 0}#logoutBtn{border-radius:var(--radius-md);width:100%}#privacyPolicyModal{z-index:1050}#privacyPolicyModal .modal-content{max-width:440px}#privacyPolicyModalBody{color:var(--text-muted);padding:.5rem 0 1.25rem;font-size:.85rem;line-height:1.6}#privacyPolicyModalBody p{margin-bottom:.85rem}#privacyPolicyModalBody strong{color:var(--text-main)}#privacyPolicyModalBody p:last-child{margin-bottom:0}#dismissPrivacyPolicyBtn{width:100%}#apiHealthModal .modal-content{max-width:560px}#apiHealthModalBody{padding:.5rem 0}#apiHealthModalStatus{color:var(--text-muted);margin-bottom:.85rem;font-size:.88rem;font-weight:600;line-height:1.4}#apiHealthModalDetails{grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.9rem;font-size:.8rem;display:grid}#apiHealthModalCmd{border:1px solid var(--border-color);white-space:pre-wrap;word-break:break-all;background:#0f172a99;border-radius:6px;margin-bottom:.85rem;padding:.6rem;font-size:.75rem;overflow-x:auto}#apiHealthModalActions{flex-wrap:wrap;gap:.5rem;display:flex}#apiHealthModalCheckBtn,#apiHealthModalCopyBtn{flex:1;min-width:120px}#apiHealthModalPing{color:var(--text-dim);text-align:center;margin-top:.6rem;font-size:.72rem}#createDeckForm label span,#editDeckForm label span{color:var(--text-muted);font-size:.8rem;font-weight:400}#createDeckAssignLabel,#editDeckAssignLabel{margin-bottom:.35rem;font-weight:600}#newDeckStudentGrid,#editDeckStudentGrid{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#0f172a99;flex-direction:column;gap:.4rem;max-height:160px;padding:.75rem 1rem;display:flex;overflow-y:auto}#createDeckForm button[type=submit],#editDeckForm button[type=submit]{width:100%}#addWordModal .modal-content,#editWordModal .modal-content{max-width:580px}#newWordTerm{flex:1}#autoFillWordDetailsBtn{white-space:nowrap;padding:.55rem .85rem;font-size:.82rem}#autoFillStatus{color:var(--accent-cyan);margin-top:.35rem;font-size:.75rem}#newWordTermRow{align-items:center;gap:.5rem;display:flex}#addWordPhoneticPosRow,#editWordPhoneticPosRow{grid-template-columns:1fr 1fr;gap:1rem;display:grid}#newWordExample1,#newWordExample2,#editWordExample1,#editWordExample2{margin-bottom:.5rem}#addWordTranslationsCard,#editWordTranslationsCard{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#1e293b80;margin-bottom:1.25rem;padding:1rem}#addWordTranslationsCard h4,#editWordTranslationsCard h4{color:var(--accent-cyan);margin-bottom:.75rem;font-size:.9rem}#addWordForm button[type=submit],#editWordTerm{width:100%}#editWordActions{gap:.75rem;display:flex}#cancelEditWordBtn,#editWordActions button[type=submit]{flex:1}#bulkImportModal .modal-card{width:95%}#bulkImportHeader{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}#bulkImportHeader h3{color:var(--accent-cyan);margin:0;font-size:1.25rem;font-weight:700}#bulkImportHeader p{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem}#bulkTargetDeckGroup{margin-bottom:1rem}#bulkTargetDeckGroup label{margin-bottom:.35rem;font-size:.88rem}#bulkTargetDeckRow{align-items:center;gap:.75rem;display:flex}#bulkTargetDeckSelect,#bulkNewDeckTitleInput{flex:1}#bulkInputTextareaGroup{margin-bottom:1.25rem}#bulkInputTextareaHeader{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}#bulkInputTextareaHeader label{margin:0;font-size:.88rem}#bulkInputMaxBadge{color:#a5b4fc;background:#6366f126;border-radius:4px;padding:.15rem .5rem;font-size:.78rem}#bulkStartProcessingBtn{width:100%;padding:.75rem;font-size:1rem}#bulkStep2{text-align:center;padding:3rem 1rem}#bulkStep2 .loading-spinner{margin:0 auto 1.25rem}#bulkLoadingTitle{color:#a5b4fc;margin-bottom:.35rem;font-size:1.1rem}#bulkLoadingStatus{color:var(--text-muted);font-size:.85rem}#bulkFilterAddRow{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}#bulkNotificationBanner{color:#fde047;border-radius:var(--radius-md);background:#eab30826;border:1px solid #eab3084d;margin-bottom:1rem;padding:.65rem 1rem;font-size:.85rem}#bulkTableActionHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}#bulkRowCountLabel{color:var(--text-muted);font-size:.9rem}#bulkAddBlankRowBtn{padding:.35rem .75rem;font-size:.82rem}#bulkStep3 .vocab-table-container{border:1px solid var(--border-color);border-radius:var(--radius-md);max-height:380px;margin-bottom:1.25rem;overflow-y:auto}#bulkStep3 .bulk-preview-table{border-collapse:collapse;width:100%}#bulkTableHeaderRow{z-index:5;background:#1e293be6;position:sticky;top:0}#bulkTableHeaderRow th{text-align:left;padding:.6rem .5rem;font-size:.78rem}#bulkTableHeaderRow th:last-child{text-align:center}#bulkStep3Footer{justify-content:flex-end;gap:.75rem;display:flex}#createClassFormFields,#bulkImportClassesFormFields{flex-direction:column;gap:.75rem;display:flex}#createClassModalActions,#deleteClassModalActions,#deleteProfileModalActions,#deleteDeckModalActions,#unassignDeckModalActions,#bulkImportClassesModalActions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}#createClassModal,#deleteClassModal{justify-content:center;align-items:center}#createClassModal .modal-card{width:95%;max-width:480px;padding:1.25rem}#classModalTitle{color:var(--text-main);margin:0 0 .75rem}#createClassFormFields label{color:var(--text-muted);font-size:.8rem}#classNameInput,#classDescriptionInput{width:100%;padding:.5rem}#classTeacherSelect{width:100%;margin-top:.35rem;padding:.5rem}#classTeacherPickerHint{color:var(--text-muted);margin-top:.2rem;font-size:.72rem}#classStudentPickerHint{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}#deleteClassModal .modal-card{width:95%;max-width:420px;padding:1.25rem}#deleteClassModal h3{color:var(--text-main);margin:0 0 .5rem}#deleteClassModal p{color:var(--text-muted);font-size:.85rem}#confirmDeleteBtn{background:var(--accent-red);border-color:var(--accent-red)}#deleteProfileModal,#unassignDeckModal{z-index:10005;justify-content:center;align-items:center}#deleteDeckModal{justify-content:center;align-items:center}#deleteProfileModal .modal-card{width:95%;max-width:460px;padding:1.25rem}#deleteDeckModal .modal-card,#unassignDeckModal .modal-card{width:95%;max-width:440px;padding:1.25rem}#deleteProfileTitle,#deleteDeckModal h3,#unassignDeckModal h3{color:var(--text-main);margin:0 0 .5rem}#deleteProfileMsg,#deleteDeckMsg,#unassignDeckMsg{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem;line-height:1.45}#deleteProfileName,#deleteDeckTitle,#unassignDeckTitle,#unassignClassName{color:var(--text-main);font-weight:600}#deleteProfileCollateral,#deleteDeckNote,#unassignDeckNote{color:var(--text-dim);border-radius:var(--radius-sm);background:#1e293b80;border:1px solid #ffffff0d;margin:0 0 1rem;padding:.5rem .75rem;font-size:.78rem;line-height:1.4}#deleteProfileReassignWrap{margin-bottom:1rem}#deleteProfileReassignWrap label{color:var(--text-main);margin-bottom:.35rem;font-size:.82rem;font-weight:600;display:block}#deleteProfileTeacherSelect{width:100%;padding:.5rem}#confirmDeleteProfileBtn,#confirmDeleteDeckBtn,#confirmUnassignDeckBtn{background:var(--accent-red);border-color:var(--accent-red)}#bulkImportClassesModal{justify-content:center;align-items:center}#bulkImportClassesModal .modal-card{width:95%;max-width:520px;padding:1.25rem}#bulkImportClassesModal h3{color:var(--text-main);margin:0 0 .75rem}#bulkImportClassesFormFields label{color:var(--text-muted);font-size:.8rem}#bulkClassTarget,#bulkNewClassName,#bulkTextArea{width:100%;padding:.5rem}#bulkNewClassWrap{margin-top:.5rem}#reportTranslationModal .modal-body .form-group{margin-top:1rem}.reading-dispatch-dialog{max-width:640px}.reading-dispatch-row{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.reading-dispatch-actions{gap:.5rem;margin:.75rem 0;display:flex}.reading-dispatch-note{background:#6366f11f;border-radius:8px;padding:.5rem .75rem;font-size:.9rem}.reading-dispatch-preview{max-height:45vh;overflow-y:auto}.reading-dispatch-preview select.cloze-select[disabled]{opacity:1}.reading-dispatch-glosses{color:var(--text-secondary);margin-top:.5rem;font-size:.9rem}.reading-dispatch-modes{gap:.5rem;margin-bottom:.75rem;display:flex}.reading-dispatch-mode-btn{border:1px solid var(--border-color,#94a3b840);color:var(--text-main,#f1f5f9);cursor:pointer;background:0 0;border-radius:6px;flex:1;padding:.4rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s}.reading-dispatch-mode-btn.active{background:var(--primary,#4f46e5);color:#fff;border-color:var(--primary,#4f46e5)}.reading-dispatch-edit-bar{gap:.5rem;margin:.5rem 0;display:flex}.reading-dispatch-edit-container{margin:.5rem 0}.reading-dispatch-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.reading-dispatch-questions{border-top:1px solid var(--border-color,#94a3b833);margin-top:1rem;padding-top:.75rem}.reading-dispatch-questions-title{margin-bottom:.5rem;font-size:.95rem;font-weight:600}.reading-dispatch-q-item{background:#94a3b814;border-radius:6px;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.875rem}.reading-dispatch-q-options{margin:.25rem 0 0;padding:0;list-style:none}.reading-dispatch-q-opt{color:var(--text-secondary,#94a3b8);padding:.15rem 0}.reading-dispatch-q-opt--correct{color:#10b981;font-weight:500}.toast-container{bottom:1.5rem;bottom:calc(1.5rem + env(safe-area-inset-bottom));right:1.5rem;right:calc(1.5rem + env(safe-area-inset-right));z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:.65rem;width:calc(100dvw - 3rem);max-width:400px;display:flex;position:fixed}.toast-banner{pointer-events:auto;background:var(--bg-modal);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-md);opacity:0;cursor:pointer;align-items:center;gap:.65rem;padding:.75rem 1.1rem;font-size:.88rem;font-weight:600;line-height:1.4;transition:opacity .25s,transform .25s;display:flex;transform:translateY(12px)scale(.96);box-shadow:0 10px 30px #00000080}.toast-banner.toast-show{opacity:1;transform:translateY(0)scale(1)}.toast-banner.toast-success{background:linear-gradient(#10b9812e, #10b9812e), var(--bg-modal);color:#6ee7b7;border-color:#10b98180}.toast-banner.toast-error{background:linear-gradient(#f43f5e2e, #f43f5e2e), var(--bg-modal);color:#fda4af;border-color:#f43f5e80}.toast-banner.toast-warning{background:linear-gradient(#f59e0b2e, #f59e0b2e), var(--bg-modal);color:#fef08a;border-color:#f59e0b80}.toast-banner.toast-info{border-color:var(--border-active);background:linear-gradient(#6366f12e, #6366f12e), var(--bg-modal);color:#a5b4fc}#toast{color:#fff;border:1px solid var(--border-color);z-index:9999;background:#0f172af2;border-radius:8px;padding:.75rem 1rem;position:fixed;bottom:1rem;right:1rem}.chat-layout{grid-template-columns:260px 1fr;align-items:stretch;gap:1rem;display:grid}.chat-conversations-panel,.chat-thread-panel{flex-direction:column;margin-bottom:0;display:flex}.chat-conversations-title{color:#a5b4fc;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem;font-size:.85rem;font-weight:700}.chat-conversations-footer{color:var(--text-dim);text-align:center;opacity:.85;margin-top:.75rem;font-size:.68rem}#chatList{flex-direction:column;flex:1;gap:.5rem;display:flex;overflow-y:auto}#chatView .chat-section-header,#chatView .section-header{display:none}.chat-search-wrap{width:100%;margin-top:0;margin-bottom:.55rem}#chatSearchInput.form-control,#chatSearchInput{appearance:none;width:100%;color:var(--text-main);box-sizing:border-box;background:#0f172ad9;border:1px solid #ffffff29;border-radius:10px;outline:none;padding:.5rem .85rem;font-size:.88rem;transition:all .2s;box-shadow:0 2px 8px #00000040}#chatSearchInput::-webkit-search-decoration{-webkit-appearance:none;display:none}#chatSearchInput::-webkit-search-cancel-button{-webkit-appearance:none;display:none}#chatSearchInput::-webkit-search-results-button{-webkit-appearance:none;display:none}#chatSearchInput::-webkit-search-results-decoration{-webkit-appearance:none;display:none}#chatSearchInput.form-control:focus,#chatSearchInput:focus{background:#0f172af2;border-color:#6366f1b3;outline:none;box-shadow:0 0 0 2px #6366f140}#chatView .chat-thread-header{display:none}.chat-thread-title-row{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}#chatThreadTitle{color:var(--text-main);margin:0;font-size:1rem;font-weight:600}#chatThreadSubtitle{color:var(--text-dim);font-size:.8rem;font-weight:400}#chatList .chat-list-item:hover{border-color:var(--primary-glow)!important;background:#ffffff14!important}#chatThread{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex-direction:column;flex:1;padding-right:.25rem;display:flex;overflow-y:auto}#chatThread::-webkit-scrollbar{width:6px}#chatThread::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.chat-list-item{border:1px solid var(--border-color);cursor:pointer;text-align:left;width:100%;font-family:var(--font-main);background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;padding:.5rem .85rem;transition:all .2s;display:flex}#chatList .chat-list-item--active,.chat-list-item--active{border-color:var(--border-active)!important;background:#6366f12e!important}.chat-list-item-main{color:var(--text-main);align-items:center;gap:.5rem;min-width:0;font-size:.9rem;display:flex}.chat-list-item-flag{flex-shrink:0;font-size:1.15rem;line-height:1}.chat-list-item-info{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.15;display:inline-flex}.chat-list-item-name{color:var(--text-main);white-space:nowrap;font-size:.86rem;font-weight:600}.chat-list-item-subtitle{color:var(--text-dim,var(--text-muted));text-transform:capitalize;white-space:nowrap;margin-top:1px;font-size:.68rem;font-weight:400}#chatList .chat-list-item--active .chat-list-item-name{color:#fff}#chatList .chat-list-item--active .chat-list-item-subtitle{color:#ffffffd9}.chat-unread-badge{background:var(--accent-rose);color:#fff;font-size:var(--fs-xs);border-radius:10px;padding:.15rem .45rem;font-weight:700;line-height:1}.chat-bubble{border-radius:14px;max-width:78%;margin-bottom:.6rem;padding:.65rem .9rem;font-size:.88rem;line-height:1.45;box-shadow:0 2px 8px #0000002e}.chat-bubble--system{color:#c7d2fe;text-align:center;background:#6366f11f;border:1px solid #6366f140;border-radius:10px;align-self:center;font-size:.82rem}.chat-bubble--me{background:var(--primary);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}.chat-bubble--them{border:1px solid var(--border-color);color:var(--text-main);background:#ffffff12;border-bottom-left-radius:3px;align-self:flex-start}.chat-bubble-text{white-space:pre-wrap;word-break:break-word}.chat-bubble-meta{font-size:var(--fs-xs);opacity:.7;text-align:right;margin-top:.25rem}.chat-empty{color:var(--text-dim);text-align:center;padding:1.5rem 1rem;font-size:.82rem}.chat-empty--thread{padding:2.5rem 1rem;font-style:italic}#chatComposerForm{border-top:1px solid var(--border-color);gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}#chatComposerInput{flex:1}#chatSendBtn{white-space:nowrap;padding:.6rem 1.1rem}.chat-send-btn-icon{display:none}@media (width<=768px){.main-container:has(#chatView:not([hidden])){padding-top:.35rem;padding-bottom:0}#chatView{overscroll-behavior:none;box-sizing:border-box;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;overflow:hidden}#chatView .chat-layout{overscroll-behavior:none;grid-template-columns:1fr;gap:.35rem;min-height:auto;overflow-x:hidden}#chatView .chat-conversations-panel,#chatListAside.chat-conversations-panel{box-shadow:none;background:0 0;border:none;margin-bottom:.15rem;padding:0}#chatListAside .chat-conversations-title,#chatListAside .chat-conversations-footer{display:none}#chatListAside .chat-search-wrap,#chatView .chat-search-wrap{margin-top:0;margin-bottom:.35rem}#chatView #chatList{overscroll-behavior-x:contain;overscroll-behavior-y:none;border:1px solid var(--border-color);-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#0f172a99;border-radius:9999px;flex-direction:row;gap:.4rem;padding:3px;overflow:auto hidden}#chatList::-webkit-scrollbar{display:none}#chatList .chat-list-item{white-space:nowrap;text-align:left;flex:none;font-size:.84rem;background:0 0!important;border:none!important;border-radius:9999px!important;justify-content:center!important;width:auto!important;padding:.35rem .8rem!important}#chatList:has(>.chat-list-item:nth-child(2):last-child) .chat-list-item{flex:1 1 0;min-width:0}#chatList .chat-list-item-main{gap:.4rem;min-width:0}#chatList .chat-list-item-name,#chatList .chat-list-item-subtitle{text-overflow:ellipsis;white-space:nowrap;max-width:8.5rem;overflow:hidden}#chatList .chat-list-item--active{color:#fff;font-weight:700;box-shadow:0 0 12px #6366f166;background:var(--primary)!important}#chatList .chat-list-item--active .chat-list-item-main{color:#fff}#chatView .chat-thread-panel{height:calc(100dvh - var(--chat-panel-offset,220px));overscroll-behavior:contain;overscroll-behavior-y:contain;flex-direction:column;min-height:200px;margin-bottom:0;padding:.5rem .75rem .4rem;display:flex;overflow-x:hidden}#chatView #chatThread{overscroll-behavior:contain;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:auto;height:auto;max-height:none;padding-right:.2rem;overflow:hidden auto}#chatListAside #chatSearchInput,#chatView #chatSearchInput{appearance:none;background:#0f172ad9;border:1px solid #ffffff29;border-radius:10px;outline:none;min-height:38px;font-size:16px;box-shadow:0 2px 8px #00000040}#chatView #chatComposerForm{padding-top:.35rem;padding-bottom:.25rem;padding-left:calc(.25rem + env(safe-area-inset-left));padding-right:calc(.25rem + env(safe-area-inset-right));align-items:center;gap:.4rem;margin-top:.35rem;margin-bottom:0}#chatComposerForm #chatComposerInput{box-sizing:border-box;border-radius:9999px;height:36px;min-height:36px;padding:.45rem .9rem;font-size:16px}#chatComposerForm #chatSendBtn,#chatSendBtn.chat-send-btn{background:var(--primary);width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;max-height:36px;box-shadow:0 2px 8px var(--primary-glow);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:transform .15s,background .15s;display:inline-flex}#chatSendBtn .chat-send-btn-text{display:none}#chatSendBtn .chat-send-btn-icon{width:15px;height:15px;display:block}}.chat-action-btn{color:#e0e7ff;cursor:pointer;background:linear-gradient(135deg,#6366f138,#818cf824);border:1px solid #6366f161;border-radius:9999px;align-items:center;gap:.4rem;margin:.35rem 0;padding:.4rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 8px #00000026}.chat-action-btn:hover{background:linear-gradient(135deg, var(--primary-glow), #818cf840);color:#fff;border-color:#818cf899;transform:translateY(-1px);box-shadow:0 4px 14px #6366f14d}.chat-action-btn:focus-visible{outline-offset:2px;outline:2px solid #818cf8}.chat-action-btn:active{transform:scale(.97)}.chat-composer-note{border-top:1px solid var(--border-color);margin-top:.75rem;padding:.75rem 1rem .25rem;font-style:italic}.chat-thread-empty{color:var(--text-dim);text-align:center;padding:2rem;font-size:.8rem}.word-companion-help-btn{color:var(--text-dim);opacity:.7;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:3.5px;padding:.15rem;line-height:1;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:.5rem;right:.6rem}.word-companion-help-btn:hover{opacity:1;color:#a5b4fc;transform:translateY(-1px)}.word-companion-help-icon{font-size:1rem;line-height:1;display:block}.word-companion-help-label{letter-spacing:.08em;text-transform:lowercase;opacity:.9;padding-left:1.5px;font-size:.46rem;font-weight:700;line-height:1}.word-companion-tip{color:var(--text-dim);opacity:.55;text-transform:none;letter-spacing:.02em;margin-left:.35rem;font-size:.7rem;font-style:italic;font-weight:400}.word-companion-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.word-companion-toggle{color:var(--text-muted);margin-left:auto;font-size:1.1rem;font-weight:700;line-height:1;transition:transform .25s cubic-bezier(.4,0,.2,1),color .2s;display:inline-block}.word-companion-section-header:hover .word-companion-toggle{color:var(--text-main)}.word-companion-section.is-open .word-companion-toggle{color:var(--text-main);transform:rotate(90deg)}.word-companion-section-body{margin-top:.6rem;display:none}.word-companion-section.is-open .word-companion-section-body{display:block}.word-companion-section-loading{color:var(--text-muted);padding:.4rem 0;font-size:.82rem}.word-companion-section-error{margin-top:.5rem}#wordCompanionModal .modal-content{background:#0f172afa;max-width:640px;max-height:90dvh;overflow-y:auto}.word-companion-modal-header{border-bottom:1px solid var(--border-color);grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;display:grid}.word-companion-brand{font-family:var(--font-display);color:#38bdf8;background:linear-gradient(135deg,#818cf8 0%,#38bdf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;justify-self:start;font-size:1.15rem;font-style:italic;font-weight:800}.word-companion-target-lexis{font-family:var(--font-main);color:var(--text-main);text-align:center;justify-self:center;font-size:1.15rem;font-weight:400}.word-companion-modal-header .modal-close{justify-self:end}#wordCompanionBody{padding:.5rem 0}@media (width<=768px){#wordCompanionModal{padding:.5rem;padding-top:max(.75rem, env(safe-area-inset-top));padding-bottom:max(.75rem, env(safe-area-inset-bottom));align-items:center}#wordCompanionModal .modal-content{flex-direction:column;width:98%;height:88dvh;max-height:88dvh;padding:.75rem;display:flex;overflow:hidden}.word-companion-modal-header{flex-shrink:0;grid-template-columns:auto 1fr auto;gap:.35rem;margin-bottom:.5rem;padding-bottom:.5rem}#wordCompanionBody{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:visible}#wordCompanionContent{flex-direction:column;flex:1;min-height:0;display:flex}.word-companion-brand,.word-companion-target-lexis{font-size:.95rem}.word-companion-section{flex-shrink:0;margin-bottom:.5rem;padding:.45rem .65rem}.word-companion-section.is-collapsed{padding:.4rem .65rem}.word-companion-section h4{margin:0;font-size:.76rem;line-height:1.2}.word-companion-section.is-open h4{margin-bottom:.4rem}.word-companion-section-body{margin-top:.4rem}.word-companion-chat{flex-direction:column;flex:1;min-height:0;margin-top:.5rem;padding:.65rem;display:flex}.word-companion-chat h4{flex-shrink:0;margin:0 0 .5rem}.word-companion-chat-history{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:140px;max-height:none;margin-bottom:.5rem;padding:.45rem;overflow-y:auto}.word-companion-chat-form{flex-shrink:0}}.word-companion-section{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#1e293b8c;margin-bottom:1rem;padding:1rem 1.1rem;box-shadow:0 2px 8px #0003}.word-companion-section:first-child{border-left:3px solid #a5b4fc}.word-companion-section:nth-child(2){background:#10b9810f;border-left:3px solid #6ee7b7}.word-companion-section:nth-child(3){border-left:3px solid var(--accent-amber);background:#f59e0b0f}.word-companion-section h4{color:#a5b4fc;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;margin:0 0 .6rem;font-size:.78rem;font-weight:700;display:flex}.word-companion-section:nth-child(2) h4{color:#6ee7b7}.word-companion-section:nth-child(3) h4{color:var(--accent-amber)}.word-companion-section p,.word-companion-section li{color:var(--text-main);font-size:.88rem;line-height:1.6}.word-companion-sentences{margin:0;padding-left:1.2rem}.word-companion-sentences li{margin-bottom:.5rem;padding-left:.2rem}.word-companion-sentences li::marker{color:#a5b4fc}.word-companion-chat{border-radius:var(--radius-md);border-top:1px solid #ffffff0f;border:1px solid var(--border-color);background:#0f172a59;margin-top:1rem;padding:1rem}.word-companion-chat h4{color:#a5b4fc;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;margin:0 0 .75rem;font-size:.78rem;font-weight:700;display:flex}.word-companion-chat-history{overscroll-behavior:contain;border-radius:var(--radius-md);background:#00000026;border:1px solid #ffffff0a;flex-direction:column;gap:.6rem;min-height:60px;max-height:180px;margin-bottom:.75rem;padding:.5rem;display:flex;overflow-y:auto}.wc-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}.word-companion-chat-history:empty:before{content:"Ask about this word — e.g. 'Can I use this with my boss?'";color:var(--text-dim);text-align:center;opacity:.6;padding:1rem;font-size:.78rem;font-style:italic}.word-companion-chat-bubble{border-radius:14px;max-width:82%;padding:.6rem .75rem;font-size:.82rem;line-height:1.5;box-shadow:0 1px 4px #00000026}.word-companion-chat-bubble.user{background:linear-gradient(135deg, var(--primary) 0%, #8b5cf6 100%);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.word-companion-chat-bubble.assistant{color:var(--text-main);background:#1e293be6;border:1px solid #6366f133;border-bottom-left-radius:4px;align-self:flex-start}.word-companion-chat-form{border:1px solid var(--border-color);background:#1e293bb3;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .35rem .25rem .75rem;display:flex}.word-companion-chat-form input{min-width:0;color:var(--text-main);background:0 0;border:none;outline:none;flex:1;padding:.45rem .25rem;font-size:.85rem}.word-companion-chat-form input::placeholder{color:var(--text-dim);opacity:.7}.word-companion-chat-form button,.word-companion-send-circle-btn{background:linear-gradient(135deg, var(--primary) 0%, #8b5cf6 100%);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #6366f166}.word-companion-chat-form button:hover,.word-companion-send-circle-btn:hover{background:linear-gradient(135deg, var(--primary-hover) 0%, #7c3aed 100%);transform:scale(1.06);box-shadow:0 0 12px #a855f799}.word-companion-chat-form button:disabled,.word-companion-send-circle-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.word-companion-limit-note{color:var(--text-dim);text-align:center;opacity:.8;margin-top:.5rem;font-size:.68rem}@media (width<=768px){.word-companion-chat-form input{font-size:16px}.word-companion-chat-form button,.word-companion-send-circle-btn{width:44px;min-width:44px;height:44px;min-height:44px}}@media (pointer:coarse){.word-companion-chat-form button,.word-companion-send-circle-btn{min-width:44px;min-height:44px}}.word-companion-chat-bubble.typing-indicator-bubble{color:var(--text-muted);border:1px dashed var(--primary-glow);background:#1e293bb3;align-items:center;gap:.35rem;padding:.55rem .8rem;font-size:.8rem;font-style:italic;display:flex}.typing-dots{gap:2px;display:inline-flex}.typing-dots span{color:#a5b4fc;font-size:.95rem;font-weight:800;animation:1.4s infinite both typingBlink}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBlink{0%{opacity:.2;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}to{opacity:.2;transform:translateY(0)}}#wordCompanionLoading{text-align:center;color:var(--text-muted);padding:2rem 1rem}#wordCompanionLoading .loading-spinner{margin:0 auto .75rem}#wordCompanionLoading p{font-size:.9rem}.word-companion-section-loading .loading-spinner{vertical-align:middle;width:14px;height:14px;margin-right:.4rem;display:inline-block}.word-companion-section-error span{color:var(--accent-rose);font-size:.82rem}.word-companion-section-error button{padding:.15rem .4rem;font-size:.72rem}#wordCompanionError{text-align:center;color:var(--accent-rose);padding:1rem}.wc-bubble-text{white-space:pre-wrap;word-break:break-word}#studentGrammarSection{animation:.3s cubic-bezier(.16,1,.3,1) grammarFadeIn}.grammar-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.grammar-filter-toggle{box-sizing:border-box;-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md,12px);border:1px solid var(--border-color);background:#0f172abf;align-items:center;gap:4px;width:100%;padding:4px;display:flex;box-shadow:0 4px 16px #0003}.grammar-toggle-btn{min-width:0;color:var(--text-muted,var(--text-muted));cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;background:0 0;border:1px solid #0000;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:.45rem .95rem;font-size:.88rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.grammar-toggle-btn:hover{color:#f1f5f9;background:#ffffff0f}.grammar-toggle-btn.active{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#fff;border-color:#fff3;font-weight:700;box-shadow:0 2px 10px #6366f166}.grammar-filter-count{min-width:1.25rem;height:1.25rem;font-size:var(--fs-xs);color:inherit;background:#0000004d;border-radius:999px;justify-content:center;align-items:center;padding:0 .35rem;font-weight:700;display:inline-flex}.grammar-toggle-btn.active .grammar-filter-count{color:#fff;background:#ffffff40}.grammar-filter-empty-state{text-align:center;border:1px dashed var(--border-color,#ffffff1f);border-radius:var(--radius-md,12px);-webkit-backdrop-filter:blur(8px);background:#0f172a80;flex-direction:column;justify-content:center;align-items:center;padding:3rem 1.5rem;display:flex}@keyframes grammarFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.grammar-progress-tracker{-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-md,14px);text-align:center;background:#1e293ba6;border:1px solid #6366f138;flex-direction:column;align-items:center;gap:6px;margin-bottom:.95rem;padding:.95rem 1.25rem;animation:.3s cubic-bezier(.16,1,.3,1) grammarFadeIn;display:flex;box-shadow:0 4px 14px #00000026}.grammar-progress-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;display:flex}.grammar-progress-label{color:#f1f5f9;text-align:center;justify-content:center;align-items:center;gap:6px;font-size:.95rem;font-weight:700;display:inline-flex}.grammar-progress-proximity{color:#a5b4fc;text-align:center;font-size:.82rem;font-weight:600;display:block}.grammar-progress-bar-track{background:#0f172a99;border:1px solid #ffffff0d;border-radius:999px;width:100%;height:8px;margin-top:2px;position:relative;overflow:hidden}.grammar-progress-bar-fill{background:linear-gradient(90deg, var(--primary) 0%, var(--accent-purple) 50%, #ec4899 100%);border-radius:999px;width:0%;height:100%;transition:width .4s cubic-bezier(.16,1,.3,1);box-shadow:0 0 10px #a855f780}.grammar-progress-bar-fill.complete{background:linear-gradient(90deg, var(--accent-emerald) 0%, #34d399 100%);box-shadow:0 0 10px #10b98180}.grammar-weekly-streak-bar{border-radius:var(--radius-md,14px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(135deg,#6366f126 0%,#10b9811a 100%);border:1px solid #6366f14d;align-items:center;gap:12px;margin-bottom:1rem;padding:.85rem 1.2rem;display:flex;box-shadow:0 4px 16px #6366f11f}.grammar-streak-icon{color:#fbbf24;filter:drop-shadow(0 0 8px #fbbf24a6);flex-shrink:0;font-size:1.35rem}.grammar-streak-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.grammar-streak-title{color:#f1f5f9;font-size:.92rem;font-weight:600;line-height:1.3}.grammar-streak-title strong{font-family:var(--font-display,"Outfit", sans-serif);color:#a5b4fc;margin-right:.25rem;font-size:1.05rem;font-weight:800}.grammar-streak-highlight{color:#fcd34d;font-size:.84rem;font-weight:700;line-height:1.2}#studentGrammarList{flex-direction:column;gap:12px;margin-top:.5rem;display:flex}.grammar-assignment-card{-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color,#ffffff14);border-radius:var(--radius-md,14px);cursor:pointer;text-align:left;background:linear-gradient(135deg,#151e30b3 0%,#0f172acc 100%);flex-direction:column;align-items:stretch;gap:10px;width:100%;padding:1.1rem 1.35rem;transition:all .22s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000040}.grammar-assignment-card:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(65deg,#0000 20%,#ffffff0a 35%,#6366f11f 45%,#10b9811a 55%,#06b6d414 65%,#0000 80%);width:220%;height:220%;transition:opacity .4s,transform .6s cubic-bezier(.16,1,.3,1);position:absolute;top:-60%;left:-60%;transform:rotate(20deg)translateY(-25%)}.grammar-assignment-card:hover:after{opacity:1;transform:rotate(20deg)translateY(0%)}.grammar-assignment-card:hover{border-color:var(--border-active);box-shadow:0 12px 32px -4px #6366f14d, 0 0 0 1px var(--primary-glow);background:linear-gradient(135deg,#1e2a44e0 0%,#151e30f5 100%);transform:translateY(-3px)}.grammar-assignment-card:before{content:"";background:0 0;width:4px;transition:all .22s;position:absolute;top:0;bottom:0;left:0}.grammar-assignment-card[data-status=new]:before{background:linear-gradient(to bottom, #818cf8, var(--primary));box-shadow:0 0 12px #6366f1cc}.grammar-assignment-card[data-status=started]:before{background:linear-gradient(to bottom, #fbbf24, var(--accent-amber));box-shadow:0 0 12px #f59e0bcc}.grammar-assignment-card[data-status=submitted]:before{background:linear-gradient(to bottom, #34d399, var(--accent-emerald));box-shadow:0 0 12px #10b981cc}.grammar-assignment-card[data-status=marked]:before{background:linear-gradient(#a78bfa,#8b5cf6);box-shadow:0 0 12px #8b5cf6cc}.grammar-card-top-row{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.grammar-card-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grammar-card-unit-badge{color:#cbd5e1;background:#ffffff12;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:4px;padding:3px 9px;font-size:.74rem;font-weight:600;display:inline-flex}.grammar-card-arrow{color:#818cf8;opacity:.85;margin-left:auto;font-size:1.15rem;font-weight:700;transition:transform .2s,color .2s}.grammar-assignment-card:hover .grammar-card-arrow{color:#c7d2fe;opacity:1;transform:translate(4px)}.grammar-card-main{flex-direction:column;gap:6px;width:100%;display:flex}.grammar-card-title{font-family:var(--font-display,"Outfit", sans-serif);color:var(--text-main,var(--text-main));letter-spacing:-.01em;word-break:break-word;font-size:1.08rem;font-weight:700;line-height:1.35}.grammar-card-focus{color:#c7d2fe;word-break:break-word;background:#6366f11f;border:1px solid #6366f138;border-radius:6px;align-items:center;gap:5px;width:fit-content;max-width:100%;padding:3px 9px;font-size:.8rem;font-weight:500;display:inline-flex}.grammar-focus-icon{color:#fbbf24;font-size:.85rem}.grammar-card-meta{flex-direction:column;gap:6px;width:100%;display:flex}.grammar-card-meta-row{color:var(--text-muted,var(--text-muted));border-top:1px solid #ffffff0d;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;padding-top:6px;font-size:.78rem;display:flex}.grammar-meta-item{align-items:center;gap:4px;display:inline-flex}.grammar-meta-dot{color:#ffffff40;-webkit-user-select:none;user-select:none;font-size:.7rem}.grammar-card-score{border:1px solid var(--border-color);background:#00000059;border-radius:9999px;align-items:center;gap:4px;padding:3px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.grammar-status-badge{text-transform:capitalize;letter-spacing:.02em;border-radius:9999px;align-items:center;gap:5px;padding:3px 10px;font-size:.75rem;font-weight:700;transition:all .2s;display:inline-flex}.grammar-status-badge--new{color:#a5b4fc;border:1px solid var(--primary-glow);background:#6366f129;box-shadow:0 0 10px #6366f133}.grammar-status-badge--started{color:#fcd34d;background:#f59e0b26;border:1px solid #f59e0b59}.grammar-status-badge--submitted{color:#6ee7b7;background:#10b98126;border:1px solid #10b98159;box-shadow:0 0 10px #10b98126}.grammar-status-badge--marked{color:#c4b5fd;background:#8b5cf626;border:1px solid #8b5cf659}.grammar-empty-state{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-lg,20px);background:linear-gradient(135deg,#151e3080 0%,#0f172a99 100%);border:1px dashed #ffffff1f;margin:1rem 0;padding:3.5rem 1.5rem}.grammar-empty-icon{margin-bottom:.85rem;font-size:2.8rem;animation:3s ease-in-out infinite grammarFloat;display:inline-block}@keyframes grammarFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.grammar-empty-title{font-family:var(--font-display,"Outfit", sans-serif);color:var(--text-main);margin-bottom:.4rem;font-size:1.25rem;font-weight:700}.grammar-empty-desc{color:var(--text-muted,var(--text-muted));max-width:440px;margin:0 auto;font-size:.9rem;line-height:1.5}.grammar-detail-topbar{z-index:10;-webkit-backdrop-filter:blur(12px);background:0 0;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:12px;margin-bottom:1.25rem;padding:.75rem 0;display:flex;position:sticky;top:0}.grammar-back-button{border-radius:var(--radius-sm,10px);-webkit-backdrop-filter:blur(10px);color:var(--text-main,var(--text-main));cursor:pointer;font-size:.88rem;font-weight:600;font-family:var(--font-main);background:linear-gradient(135deg,#ffffff14 0%,#ffffff08 100%);border:1px solid #ffffff24;align-items:center;gap:8px;padding:8px 16px;transition:all .22s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 10px #00000026}.grammar-back-button:hover{color:#fff;background:linear-gradient(135deg,#6366f140 0%,#6366f11f 100%);border-color:#6366f173;transform:translate(-3px);box-shadow:0 4px 16px #6366f14d}.grammar-progress-pill{color:#d8b4fe;background:#a855f724;border:1px solid #a855f766;border-radius:9999px;align-items:center;gap:6px;padding:5px 14px;font-size:.82rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 0 12px #a855f733}.grammar-detail-header{margin-bottom:1.25rem}.grammar-detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.grammar-detail-heading{font-family:var(--font-display,"Outfit", sans-serif);color:#fff;letter-spacing:-.015em;margin:0;font-size:1.45rem;font-weight:800}.grammar-detail-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.grammar-progress-row{align-items:center;margin-top:.65rem;display:flex}.grammar-tag{font-size:var(--fs-xs);color:#cbd5e1;border:1px solid var(--border-color,#ffffff14);background:#1e293b80;border-radius:6px;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.grammar-instruction-banner,.grammar-preview-banner{display:none!important}@media (width<=768px){.grammar-section-header .grammar-section-desc,.grammar-section-desc{display:none}.grammar-submit-footer{flex-direction:column;align-items:stretch}.grammar-footer-actions{flex-direction:column;align-items:stretch;width:100%}#grammarResetBtn,#grammarSubmitBtn{justify-content:center;width:100%;min-height:48px}}#grammarDetailBody{-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg,20px);min-height:440px;box-shadow:var(--shadow-card,0 12px 32px 0 #0000005e);background:linear-gradient(135deg,#151e30a6 0%,#0f172abf 100%);padding:2rem 2.2rem}@media (width<=768px){#grammarDetailBody{padding:1.25rem 1rem}}.type1-paragraph,.type2-paragraph,.type3-paragraph,.type4-paragraph,.type5-paragraph,.type6-paragraph,#grammarDetailBody p,#grammarDetailBody .paragraph-row{color:#e2e8f0;letter-spacing:.01em;margin-bottom:.85rem;font-size:1.02rem;line-height:1.75!important}select.gap-select{appearance:none;color:#cbd5e1;font-family:var(--font-main);border-radius:var(--radius-sm,8px);cursor:pointer;vertical-align:middle;background:#0f172ae0 url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a855f7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;border:1.5px dashed #a855f78c;outline:none;max-width:100%;min-height:40px;margin:.15rem .35rem;padding:.5rem 1.9rem .5rem .8rem;font-size:.92rem;font-weight:600;transition:all .22s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #00000040}@media (pointer:coarse){select.gap-select{min-height:44px;margin:4px;padding:8px 32px 8px 14px}}select.gap-select:hover{box-shadow:0 0 12px var(--accent-purple-glow);color:#fff;background-color:#1e293bf2;border-style:solid;border-color:#c084fc}select.gap-select:focus{border-style:solid;border-color:var(--accent-purple);background-color:#1e293bf2;box-shadow:0 0 0 3px #a855f759}select.gap-select.gap-select--filled,select.gap-select[data-filled=true]{border-style:solid;border-color:var(--accent-purple);color:#fff;box-shadow:0 0 12px var(--accent-purple-glow), 0 2px 6px #0000004d;background:#1a152eeb url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c084fc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;font-weight:700}select.gap-select:has(option:checked:not([value=""])){border-style:solid;border-color:var(--accent-purple);color:#fff;box-shadow:0 0 12px var(--accent-purple-glow), 0 2px 6px #0000004d;background:#1a152eeb url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c084fc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;font-weight:700}select.gap-select.gap-select--unfilled,select.gap-select[data-filled=false]{color:var(--text-muted);border-style:dashed;border-color:#a855f78c}#grammarDetailBody select.gap-select.gap-select--example,#grammarDetailBody select.gap-select:disabled,select.gap-select.gap-select--example,select.gap-select:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.85;background:#1e293b73;border:1px dashed #ffffff40}.type1-bank,.type5-bank{border:1px solid var(--accent-purple-glow)!important;border-radius:var(--radius-md,12px)!important;background:#0f172aa6!important;gap:10px!important;margin-bottom:1.5rem!important;padding:.9rem 1.1rem!important;box-shadow:inset 0 2px 8px #0000004d!important}.type1-chip,.type5-token{font-family:var(--font-main);cursor:pointer;justify-content:center;align-items:center;min-height:40px;font-weight:600;display:inline-flex;color:#f1f5f9!important;background:linear-gradient(135deg,#1e293be6 0%,#0f172ae6 100%)!important;border:1px solid #ffffff1f!important;border-radius:9999px!important;padding:8px 16px!important;font-size:.88rem!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.type1-chip:hover,.type5-token:hover{transform:translateY(-2px);box-shadow:0 6px 16px #a855f759;color:#fff!important;background:#a855f740!important;border-color:#c084fc!important}@media (pointer:coarse){.type1-bank,.type5-bank{gap:12px!important}.type1-chip,.type5-token{justify-content:center;align-items:center;min-height:44px;display:inline-flex;padding:10px 18px!important}}.type2-wordtransform input[type=text],.grammar-input{font-family:var(--font-main);outline:none;font-size:.92rem;font-weight:600;transition:all .22s;color:#cbd5e1!important;border-radius:var(--radius-sm,8px)!important;background:#0f172ad9!important;border:1.5px dashed #a855f780!important;padding:6px 12px!important}.type2-wordtransform input[type=text]:focus,.grammar-input:focus{border-style:solid!important;border-color:var(--accent-purple)!important;color:#fff!important;background:#1a152ef2!important;box-shadow:0 0 0 3px #a855f759!important}.type2-wordtransform input[type=text].grammar-input--filled,.type2-wordtransform input[type=text][data-filled=true],.grammar-input--filled{border-style:solid!important;border-color:var(--accent-purple)!important;color:#fff!important;box-shadow:0 0 12px var(--accent-purple-glow)!important;background:#1a152eeb!important;font-weight:700!important}.type2-wordtransform span[style*=background]{font-weight:700;border:1px solid var(--accent-purple-glow)!important;color:#d8b4fe!important;background:#a855f724!important;border-radius:6px!important;padding:2px 8px!important}.grammar-card-status{font-size:var(--fs-xs);letter-spacing:.02em;border-radius:9999px;align-items:center;gap:4px;margin-left:auto;padding:2px 10px;font-weight:700;transition:all .22s;display:inline-flex}.grammar-card-status--unfilled{color:var(--text-muted);background:#94a3b81f;border:1px dashed #94a3b859}.grammar-card-status--filled{color:#e9d5ff;box-shadow:0 0 10px var(--accent-purple-glow);background:#a855f733;border:1px solid #a855f78c}.type3-freewriting div[data-gradable=true],.type5-sentencebuilder div[data-gap-id],.type6-guidedsentence div[data-gap-id]{transition:all .25s;border-radius:var(--radius-md,12px)!important;color:var(--text-main)!important;background:#0f172a99!important;border:1.5px dashed #a855f759!important}.type3-freewriting div[data-gradable=true].grammar-card--filled,.type5-sentencebuilder div[data-gap-id].grammar-card--filled,.type6-guidedsentence div[data-gap-id].grammar-card--filled{background:#141226d1!important;border-style:solid!important;border-color:#a855f7bf!important;box-shadow:0 4px 20px #a855f72e!important}.type3-freewriting textarea,.type6-guidedsentence textarea,.type5-sentencebuilder input[type=text],.type6-guidedsentence input[type=text]{font-family:var(--font-main);transition:all .22s;color:#cbd5e1!important;border-radius:var(--radius-sm,8px)!important;background:#0b0f19cc!important;border:1.5px dashed #a855f773!important;padding:10px 12px!important}.type3-freewriting textarea:focus,.type6-guidedsentence textarea:focus,.type5-sentencebuilder input[type=text]:focus,.type6-guidedsentence input[type=text]:focus{border-style:solid!important;border-color:var(--accent-purple)!important;color:#fff!important;background:#141226f2!important;box-shadow:0 0 0 3px #a855f759!important}.type3-freewriting textarea.grammar-input--filled,.type6-guidedsentence textarea.grammar-input--filled,.type5-sentencebuilder input[type=text].grammar-input--filled,.type6-guidedsentence input[type=text].grammar-input--filled{border-style:solid!important;border-color:var(--accent-purple)!important;color:#fff!important;background:#141226eb!important;box-shadow:0 0 12px #a855f740!important}.grammar-submit-footer{bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom));margin-left:env(safe-area-inset-left);margin-right:env(safe-area-inset-right);z-index:10;-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-md,12px);background:#0f172aeb;border:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:1.5rem;padding:14px 20px;display:flex;position:sticky;box-shadow:0 10px 30px #00000073}.grammar-footer-hint{color:var(--text-muted,var(--text-muted));align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.grammar-footer-actions{align-items:center;gap:10px;display:flex}#grammarResetBtn{border-radius:var(--radius-sm,8px);color:#cbd5e1;font-family:var(--font-main);cursor:pointer;background:#1e293bb3;border:1px solid #ffffff26;padding:8px 18px;font-size:.88rem;font-weight:600;transition:all .2s}#grammarResetBtn:hover{color:#fca5a5;background:#ef444426;border-color:#ef444466}#grammarSubmitBtn{border-radius:var(--radius-sm,8px);background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#fff;font-family:var(--font-main);cursor:pointer;box-shadow:0 4px 16px var(--primary-glow);border:1px solid #ffffff26;align-items:center;gap:8px;padding:9px 24px;font-size:.92rem;font-weight:700;transition:all .22s cubic-bezier(.4,0,.2,1);display:inline-flex}#grammarSubmitBtn:hover:not(:disabled){background:linear-gradient(135deg, var(--primary-hover) 0%, #4338ca 100%);box-shadow:0 8px 24px var(--border-active);transform:translateY(-2px)}#grammarSubmitBtn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;background:#6366f14d;border-color:#0000;transform:none}#grammarSubmitFooter #grammarSubmitBtn.btn-ready-shimmer,#grammarSubmitBtn.btn-ready-shimmer{background:linear-gradient(90deg, var(--primary) 0%, var(--accent-purple) 25%, #ec4899 50%, var(--accent-purple) 75%, var(--primary) 100%);color:#fff;cursor:pointer;background-size:200%;border:1px solid #ffffff4d;font-weight:700;animation:3.2s linear infinite btnShimmerSweep,2.4s ease-in-out infinite btnReadyPulse}#grammarSubmitFooter #grammarSubmitBtn.btn-ready-shimmer:hover,#grammarSubmitBtn.btn-ready-shimmer:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 0 28px #a855f7e6,0 8px 28px #ec489980}.grammar-result-card{scroll-margin-top:max(4.75rem, calc(env(safe-area-inset-top,0px) + 3.75rem));-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg,16px);box-shadow:0 12px 36px -4px var(--accent-emerald-glow), 0 0 20px #06b6d426;background:radial-gradient(circle at 10% 20%,#10b98138 0%,#06b6d41a 45%,#0f172ad9 100%);border:1.5px solid #10b98173;flex-direction:column;gap:12px;margin-bottom:1.5rem;padding:1.35rem 1.65rem;animation:.4s cubic-bezier(.16,1,.3,1) grammarPopIn;display:flex}@keyframes grammarPopIn{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.grammar-result-celebration{align-items:center;gap:14px;display:flex}.grammar-result-icon{filter:drop-shadow(0 2px 8px #10b98166);font-size:2.2rem;line-height:1;animation:2.5s ease-in-out infinite grammarBounce}@keyframes grammarBounce{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-4px)rotate(-6deg)}60%{transform:translateY(-2px)rotate(6deg)}}.grammar-result-title{font-family:var(--font-display,"Outfit", sans-serif);color:#6ee7b7;letter-spacing:-.01em;margin:0 0 2px;font-size:1.25rem;font-weight:800}.grammar-result-subtitle{color:var(--text-muted,var(--text-muted));margin:0;font-size:.88rem}.grammar-result-stats{border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:12px;padding-top:8px;display:flex}.grammar-score-pill{font-family:var(--font-display,"Outfit", sans-serif);color:#fff;background:linear-gradient(135deg, var(--accent-emerald-glow) 0%, #06b6d42e 100%);border:1.5px solid #10b98173;border-radius:9999px;align-items:center;gap:8px;padding:6px 16px;font-size:1.05rem;font-weight:800;display:inline-flex;box-shadow:0 4px 14px #10b98133}.grammar-score-label{color:#a7f3d0;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.grammar-provisional-note{color:#fcd34d;background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:9999px;align-items:center;gap:6px;padding:5px 12px;font-size:.85rem;font-weight:600;display:inline-flex}#grammarLateChip{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.grammar-celebration-modal{z-index:var(--z-overlay);opacity:0;visibility:hidden;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .3s cubic-bezier(.16,1,.3,1),visibility .3s;display:flex;position:fixed;inset:0}.grammar-celebration-modal.grammar-celebration-modal--active{opacity:1;visibility:visible}.grammar-celebration-backdrop{-webkit-backdrop-filter:blur(20px);background:#0b0f19e6;position:absolute;inset:0}.grammar-celebration-dialog{z-index:1;text-align:center;border-radius:var(--radius-lg,24px);width:100%;max-width:480px;padding:2.2rem 2rem;padding-bottom:calc(2.2rem + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 0,#6366f133 0%,#10b9811a 40%,#0f172afa 85%);border:1.5px solid #6366f173;transition:transform .4s cubic-bezier(.16,1,.3,1);position:relative;transform:scale(.9)translateY(20px);box-shadow:0 25px 50px -12px #000000d9,0 0 40px #6366f140}.grammar-celebration-modal--active .grammar-celebration-dialog{transform:scale(1)translateY(0)}.grammar-celebration-confetti{letter-spacing:.3em;margin-bottom:.5rem;font-size:1.4rem;animation:2s ease-in-out infinite grammarSparkle}@keyframes grammarSparkle{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.grammar-celebration-emoji{filter:drop-shadow(0 4px 16px var(--border-active));margin-bottom:1rem;font-size:3.8rem;line-height:1;animation:.6s cubic-bezier(.34,1.56,.64,1) grammarPopBounce;display:inline-block}@keyframes grammarPopBounce{0%{opacity:0;transform:scale(.3)rotate(-15deg)}70%{opacity:1;transform:scale(1.15)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.grammar-celebration-title{font-family:var(--font-display,"Outfit", sans-serif);color:#fff;letter-spacing:-.015em;text-shadow:0 2px 10px #0006;margin:0 0 1.25rem;font-size:1.6rem;font-weight:800}.grammar-celebration-streak{background:#0f172ad9;border:1.5px solid #f59e0b73;border-radius:9999px;align-items:center;gap:10px;margin:0 auto 1.75rem;padding:8px 20px;display:inline-flex;box-shadow:0 4px 18px #f59e0b33}.grammar-streak-pill-icon{color:#fbbf24;font-size:1.2rem}.grammar-streak-pill-text{color:var(--text-main);font-size:.95rem;font-weight:600}.grammar-streak-num{font-family:var(--font-display,"Outfit", sans-serif);color:#fbbf24;min-width:18px;margin-right:.35rem;font-size:1.25rem;font-weight:900;transition:all .38s cubic-bezier(.34,1.56,.64,1);display:inline-block}.grammar-streak-num--bump{color:#6ee7b7;text-shadow:0 0 14px #6ee7b7e6;transform:scale(1.45)}.grammar-fire-text{color:#fcd34d}.grammar-celebration-action{justify-content:center;display:flex}.grammar-celebration-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--accent-emerald) 100%);color:#fff;font-family:var(--font-display,"Outfit", sans-serif);cursor:pointer;border:none;border-radius:9999px;padding:12px 34px;font-size:1.05rem;font-weight:700;transition:all .22s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px #6366f166,0 0 16px #10b9814d}.grammar-celebration-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 12px 32px #6366f18c,0 0 24px #10b98173}.grammar-celebration-btn:active{transform:translateY(1px)scale(.98)}#grammarDetailBody select.gap-select.gap-select--correct,#grammarDetailBody .gap-select.gap-select--correct,select.gap-select.gap-select--correct,.gap-select.gap-select--correct{color:#4ade80;box-shadow:none;background:#0f172a99 url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234ade80' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;border:1px solid #4ade804d;font-weight:700}#grammarDetailBody select.gap-select.gap-select--incorrect,#grammarDetailBody .gap-select.gap-select--incorrect,select.gap-select.gap-select--incorrect,.gap-select.gap-select--incorrect{color:var(--accent-red);box-shadow:none;background:#0f172a99 url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f87171' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") right .65rem center/14px no-repeat;border:1px solid #f871714d;font-weight:700;text-decoration:none}.grammar-input.grammar-input--correct{color:#4ade80!important;background:#0f172a99!important;border:1px solid #4ade804d!important;font-weight:700!important}.grammar-input.grammar-input--incorrect{text-decoration:none;color:var(--accent-red)!important;background:#0f172a99!important;border:1px solid #f871714d!important;font-weight:700!important}.result-badge{font-size:var(--fs-xs);vertical-align:baseline;border-radius:6px;align-items:center;gap:3px;margin-left:5px;padding:1px 7px;font-weight:700;line-height:1.3;transition:all .2s;display:inline-flex}.result-badge--incorrect,.result-badge--incorrect-cap,.result-badge--incorrect-punct{color:#4ade80;background:#22c55e26;border:1px solid #22c55e73}.result-badge__arrow{color:#4ade80;font-weight:800;font-size:var(--fs-xs);margin-right:2px}.result-badge__correct-answer{color:#4ade80;font-weight:700;font-size:var(--fs-xs)}.result-badge--reading{color:#86efac;background:0 0;border:none}.result-badge--reading .result-badge__arrow,.result-badge--reading .result-badge__correct-answer{color:#86efac}.pedagogical-breakdown-section{background:#0f172abf;border:1px solid #ffffff14;border-radius:12px;margin-top:1.5rem;padding:1.1rem 1.3rem;animation:.35s cubic-bezier(.16,1,.3,1) grammarFadeIn;box-shadow:0 8px 24px #00000059}.pedagogical-card{border:1px solid #ffffff14;border-left:3.5px solid var(--accent-amber);background:#1e293b8c;border-radius:8px;padding:10px 14px;transition:transform .2s,border-color .2s}.pedagogical-card:hover{border-color:#ffffff26;transform:translateY(-1px)}.grammar-filter-empty-state.gv14-error-border{border-color:#ef4444}.grammar-card-score.gv14-awaiting{color:#fcd34d}.grammar-card-score--strong{color:#6ee7b7}.grammar-card-score--ok{color:#fcd34d}.grammar-card-score--weak{color:#fca5a5}.grammar-exercise-back-btn{margin-top:1rem}.grammar-meta-item.gv14-focus{color:#a5b4fc}.grammar-tag.gv14-focus-tag{color:#a5b4fc;border-color:#6366f14d}.gv14-canvas-loading{color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.loading-spinner.gv14-spinner{border-width:2px;width:16px;height:16px}.loading-spinner.loading-spinner--sm{vertical-align:middle;border-width:2px;width:14px;height:14px;margin-right:6px;display:inline-block}.gv14-render-error{color:#fecaca;background:#7f1d1d40;border:1px solid #ef444459;border-radius:8px;padding:10px}.rb13-q-label{color:var(--text-main);font-size:.92rem}.rb13-ans-wrong{color:var(--accent-red);font-size:.88rem;text-decoration:line-through}.rb13-ans-arrow{color:#4ade80;font-size:.85rem;font-weight:800}.rb13-ans-right{color:#4ade80;font-size:.92rem;font-weight:700}.rb13-exp-bulb{color:#fbbf24;flex-shrink:0}.rb13-deep-loading{color:var(--text-muted);align-items:center;gap:6px;padding:4px 0;font-size:.8rem;display:flex}.loading-spinner.rb13-deep-spinner{border:2px solid #a5b4fc4d;border-top-color:#a5b4fc;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}.rb13-deep-result{background:#0f172aa6;border:1px solid #6366f140;border-left:3px solid #818cf8;border-radius:6px;flex-direction:column;gap:6px;padding:8px 12px;font-size:.85rem;line-height:1.45;display:flex}.rb13-why-wrong{color:#fca5a5}.rb13-why-wrong strong{color:var(--accent-red)}.rb13-why-correct{color:#86efac}.rb13-why-correct strong{color:#4ade80}.rb13-deep-error{color:#fbbf24;align-items:center;gap:6px;padding:4px 0;font-size:.8rem;display:flex}.retry-btn.rb13-retry{color:#a5b4fc;cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.offline-banner{top:.75rem;top:calc(.75rem + env(safe-area-inset-top));z-index:var(--z-offline-banner);background:var(--bg-modal);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:center;pointer-events:none;max-width:calc(100dvw - 2rem);padding:.55rem 1rem;font-size:.82rem;font-weight:600;line-height:1.4;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.offline-banner[hidden]{display:none}.chip-gem-badge{cursor:pointer;flex-shrink:0;align-items:center;font-size:1rem;line-height:1;transition:transform .2s;display:inline-flex}.chip-gem-badge:hover{transform:scale(1.15)}@keyframes gemSettle{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.2)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.chip-gem-badge.gem-settle{animation:.5s ease-out forwards gemSettle}.trophy-cabinet-overlay{padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);z-index:var(--z-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;background:#000000b8;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.trophy-cabinet-overlay.trophy-cabinet-visible{opacity:1}.trophy-cabinet-modal{border:1px solid var(--primary-glow);background:linear-gradient(150deg,#0f172afa,#1e293bf5);border-radius:18px;width:90dvw;max-width:530px;max-height:88dvh;transition:transform .3s cubic-bezier(.34,1.56,.64,1);overflow-y:auto;transform:scale(.92)translateY(12px);box-shadow:0 28px 72px #000000b3,0 0 48px #6366f12e}.trophy-cabinet-visible .trophy-cabinet-modal{transform:scale(1)translateY(0)}.trophy-cabinet-header{background:radial-gradient(at 50% 0,#6366f11f 0%,#0000 75%);border-bottom:1px solid #6366f133;justify-content:center;align-items:center;gap:.5rem;padding:1.1rem 1.25rem .9rem;display:flex;position:relative}.trophy-cabinet-title{letter-spacing:.03em;background:linear-gradient(135deg, #fff 0%, #fef08a 45%, var(--accent-amber) 100%);-webkit-text-fill-color:transparent;text-shadow:0 0 20px #f59e0b33;-webkit-background-clip:text;font-size:1.15rem;font-weight:800}.trophy-header-sparkle-left,.trophy-header-sparkle-right{-webkit-user-select:none;user-select:none;font-size:.95rem;display:inline-block}.trophy-header-sparkle-left{animation:2.4s ease-in-out infinite alternate sparkleTwinkleLeft}.trophy-header-sparkle-right{animation:2.4s ease-in-out 1.2s infinite alternate sparkleTwinkleRight}@keyframes sparkleTwinkleLeft{0%{opacity:.45;transform:scaleX(-1)scale(.85)rotate(0)}to{opacity:1;transform:scaleX(-1)scale(1.18)rotate(-18deg)}}@keyframes sparkleTwinkleRight{0%{opacity:.45;transform:scale(.85)rotate(0)}to{opacity:1;transform:scale(1.18)rotate(18deg)}}.trophy-cabinet-close{width:36px;min-width:36px;height:36px;min-height:36px;font-size:1rem;position:absolute;top:.55rem;right:.55rem;transform:none}.trophy-cabinet-close:after{content:"";position:absolute;inset:-4px}.trophy-cabinet-close:hover{transform:scale(1.08)}.trophy-cabinet-close:active{transform:scale(.95)}.trophy-cabinet-body{padding:1rem 1.25rem 1.4rem}.trophy-section{margin-bottom:.9rem}.trophy-section-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.45rem;font-weight:700}.trophy-gem-row,.trophy-gem-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.trophy-gem-slot{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at 50% 25%,#1e293bbf 0%,#0f172af2 100%);border:1px solid #4755694d;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem .35rem .55rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #0000008c,0 2px 6px #00000040}.trophy-gem-slot:active{transform:scale(.94)}.trophy-gem-slot:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}.trophy-gem-slot.gem-earned{border-color:var(--primary-glow);box-shadow:inset 0 1px 4px #ffffff26, inset 0 2px 8px #00000080, 0 0 16px color-mix(in srgb, var(--gem-color,var(--primary)) 22%, transparent)}.trophy-gem-slot.gem-earned:hover{border-color:var(--gem-color,#6366f199);box-shadow:inset 0 1px 5px #ffffff40, 0 0 20px color-mix(in srgb, var(--gem-color,var(--primary)) 45%, transparent), 0 4px 12px #0006;transform:translateY(-3px)scale(1.06)}.trophy-gem-slot.gem-earned:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 20%,#ffffff47 50%,#0000 80%);width:45%;height:200%;animation:4.5s ease-in-out infinite gemSheenSweep;position:absolute;top:-50%;left:-70%;transform:rotate(25deg)}.trophy-gem-slot:nth-child(2n):after{animation-delay:1.1s}.trophy-gem-slot:nth-child(3n):after{animation-delay:2.2s}.trophy-gem-slot:nth-child(4n):after{animation-delay:3.3s}@keyframes gemSheenSweep{0%,70%{opacity:0;left:-70%}75%{opacity:.8}85%{opacity:0;left:140%}to{opacity:0;left:140%}}.trophy-cabinet-modal .trophy-gem-slot.gem-selected,.trophy-cabinet-modal .trophy-gem-slot.gem-selected:hover{border-color:var(--gem-color,var(--accent-amber));box-shadow:inset 0 1px 6px #ffffff40, 0 0 22px color-mix(in srgb, var(--gem-color,var(--accent-amber)) 50%, transparent), 0 6px 16px #00000080;transform:translateY(-3px)scale(1.05)}.trophy-gem-slot.gem-next{border-color:#f59e0b80;animation:2s ease-in-out infinite questBeaconPulse}@keyframes questBeaconPulse{0%,to{border-color:#f59e0b59;box-shadow:inset 0 2px 8px #00000080,0 0 6px #f59e0b26}50%{border-color:#ffd700d9;box-shadow:inset 0 2px 8px #00000080,0 0 20px #ffd70066}}.trophy-gem-emoji{font-size:1.45rem;line-height:1}.gem-silhouette{filter:brightness(0)saturate(0);opacity:.32}.trophy-gem-name{font-size:var(--fs-xs);color:#cbd5e1;text-align:center;font-weight:700;line-height:1.2}.gem-locked .trophy-gem-name{color:#475569}.trophy-gem-req{font-size:var(--fs-xs);color:var(--text-dim);line-height:1}.gem-locked .trophy-gem-req{color:#334155}.trophy-gem-check{font-size:var(--fs-xs);color:#4ade80;font-weight:800;position:absolute;top:4px;right:5px}.trophy-lore-card{border:1px solid color-mix(in srgb, var(--gem-color,var(--primary)) 40%, transparent);box-shadow:0 0 22px color-mix(in srgb, var(--gem-color,var(--primary)) 18%, transparent);background:linear-gradient(135deg,#1e293bbf 0%,#0f172ad9 100%);border-radius:12px;margin-top:.85rem;margin-bottom:.75rem;padding:.85rem 1rem;transition:all .25s;animation:.25s cubic-bezier(.34,1.56,.64,1) loreFadeSlide}@keyframes loreFadeSlide{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.trophy-lore-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.trophy-lore-name{color:var(--text-main);font-size:.92rem;font-weight:800}.lore-status-badge{font-size:var(--fs-xs);letter-spacing:.02em;border-radius:9999px;padding:.2rem .55rem;font-weight:700}.badge-earned{color:#86efac;background:#4ade8026;border:1px solid #4ade8059}.badge-next{color:#fef08a;background:#f59e0b26;border:1px solid #f59e0b59}.badge-locked{color:var(--text-muted);background:#47556933;border:1px solid #4755694d}.trophy-lore-quote{font-size:var(--fs-xs);color:#cbd5e1;font-style:italic;line-height:1.45}.trophy-stats-row{gap:.75rem;margin-top:.5rem;display:flex}.trophy-stat{background:#1e293b99;border:1px solid #47556933;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.65rem .5rem;display:flex}.trophy-stat-icon{font-size:1.2rem}.trophy-stat-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.trophy-stat-value{color:#f1f5f9;font-size:1rem;font-weight:800}@media (width<=480px){.trophy-cabinet-modal{max-height:92dvh}.trophy-cabinet-header{padding:.7rem 1rem .6rem}.trophy-cabinet-title{font-size:1.02rem}.trophy-cabinet-body{padding:.7rem .8rem .8rem}.trophy-section{margin-bottom:.55rem}.trophy-section-label{margin-bottom:.3rem}.trophy-gem-row,.trophy-gem-grid{gap:.4rem}.trophy-gem-slot{border-radius:10px;gap:.1rem;padding:.45rem .2rem .4rem}.trophy-gem-emoji{font-size:1.15rem}.trophy-lore-card{margin-top:.55rem;margin-bottom:.45rem;padding:.6rem .7rem}.trophy-lore-name{font-size:.85rem}.trophy-stats-row{gap:.5rem;margin-top:.4rem}.trophy-stat{padding:.45rem .5rem}.trophy-stat-icon{font-size:1rem}.trophy-stat-value{font-size:.9rem}}.gem-unlock-overlay{padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);z-index:var(--z-overlay-elevated);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;background:#00000080;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.gem-unlock-overlay.gem-unlock-visible{opacity:1}.gem-unlock-emoji{font-size:4rem;animation:.6s cubic-bezier(.34,1.56,.64,1) forwards gemReveal}@keyframes gemReveal{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.gem-unlock-glow{opacity:0;pointer-events:none;border-radius:50%;width:200px;height:200px;animation:1.2s ease-out .2s forwards gemGlow;position:absolute}@keyframes gemGlow{0%{opacity:.6;transform:scale(.3)}to{opacity:0;transform:scale(2.5)}}.gem-unlock-name{color:#f1f5f9;opacity:0;margin-top:.75rem;font-size:1.3rem;font-weight:800;animation:.4s .4s forwards gemTextFadeIn}.gem-unlock-flavor{color:var(--text-muted);opacity:0;margin-top:.35rem;font-size:.88rem;font-style:italic;animation:.4s .6s forwards gemTextFadeIn}.gem-unlock-forever{font-size:var(--fs-xs);color:var(--text-dim);opacity:0;margin-top:.75rem;animation:.4s .8s forwards gemTextFadeIn}@keyframes gemTextFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.streak-consolation-toast{bottom:1.5rem;bottom:calc(1.5rem + env(safe-area-inset-bottom));z-index:var(--z-consolation-toast);opacity:0;pointer-events:auto;cursor:pointer;background:linear-gradient(135deg,#0f172af2,#1e293bf2);border:1px solid #6366f14d;border-radius:12px;width:calc(100% - 2rem);max-width:420px;padding:.75rem 1.25rem;transition:opacity .35s,transform .35s;position:fixed;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 12px 32px #00000080}.streak-consolation-toast.toast-visible{opacity:1;transform:translate(-50%)translateY(0)}.streak-consolation-title{color:#f1f5f9;margin-bottom:.25rem;font-size:.88rem;font-weight:800}.streak-consolation-body{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.45}.engagement-gem-cell{align-items:center;gap:.3rem;font-size:.82rem;display:inline-flex}.engagement-gem-emoji{font-size:.95rem}.engagement-gem-name{color:var(--text-main);font-weight:600}@media (width<=768px){.trophy-cabinet-modal{border-radius:12px;width:95dvw;max-height:90dvh}.trophy-gem-row,.trophy-gem-grid{grid-template-columns:repeat(4,1fr);gap:.35rem}.trophy-gem-emoji{font-size:1.15rem}.trophy-gem-name,.trophy-gem-req{font-size:var(--fs-xs)}.gem-unlock-emoji{font-size:3rem}.chip-gem-badge{font-size:.88rem}}.lib-filters{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.lib-filter{color:var(--text-muted,var(--text-muted));flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600;display:flex}.lib-filter select,.lib-filter input[type=search]{border:1px solid var(--border-color);background:var(--bg-modal,var(--bg-modal));color:var(--text-main,var(--text-main));border-radius:.5rem;min-width:10rem;padding:.45rem .6rem;font-size:.9rem}.lib-count{color:var(--text-muted,var(--text-muted));align-self:center;margin-left:auto;font-size:.85rem}.lib-loading,.lib-empty{text-align:center;color:var(--text-muted,var(--text-muted));padding:2rem 1rem}.lib-subject{border:1px solid var(--border-color);background:var(--bg-card);border-radius:.75rem;margin-bottom:.75rem;overflow:hidden}.lib-subject-body{padding:.75rem 1rem 1rem}.lib-topic{border-top:1px dashed var(--border-color);margin-top:.75rem;padding-top:.6rem}.lib-topic-head{color:var(--text-main,var(--text-main));align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.lib-topic-count{color:var(--text-muted,var(--text-muted));background:var(--bg-modal-elevated,var(--bg-modal-elevated));border-radius:999px;padding:.1rem .55rem;font-size:.8rem}.lib-topic-head .lib-assign-group{margin-left:auto}.lib-pack-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.lib-pack{border:1px solid var(--border-color);background:var(--bg-modal,var(--bg-modal));border-radius:.6rem;padding:.6rem .75rem}.lib-pack-main{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lib-pack-title{color:var(--text-main,var(--text-main));font-weight:600}.lib-tier-badge{color:var(--accent-cyan,var(--accent-cyan));background:#06b6d426;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}.lib-verified-badge{color:var(--accent-emerald,var(--accent-emerald));font-weight:700}.lib-pack-words{color:var(--text-muted,var(--text-muted));font-size:.8rem}.lib-pack-desc{color:var(--text-muted,var(--text-muted));margin-top:.25rem;font-size:.85rem}.lib-pack-actions{gap:.5rem;margin-top:.5rem;display:flex}.lib-pack-preview{color:var(--text-main,var(--text-main));background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;margin-top:.5rem;padding:.5rem .65rem;font-size:.85rem}.lib-preview-more{color:var(--text-muted,var(--text-muted));margin-top:.3rem;font-size:.78rem}.lib-bulk-note{color:var(--text-muted,var(--text-muted));font-size:.9rem}.sd-subject-group{margin-bottom:.75rem}.sd-subject-body{flex-direction:column;gap:.75rem;padding-top:.5rem;display:flex}.vocab-pager{color:var(--text-muted,var(--text-muted));flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:.75rem 0;font-size:.85rem;display:flex}#vocabSubjectFilter,#vocabTopicFilter{max-width:11rem}.lib-readonly-banner{background:var(--accent-emerald-glow);border:1px solid var(--accent-emerald,var(--accent-emerald));color:var(--text-main,var(--text-main));border-radius:.6rem;margin-bottom:.75rem;padding:.6rem .85rem;font-size:.9rem}.lib-curated-tag{color:var(--accent-emerald,var(--accent-emerald));white-space:nowrap;font-size:.8rem;font-weight:600}@media (width<=768px){.app-header{-webkit-backdrop-filter:none}#studentNavMenu{z-index:var(--z-nav);padding:4px 4px 0;padding-bottom:max(6px, env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(20px);border:none;border-top:1px solid var(--border-color);background:#0b0f19f0;border-radius:0;flex-direction:row;align-items:stretch;gap:0;max-width:none;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:visible;box-shadow:0 -4px 20px #0006}#studentNavMenu .nav-item-btn{min-width:0;min-height:46px;box-shadow:none;white-space:normal;background:0 0;border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;padding:3px 0;position:relative}#studentNavMenu .nav-item-btn:active{transform:scale(.95)}#studentNavMenu .nav-btn-icon{font-size:1.35rem;line-height:1}#studentNavMenu .nav-btn-label{font-size:var(--fs-xs);letter-spacing:-.01em;font-weight:600;line-height:1.2;display:inline}#studentNavMenu .nav-item-btn.active{color:var(--primary);box-shadow:none;background:0 0}#studentNavMenu .nav-item-btn.active .nav-btn-label{color:#fff;font-weight:700}#studentNavMenu .nav-item-btn.active:after{content:"";background:linear-gradient(90deg, var(--primary), var(--accent-cyan));border-radius:0 0 4px 4px;height:2.5px;position:absolute;top:0;left:20%;right:20%;box-shadow:0 2px 8px #6366f1cc}#studentView{padding-bottom:calc(52px + max(6px, env(safe-area-inset-bottom,0px)))}body.chat-keyboard-open #studentNavMenu{display:none!important}}
