*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{-webkit-font-smoothing:antialiased;line-height:1.6}img,svg{max-width:100%;display:block}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}a{color:inherit;cursor:pointer;text-decoration:none}ul,ol{list-style:none}input,textarea,select{font:inherit}:root{--orange:#f97316;--orange-dark:#ea580c;--orange-light:#fff7ed;--orange-border:#fdba74;--navy:#1a2035;--navy-hover:#22294a;--page-bg:#f1f4f9;--white:#fff;--card-bg:#fff;--bg:#f8fafc;--border:#e4e8ef;--border-strong:#ccd2de;--text-heading:#0f172a;--text-body:#374151;--text-muted:#5b6472;--text-light:#6b7280;--primary:#f97316;--success:#10b981;--success-bg:#d1fae5;--success-border:#6ee7b7;--success-text:#065f46;--error:#ef4444;--error-bg:#fee2e2;--error-border:#fca5a5;--error-text:#7f1d1d;--warning:#f59e0b;--warning-bg:#fef3c7;--warning-border:#fcd34d;--info:#3b82f6;--info-bg:#dbeafe;--a1:#10b981;--a1-bg:#d1fae5;--a1-border:#6ee7b7;--a1-dark:#059669;--a2:#3b82f6;--a2-bg:#dbeafe;--a2-border:#93c5fd;--a2-dark:#2563eb;--b1:#8b5cf6;--b1-bg:#ede9fe;--b1-border:#c4b5fd;--b1-dark:#7c3aed;--b2:#f97316;--b2-bg:#ffedd5;--b2-border:#fdba74;--b2-dark:#ea580c;--c1:#ef4444;--c1-bg:#fee2e2;--c1-border:#fca5a5;--c1-dark:#dc2626;--sidebar-width:240px;--sidebar-bg:#fff;--sidebar-fg:var(--text-muted);--sidebar-fg-hover:var(--text-heading);--sidebar-fg-active:var(--orange-dark);--sidebar-logo-fg:var(--text-heading);--sidebar-border:var(--border);--sidebar-hover-bg:var(--page-bg);--sidebar-active-bg:var(--orange-light);--sidebar-label-fg:var(--text-light);--sidebar-stat-bg:var(--page-bg);--sidebar-stat-value-fg:var(--text-heading);--sidebar-stat-label-fg:var(--text-muted);--sidebar-control-fg:var(--text-light);--sidebar-control-hover-bg:var(--page-bg);--sidebar-control-hover-fg:var(--text-heading);--sidebar-mobile-menu-bg:var(--page-bg);--sidebar-mobile-menu-fg:var(--text-heading);--font-display:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px #0000000d, 0 2px 4px #0000000a;--shadow-lg:0 10px 20px #00000012, 0 4px 8px #0000000a;--shadow-xl:0 20px 40px #00000014;--transition-fast:.14s ease;--transition-base:.22s ease;--transition-slow:.35s ease}body{font-family:var(--font-body);background:var(--page-bg);color:var(--text-body);min-height:100vh}#app{min-height:100vh;display:flex}#content-column{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex;overflow-x:hidden}#main-content{flex:1 0 auto}#sidebar-overlay{z-index:99;background:#0006;display:none;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-heading);line-height:1.25}h1{font-size:var(--text-4xl);font-weight:800}h2{font-size:var(--text-2xl);font-weight:700}h3{font-size:var(--text-xl);font-weight:700}h4{font-size:var(--text-lg);font-weight:600}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-lg);font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);transition:all var(--transition-base);white-space:nowrap;border:2px solid #0000;padding:10px 20px;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--orange);color:#fff;border-color:var(--orange)}.btn-primary:hover{background:var(--orange-dark);border-color:var(--orange-dark);box-shadow:0 4px 14px #f9731666}.btn-secondary{background:var(--white);color:var(--text-body);border-color:var(--border-strong)}.btn-secondary:hover{border-color:var(--orange);color:var(--orange)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{background:#059669}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--page-bg);color:var(--text-body)}.btn-lg{font-size:var(--text-base);border-radius:var(--radius-xl);padding:14px 28px}.btn-sm{font-size:var(--text-xs);border-radius:var(--radius-md);padding:6px 14px}.badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;font-family:var(--font-display);letter-spacing:.04em;align-items:center;padding:3px 10px;display:inline-flex}.badge-a1{background:var(--a1-bg);color:var(--a1-dark);border:1px solid var(--a1-border)}.badge-a2{background:var(--a2-bg);color:var(--a2-dark);border:1px solid var(--a2-border)}.badge-b1{background:var(--b1-bg);color:var(--b1-dark);border:1px solid var(--b1-border)}.badge-b2{background:var(--b2-bg);color:var(--b2-dark);border:1px solid var(--b2-border)}.badge-c1{background:var(--c1-bg);color:var(--c1-dark);border:1px solid var(--c1-border)}.progress-bar{background:var(--border);border-radius:var(--radius-full);width:100%;height:7px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:var(--orange);height:100%;transition:width var(--transition-slow)}.grid-2{gap:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.grid-5{gap:var(--space-4);grid-template-columns:repeat(5,1fr);display:grid}.container{max-width:1100px;padding:0 var(--space-8);margin:0 auto}.page-body{padding:var(--space-8) 0 var(--space-16)}.section{padding:var(--space-10) 0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.w-full{width:100%}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.font-bold{font-weight:700}.font-display{font-family:var(--font-display)}:focus-visible,.btn:focus-visible,.sidebar-link:focus-visible,.tab-btn:focus-visible,.option-btn:focus-visible,a.topic-card:focus-visible,a.level-card:focus-visible{outline:2px solid var(--orange);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.section-heading{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.section-heading h2{margin-bottom:0}.section-heading a{font-size:var(--text-sm);color:var(--orange);transition:color var(--transition-fast);font-weight:600}.section-heading a:hover{color:var(--orange-dark)}.breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-5);display:flex}.breadcrumb a{color:var(--text-muted);transition:color var(--transition-fast)}.breadcrumb a:hover{color:var(--orange)}.breadcrumb span{color:var(--text-light)}.star{font-size:1.1rem}.empty-state{text-align:center;padding:var(--space-16) var(--space-8);color:var(--text-muted)}.empty-state-icon{border-radius:var(--radius-xl);background:var(--border);width:72px;height:72px;margin:0 auto var(--space-4);color:var(--text-light);opacity:.7;justify-content:center;align-items:center;display:flex}.empty-state h3{color:var(--text-heading);margin-bottom:var(--space-2)}.empty-state p{margin-bottom:var(--space-6)}@media (width>=861px){#navbar{transition:width var(--transition-base)}#content-column{transition:margin-left var(--transition-base)}#app.sidebar-collapsed #navbar{width:64px}#app.sidebar-collapsed #content-column{margin-left:64px}}@media (width<=1024px){.grid-5{grid-template-columns:repeat(3,1fr)}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-fadeIn{animation:.4s ease-out both fadeIn}.animate-fadeInUp{animation:.5s ease-out both fadeInUp}.animate-fadeInScale{animation:.35s ease-out both fadeInScale}.animate-slideInRight{animation:.4s ease-out both slideInRight}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}.delay-5{animation-delay:.4s}.delay-6{animation-delay:.48s}@keyframes shake{0%,to{transform:translate(0)}15%,45%,75%{transform:translate(-6px)}30%,60%,90%{transform:translate(6px)}}.animate-shake{animation:.45s ease-in-out shake}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.animate-pulse{animation:.35s ease-in-out pulse}@keyframes successPulse{0%{box-shadow:0 0 #10b98166}60%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.animate-success{animation:.6s ease-out successPulse,.35s ease-in-out pulse}@keyframes errorPulse{0%{box-shadow:0 0 #ef444466}60%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.animate-error{animation:.6s ease-out errorPulse,.45s ease-in-out shake}@keyframes bounceIn{0%{opacity:0;transform:scale(.6)}55%{opacity:1;transform:scale(1.08)}75%{transform:scale(.97)}to{transform:scale(1)}}.animate-bounceIn{animation:.5s cubic-bezier(.34,1.56,.64,1) both bounceIn}@keyframes confettiFall{0%{opacity:1;transform:translateY(-60px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.confetti-piece{z-index:10000;pointer-events:none;width:9px;height:9px;animation:2.5s ease-in forwards confettiFall;position:fixed;top:-10px}@keyframes toastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(110%)}}.toast{animation:.35s ease-out toastIn}.toast.removing{animation:.28s ease-in forwards toastOut}.stars{gap:2px;display:flex}.star{font-size:1.15rem;transition:all .2s}.star.filled{color:var(--warning)}.star.empty{color:var(--border-strong)}@keyframes starPop{0%{transform:scale(0)rotate(-20deg)}60%{transform:scale(1.25)rotate(8deg)}to{transform:scale(1)rotate(0)}}.star.animate{animation:.35s ease-out both starPop}@keyframes xpFloat{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-36px)scale(1.15)}}.xp-popup{color:var(--warning);font-weight:800;font-family:var(--font-display);font-size:var(--text-lg);pointer-events:none;z-index:100;animation:.75s ease-out forwards xpFloat;position:absolute}#navbar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;height:100vh;transition:background var(--transition-base), border-color var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-logo{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);border-bottom:1px solid var(--sidebar-border);display:flex}.sidebar-logo-icon{background:var(--orange);border-radius:var(--radius-md);width:36px;height:36px;font-family:var(--font-display);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:900;display:flex}.sidebar-logo-text{font-family:var(--font-display);font-weight:700;font-size:var(--text-base);color:var(--sidebar-logo-fg);line-height:1.2}.sidebar-logo-text strong{color:var(--orange);font-weight:800}.sidebar-section-label{padding:var(--space-5) var(--space-5) var(--space-2);letter-spacing:.1em;text-transform:uppercase;color:var(--sidebar-label-fg);font-size:.65rem;font-weight:700}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 32px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 32px),#0000 100%)}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--sidebar-fg);transition:all var(--transition-fast);cursor:pointer;font-weight:500;display:flex;position:relative}.sidebar-link:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-fg-hover)}.sidebar-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-fg-active);font-weight:600}.sidebar-link.active:before{content:"";background:var(--orange);border-radius:0 3px 3px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-link-icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;font-size:1.1rem;display:flex}.sidebar-divider{background:var(--sidebar-border);height:1px;margin:var(--space-3) var(--space-3)}.sidebar-footer{padding:var(--space-5);border-top:1px solid var(--sidebar-border)}.sidebar-version{font-size:var(--text-xs);color:var(--sidebar-label-fg);text-align:center}.sidebar-account-block{margin:var(--space-2) 0 var(--space-4);padding:var(--space-3);background:var(--sidebar-stat-bg);border-radius:var(--radius-xl);gap:var(--space-3);flex-direction:column;display:flex}.sidebar-account-block.collapsed{display:none}.sidebar-account-card{align-items:center;gap:var(--space-3);color:var(--text);border-radius:var(--radius-lg);padding:var(--space-1);transition:opacity var(--transition-fast);text-decoration:none;display:flex;overflow:hidden}.sidebar-account-card:hover{opacity:.8}.sidebar-auth-btns{gap:var(--space-2);flex-direction:column;display:flex}.sidebar-signin-link{text-align:center;font-size:var(--text-xs);color:var(--text-muted);text-decoration:none}.sidebar-signin-link:hover,.sidebar-signin-link strong{color:var(--primary)}.sidebar-stats-inline,.sidebar-stats-grid{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.sidebar-stat-pill{background:var(--sidebar-stat-bg);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-3);text-align:center}.sidebar-stat-pill-value{font-family:var(--font-display);font-size:var(--text-lg);color:var(--sidebar-stat-value-fg);font-weight:800;line-height:1;display:block}.sidebar-stat-pill-label{color:var(--sidebar-stat-label-fg);text-transform:uppercase;letter-spacing:.04em;justify-content:center;align-items:center;gap:3px;margin-top:3px;font-size:.65rem;display:flex}@media (width>=861px){#app.sidebar-collapsed .sidebar-logo{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);flex-direction:column}#app.sidebar-collapsed .sidebar-logo-text,#app.sidebar-collapsed .sidebar-section-label,#app.sidebar-collapsed .sidebar-account-block,#app.sidebar-collapsed .sidebar-footer{display:none}#app.sidebar-collapsed .sidebar-link{padding:var(--space-3) 0;justify-content:center}#app.sidebar-collapsed .sidebar-link-label,#app.sidebar-collapsed .sidebar-link:before{display:none}}.mobile-topbar{background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);z-index:120;height:60px;padding:0 var(--space-4);transition:background var(--transition-base), border-color var(--transition-base);justify-content:space-between;align-items:center;display:none;position:fixed;top:0;left:0;right:0}.mobile-topbar-brand{align-items:center;gap:var(--space-2);color:var(--sidebar-logo-fg);font-family:var(--font-display);font-weight:700;display:flex}.mobile-hamburger{border-radius:var(--radius-md);cursor:pointer;background:var(--sidebar-mobile-menu-bg);justify-content:center;align-items:center;display:flex}.mobile-bottom-nav{display:none}@media (width<=860px){.mobile-topbar{display:flex}}@media (width>=861px){.mobile-bottom-nav,.mobile-more-sheet,.mobile-topbar{display:none!important}}.home-banner{padding:var(--space-12) var(--space-8);justify-content:space-between;align-items:center;gap:var(--space-8);background:linear-gradient(135deg,#fff7ed 0%,#fef3c7 60%,#fef9ec 100%);border-bottom:1px solid #fed7aa;flex-wrap:wrap;display:flex}.home-banner-eyebrow{align-items:center;gap:var(--space-2);background:var(--orange-light);border:1px solid var(--orange-border);color:var(--orange-dark);font-size:var(--text-xs);border-radius:var(--radius-full);margin-bottom:var(--space-4);font-weight:700;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;padding:4px 12px;display:inline-flex}.home-banner-title{color:var(--text-heading);margin-bottom:var(--space-3);font-size:2.6rem;font-weight:900;line-height:1.15}.home-banner-title span{color:var(--orange)}.home-banner-subtitle{color:var(--text-muted);font-size:var(--text-lg);margin-bottom:var(--space-6);max-width:400px}.home-banner-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.home-banner-stats{gap:var(--space-3);flex-shrink:0;display:flex}.home-banner-stat{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);text-align:center;box-shadow:var(--shadow-sm);min-width:90px}.home-banner-stat-icon{border-radius:var(--radius-md);width:36px;height:36px;margin:0 auto var(--space-2);justify-content:center;align-items:center;display:flex}.home-banner-stat-icon--xp{color:var(--warning);background:#fef3c7}.home-banner-stat-icon--streak{background:var(--error-bg);color:var(--error)}.home-banner-stat-icon--accuracy{background:var(--success-bg);color:var(--success)}.home-banner-stat-value{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-heading);font-weight:800;display:block}.home-banner-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:.65rem;display:block}.home-content{padding:var(--space-8)}.content-stats-bar{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-6);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.content-stats-bar span:not([aria-hidden]){color:var(--text);font-weight:600}.daily-goal-bar{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);margin-bottom:var(--space-6);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex}.daily-goal-left{align-items:center;gap:var(--space-2);white-space:nowrap;display:flex}.daily-goal-icon{color:var(--orange);display:flex}.daily-goal-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.daily-goal-count{font-size:var(--text-sm);color:var(--text-heading);font-weight:700}.daily-goal-track{background:var(--border);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.daily-goal-fill{background:var(--orange);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.daily-goal-fill.complete{background:var(--success)}.daily-goal-badge{font-size:var(--text-xs);color:var(--success-text);background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:700;display:flex}.levels-grid{gap:var(--space-4);grid-template-columns:repeat(5,1fr);display:grid}@media (width<=1200px){.levels-grid{grid-template-columns:repeat(3,1fr)}}.level-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-base), box-shadow var(--transition-base);overflow:hidden}.level-card:hover:not(.level-locked){box-shadow:var(--shadow-lg);transform:translateY(-4px)}.level-card.level-locked{opacity:.65;cursor:not-allowed}.level-card-header{padding:var(--space-5) var(--space-5) var(--space-4);align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.level-card--a1 .level-card-header{background:var(--a1-bg)}.level-card--a2 .level-card-header{background:var(--a2-bg)}.level-card--b1 .level-card-header{background:var(--b1-bg)}.level-card--b2 .level-card-header{background:var(--b2-bg)}.level-card--c1 .level-card-header{background:var(--c1-bg)}.level-tag{font-size:var(--text-xs);border-radius:var(--radius-full);color:#fff;font-weight:800;font-family:var(--font-display);letter-spacing:.04em;padding:3px 10px}.level-card-body{padding:var(--space-4) var(--space-5) var(--space-5)}.level-card-name{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);margin-bottom:2px;font-weight:700}.level-card-desc{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-3);line-height:1.5}.level-progress-wrap{align-items:center;gap:var(--space-2);display:flex}.level-progress-wrap .progress-bar{flex:1}.level-progress-text{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;font-weight:500}.level-card--a1 .progress-bar-fill{background:var(--a1)}.level-card--a2 .progress-bar-fill{background:var(--a2)}.level-card--b1 .progress-bar-fill{background:var(--b1)}.level-card--b2 .progress-bar-fill{background:var(--b2)}.level-card--c1 .progress-bar-fill{background:var(--c1)}.topic-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);cursor:pointer;transition:all var(--transition-base);gap:var(--space-2);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.topic-card:hover{border-color:var(--orange-border);box-shadow:var(--shadow-md);transform:translateY(-2px)}.topic-card--has-cover{padding:0}.topic-card-cover{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--page-bg);flex-shrink:0;height:130px;overflow:hidden}.topic-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow);display:block}.topic-card--has-cover:hover .topic-card-cover img{transform:scale(1.06)}.topic-card-content{padding:var(--space-4) var(--space-5) var(--space-5);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.topic-card-top{align-items:center;gap:var(--space-3);display:flex}.topic-card-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.topic-card-icon--grammar{background:var(--success-bg);color:var(--a1-dark)}.topic-card-icon--vocabulary{background:var(--info-bg);color:var(--a2-dark)}.topic-card-icon--a1{background:var(--a1-bg);color:var(--a1-dark)}.topic-card-icon--a2{background:var(--a2-bg);color:var(--a2-dark)}.topic-card-icon--b1{background:var(--b1-bg);color:var(--b1-dark)}.topic-card-icon--b2{background:var(--b2-bg);color:var(--b2-dark)}.topic-card-icon--c1{background:var(--c1-bg);color:var(--c1-dark)}.level-card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.level-card--a1 .level-card-icon{background:var(--a1);color:#fff}.level-card--a2 .level-card-icon{background:var(--a2);color:#fff}.level-card--b1 .level-card-icon{background:var(--b1);color:#fff}.level-card--b2 .level-card-icon{background:var(--b2);color:#fff}.level-card--c1 .level-card-icon{background:var(--c1);color:#fff}.topic-card h4{font-size:var(--text-base);color:var(--text-heading)}.topic-card-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.topic-card-footer{padding-top:var(--space-3);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.flashcard-img-wrap{border-radius:var(--radius-lg);width:100%;height:170px;margin-bottom:var(--space-4);background:var(--page-bg);flex-shrink:0;overflow:hidden}.flashcard-img-wrap img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow);display:block}.flashcard-container:hover .flashcard-img-wrap img{transform:scale(1.03)}.topic-card-meta{font-size:var(--text-xs);color:var(--text-muted)}.topics-page-header{background:var(--white);border-bottom:1px solid var(--border);padding:var(--space-8)}.topics-page-header h1{margin-bottom:var(--space-5)}.topics-tabs-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.tab-group{background:var(--page-bg);border:1px solid var(--border);border-radius:var(--radius-lg);gap:2px;padding:3px;display:flex}.tab-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;font-family:var(--font-display);color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer}.tab-btn:hover{color:var(--text-body)}.tab-btn.active{background:var(--white);color:var(--text-heading);box-shadow:var(--shadow-xs)}.tab-btn-a1.active{color:var(--a1-dark)}.tab-btn-a2.active{color:var(--a2-dark)}.tab-btn-b1.active{color:var(--b1-dark)}.tab-btn-b2.active{color:var(--b2-dark)}.tab-btn-c1.active{color:var(--c1-dark)}.tab-btn-all.active{color:var(--primary)}.topics-grid{padding:var(--space-8);gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=900px){.topics-grid{padding:var(--space-5);grid-template-columns:repeat(2,1fr)}.topics-page-header{padding:var(--space-5)}}@media (width<=600px){.topics-grid{grid-template-columns:1fr}}.exercise-page{max-width:780px;padding:var(--space-8);margin:0 auto}.exercise-top-bar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.exercise-title{font-size:var(--text-lg);color:var(--text-heading);font-weight:700}.exercise-progress-wrap{align-items:center;gap:var(--space-3);flex:1;max-width:300px;display:flex}.exercise-counter{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;font-weight:700;font-family:var(--font-display)}.question-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5)}.question-label{font-size:var(--text-xs);color:var(--orange);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-4);font-weight:700;font-family:var(--font-display)}.question-text{font-size:var(--text-xl);color:var(--text-heading);margin-bottom:var(--space-6);font-weight:600;line-height:1.5;font-family:var(--font-display)}.question-text .blank{border-bottom:2.5px solid var(--orange);min-width:100px;color:var(--orange);padding:0 var(--space-2);margin:0 2px;display:inline-block}.options-list{gap:var(--space-3);flex-direction:column;display:flex}.option-btn{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--page-bg);border:2px solid var(--border);text-align:left;font-size:var(--text-base);color:var(--text-body);transition:all var(--transition-base);cursor:pointer;font-family:var(--font-body);display:flex}.option-btn:hover:not(.disabled){border-color:var(--orange-border);background:var(--orange-light)}.option-letter{border-radius:var(--radius-md);background:var(--border);width:32px;height:32px;font-weight:700;font-size:var(--text-sm);font-family:var(--font-display);color:var(--text-muted);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.option-btn.correct{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.option-btn.wrong{border-color:var(--error-border);background:var(--error-bg);color:var(--error-text)}.option-btn.disabled{pointer-events:none;opacity:.65}.fill-blank-row{gap:var(--space-3);display:flex}.fill-blank-input{padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--page-bg);border:2px solid var(--border);color:var(--text-heading);font-size:var(--text-lg);transition:all var(--transition-fast);font-family:var(--font-body);outline:none;flex:1}.fill-blank-input:focus{border-color:var(--orange);background:var(--white);box-shadow:0 0 0 3px #f973161f}.fill-blank-input.correct{border-color:var(--success);background:var(--success-bg)}.fill-blank-input.wrong{border-color:var(--error);background:var(--error-bg)}.tense-compare-options{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.tense-compare-btn{align-items:flex-start;gap:var(--space-1);text-align:left;flex-direction:column}.tense-compare-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.tense-compare-form{font-size:var(--text-lg);font-weight:600}.multi-blank-passage{font-size:var(--text-lg);padding:var(--space-5);background:var(--page-bg);border-radius:var(--radius-lg);border:1px solid var(--border);line-height:2.2}.multi-blank-input{width:auto;min-width:6rem;max-width:10rem;padding:var(--space-1) var(--space-2);margin:0 var(--space-1);vertical-align:baseline;font-size:var(--text-base);display:inline-block}.tf-buttons{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.tf-btn{padding:var(--space-6);border-radius:var(--radius-xl);background:var(--page-bg);border:2px solid var(--border);font-size:var(--text-xl);font-weight:700;font-family:var(--font-display);text-align:center;cursor:pointer;transition:all var(--transition-base)}.tf-btn.true:hover:not(.disabled){border-color:var(--success-border);background:var(--success-bg)}.tf-btn.false:hover:not(.disabled){border-color:var(--error-border);background:var(--error-bg)}.tf-btn.correct{border-color:var(--success);background:var(--success-bg);color:var(--success-text)}.tf-btn.wrong{border-color:var(--error);background:var(--error-bg);color:var(--error-text)}.tf-btn.disabled{pointer-events:none;opacity:.6}.explanation-box{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);margin-top:var(--space-5);font-size:var(--text-sm);line-height:1.6;display:flex}.explanation-box.correct{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.explanation-box.wrong{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.explanation-icon{flex-shrink:0;align-items:center;margin-top:1px;display:flex}.next-btn-area{text-align:center;padding:var(--space-4) 0 var(--space-2)}#next-btn-container.is-visible{bottom:var(--space-6);z-index:10;position:sticky}.matching-grid{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.match-col{gap:var(--space-3);flex-direction:column;display:flex}.match-item{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--page-bg);border:2px solid var(--border);cursor:pointer;font-size:var(--text-sm);text-align:center;transition:all var(--transition-fast);justify-content:center;align-items:center;min-height:52px;font-weight:500;display:flex}.match-item:hover:not(.matched):not(.disabled){border-color:var(--orange-border);background:var(--orange-light)}.match-item.selected{border-color:var(--orange);background:#f9731614;box-shadow:0 0 0 3px #f9731626}.match-item.matched{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text);pointer-events:none;font-weight:600}.match-item.wrong-match{border-color:var(--error-border);background:var(--error-bg)}.word-order-sentence{min-height:64px;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--page-bg);border:2px dashed var(--border);gap:var(--space-2);margin-bottom:var(--space-5);transition:border-color var(--transition-fast);flex-wrap:wrap;align-items:center;display:flex}.word-order-sentence.has-words{border-style:solid;border-color:var(--orange-border);background:var(--orange-light)}.word-bank{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:center;display:flex}.word-chip{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--white);border:2px solid var(--border-strong);color:var(--text-body);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;font-weight:600;font-family:var(--font-display)}.word-chip:hover:not(.placed){border-color:var(--orange);color:var(--orange);background:var(--orange-light)}.word-chip.placed{background:var(--border);border-color:var(--border);color:var(--text-light);pointer-events:none}.word-chip.in-sentence{background:var(--orange-light);border-color:var(--orange-border);color:var(--orange-dark)}.word-order-actions{gap:var(--space-3);margin-top:var(--space-4);justify-content:center;display:flex}.results-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:var(--space-12) var(--space-10);text-align:center;box-shadow:var(--shadow-lg);max-width:600px;margin:var(--space-8) auto}.results-icon{border-radius:var(--radius-xl);width:72px;height:72px;margin:0 auto var(--space-5);justify-content:center;align-items:center;display:flex}.results-icon--excellent{color:var(--warning);background:#fef3c7}.results-icon--good{background:var(--info-bg);color:var(--info)}.results-icon--average{background:var(--warning-bg);color:var(--warning)}.results-icon--poor{background:var(--error-bg);color:var(--error)}.results-score{font-family:var(--font-display);margin:var(--space-3) 0;font-size:4rem;font-weight:900;line-height:1}.results-score.excellent{color:var(--success)}.results-score.good{color:var(--info)}.results-message{font-size:var(--text-lg);color:var(--text-muted);margin:var(--space-4) 0 var(--space-8)}.results-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.next-topic-suggestion{align-items:center;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);justify-content:center;display:flex}.next-topic-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:var(--space-1);white-space:nowrap;font-weight:600;display:flex}.next-topic-btn{font-size:var(--text-sm);color:var(--orange);border:1.5px solid var(--orange-border);border-radius:var(--radius-lg);background:var(--orange-light);transition:all var(--transition-fast);padding:6px 16px;font-weight:700}.next-topic-btn:hover{background:var(--orange);color:#fff;border-color:var(--orange)}.vocab-page-header{background:var(--white);border-bottom:1px solid var(--border);padding:var(--space-8)}.vocab-grid{padding:var(--space-8);gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=900px){.vocab-grid{padding:var(--space-5);grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.vocab-grid{grid-template-columns:1fr}}.flashcard-page{max-width:620px;padding:var(--space-8);margin:0 auto}.flashcard-header{margin-bottom:var(--space-6)}.flashcard-counter{text-align:center;font-size:var(--text-sm);color:var(--text-muted);font-family:var(--font-display);margin-bottom:var(--space-4);font-weight:600}.flashcard-container{perspective:1200px;cursor:pointer;margin-bottom:var(--space-6)}.flashcard-container:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:var(--radius-xl)}.flip-card{width:100%;min-height:360px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.flip-card.flipped{transform:rotateY(180deg)}.flip-front,.flip-back{backface-visibility:hidden;padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--border);flex-direction:column;align-items:center;transition:visibility 0s linear .28s;display:flex;position:absolute;inset:0;overflow:hidden}.flip-card:not(.flipped) .flip-back,.flip-card.flipped .flip-front{visibility:hidden}.flip-front{background:var(--white);box-shadow:var(--shadow-md);padding:var(--space-5);justify-content:flex-start}.flip-back{border-color:var(--b1-border);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#f0f4ff,#faf5ff);justify-content:center;transform:rotateY(180deg)}.flashcard-word{font-family:var(--font-display);font-size:var(--text-4xl);color:var(--text-heading);margin-bottom:var(--space-3);text-align:center;font-weight:800}.flashcard-pronunciation{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-3);font-style:italic}.flashcard-hint{font-size:var(--text-xs);color:var(--text-light);margin-top:var(--space-4)}.flashcard-definition{font-size:var(--text-xl);color:var(--text-heading);text-align:center;margin-bottom:var(--space-4);font-weight:600;line-height:1.5}.flashcard-example{font-size:var(--text-sm);color:var(--text-muted);text-align:center;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:#0000000a;font-style:italic;line-height:1.6}.flashcard-actions{gap:var(--space-4);justify-content:center;display:flex}.progress-page-header{background:var(--white);border-bottom:1px solid var(--border);padding:var(--space-8)}.progress-stats-row{gap:var(--space-5);padding:var(--space-8);grid-template-columns:repeat(3,1fr);display:grid}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-sm)}.stat-card-icon{border-radius:var(--radius-lg);width:48px;height:48px;margin:0 auto var(--space-3);justify-content:center;align-items:center;display:flex}.stat-card-icon--xp{color:var(--warning);background:#fef3c7}.stat-card-icon--streak{background:var(--error-bg);color:var(--error)}.stat-card-icon--accuracy{background:var(--success-bg);color:var(--success)}.stat-card-icon--exercises{background:var(--info-bg);color:var(--info)}.stat-card-icon--stars{color:var(--warning);background:#fef3c7}.stat-card-icon--correct{background:var(--success-bg);color:var(--success)}.stat-card-value{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--text-heading);font-weight:900}.stat-card-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.progress-levels-wrap{padding:0 var(--space-8) var(--space-8)}.progress-level-block{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);overflow:hidden}.progress-level-block-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3);background:var(--page-bg);display:flex}.progress-level-block-header h3{font-size:var(--text-base);margin:0}.progress-topic-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);transition:background var(--transition-fast);display:flex}.progress-topic-row:last-child{border-bottom:none}.progress-topic-row:hover{background:var(--page-bg)}.progress-topic-name{font-size:var(--text-sm);color:var(--text-body);flex:1;font-weight:500}.progress-topic-bar{width:120px}.progress-topic-pct{font-size:var(--text-sm);color:var(--text-muted);text-align:right;min-width:44px;font-weight:700}#toast-container{z-index:9999;gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed;top:20px;right:20px}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);pointer-events:auto;min-width:240px;font-weight:500;display:flex}.toast-icon{flex-shrink:0;align-items:center;display:flex}.toast-xp{border-left:3px solid var(--warning)}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--error)}.hint-text{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);display:flex}.rule-card-page{padding:var(--space-8);max-width:720px;margin:0 auto}.rule-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md)}.rule-card-header{gap:var(--space-4);margin-bottom:var(--space-6);align-items:flex-start;display:flex}.rule-card-icon{border-radius:var(--radius-lg);background:var(--orange-light);width:48px;height:48px;color:var(--orange);flex-shrink:0;justify-content:center;align-items:center;display:flex}.rule-card-header h2{margin-bottom:var(--space-2);font-size:var(--text-xl)}.rule-card-summary{color:var(--text-muted);line-height:1.6}.rule-card-rules{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.rule-item{padding:var(--space-4);background:var(--page-bg);border-radius:var(--radius-lg);border-left:3px solid var(--orange)}.rule-item h3{font-size:var(--text-sm);color:var(--orange);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.04em}.rule-item p{font-size:var(--text-sm);line-height:1.6}.rule-card-examples h3{align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-3);color:var(--text-heading);display:flex}.rule-card-examples ul{padding-left:var(--space-5)}.rule-card-examples li{font-size:var(--text-sm);color:var(--text-body);margin-bottom:var(--space-2);line-height:1.6}.rule-card-examples em{color:var(--orange);font-style:normal;font-weight:600}.rule-card-actions{margin-top:var(--space-6);text-align:center}.lesson-summary{background:var(--page-bg);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);text-align:left;max-width:420px;margin-left:auto;margin-right:auto}.lesson-summary h3{align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-2);display:flex}.lesson-summary p{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.lesson-summary-item{font-size:var(--text-xs);color:var(--text-body);margin-bottom:var(--space-1)}.activity-section{padding:var(--space-5) var(--space-8)}.activity-heading{align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin-bottom:var(--space-5);display:flex}.activity-chart{align-items:flex-end;gap:var(--space-3);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);height:120px;padding:var(--space-4) var(--space-5) var(--space-3);display:flex;position:relative}.activity-bar-wrap{align-items:center;gap:var(--space-1);flex-direction:column;flex:1;height:100%;display:flex}.activity-bar-count{font-size:var(--text-xs);color:var(--text-muted);min-height:16px;font-weight:700}.activity-bar-track{border-radius:var(--radius-sm);border-bottom:2px solid var(--border);background:0 0;flex:1;align-items:flex-end;width:100%;display:flex}.activity-bar-fill{background:var(--orange);border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:100%;transition:height var(--transition-slow);box-shadow:0 2px 6px #f973164d}.activity-empty{font-size:var(--text-sm);color:var(--text-light);white-space:nowrap;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.activity-bar-label.today{color:var(--orange);font-weight:700}.activity-bar-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.fav-btn{border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);transition:all var(--transition-fast);padding:10px 20px;font-weight:600;display:inline-flex}.fav-btn:hover,.fav-btn--active{border-color:var(--warning);color:var(--warning);background:var(--warning-bg)}.data-io-section{padding:var(--space-5) var(--space-8) var(--space-8);border-top:1px solid var(--border);margin-top:var(--space-4)}.weak-topics-section{padding:var(--space-5) var(--space-8)}.weak-topics-list{gap:var(--space-2);flex-direction:column;display:flex}.weak-topic-item{padding:var(--space-3) var(--space-5);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition-fast);cursor:pointer;justify-content:space-between;align-items:center;display:flex}.weak-topic-item:hover{border-color:var(--orange);box-shadow:var(--shadow-md);transform:translate(3px)}.weak-topic-info{align-items:center;gap:var(--space-3);display:flex}.weak-topic-name{font-size:var(--text-sm);color:var(--text-heading);text-transform:capitalize;font-weight:600}.weak-topic-right{align-items:center;gap:var(--space-3);display:flex}.weak-topic-score{font-size:var(--text-sm);color:var(--error);font-weight:700}.weak-topic-cta{color:var(--text-light);display:flex}.badges-section{padding:var(--space-5) var(--space-8)}.badges-heading{align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin-bottom:var(--space-4);display:flex}.badges-grid{gap:var(--space-3);flex-wrap:wrap;display:flex}.badge-card{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);display:flex}.badge-card-icon{font-size:1.25rem}.badge-card-name{font-size:var(--text-sm);color:var(--text-heading);font-weight:600}.skeleton-page{padding:var(--space-8);max-width:720px;margin:0 auto}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #eef1f6 50%, var(--border) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s ease-in-out infinite skeletonShimmer}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-breadcrumb{width:200px;height:14px;margin-bottom:var(--space-4)}.skeleton-title{width:60%;height:28px;margin-bottom:var(--space-4)}.skeleton-progress{width:100%;height:7px;margin-bottom:var(--space-8);border-radius:var(--radius-full)}.skeleton-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-8)}.skeleton-line{height:16px;margin-bottom:var(--space-3)}.skeleton-line.w-40{width:40%}.skeleton-line.w-60{width:60%}.skeleton-line.w-80{width:80%}.skeleton-options{gap:var(--space-3);margin-top:var(--space-6);flex-direction:column;display:flex}.skeleton-option{border-radius:var(--radius-lg);height:52px}.skeleton-flashcard{border-radius:var(--radius-xl);width:100%;height:360px;margin:var(--space-6) 0}.skeleton-actions{gap:var(--space-4);justify-content:center;display:flex}.skeleton-btn{border-radius:var(--radius-xl);width:160px;height:48px}.skeleton-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.skeleton-card-sm{border-radius:var(--radius-xl);height:120px}.flashcard-emoji{margin-bottom:var(--space-3);font-size:4rem;line-height:1;display:block}.flashcard-speak-btn{margin-top:var(--space-2)}.flashcard-status{font-size:var(--text-xs);align-items:center;gap:3px;margin-left:8px;display:inline-flex}.flashcard-status--known{color:var(--success)}.flashcard-status--learning{color:var(--warning)}.topic-card-progress{margin-top:var(--space-3)}.topic-card-progress .progress-bar{height:4px}a.topic-card,a.level-card{color:inherit;cursor:pointer;text-decoration:none;display:block}.home-banner-welcome{text-align:center;padding:var(--space-6);background:var(--white);border-radius:var(--radius-xl);border:1px dashed var(--orange-border);box-shadow:var(--shadow-sm);grid-column:1/-1;min-width:200px}.home-banner-welcome-icon{margin-bottom:var(--space-3);color:var(--orange);display:block}.home-banner-welcome p{color:var(--text-body);font-size:var(--text-sm);line-height:1.6}.progress-topic-icon{flex-shrink:0;display:flex}.progress-topic-icon--vocab{color:var(--info)}.progress-topic-icon--grammar{color:var(--success)}.progress-topic-name{font-size:var(--text-sm);color:var(--text-body);align-items:center;gap:var(--space-2);flex:1;font-weight:500;display:flex}.placement-page{max-width:560px;padding:var(--space-8);margin:0 auto}.placement-header{margin-bottom:var(--space-6)}.placement-previous{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--page-bg);border-radius:var(--radius-lg);margin-bottom:var(--space-5);font-size:var(--text-sm);display:flex}.placement-info{padding:var(--space-6);margin-bottom:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.placement-info-item{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-body);display:flex}.placement-actions{text-align:center}.placement-result-level{margin:var(--space-4) 0}.home-placement-hint{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.home-placement-hint a{color:var(--orange);font-weight:600}.reading-passage-card{margin-bottom:var(--space-6);padding:var(--space-6) var(--space-8)}.reading-passage-label{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--orange);margin-bottom:var(--space-4);font-weight:700;display:flex}.reading-passage-body{color:var(--text-body);font-size:var(--text-base);max-width:720px;line-height:1.75}.reading-passage-p{margin-bottom:var(--space-4)}.reading-passage-p:last-child{margin-bottom:0}.listening-player{text-align:center;padding:var(--space-8);margin-bottom:var(--space-6)}.listening-player-icon{color:var(--orange);margin-bottom:var(--space-3);justify-content:center;display:flex}.listening-player-label{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);margin-bottom:var(--space-4);color:var(--text-heading)}.listening-player-hint{margin-top:var(--space-3)}.listening-warning{color:var(--warning);font-size:var(--text-sm);margin-top:var(--space-2)}.sidebar-theme-btn{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--sidebar-fg);font-size:var(--text-xs);transition:all var(--transition-fast);margin-bottom:var(--space-3);display:flex}.sidebar-theme-btn:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-fg-hover)}.sidebar-theme-label{font-weight:500}.mobile-theme-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--sidebar-logo-fg);transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.mobile-theme-btn:hover{background:var(--sidebar-hover-bg)}#app.sidebar-collapsed .sidebar-theme-label{display:none}#app.sidebar-collapsed .sidebar-theme-btn{padding:var(--space-3);justify-content:center}.sidebar-user-btn{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:var(--sidebar-fg);transition:background var(--transition-fast);margin-bottom:var(--space-2);text-decoration:none;display:flex;overflow:hidden}.sidebar-user-btn:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-fg-hover)}.sidebar-user-avatar{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;font-size:.75rem;font-weight:700;display:flex}.sidebar-user-info{min-width:0;overflow:hidden}.sidebar-user-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:.8125rem;font-weight:600;overflow:hidden}.sidebar-user-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.sidebar-signin-btn{text-decoration:none}#app.sidebar-collapsed .sidebar-user-info{display:none}#app.sidebar-collapsed .sidebar-user-btn{justify-content:center}.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}.speaking-phrase-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;margin-bottom:var(--space-6);box-shadow:var(--shadow-sm)}.speaking-phrase-label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);font-weight:600}.speaking-word-track{justify-content:center;gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;align-items:center;min-height:3rem;display:flex}.speak-word{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;transition:background .3s,color .3s,transform .3s,box-shadow .3s;display:inline-block}.speak-word.pending{background:var(--page-bg);color:var(--text-muted);border:2px solid var(--border)}.speak-word.current{background:var(--orange-light);color:var(--orange-dark);border:2px solid var(--orange);animation:.9s ease-in-out infinite wordPulse;transform:scale(1.06)}.speak-word.correct{background:var(--success-bg);color:var(--success-text);border:2px solid var(--success-border);animation:.35s ease-out wordPop}.speak-word.wrong{background:var(--error-bg);color:var(--error-text);border:2px solid var(--error-border);animation:.45s ease-in-out wordShake}@keyframes wordPulse{0%,to{box-shadow:0 0 #f973164d}50%{box-shadow:0 0 0 8px #f9731600}}@keyframes wordPop{0%{opacity:.6;transform:scale(.85)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes wordShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.speaking-heard-label{margin-top:var(--space-3)}#next-btn-container{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.speaking-phrase-text{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--text-heading);margin-bottom:var(--space-3);font-weight:800;line-height:1.3}.speaking-phrase-tip{margin-bottom:var(--space-4)}.speaking-mic-area{text-align:center;margin-bottom:var(--space-6)}.speaking-mic-btn{background:var(--orange);color:#fff;width:88px;height:88px;transition:transform var(--transition-base), box-shadow var(--transition-base);margin-bottom:var(--space-4);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 20px #f9731666}.speaking-mic-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 24px #f9731680}.speaking-mic-btn:disabled{opacity:.4;cursor:not-allowed}.speaking-mic-btn.recording{background:var(--error);animation:1.2s ease-in-out infinite micPulse;box-shadow:0 4px 20px #ef444466}@keyframes micPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.speaking-mic-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.speaking-transcript{margin-top:var(--space-3);min-height:1.25rem}.word-chip.in-sentence{cursor:pointer;background:var(--orange-light);color:var(--orange-dark);border:none}.writing-index-page{min-height:100%}.writing-index-header{background:var(--white);border-bottom:1px solid var(--border);padding:var(--space-8) var(--space-8) var(--space-6)}.writing-index-body{padding:var(--space-8);background:var(--page-bg)}.writing-index-toolbar{justify-content:space-between;align-items:center;gap:var(--space-5);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.writing-index-filters{flex:auto;min-width:0}.writing-header-row{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.writing-entries-grid{gap:var(--space-5);grid-template-columns:repeat(3,1fr);padding:0;display:grid}.writing-index-empty{text-align:center;padding:var(--space-12) var(--space-6)}@media (width<=900px){.writing-index-header,.writing-index-body{padding:var(--space-5)}.writing-index-toolbar{margin-bottom:var(--space-6);padding-bottom:var(--space-5)}.writing-entries-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.writing-entries-grid{grid-template-columns:1fr}.writing-index-toolbar{flex-direction:column;align-items:stretch}.writing-index-stats{justify-content:center}}.writing-entry-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);color:inherit;text-decoration:none;display:block}.writing-entry-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.writing-entry-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.writing-entry-card-top h4{font-size:var(--text-base);color:var(--text-heading);margin:0;font-weight:700}.writing-entry-date{font-size:var(--text-xs);color:var(--text-light);white-space:nowrap}.writing-entry-topic{margin-bottom:var(--space-2)}.writing-entry-excerpt{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-4);min-height:2.8em;line-height:1.5}.writing-entry-footer{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.writing-entry-issues{font-size:var(--text-xs);color:var(--warning);align-items:center;gap:4px;font-weight:600;display:inline-flex}.writing-entry-issues--clean{color:var(--success)}.writing-editor-page{max-width:900px;padding:var(--space-8);margin:0 auto}.writing-editor-header{margin-bottom:var(--space-5)}.writing-editor-heading{font-size:var(--text-xl);color:var(--text-heading);margin:0;font-weight:700}.writing-editor-actions{gap:var(--space-2);display:flex}.writing-prompts{margin-bottom:var(--space-5)}.writing-prompts-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2);font-weight:700;display:block}.writing-prompts-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.writing-prompt-chip{padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--card-bg);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-weight:600}.writing-prompt-chip:hover{border-color:var(--orange);color:var(--orange-dark);background:var(--orange-light)}.writing-form{padding:var(--space-6);margin-bottom:var(--space-6)}.writing-label{font-size:var(--text-sm);color:var(--text-heading);margin-bottom:var(--space-2);margin-top:var(--space-4);font-weight:600;display:block}.writing-label:first-of-type{margin-top:0}.writing-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-body);background:var(--bg);color:var(--text-body);transition:border-color var(--transition-fast)}.writing-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-light);outline:none}.writing-textarea{width:100%;min-height:280px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--text-base);font-family:var(--font-body);background:var(--bg);color:var(--text-body);resize:vertical;transition:border-color var(--transition-fast);line-height:1.7}.writing-textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-light);outline:none}.writing-form-footer{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.writing-form-footer-left{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.writing-saved-hint{font-size:var(--text-sm);color:var(--success);align-items:center;gap:4px;font-weight:600;display:inline-flex}.writing-word-count{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.writing-form-buttons{gap:var(--space-3);display:flex}.writing-results{margin-bottom:var(--space-8)}.writing-results-header{margin-bottom:var(--space-5)}.writing-results-header h2{font-size:var(--text-lg);color:var(--text-heading);align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-weight:700;display:flex}.writing-stats-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.writing-stat-pill{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--border);color:var(--text-muted);font-weight:700}.writing-stat-pill--spelling{color:#92400e;background:#fef3c7}.writing-stat-pill--grammar{color:#991b1b;background:#fee2e2}.writing-stat-pill--punctuation{color:#1e40af;background:#dbeafe}.writing-stat-pill--style{color:#5b21b6;background:#ede9fe}.writing-clean-message{padding:var(--space-6);background:var(--success-light,#ecfdf5);border:1px solid var(--success);border-radius:var(--radius-lg);color:var(--success);text-align:center;font-weight:600}.writing-results-layout{gap:var(--space-5);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=860px){.writing-results-layout{grid-template-columns:1fr}.writing-editor-page{padding:var(--space-5)}}.writing-preview{padding:var(--space-5);top:var(--space-4);position:sticky}.writing-preview-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);font-weight:700}.writing-preview-body{font-size:var(--text-base);color:var(--text-body);white-space:pre-wrap;word-break:break-word;line-height:1.8}.writing-mark{cursor:pointer;transition:outline var(--transition-fast);border-radius:3px;padding:0 2px}.writing-mark--spelling{color:#713f12;background:#fef08a}.writing-mark--grammar{color:#7f1d1d;background:#fecaca}.writing-mark--punctuation{color:#1e3a8a;background:#bfdbfe}.writing-mark--style{color:#4c1d95;background:#ddd6fe}.writing-mark--other{color:#374151;background:#e5e7eb}.writing-mark--active,.writing-mark:hover{outline:2px solid var(--orange);outline-offset:1px}.writing-issues-list{gap:var(--space-3);flex-direction:column;max-height:600px;display:flex;overflow-y:auto}.writing-issue-card{background:var(--card-bg);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.writing-issue-card--spelling{border-left-color:#f59e0b}.writing-issue-card--grammar{border-left-color:#ef4444}.writing-issue-card--punctuation{border-left-color:#3b82f6}.writing-issue-card--style{border-left-color:#8b5cf6}.writing-issue-card--active{box-shadow:var(--shadow-md);border-color:var(--orange)}.writing-issue-top{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.writing-issue-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}.writing-issue-snippet{font-size:var(--text-sm);color:var(--text-heading);font-weight:600}.writing-issue-message{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3);line-height:1.5}.writing-issue-fix{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.writing-fix-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--success);background:var(--success-light,#ecfdf5);color:var(--success);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:600}.writing-fix-btn:hover{background:var(--success);color:#fff}.writing-alt-fixes{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.writing-alt-fix-btn{padding:2px var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer}.writing-alt-fix-btn:hover{border-color:var(--orange);color:var(--orange-dark)}.writing-error-box{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);color:#991b1b;font-size:var(--text-sm);background:#fef2f2;border:1px solid #fecaca;line-height:1.5;display:flex}.writing-index-stats{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;flex-shrink:0;display:flex}.writing-index-stat-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:1rem}.writing-index-stat{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.writing-index-stat strong{color:var(--text-heading)}.writing-index-stat--clean{color:var(--success);align-items:center;gap:4px;display:inline-flex}.writing-level-row{margin-bottom:var(--space-2);padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.writing-level-label{margin-top:0!important}.writing-level-hint{margin-top:var(--space-2);margin-bottom:0}.writing-level-group{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.writing-level-btn{min-width:3.25rem;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:2px solid var(--border);background:var(--page-bg);color:var(--text-muted);font-size:var(--text-sm);font-weight:700;font-family:var(--font-display);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast)}.writing-level-btn:hover{color:var(--text-heading);border-color:var(--text-light)}.writing-level-btn--a1.is-selected{background:var(--a1-bg);border-color:var(--a1-dark);color:var(--a1-dark);box-shadow:0 0 0 3px #05966926}.writing-level-btn--a2.is-selected{background:var(--a2-bg);border-color:var(--a2-dark);color:var(--a2-dark);box-shadow:0 0 0 3px #2563eb26}.writing-level-btn--b1.is-selected{background:var(--b1-bg);border-color:var(--b1-dark);color:var(--b1-dark);box-shadow:0 0 0 3px #7c3aed26}.writing-level-btn--b2.is-selected{background:var(--b2-bg);border-color:var(--b2-dark);color:var(--b2-dark);box-shadow:0 0 0 3px #db277726}.writing-level-btn--c1.is-selected{background:var(--c1-bg);border-color:var(--c1-dark);color:var(--c1-dark);box-shadow:0 0 0 3px #ea580c26}.auth-page{min-height:100vh;padding:var(--space-8) var(--space-4);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:420px;padding:var(--space-8)}.auth-logo{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.auth-logo-text{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-heading);font-weight:700}.auth-logo-text strong{color:var(--orange)}.auth-heading{font-size:var(--text-xl);color:var(--text-heading);margin-bottom:var(--space-6);font-weight:700}.auth-tabs{gap:var(--space-1);background:var(--page-bg);border-radius:var(--radius-lg);padding:var(--space-1);margin-bottom:var(--space-6);display:flex}.auth-tab-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1}.auth-tab-btn.active{background:var(--white);color:var(--text-heading);box-shadow:var(--shadow-sm)}.auth-tab-btn:hover:not(.active){color:var(--text-body)}.auth-field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.auth-label{font-size:var(--text-sm);color:var(--text-body);font-weight:600}.form-input{width:100%;padding:10px var(--space-4);border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-body);background:var(--white);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.form-input::placeholder{color:var(--text-light)}.form-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f973161f}.auth-forgot{text-align:center;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-muted)}.auth-link-btn{cursor:pointer;font:inherit;color:var(--orange);font-weight:600;font-size:var(--text-sm);transition:color var(--transition-fast);background:0 0;border:none;padding:0}.auth-link-btn:hover{color:var(--orange-dark)}.auth-divider{align-items:center;gap:var(--space-3);margin:var(--space-6) 0;color:var(--text-light);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-social{gap:var(--space-3);flex-direction:column;display:flex}.auth-social-btn{justify-content:center;gap:var(--space-3);width:100%}.auth-desc{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.auth-magic-success{text-align:center;padding:var(--space-4) 0}.auth-magic-icon{margin-bottom:var(--space-4);font-size:3rem}.auth-magic-success h3{margin-bottom:var(--space-3)}.topic-card--locked{cursor:pointer;position:relative}.topic-card-lock{top:var(--space-3);right:var(--space-3);color:#fff;z-index:1;background:#f97316;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;box-shadow:0 2px 8px #f9731666}.home-signup-cta{align-items:center;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.home-signup-cta-text{font-size:var(--text-sm);color:var(--text-muted)}.home-signup-cta-text a{color:var(--primary);font-weight:600}.results-signup-banner{justify-content:space-between;align-items:center;gap:var(--space-4);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;display:flex}.results-signup-banner-text{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#9a3412;font-weight:500;display:flex}.profile-avatar-sm{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;min-width:52px;height:52px;font-size:1.1rem;font-weight:800;display:flex}.profile-form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.profile-form-field{gap:var(--space-2);flex-direction:column;display:flex}.profile-form-label{font-size:var(--text-sm);color:var(--text);font-weight:500}.writing-entry-card-wrap{position:relative}.writing-entry-delete-btn{top:var(--space-3);right:var(--space-3);padding:5px var(--space-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:5px;font-weight:500;display:flex;position:absolute}.writing-entry-card-wrap:hover .writing-entry-delete-btn{opacity:1}.writing-entry-delete-btn:hover{color:var(--error);border-color:var(--error);background:var(--error-bg)}.writing-save-btn--saved{color:var(--success)!important;border-color:var(--success)!important}.auth-error{margin:var(--space-3) 0 0;padding:var(--space-3);border:1.5px solid var(--error);border-radius:var(--radius-md);background:color-mix(in srgb, var(--error) 8%, var(--card-bg));color:var(--text-heading);font-size:var(--text-sm);font-weight:600;line-height:1.4}.results-title{margin-bottom:var(--space-1)}.results-subtitle{color:var(--text-muted);margin-bottom:var(--space-3)}.results-score--count{font-size:3rem}.results-note{margin-bottom:var(--space-4);font-weight:700}.results-note--best{color:var(--warning)}.results-note--xp{color:var(--warning);font-size:var(--text-sm);margin-bottom:var(--space-2);font-weight:600}.results-note--mastered{color:var(--success)}.results-part-progress{margin:var(--space-4) 0;text-align:left}.results-part-progress-head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.results-part-progress-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.results-part-progress-count{font-size:var(--text-sm);color:var(--success);font-weight:700}.progress-bar--lg{height:10px}.progress-bar--xs{height:5px}.progress-bar-fill.is-mastered{background:var(--success)}.answer-review{text-align:left;margin:var(--space-6) 0 var(--space-2);padding:var(--space-5);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg)}.answer-review--clean{justify-content:center;align-items:center;gap:var(--space-2);color:var(--success);background:var(--success-bg);border-color:var(--success-border);text-align:center;font-weight:600;display:flex}.answer-review-clean-icon{display:inline-flex}.answer-review-header h3{align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin-bottom:var(--space-1);display:flex}.answer-review-header p{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-4)}.answer-review-list{gap:var(--space-3);flex-direction:column;list-style:none;display:flex}.answer-review-item{padding:var(--space-4);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md)}.answer-review-q{color:var(--text-heading);margin-bottom:var(--space-3);font-weight:600;line-height:1.5}.answer-review-answers{gap:var(--space-2);flex-direction:column;display:flex}.answer-review-row{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.answer-review-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);flex-shrink:0;padding:2px 8px;font-weight:700}.answer-review-row--wrong .answer-review-label{background:var(--error-bg);color:var(--error-text)}.answer-review-row--correct .answer-review-label{background:var(--success-bg);color:var(--success-text)}.answer-review-value{color:var(--text-body)}.answer-review-row--correct .answer-review-value{color:var(--text-heading);font-weight:600}.answer-review-explanation{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border);font-size:var(--text-sm);color:var(--text-muted);line-height:1.6}.answer-review-notebook{align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--text-sm);color:var(--primary);font-weight:600;display:inline-flex}.answer-review-notebook:hover{text-decoration:underline}.mistakes-actions{gap:var(--space-3);padding:0 var(--space-8) var(--space-5);flex-wrap:wrap;display:flex}.mistakes-list{gap:var(--space-3);padding:0 var(--space-8) var(--space-8);flex-direction:column;list-style:none;display:flex}.mistake-row{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:flex}.mistake-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.mistake-row-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mistake-row-body{flex:1;min-width:0}.mistake-row-question{color:var(--text-heading);margin-bottom:var(--space-2);font-weight:600;line-height:1.5}.mistake-row-answer{font-size:var(--text-sm);color:var(--text-body);margin-bottom:var(--space-2)}.mistake-row-answer-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--success-text);background:var(--success-bg);border-radius:var(--radius-full);margin-right:var(--space-2);padding:2px 8px;font-weight:700}.mistake-row-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.mistake-row-remove{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-light);transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mistake-row-remove:hover{background:var(--error-bg);color:var(--error)}.home-mistakes-strip{align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-5);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-lg);color:var(--text-heading);transition:box-shadow var(--transition-fast);display:flex}.home-mistakes-strip:hover{box-shadow:var(--shadow-sm)}.home-mistakes-icon{color:var(--warning);display:inline-flex}.home-mistakes-text{font-size:var(--text-sm);flex:1}.home-mistakes-cta{font-size:var(--text-sm);color:var(--primary);align-items:center;gap:4px;font-weight:600;display:inline-flex}.part-select-page{padding:var(--space-8);max-width:560px;margin:0 auto}.part-select-title{margin:var(--space-4) 0 var(--space-1)}.part-select-subtitle{color:var(--text-muted);margin-bottom:var(--space-6)}.part-list{gap:var(--space-3);flex-direction:column;display:flex}.part-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:flex}.part-row:hover{box-shadow:var(--shadow-sm)}.part-row--current{border-color:var(--primary)}.part-row--done{border-color:var(--success)}.part-row-marker{border:2px solid var(--border);background:var(--bg);width:40px;height:40px;font-size:var(--text-sm);color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.part-row--current .part-row-marker{border-color:var(--primary);background:var(--orange-light);color:var(--primary)}.part-row--done .part-row-marker{border-color:var(--success);background:var(--success);color:#fff}.part-row-body{flex:1;min-width:0}.part-row-title{color:var(--text-body);margin-bottom:2px;font-weight:600}.part-row-current{font-size:var(--text-xs);color:var(--primary);margin-left:6px;font-weight:700}.part-row-meta{font-size:var(--text-xs);color:var(--text-muted)}.part-row-stars{font-size:var(--text-sm);color:var(--warning)}.part-select-back{margin-top:var(--space-6);display:inline-flex}.topic-card-parts{width:100%;margin-top:var(--space-2)}.topic-card-parts-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.topic-card-parts-label{font-size:var(--text-xs);color:var(--primary);font-weight:600}.topic-card-parts-label.is-mastered{color:var(--success)}.topic-card-parts-pct{font-size:var(--text-xs);color:var(--text-muted)}.topic-card-locked-note{font-size:var(--text-xs);color:var(--primary);font-weight:600}.topic-card-meta--dim{color:var(--text-muted)}.locked-modal-overlay{z-index:9999;padding:var(--space-4);-webkit-backdrop-filter:blur(8px);background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.locked-modal{width:100%;max-width:400px;padding:var(--space-8);text-align:center;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);position:relative}.locked-modal-close{top:var(--space-4);right:var(--space-4);color:var(--text-muted);padding:4px;position:absolute}.locked-modal-icon{width:64px;height:64px;margin:0 auto var(--space-5);background:var(--orange-light);border:2px solid var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:1.8rem;display:flex}.locked-modal-title{margin:0 0 var(--space-3);color:var(--text-heading)}.locked-modal-text{margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--text-body);line-height:1.6}.locked-modal-cta{width:100%;margin-bottom:var(--space-3);font-size:var(--text-base);justify-content:center;padding:14px 20px;display:flex}.locked-modal-signin{font-size:var(--text-sm);color:var(--text-body)}.locked-modal-signin strong{color:var(--primary)}.lang-switch{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);gap:2px;padding:2px;display:inline-flex}.lang-switch-btn{border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);padding:4px 10px;font-weight:700}.lang-switch-btn:hover{color:var(--text-heading)}.lang-switch-btn.is-active{background:var(--card-bg);color:var(--primary);box-shadow:var(--shadow-xs)}.lang-switch--lg .lang-switch-btn{font-size:var(--text-sm);padding:8px 16px}.lang-switch--sm{justify-content:center;width:100%}.sidebar-link-count{min-width:20px;height:20px;font-size:var(--text-xs);color:#fff;background:var(--primary);border-radius:var(--radius-full);justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-weight:700;display:inline-flex}.sidebar-register-btn{width:100%;font-size:var(--text-xs);justify-content:center}.mobile-more-controls{gap:var(--space-2);margin:var(--space-2) var(--space-5) var(--space-3);display:flex}.mobile-more-controls .mobile-more-theme{flex:1}.mobile-more-lang{justify-content:space-between;align-items:center;gap:var(--space-3);margin:0 var(--space-5) var(--space-5);display:flex}.mobile-more-lang-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.profile-section{padding:0 var(--space-8) var(--space-5)}.profile-row-card{padding:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.profile-row-title{margin:0 0 var(--space-1)}.profile-row-text{font-size:var(--text-sm);max-width:52ch;margin:0;line-height:1.6}.profile-section--danger{padding-bottom:var(--space-8);gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.profile-delete-btn{color:var(--error)}.profile-delete-explain{font-size:var(--text-xs);color:var(--text-muted);flex-basis:100%;max-width:68ch;margin:0;line-height:1.6}.flashcard-meaning-tr{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--primary);margin-bottom:var(--space-3);text-align:center;font-weight:700}.site-footer{padding:var(--space-10) var(--space-8) var(--space-6);background:var(--card-bg);border-top:1px solid var(--border);margin-top:auto}.footer-inner{gap:var(--space-8);grid-template-columns:2fr 1fr 1fr;max-width:1100px;display:grid}.footer-logo{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-heading);font-weight:800}.footer-tagline{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);max-width:44ch;line-height:1.6}.footer-links{gap:var(--space-2);flex-direction:column;display:flex}.footer-links-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:700}.footer-links a{font-size:var(--text-sm);color:var(--text-body);transition:color var(--transition-fast)}.footer-links a:hover{color:var(--primary)}.footer-bottom{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-muted)}:where(a,button,[role=button],input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{left:var(--space-4);z-index:10000;padding:var(--space-3) var(--space-5);background:var(--primary);color:#fff;border-radius:var(--radius-md);transition:top var(--transition-fast);font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}.auth-field-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.auth-label-optional{color:var(--text-muted);font-weight:400}.data-io-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.data-io-import{cursor:pointer}.data-io-import input[type=file]{display:none}.weak-topic-age{font-size:var(--text-xs);color:var(--text-muted)}.placement-level-badge{margin-left:8px}.placement-result-badge{padding:6px 16px;font-size:1rem}.profile-identity{align-items:center;gap:var(--space-4);display:flex}.profile-name{margin:0}.profile-member-since{font-size:var(--text-sm);margin-top:2px}.profile-form-card{padding:var(--space-6)}.profile-card-title{margin:0 0 var(--space-5)}.profile-save-row{margin-top:var(--space-5)}.progress-stats-row--4{grid-template-columns:repeat(4,1fr)}.stat-card-value--xp{color:var(--warning)}.stat-card-value--streak{color:var(--error)}.stat-card-value--accuracy{color:var(--success)}.tf-prompt{margin-bottom:var(--space-5)}.tense-compare-prompt{margin-bottom:var(--space-3)}.word-order-placeholder{font-size:var(--text-sm);color:var(--text-light)}.explanation-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.explanation-answer{font-size:var(--text-base);color:var(--text-heading)}.explanation-answer-label{margin-right:var(--space-2);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--success-text);font-weight:700;display:inline-block}.multi-blank-input.is-missing{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent)}.word-order-sentence.is-correct{border-color:var(--success-border);background:var(--success-bg)}.word-order-sentence.is-wrong{border-color:var(--error-border);background:var(--error-bg)}.locked-page{padding:var(--space-16) var(--space-4);justify-content:center;display:flex}.locked-page-card{width:100%;max-width:420px;padding:var(--space-8);text-align:center;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.locked-page-card .locked-modal-cta{justify-content:center;display:flex}.locked-page-card .locked-modal-signin{display:block}.locked-page-back{margin-top:var(--space-3)}.hint-block{margin:var(--space-3) 0 var(--space-4)}.hint-toggle{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-full);cursor:pointer;background:0 0;font-weight:600;display:inline-flex}.hint-toggle:hover{color:var(--primary);border-color:var(--primary)}.hint-block .hint-text{margin:0}.hint-block .hint-text[hidden]{display:none}.ex-note{border:2px solid var(--border-strong,var(--border));border-radius:var(--radius-full);background:var(--card-bg);min-height:36px;color:var(--text-heading);font-weight:700;font-size:var(--text-sm);flex-shrink:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex;position:relative}.ex-note:hover{background:var(--bg)}.ex-note.has-note:after{content:"";background:var(--orange,#f59e0b);border:2px solid var(--card-bg);border-radius:50%;width:11px;height:11px;position:absolute;top:-3px;right:-3px}.note-panel{display:none}.note-panel.is-open{z-index:130;width:min(560px,100vw - 32px);max-height:min(80vh,640px);padding:0 var(--space-5) var(--space-4);background:var(--card-bg);border:2px solid var(--line,var(--border-strong));border-radius:var(--radius-xl,16px);box-shadow:var(--shadow-lg,0 20px 50px #00000040);overscroll-behavior:contain;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.note-panel-head{align-items:center;gap:var(--space-3);padding:var(--space-4) 0 var(--space-3);display:flex;position:relative}.note-panel-grip{display:none}.note-panel-heading{flex-direction:column;flex:1;min-width:0;display:flex}.note-panel-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.note-panel-title{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-weight:800;overflow:hidden}.note-panel-close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.note-panel-close:hover{background:var(--bg);color:var(--text-heading)}.note-panel-text,.notes-card-text{width:100%;min-height:160px;padding:var(--space-3) var(--space-4);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--page-bg,var(--bg));color:var(--text-body);font:inherit;resize:vertical;line-height:1.6}.note-panel-text:focus,.notes-card-text:focus,.notes-card-title:focus{border-color:var(--primary);outline:none}.note-panel-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);font-size:var(--text-sm);display:flex}.note-panel-status{color:var(--success-text);opacity:0;transition:opacity var(--transition-fast);font-weight:700}.note-panel-status.is-visible{opacity:1}.note-panel-all{color:var(--primary);align-items:center;gap:4px;font-weight:700;display:inline-flex}.note-panel-all:hover{text-decoration:underline}.sheet-backdrop.is-open{z-index:120;background:#00000059;display:block;position:fixed;inset:0}@keyframes note-sheet-in{0%{transform:translateY(100%)}to{transform:none}}.notes-page{padding:0 var(--space-8) var(--space-8)}.notes-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.notes-search{flex:240px;min-width:0;position:relative}.notes-search svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.notes-search input{width:100%;min-height:42px;padding:0 var(--space-3) 0 38px;border:2px solid var(--border);border-radius:var(--radius-full);background:var(--card-bg);color:var(--text-body);font:inherit}.notes-search input:focus{border-color:var(--primary);outline:none}.notes-count{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.notes-list{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding:0;list-style:none;display:grid}.notes-card{gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.notes-card.is-new{border-color:var(--primary)}.notes-card-head{align-items:flex-start;gap:var(--space-3);display:flex}.notes-card-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.notes-card-icon--free{background:var(--sun-bg,var(--warning-bg,#fef3c7));color:var(--text-heading)}.notes-card-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.notes-card-topic{color:var(--text-heading);font-weight:800;line-height:1.3}.notes-card-title{border:2px solid var(--border);border-radius:var(--radius-md);background:var(--page-bg,var(--bg));width:100%;color:var(--text-heading);font:inherit;padding:6px 10px;font-weight:800}.notes-card-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.notes-card-meta a{color:var(--primary);align-items:center;gap:3px;font-weight:700;display:inline-flex}.notes-card-meta a:hover{text-decoration:underline}.notes-card-remove{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-light);flex-shrink:0;justify-content:center;align-items:center;display:flex}.notes-card-remove:hover{background:var(--error-bg);color:var(--error)}.notes-card-text{min-height:120px}.notes-card-foot{min-height:1.2em;font-size:var(--text-xs);justify-content:flex-end;display:flex}.mastery-section{padding:0 var(--space-8) var(--space-6)}.mastery-section h2{align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin:0 0 4px;display:flex}.mastery-desc{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 var(--space-4)}.mastery-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:0;list-style:none;display:grid}.mastery-row{align-items:center;column-gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name pct""meter meter""meta go";row-gap:6px;display:grid}.mastery-name{align-items:center;gap:var(--space-2);min-width:0;color:var(--text-heading);grid-area:name;font-weight:800;display:flex}.mastery-name span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mastery-pct{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-heading);grid-area:pct;font-size:1.35rem;font-weight:800}.mastery-pct.is-low{color:var(--error)}.mastery-pct.is-mid{color:var(--orange,#d97706)}.mastery-pct.is-high{color:var(--success-text)}.mastery-pct.is-none{font-size:var(--text-sm);color:var(--text-muted);font-family:inherit;font-weight:600}.mastery-meter{border:1.5px solid var(--border-strong,var(--border));background:var(--page-bg,var(--bg));border-radius:999px;grid-area:meter;height:10px;overflow:hidden}.mastery-meter>span{background:var(--orange,#f59e0b);height:100%;display:block}.mastery-meter.is-low>span{background:var(--error)}.mastery-meter.is-high>span{background:var(--success,#16a34a)}.mastery-meta{font-size:var(--text-xs);color:var(--text-muted);grid-area:meta}.mastery-go{font-size:var(--text-sm);color:var(--primary);grid-area:go;align-items:center;gap:3px;font-weight:700;display:inline-flex}.mastery-go:hover{text-decoration:underline}.wb-page{--wb-gap:var(--space-5);--wb-toolbar-h:68px;max-width:1360px;padding:var(--space-6) var(--space-8) var(--space-10);margin:0 auto}#content-column:has(.wb-page){overflow-x:clip}.wb-header{align-items:baseline;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.wb-header h1{margin:0;font-size:1.9rem;line-height:1.1}.wb-header-sub{color:var(--text-muted);font-size:var(--text-sm);margin:0}.wb-toolbar{z-index:30;align-items:center;gap:var(--space-3);min-height:var(--wb-toolbar-h);padding:var(--space-3) 0;background:var(--page-bg);display:flex;position:sticky;top:0}.wb-search{flex:auto;align-items:center;min-width:0;display:flex;position:relative}.wb-search>svg{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.wb-search input{border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);width:100%;height:44px;color:var(--text-heading);font:inherit;font-size:var(--text-base);box-shadow:var(--shadow-xs);padding:0 44px 0 42px}.wb-search input::placeholder{color:var(--text-light)}.wb-search input:focus{outline:3px solid var(--sun);outline-offset:0}.wb-search input::-webkit-search-cancel-button{cursor:pointer}.wb-kbd{border:1.5px solid var(--border-soft);min-width:22px;color:var(--text-muted);font:700 12px/18px var(--font-body);text-align:center;pointer-events:none;border-radius:5px;padding:1px 6px;position:absolute;right:12px}.wb-search input:focus~.wb-kbd,.wb-search input:not(:placeholder-shown)~.wb-kbd{display:none}.wb-levels{flex:none}.wb-levels .tab-group{flex-wrap:nowrap;margin:0}.wb-levels .tab-btn{padding:6px 12px}.wb-type-wrap{flex:none;position:relative}.wb-type-btn{border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);height:44px;color:var(--text-heading);font:700 var(--text-sm) var(--font-body);box-shadow:var(--shadow-xs);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:0 12px 0 14px;display:inline-flex}.wb-type-btn:hover{box-shadow:var(--shadow-sm)}.wb-type-btn.is-active{background:var(--sun);color:#17141f}.wb-type-btn-label{color:inherit;opacity:.75;font-weight:600}.wb-type-btn-badge{background:var(--ink);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:11px;line-height:20px}.wb-type-btn-label:after{content:":"}.wb-type-btn-caret{opacity:.7;display:inline-flex}.wb-type-panel{z-index:40;width:300px;padding:var(--space-2);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-md);position:absolute;top:calc(100% + 8px);right:0}.wb-type-panel .wb-sheet-head{display:none}.wb-types{flex-direction:column;gap:2px;display:flex}.wb-type{border-radius:var(--radius-md);width:100%;color:var(--text-heading);font:600 var(--text-sm) var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;display:flex}.wb-type:hover{background:var(--bg)}.wb-type-check{border:2px solid var(--line);background:var(--card-bg);border-radius:5px;flex:none;place-items:center;width:18px;height:18px;display:grid}.wb-type.is-on .wb-type-check{background:var(--sun);color:#17141f}.wb-type-name{flex:1}.wb-type-count{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.wb-type-foot{justify-content:space-between;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-1) 2px;border-top:1.5px solid var(--border-soft);display:flex}.wb-type-apply{display:none}.wb-status{align-items:center;gap:var(--space-2) var(--space-3);min-height:32px;margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.wb-count{color:var(--text-heading);font-variant-numeric:tabular-nums;margin:0;font-weight:800}.wb-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.wb-chip{border:1.5px solid var(--line);background:var(--card-bg);max-width:240px;color:var(--text-heading);font:600 var(--text-xs) var(--font-body);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:6px;padding:3px 8px 3px 10px;display:inline-flex;overflow:hidden}.wb-chip:hover{background:var(--bg)}.wb-chip svg{opacity:.7;flex:none}.wb-chip-clear{color:var(--text-muted);font:600 var(--text-xs) var(--font-body);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:3px 4px;text-decoration:underline}.wb-chip-clear:hover{color:var(--text-heading)}.wb-body{gap:var(--wb-gap);grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:start;display:grid}.wb-list{border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-sm);margin:0;padding:0;list-style:none;overflow:hidden}.wb-row{border-top:1px solid var(--border-soft);align-items:center;display:flex}.wb-row:first-child{border-top:0}.wb-row:hover{background:var(--bg)}.wb-row.is-selected{background:var(--sun);box-shadow:inset 4px 0 0 var(--line)}.wb-row.is-selected,.wb-row.is-selected .wb-lemma,.wb-row.is-selected .wb-meaning{color:#17141f}.wb-row.is-selected .wb-sub,.wb-row.is-selected .wb-pos{color:#4a4458}.wb-row-main{align-items:center;gap:var(--space-4);min-width:0;padding:11px var(--space-2) 11px var(--space-5);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;grid-template-columns:minmax(140px,220px) minmax(0,1fr) auto;display:grid}.wb-row-main:focus-visible{outline:3px solid var(--orange);outline-offset:-3px;border-radius:6px}.wb-row-head{flex-direction:column;min-width:0;display:flex}.wb-lemma{font-family:var(--font-display);color:var(--text-heading);overflow-wrap:anywhere;font-size:1.05rem;font-weight:800}.wb-pos{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.wb-row-meaning{flex-direction:column;min-width:0;display:flex}.wb-meaning,.wb-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wb-meaning{color:var(--text-heading);font-weight:700;font-size:var(--text-sm)}.wb-sub{color:var(--text-muted);font-size:var(--text-xs)}.wb-level{box-shadow:none;flex:none;padding:1px 6px;font-size:11px}.wb-pulse{width:32px;height:32px;margin:0 var(--space-3) 0 var(--space-1);border:1.5px solid var(--border-soft);background:var(--card-bg);color:var(--text-muted);cursor:pointer;border-radius:999px;flex:none;place-items:center;display:grid}.wb-pulse:hover{border-color:var(--line);color:var(--text-heading)}.wb-pulse.is-added{background:var(--success-bg);border-color:var(--line);color:var(--success-text)}.wb-pulse.is-studied{cursor:default;background:0 0;border-color:#0000}.wb-more,.wb-more-end{justify-content:center;align-items:center;gap:var(--space-4);margin:var(--space-4) 0 0;color:var(--text-muted);font-size:var(--text-sm);display:flex}.wb-more-count{font-variant-numeric:tabular-nums}.wb-detail-panel{top:var(--wb-toolbar-h);max-height:calc(100dvh - var(--wb-toolbar-h) - var(--space-5));border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-md);position:sticky;overflow-y:auto}.wb-detail-panel.is-hidden,.wb-detail-panel>.wb-sheet-head{display:none}.wb-detail{padding:var(--space-5) var(--space-6) var(--space-6)}.wb-detail-meta{align-items:center;gap:var(--space-2);display:flex}.wb-detail-head{align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}.wb-detail-word{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:2rem;line-height:1.1}.wb-ipa{color:var(--text-muted);font-size:var(--text-sm);margin:4px 0 0}.wb-detail-block{margin-top:var(--space-4)}.wb-detail-label{margin:0 0 var(--space-2);color:var(--text-muted);font:800 11px var(--font-body);letter-spacing:.06em;text-transform:uppercase}.wb-detail-tr{color:var(--text-heading);margin:0 0 4px;font-size:1.15rem;font-weight:800}.wb-detail-def{color:var(--text-body);margin:0;line-height:1.5}.wb-example{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-left:3px solid var(--sun);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--bg);display:flex}.wb-example p{color:var(--text-body);flex:1;margin:0;font-style:italic;line-height:1.5}.wb-forms{gap:var(--space-2);grid-template-columns:1fr 1fr;margin:0;display:grid}.wb-form{padding:var(--space-2) var(--space-3);border:1.5px solid var(--border-soft);border-radius:var(--radius-md);min-width:0}.wb-form dt{color:var(--text-muted);font-size:11px;font-weight:600}.wb-form dd{color:var(--text-heading);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:4px;margin:2px 0 0;font-weight:800;display:flex}.wb-detail-actions{margin-left:auto}.wb-pulse-wide{gap:6px}.wb-pulse-note{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);margin:0;font-weight:600;display:flex}.wb-detail-empty{place-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);color:var(--text-muted);text-align:center;display:grid}.wb-detail-empty p{margin:0}.wb-icon-btn{border:1.5px solid var(--border-soft);background:var(--card-bg);width:32px;height:32px;color:var(--text-heading);cursor:pointer;border-radius:999px;flex:none;place-items:center;display:inline-grid}.wb-icon-btn:hover{border-color:var(--line);box-shadow:var(--shadow-xs)}.wb-icon-btn--lg{border:var(--outline);width:40px;height:40px;box-shadow:var(--shadow-xs)}.wb-icon-btn--sm{background:0 0;border-color:#0000;width:24px;height:24px}.wb-empty{justify-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);border:2px dashed var(--border-soft);border-radius:var(--radius-xl);text-align:center;grid-column:1/-1;display:grid}.wb-empty h3{margin:var(--space-2) 0 0}.wb-empty p{margin:0 0 var(--space-3);color:var(--text-muted)}.wb-body:has(.wb-empty){grid-template-columns:1fr}.sheet-backdrop{display:none}@keyframes wb-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@media (width<=860px){.wb-page{--wb-toolbar-h:0px;padding:var(--space-4) var(--ph-gutter,16px) var(--space-6)}.wb-header h1{margin:0;font-size:1.5rem}.wb-header-sub{display:none}.wb-toolbar{gap:var(--space-2);top:calc(var(--mobile-topbar-height,0px) + env(safe-area-inset-top,0px));min-height:0;padding:var(--space-2) 0;grid-template-columns:minmax(0,1fr) auto;display:grid}.wb-kbd{display:none}.wb-search input{height:48px;box-shadow:none;border-width:1.5px;border-radius:12px;font-size:16px}.wb-type-btn{height:48px;box-shadow:none;border-width:1.5px;border-radius:12px}.wb-type-btn:hover{box-shadow:none}.wb-levels{grid-area:2/1/auto/-1}.wb-levels .tab-group{width:100%;display:flex}.wb-levels .tab-btn{text-align:center;flex:1;justify-content:center;padding:6px 4px}.wb-type-btn{padding:0 12px}.wb-type-btn-value,.wb-type-btn-caret{display:none}.wb-type-btn-label{opacity:1}.wb-type-btn-label:after{content:none}.wb-status{margin-bottom:var(--space-2)}.wb-body{display:block}.wb-list{box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;gap:8px;display:flex;overflow:visible}.wb-row{border:var(--ph-border);border-radius:var(--ph-radius);background:var(--card-bg);align-items:flex-start}.wb-row:first-child{border-top:var(--ph-border)}.wb-row:hover{background:var(--card-bg)}.wb-row-main{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;padding:12px 4px 12px 14px}.wb-row-head{flex-flow:wrap;align-items:baseline;gap:0 8px}.wb-lemma{font-size:1.1rem}.wb-row-main .wb-level{grid-area:1/2;align-self:start}.wb-row-meaning{grid-column:1/-1}.wb-meaning,.wb-sub{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.wb-sub{font-size:var(--text-sm);line-height:1.4}.wb-pulse{width:40px;height:40px;margin:8px 8px 0 2px}.wb-more{gap:var(--space-2);flex-direction:column}.wb-more .btn{width:100%}.wb-detail-panel,.wb-type-panel{z-index:130;width:auto;max-height:88dvh;padding:0 0 env(safe-area-inset-bottom,0px);border:0;border-top:2px solid var(--line);overscroll-behavior:contain;border-radius:22px 22px 0 0;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -10px 30px #0000002e}.wb-detail-panel{display:none}.wb-detail-panel.is-open{display:block}.wb-detail-panel.is-open,.wb-type-panel.is-open{animation:.22s ease-out wb-sheet-in}.wb-detail-panel>.wb-sheet-head,.wb-type-panel .wb-sheet-head{z-index:1;justify-content:flex-end;align-items:center;gap:var(--space-2);padding:14px var(--space-4) 4px;background:var(--card-bg);display:flex;position:sticky;top:0}.wb-type-panel .wb-sheet-head{justify-content:space-between}.wb-sheet-head{touch-action:none}.wb-sheet-head h2{margin:0;font-size:1.1rem}.wb-sheet-grip{background:var(--border-soft);border-radius:999px;width:40px;height:4px;margin-left:-20px;position:absolute;top:6px;left:50%}.wb-detail{padding:0 var(--space-5) var(--space-6)}.wb-detail-word{font-size:1.75rem}.wb-type-panel .wb-types{padding:var(--space-2) var(--space-3)}.wb-type{font-size:var(--text-base);padding:12px 10px}.wb-type-foot{padding:var(--space-3) var(--space-4) var(--space-4);background:var(--card-bg);align-items:center;margin:0;position:sticky;bottom:0}.wb-type-apply{flex:1;justify-content:center;display:inline-flex}.sheet-backdrop.is-open{z-index:125;background:#0a081073;display:block;position:fixed;inset:0}body.sheet-open{overflow:hidden}}:root{--ink:#17141f;--line:var(--ink);--shadow-ink:var(--ink);--paper:#fff7ec;--sun:#ffe08a;--page-bg:var(--paper);--white:#fff;--card-bg:#fff;--bg:#fff1dd;--border:var(--ink);--border-strong:var(--ink);--border-soft:#e6dccb;--text-heading:var(--ink);--text-body:#2b2735;--text-muted:#5f586e;--text-light:#6d667c;--orange:#f26a0f;--orange-dark:#b84a05;--orange-light:#ffe2c4;--orange-border:var(--ink);--primary:#f26a0f;--primary-fill:#ff9d4d;--success:#1f9d61;--success-bg:#b9efcf;--success-border:var(--ink);--success-text:#0d4a2c;--error:#d8432b;--error-bg:#ffc9c0;--error-border:var(--ink);--error-text:#6d1608;--warning:#c98a00;--warning-bg:var(--sun);--warning-border:var(--ink);--info:#2f6fdd;--info-bg:#bcd7ff;--a1:#1f9d61;--a1-bg:#b9efcf;--a1-border:var(--ink);--a1-dark:#0d4a2c;--a2:#2f6fdd;--a2-bg:#bcd7ff;--a2-border:var(--ink);--a2-dark:#12356f;--b1:#7a4fe0;--b1-bg:#d9c8ff;--b1-border:var(--ink);--b1-dark:#37207a;--b2:#f26a0f;--b2-bg:#ffd0a3;--b2-border:var(--ink);--b2-dark:#7a3203;--c1:#d8432b;--c1-bg:#ffc2bd;--c1-border:var(--ink);--c1-dark:#6d1608;--sidebar-bg:#fff;--sidebar-active-bg:var(--sun);--sidebar-fg-active:var(--ink);--sidebar-hover-bg:var(--bg);--sidebar-stat-bg:var(--bg);--font-display:"Archivo", "Arial Narrow", system-ui, sans-serif;--font-body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:18px;--shadow-xs:2px 2px 0 var(--shadow-ink);--shadow-sm:3px 3px 0 var(--shadow-ink);--shadow-md:4px 4px 0 var(--shadow-ink);--shadow-lg:6px 6px 0 var(--shadow-ink);--shadow-xl:8px 8px 0 var(--shadow-ink);--outline:2px solid var(--line)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#0e0e11;--line:#6f6f7c;--shadow-ink:#000;--paper:#0f0f12;--sun:#f4cd5a;--page-bg:var(--paper);--white:#24242b;--card-bg:#24242b;--bg:#2f2f38;--surface-raised:#383842;--border:var(--line);--border-strong:var(--line);--border-soft:#3d3d48;--text-heading:#f8f6f1;--text-body:#dcdad4;--text-muted:#a5a3a0;--text-light:#85838a;--orange:#ff9d4d;--orange-dark:#ffc08a;--orange-light:#4a2a10;--orange-border:var(--line);--primary:#ff9d4d;--primary-fill:#ff9d4d;--success:#4fd08f;--success-bg:#17452f;--success-border:var(--line);--success-text:#d9f7e6;--error:#ff8a75;--error-bg:#5c1f15;--error-border:var(--line);--error-text:#ffe2db;--warning:#f4cd5a;--warning-bg:#4d3d0f;--warning-border:var(--line);--info:#8ab6ff;--info-bg:#1d3a66;--a1:#5bd69b;--a1-bg:#b9efcf;--a1-border:var(--line);--a1-dark:#0d4a2c;--a2:#8ab6ff;--a2-bg:#bcd7ff;--a2-border:var(--line);--a2-dark:#12356f;--b1:#b79cff;--b1-bg:#d9c8ff;--b1-border:var(--line);--b1-dark:#37207a;--b2:#ff9d4d;--b2-bg:#ffd0a3;--b2-border:var(--line);--b2-dark:#7a3203;--c1:#ff8a75;--c1-bg:#ffc2bd;--c1-border:var(--line);--c1-dark:#6d1608;--sidebar-bg:#19191e;--sidebar-fg:var(--text-muted);--sidebar-fg-hover:var(--text-heading);--sidebar-fg-active:#17141f;--sidebar-logo-fg:var(--text-heading);--sidebar-border:var(--line);--sidebar-hover-bg:var(--bg);--sidebar-active-bg:var(--sun);--sidebar-label-fg:var(--text-light);--sidebar-stat-bg:var(--bg);--sidebar-stat-value-fg:var(--text-heading);--sidebar-stat-label-fg:var(--text-muted);--sidebar-control-fg:var(--text-muted);--sidebar-control-hover-bg:var(--bg);--sidebar-control-hover-fg:var(--text-heading);--sidebar-mobile-menu-bg:var(--bg);--sidebar-mobile-menu-fg:var(--text-heading)}body{font-size:1rem}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;font-weight:800;font-stretch:112%}h1,.home-banner-title,.results-title{text-wrap:balance}.btn{border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-weight:700;transition:transform 90ms,box-shadow 90ms,background-color .12s}.btn:hover{box-shadow:var(--shadow-md);transform:translate(-1px,-1px)}.btn:active{box-shadow:0 0 0 var(--shadow-ink);transform:translate(2px,2px)}.btn-primary,.btn-primary:hover{background:var(--primary-fill);color:#17141f;border-color:var(--line)}.btn-primary:hover{background:#ffab66}.btn-secondary,.btn-secondary:hover{background:var(--card-bg);color:var(--text-heading);border-color:var(--line)}.btn-secondary:hover{background:var(--sun);color:#17141f}.btn-success,.btn-success:hover{background:var(--success-bg);color:var(--success-text);border-color:var(--line)}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover{border-color:var(--line);background:var(--card-bg);box-shadow:var(--shadow-xs)}.btn:disabled,.btn[disabled]{opacity:.55;box-shadow:none;cursor:not-allowed;transform:none}.card,.topic-card,.level-card,.stat-card,.question-card,.results-card,.rule-card,.part-row,.badge-card,.daily-goal-bar,.content-stats-bar,.home-mistakes-strip,.flashcard-front,.flashcard-back,.reading-passage,.listening-player,.auth-card,.profile-section,.locked-modal,.locked-page-card,.lesson-summary,.answer-review,.writing-card,.mistake-card,.activity-chart,.home-banner-stat,.home-banner-welcome{border:var(--outline);box-shadow:var(--shadow-md)}.stat-card,.part-row,.badge-card,.daily-goal-bar,.content-stats-bar,.home-mistakes-strip,.home-banner-stat,.mistake-card,.lesson-summary,.answer-review{box-shadow:var(--shadow-sm)}a.topic-card,a.level-card,a.part-row,.card-interactive,a.home-mistakes-strip{transition:transform 90ms,box-shadow 90ms}a.topic-card:hover,a.level-card:hover:not(.level-locked),a.part-row:hover,.card-interactive:hover,a.home-mistakes-strip:hover{box-shadow:var(--shadow-lg);border-color:var(--line);transform:translate(-2px,-2px)}a.topic-card:active,a.level-card:active,a.part-row:active{box-shadow:var(--shadow-xs);transform:translate(2px,2px)}.level-card{overflow:hidden}.level-card-header{border-bottom:var(--outline)}.level-card-icon,.topic-card-icon,.stat-card-icon,.rule-card-icon{border:var(--outline);border-radius:var(--radius-md)}.level-card .level-card-icon{background:var(--card-bg);color:var(--text-heading)}.level-tag{border:var(--outline);color:#17141f;font-weight:800}.level-card--a1 .level-tag{background:var(--a1-bg)}.level-card--a2 .level-tag{background:var(--a2-bg)}.level-card--b1 .level-tag{background:var(--b1-bg)}.level-card--b2 .level-tag{background:var(--b2-bg)}.level-card--c1 .level-tag{background:var(--c1-bg)}.topic-card-cover{border-bottom:var(--outline)}.badge{border:var(--outline);border-radius:var(--radius-sm);font-weight:800}.progress-bar,.daily-goal-track{border:var(--outline);border-radius:var(--radius-full);background:var(--card-bg);height:12px;overflow:hidden}.progress-bar--xs,.topic-card-progress .progress-bar{height:9px}.topic-card-progress--skill{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.topic-card-progress--skill .stars{margin:0}.progress-bar-fill,.daily-goal-fill{background:var(--text-heading);border-radius:0}.progress-bar-fill.is-mastered,.daily-goal-fill.complete{background:var(--success)}.tab-group{border:var(--outline);background:var(--card-bg);box-shadow:var(--shadow-xs);padding:3px}.tab-btn{border-radius:var(--radius-sm);font-weight:700}.tab-btn.active{background:var(--sun);color:#17141f;box-shadow:none;outline:2px solid var(--line);outline-offset:-2px}#navbar,.sidebar{border-right:var(--outline)}.sidebar-logo-icon{border:var(--outline);border-radius:var(--radius-md);background:var(--primary-fill);color:#17141f}.sidebar-logo-text{text-transform:uppercase;letter-spacing:0;font-weight:800;font-stretch:118%}.sidebar-link{border:2px solid #0000;font-weight:600}.sidebar-link.active{border-color:var(--line);font-weight:800}.sidebar-link.active:before{display:none}.sidebar-stat-pill{border:var(--outline)}.mobile-topbar{border-bottom:var(--outline);background:var(--card-bg)}.mobile-bottom-nav{border-top:var(--outline);background:var(--card-bg);box-shadow:none}.mobile-bottom-nav-item{font-weight:700}.mobile-bottom-nav-item.is-active{color:var(--text-heading)}.mobile-bottom-nav-item.is-active svg{background:var(--sun);color:#17141f;border-radius:var(--radius-sm);outline:2px solid var(--line);outline-offset:3px}.mobile-more-sheet{border-top:var(--outline)}.form-input,.fill-blank-input,.multi-blank-input,select.form-input,textarea{border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);color:var(--text-heading);font-weight:600}.form-input:focus,.fill-blank-input:focus,.multi-blank-input:focus,textarea:focus{border-color:var(--line);box-shadow:3px 3px 0 var(--primary);outline:none}.fill-blank-input.correct,.multi-blank-input.correct{background:var(--success-bg);color:var(--success-text);border-color:var(--line)}.fill-blank-input.wrong,.multi-blank-input.wrong{background:var(--error-bg);color:var(--error-text);border-color:var(--line)}.question-label{background:var(--sun);color:#17141f;border:var(--outline);border-radius:var(--radius-sm);padding:2px 9px;font-weight:800;display:inline-block}.question-text{font-family:var(--font-display);font-weight:600;font-stretch:104%}.question-text .blank,.blank{background:var(--sun);color:#0000;border:2px dashed var(--line);border-radius:var(--radius-sm);padding:0 6px}.option-btn,.tf-btn,.match-item,.word-chip{border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);box-shadow:var(--shadow-xs);font-weight:600;transition:transform 90ms,box-shadow 90ms,background-color .12s}.option-btn:hover:not(.disabled),.tf-btn:hover:not(.disabled),.match-item:hover:not(.matched):not(.disabled),.word-chip:hover:not(.placed){box-shadow:var(--shadow-sm);border-color:var(--line);background:var(--bg);transform:translate(-1px,-1px)}.option-letter{border:var(--outline);border-radius:var(--radius-sm);background:var(--bg);font-weight:800}.option-btn.correct,.tf-btn.correct,.match-item.matched{background:var(--success-bg);color:var(--success-text);border-color:var(--line)}.option-btn.wrong,.tf-btn.wrong,.match-item.wrong-match{background:var(--error-bg);color:var(--error-text);border-color:var(--line)}.option-btn.correct .option-letter{background:var(--success);color:#fff}.option-btn.wrong .option-letter{background:var(--error);color:#fff}.option-btn.disabled,.tf-btn.disabled{opacity:1;box-shadow:none}.option-btn.disabled:not(.correct):not(.wrong){opacity:.5}.match-item.selected{background:var(--sun);color:#17141f;border-color:var(--line)}.word-chip.placed{opacity:.25;box-shadow:none}.word-chip.in-sentence{background:var(--sun);color:#17141f}.word-order-sentence{border:2px dashed var(--line);border-radius:var(--radius-lg);background:var(--bg)}.explanation-box{border:var(--outline);border-radius:var(--radius-lg)}.explanation-answer-label{color:inherit}.hint-toggle{border:2px dashed var(--line);color:var(--text-body);font-weight:700}.hint-toggle:hover{background:var(--sun);color:#17141f;border-style:solid}.results-score{font-family:var(--font-display);font-weight:800;font-stretch:122%}.toast{border:var(--outline);box-shadow:var(--shadow-sm);border-radius:var(--radius-lg);font-weight:700}.toast-xp,.toast-success,.toast-error{border-left:var(--outline)}.toast-xp{background:var(--sun);color:#17141f}.locked-modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#17141f8c}.site-footer{border-top:var(--outline);background:var(--card-bg)}.skeleton{border-radius:var(--radius-md)}@media (prefers-reduced-motion:reduce){.btn,a.topic-card,a.level-card,a.part-row,.option-btn,.tf-btn,.match-item,.word-chip{transition:none}.btn:hover,a.topic-card:hover,a.level-card:hover,.option-btn:hover{transform:none}}.home-page{width:100%;max-width:1180px;padding:var(--space-8) var(--space-8) var(--space-12);gap:var(--space-6);flex-direction:column;margin-inline:auto;display:flex}.home-head{justify-content:space-between;align-items:end;gap:var(--space-4) var(--space-6);flex-wrap:wrap;display:flex}.home-head-title{text-transform:uppercase;max-width:18ch;font-size:clamp(1.7rem,1.1rem + 2.2vw,2.75rem);line-height:1.05}.home-head-stats{gap:var(--space-2);flex-wrap:wrap;display:flex}.stat-chip{border:var(--outline);border-radius:var(--radius-md);background:var(--card-bg);font-size:var(--text-sm);color:var(--text-body);font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:5px 11px;font-weight:600;display:inline-flex}.stat-chip strong{color:var(--text-heading);font-weight:800}.stat-chip--streak{background:var(--sun);color:#17141f}.stat-chip--streak strong{color:#17141f}.stat-chip--xp{background:var(--a1-bg);color:var(--a1-dark)}.stat-chip--xp strong{color:var(--a1-dark)}.home-lead{gap:var(--space-6);grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:stretch;display:grid}.next-step{gap:var(--space-4);padding:var(--space-8);border:var(--outline);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);background:var(--primary-fill);color:#17141f;flex-direction:column;display:flex}.next-step-eyebrow{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.next-step-title{color:#17141f;font-size:clamp(1.6rem,1.1rem + 1.8vw,2.5rem);line-height:1.05}.next-step-progress{align-items:center;gap:var(--space-4);font-weight:700;font-size:var(--text-sm);margin-top:auto;display:flex}.next-step-progress .progress-bar{background:#fff;border-color:#17141f;flex:1}.next-step-progress .progress-bar-fill{background:#17141f}.next-step-progress span{white-space:nowrap;font-variant-numeric:tabular-nums}.next-step .next-step-cta{align-self:flex-start}.next-step .next-step-cta,.next-step .next-step-cta:hover{color:#fff;background:#17141f;border-color:#17141f;box-shadow:3px 3px #ffffff8c}.next-step-alt{font-size:var(--text-sm);text-underline-offset:3px;align-items:center;gap:6px;font-weight:700;text-decoration:underline;display:inline-flex}.next-step-eyebrow{align-items:center;gap:6px;display:inline-flex}.next-step-meta{font-weight:700;font-size:var(--text-sm);color:#17141f;margin:0}.home-today-link.home-today-link--done{text-decoration:none}.pulse-moved{font-size:var(--text-sm);flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:0 auto;padding:0;list-style:none;display:flex}.home-side{gap:var(--space-4);flex-direction:column;display:flex}.side-block{gap:var(--space-2);padding:var(--space-5);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-sm);color:var(--text-body);flex-direction:column;display:flex}.side-block-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;font-weight:800;display:inline-flex}.side-block-value{font-family:var(--font-display);font-weight:800;font-stretch:116%;font-size:var(--text-3xl);color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1}.side-block-note{font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.side-block-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.side-block--link{transition:transform 90ms,box-shadow 90ms}.side-block--link:hover{box-shadow:var(--shadow-md);transform:translate(-2px,-2px)}.side-block--mistakes{background:var(--c1-bg)}.side-block--mistakes .side-block-eyebrow,.side-block--mistakes .side-block-note,.side-block--mistakes .side-block-value{color:var(--c1-dark)}.side-block--guest{background:var(--sun)}.side-block--guest .side-block-eyebrow,.side-block--guest .side-block-note{color:#17141f}.home-page .section-heading{margin:var(--space-4) 0 calc(var(--space-2) * -1);justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.home-page .section-heading h2{font-size:var(--text-xl);text-transform:uppercase}.home-page .section-heading a{color:var(--text-heading);text-underline-offset:3px;align-items:center;gap:2px;font-weight:700;text-decoration:underline;display:inline-flex}.section-heading-note{font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.level-tiles{gap:var(--space-4);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.level-tile{padding:var(--space-4);border:var(--outline);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;transition:transform 90ms,box-shadow 90ms;display:flex}.level-tile:hover{box-shadow:var(--shadow-lg);transform:translate(-2px,-2px)}.level-tile:active{box-shadow:var(--shadow-xs);transform:translate(2px,2px)}.level-tile--a1{background:var(--a1-bg);color:var(--a1-dark)}.level-tile--a2{background:var(--a2-bg);color:var(--a2-dark)}.level-tile--b1{background:var(--b1-bg);color:var(--b1-dark)}.level-tile--b2{background:var(--b2-bg);color:var(--b2-dark)}.level-tile--c1{background:var(--c1-bg);color:var(--c1-dark)}.level-tile-code{font-family:var(--font-display);font-weight:800;font-stretch:122%;font-size:var(--text-3xl);line-height:1}.level-tile-name{font-weight:800}.level-tile-desc{font-size:var(--text-sm);opacity:.85;flex:1;line-height:1.4}.level-tile .progress-bar{margin-top:var(--space-2);display:block}.level-tile .progress-bar-fill{background:currentColor;height:100%;display:block}.level-tile-count{font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:700}.level-tile.is-yours{outline:3px solid var(--primary);outline-offset:3px}.skill-tiles{gap:var(--space-4);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.skill-tile{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-xs);color:var(--text-heading);font-weight:800;transition:transform 90ms,box-shadow 90ms;display:flex}.skill-tile:hover{box-shadow:var(--shadow-md);transform:translate(-2px,-2px)}.skill-tile-icon{border:var(--outline);border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.skill-tile--a1 .skill-tile-icon{background:var(--a1-bg);color:var(--a1-dark)}.skill-tile--a2 .skill-tile-icon{background:var(--a2-bg);color:var(--a2-dark)}.skill-tile--b1 .skill-tile-icon{background:var(--b1-bg);color:var(--b1-dark)}.skill-tile--b2 .skill-tile-icon{background:var(--b2-bg);color:var(--b2-dark)}.skill-tile--c1 .skill-tile-icon{background:var(--c1-bg);color:var(--c1-dark)}.skill-tile--sun .skill-tile-icon{background:var(--sun);color:#17141f}@media (width<=1180px){.level-tiles,.skill-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}#app:has(.exercise-page) #navbar{display:none}#app:has(.exercise-page) .mobile-topbar{display:none}#app:has(.exercise-page) .mobile-bottom-nav{display:none}#app:has(.exercise-page) .site-footer{display:none}#app:has(.exercise-page) #content-column{margin-left:0;padding-top:0;padding-bottom:0}.exercise-page{width:100%;max-width:760px;padding:var(--space-6) var(--space-5) 140px;min-height:100dvh;margin-inline:auto}.exercise-top-bar{gap:var(--space-4);align-items:center}.exercise-title{font-family:var(--font-display);font-weight:800;font-stretch:112%;font-size:var(--text-lg)}.exercise-progress-wrap{align-items:center;gap:var(--space-3);flex:340px;min-width:200px;max-width:460px;display:flex}.exercise-counter{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-heading);font-weight:800}.step-dots{flex:1;gap:4px;min-width:0;display:flex}.step-dot{border:var(--outline);background:var(--card-bg);border-radius:4px;flex:1;height:12px}.step-dot--ok{background:var(--success)}.step-dot--no{background:var(--error)}.step-dot--now{background:var(--text-heading)}.question-card{padding:var(--space-8);border-radius:var(--radius-2xl)}.question-text{font-size:clamp(1.25rem,1.05rem + .9vw,1.65rem);line-height:1.35}.exercise-page .next-btn-area,.exercise-page #next-btn-container.is-visible{z-index:30;padding:var(--space-4) var(--space-5) calc(var(--space-4) + env(safe-area-inset-bottom,0px));justify-content:center;align-items:center;gap:var(--space-5);border-top:var(--outline);background:var(--card-bg);text-align:left;margin:0;animation:.16s ease-out dockIn;display:flex;position:fixed;bottom:0;left:0;right:0}.exercise-page .next-btn-area[style*=display\:none],.exercise-page .next-btn-area[style*="display: none"]{display:none}.exercise-page .next-btn-area.is-correct,.exercise-page #next-btn-container.is-correct{background:var(--success-bg);color:var(--success-text)}.exercise-page .next-btn-area.is-wrong,.exercise-page #next-btn-container.is-wrong{background:var(--error-bg);color:var(--error-text)}.dock-xp{display:none}.dock-verdict{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:800;font-stretch:114%;font-size:var(--text-xl);display:inline-flex}.exercise-page .next-btn-area .btn{background:var(--text-heading);min-width:220px;color:var(--card-bg);border-color:var(--text-heading);justify-content:center;box-shadow:3px 3px #00000040}@keyframes dockIn{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.exercise-page .next-btn-area{animation:none}}.next-step{position:relative;overflow:hidden}.next-step>*{z-index:1;position:relative}.side-block .daily-goal-track{flex:none;width:100%;height:12px}.results-page{padding:var(--space-8) var(--space-5) var(--space-12)}.results-card{max-width:640px;padding:var(--space-8);border-radius:var(--radius-2xl);text-align:center;align-items:stretch;gap:var(--space-2);flex-direction:column;margin-inline:auto;display:flex}.results-icon{border:var(--outline);border-radius:var(--radius-lg);align-self:center}.results-title{font-size:var(--text-2xl);text-transform:uppercase}.results-score{margin:var(--space-2) 0;font-size:clamp(3.5rem,2.5rem + 4vw,5.5rem);line-height:1}.results-score.excellent,.results-score.good{color:var(--success)}.results-score.average{color:var(--warning)}.results-score.poor{color:var(--error)}.results-card .stars{justify-content:center;gap:6px;font-size:2rem;line-height:1;display:flex}.results-card .star.filled{color:var(--sun);-webkit-text-stroke:1.5px var(--line)}.results-card .star.empty{color:var(--text-light)}.results-note{border:var(--outline);border-radius:var(--radius-md);background:var(--sun);color:#17141f;align-self:center;align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.results-note--xp,.results-note--best,.results-note--mastered{color:#17141f}.results-note--mastered{background:var(--success-bg);color:var(--success-text)}.results-actions{margin-top:var(--space-4)}.results-actions .btn-primary{background:var(--text-heading);color:var(--card-bg);border-color:var(--text-heading)}.results-signup-banner{border:var(--outline);border-radius:var(--radius-lg);background:var(--sun);color:#17141f}.next-topic-suggestion{border-top:2px dashed var(--line);padding-top:var(--space-4);margin-top:var(--space-4)}.sidebar-nav{padding:var(--space-3);scrollbar-color:var(--text-light) transparent;gap:2px}.sidebar-link{padding:7px var(--space-3)}.sidebar-section-label{margin-top:var(--space-2);padding-block:var(--space-2) 2px;color:var(--text-muted);font-weight:800}@media (height>=900px){.sidebar-link{padding:9px var(--space-3)}}.lang-switch{border:var(--outline);background:var(--card-bg);border-radius:var(--radius-md);padding:2px}.lang-switch-btn{color:var(--text-body);border-radius:5px}.lang-switch-btn.is-active{background:var(--sun);color:#17141f;box-shadow:none;outline:2px solid var(--line);outline-offset:-2px}.breadcrumb{font-weight:600}.breadcrumb a{text-underline-offset:3px;text-decoration:underline}.topic-card-lock{border:var(--outline);background:var(--sun);color:#17141f}.topic-card--locked{opacity:1}.topic-card-count{display:none}.topic-card--locked h4,.topic-card--locked .topic-card-desc{opacity:.6}.flashcard-img-wrap{border:var(--outline);border-radius:var(--radius-lg);background:var(--sun);place-items:center;display:grid;overflow:hidden}.flashcard-img-wrap>*{grid-area:1/1}.flashcard-emoji{margin:0;font-size:clamp(4rem,3rem + 5vw,6.5rem)}.flashcard-word{font-family:var(--font-display);font-weight:800;font-stretch:116%}.flip-front,.flip-back{border:var(--outline);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md)}.topic-card--locked .topic-card-top{padding-right:40px}.exercise-page{padding-top:var(--space-5);padding-bottom:200px}.exercise-page .exercise-top-bar{margin-bottom:var(--space-4)}.exercise-page .question-card{padding:var(--space-6) var(--space-8)}.exercise-page .question-label{margin-bottom:var(--space-3)}.exercise-page .question-text{margin-bottom:var(--space-4);font-size:clamp(1.15rem,1rem + .7vw,1.45rem)}.exercise-page .options-list{gap:var(--space-2);flex-direction:column;display:flex}.exercise-page .option-btn{padding:11px var(--space-4);min-height:0}.exercise-page .next-btn-area,.exercise-page #next-btn-container.is-visible{align-items:center;column-gap:var(--space-6);padding-inline:max(var(--space-5), calc((100% - 760px) / 2));grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"verdict action""detail action";row-gap:2px;display:grid}.exercise-page .dock-verdict{grid-area:verdict}.exercise-page .next-btn-area #explanation-container{grid-area:detail;min-width:0;max-height:22vh;overflow-y:auto}.exercise-page .next-btn-area .btn{grid-area:action;min-width:200px}.exercise-page .next-btn-area .explanation-box{color:inherit;font-size:var(--text-sm);background:0 0;border:0;margin:0;padding:0;line-height:1.5;animation:none}.exercise-page .next-btn-area .explanation-icon{display:none}.exercise-page .next-btn-area .explanation-answer{color:inherit;font-size:var(--text-base)}.exercise-page .next-btn-area .explanation-answer-label{opacity:.8}@media (width>=861px) and (height<=680px){.exercise-page{padding-top:var(--space-3)}.exercise-page .question-card{padding:var(--space-4) var(--space-6)}.exercise-page .option-btn{padding:8px var(--space-4)}}@media (width>=1024px){:is(.exercise-page:has(.reading-passage-card),.exercise-page:has(.listening-player)){column-gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;align-items:start;max-width:1180px;display:grid}:is(.exercise-page:has(.reading-passage-card)>.exercise-top-bar,.exercise-page:has(.listening-player)>.exercise-top-bar){grid-column:1/-1}.exercise-page>.reading-passage-card,.exercise-page>.listening-player{top:var(--space-5);max-height:calc(100dvh - 230px);margin:0;position:sticky;overflow-y:auto}.exercise-page>.listening-player{flex-direction:column;justify-content:center;align-self:stretch;align-items:center;display:flex}:is(.exercise-page:has(.reading-passage-card)>.question-card,.exercise-page:has(.listening-player)>.question-card){margin:0}:is(.exercise-page:has(.reading-passage-card) .next-btn-area,.exercise-page:has(.listening-player) .next-btn-area){padding-inline:max(var(--space-5), calc((100% - 1180px) / 2))}}.reading-passage-card,.listening-player{border:var(--outline);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md)}.reading-passage-body{font-size:1.05rem;line-height:1.75}@media (width>=861px){#app:has(.exercise-page)~#toast-container{top:auto;bottom:150px;right:var(--space-6)}}.results-main,.results-detail{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.results-detail{gap:var(--space-4);text-align:left}.results-detail:empty{display:none}@media (width>=861px){html{font-size:15px}:root{--sidebar-width:224px}.home-page{padding:var(--space-6) var(--space-8) var(--space-8);gap:var(--space-4);max-width:1240px}.home-head{align-items:center}.home-head-title{max-width:none;font-size:1.6rem}.home-lead{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.next-step{column-gap:var(--space-8);row-gap:var(--space-2);padding:var(--space-5) var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"eyebrow cta""title cta""progress cta""alt cta";align-items:center;display:grid}.next-step-eyebrow{grid-area:eyebrow}.next-step-title{grid-area:title;font-size:1.75rem}.next-step-progress{margin-top:var(--space-1);grid-area:progress;max-width:560px}.next-step-alt{grid-area:alt}.next-step-meta{grid-area:progress}.next-step .next-step-cta{grid-area:cta;align-self:center}.home-side{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.side-block{padding:var(--space-4);border-radius:var(--radius-lg);gap:6px}.side-block-value{font-size:var(--text-2xl)}.side-block-actions{margin-top:2px}.home-page .section-heading{margin:var(--space-2) 0 calc(var(--space-2) * -1)}.home-page .section-heading h2{font-size:var(--text-base);letter-spacing:.02em}.level-tiles{gap:var(--space-3)}.level-tile{column-gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"code name""desc desc""bar bar""count count";align-items:baseline;row-gap:4px;display:grid}.level-tile-code{font-size:var(--text-2xl);grid-area:code}.level-tile-name{grid-area:name}.level-tile-desc{font-size:var(--text-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:desc;display:-webkit-box;overflow:hidden}.level-tile .progress-bar{grid-area:bar;margin-top:2px}.level-tile-count{grid-area:count}.skill-tiles{gap:var(--space-3)}.skill-tile{padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm)}.skill-tile-icon{width:32px;height:32px}.btn-lg{font-size:var(--text-base);padding:10px 20px}.topic-card{border-radius:var(--radius-lg)}.stat-card{padding:var(--space-4)}.results-page{padding:var(--space-6) var(--space-8) var(--space-8)}.results-card{max-width:560px;padding:var(--space-6);gap:var(--space-2);border-radius:var(--radius-xl)}.results-icon{display:none}.results-title{font-size:var(--text-xl)}.results-score{margin:0;font-size:3.5rem}.results-card .stars{font-size:1.5rem}.results-message{margin:0}.results-note{font-size:var(--text-sm);margin-bottom:0}.results-actions{margin-top:var(--space-3)}.results-actions .btn-lg{font-size:var(--text-sm);padding:9px 16px}}@media (width>=1100px){.results-card:has(.results-detail>*){column-gap:var(--space-8);text-align:left;grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;max-width:1080px;display:grid}.results-card:has(.results-detail>*) .results-main{top:var(--space-6);text-align:center;position:sticky}.results-card:has(.results-detail>*) .results-actions{flex-direction:column;align-items:stretch}.results-card:has(.results-detail>*) .results-actions .btn{justify-content:center}.results-detail .answer-review,.results-detail .lesson-summary{margin:0}.results-detail .answer-review-list{max-height:none}.results-card:has(.results-detail>*) .results-detail{max-height:calc(100dvh - 130px);padding-right:var(--space-2);scrollbar-width:thin;overflow-y:auto}}@media (width>=861px){.part-select-page{max-width:880px}.part-list{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.part-row{margin:0}}.home-page{gap:var(--space-5);max-width:1080px}.home-head-title{text-transform:none;font-size:clamp(1.4rem,1.1rem + 1vw,1.75rem);font-stretch:108%}.home-page .section-heading h2{text-transform:none;font-size:var(--text-lg);letter-spacing:-.01em}.stat-chip{background:var(--card-bg);color:var(--text-body);border-width:1.5px}.stat-chip--streak,.stat-chip--xp{background:var(--card-bg);color:var(--text-body)}.stat-chip--streak strong,.stat-chip--xp strong{color:var(--text-heading)}.stat-chip--streak svg{color:var(--primary)}.stat-chip--xp svg{color:var(--success)}.home-today{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);padding:0 var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.home-today-goal{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:inline-flex}.home-today-label{color:var(--text-heading);font-weight:800}.goal-pips{gap:5px;display:inline-flex}.goal-pip{border:var(--outline);background:var(--card-bg);border-radius:4px;width:22px;height:10px}.goal-pip.is-done{background:var(--success)}.home-today-link{color:var(--text-heading);text-underline-offset:3px;align-items:center;gap:6px;font-weight:700;text-decoration:underline;display:inline-flex}.level-tile,.level-tile--a1,.level-tile--a2,.level-tile--b1,.level-tile--b2,.level-tile--c1{background:var(--card-bg);color:var(--text-body)}.level-tile{box-shadow:var(--shadow-xs);grid-template-areas:"code name""bar bar""count count";row-gap:8px}.level-tile-code{font-size:var(--text-lg);border:var(--outline);border-radius:var(--radius-sm);color:#17141f;place-self:start;padding:2px 8px;line-height:1.2}.level-tile--a1 .level-tile-code{background:var(--a1-bg)}.level-tile--a2 .level-tile-code{background:var(--a2-bg)}.level-tile--b1 .level-tile-code{background:var(--b1-bg)}.level-tile--b2 .level-tile-code{background:var(--b2-bg)}.level-tile--c1 .level-tile-code{background:var(--c1-bg)}.level-tile-name{color:var(--text-heading)}.level-tile .progress-bar-fill{background:var(--success)}.level-tile-count{color:var(--text-muted);font-weight:600}.skill-tile{box-shadow:none;font-weight:700}.skill-tile-icon{border-width:1.5px}.progress-level-block{padding:0;overflow:hidden}.progress-level-block>summary{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;margin:0;list-style:none;display:flex}.progress-level-block>summary::-webkit-details-marker{display:none}.progress-level-block>summary h3{font-size:var(--text-base);margin:0}.progress-level-block-count{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.progress-level-block-bar{flex-shrink:0;width:140px}.progress-level-block-bar .progress-bar-fill{background:var(--success);height:100%;display:block}.progress-level-block-chevron{transition:transform .12s;display:inline-flex}.progress-level-block[open] .progress-level-block-chevron{transform:rotate(90deg)}.progress-level-block[open]>summary{border-bottom:var(--outline)}.progress-level-block .progress-topic-row{padding-inline:var(--space-4)}.progress-levels-wrap{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=1024px){.writing-editor-page{max-width:1120px}.writing-form{column-gap:var(--space-8);grid-template-rows:auto auto auto auto auto 1fr auto;grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}.writing-form>.writing-level-row{margin-bottom:var(--space-2);border-bottom:0;grid-area:1/1;padding-bottom:0}.writing-form>label[for=writing-title]{grid-area:2/1}.writing-form>#writing-title{grid-area:3/1}.writing-form>label[for=writing-topic]{grid-area:4/1}.writing-form>#writing-topic{grid-area:5/1}.writing-form>label[for=writing-text]{grid-area:1/2;align-self:start;margin-top:0}.writing-form>#writing-text{resize:none;grid-area:1/2/7;height:calc(100dvh - 400px);min-height:220px;margin-top:30px}.writing-form>.writing-form-footer{grid-area:7/1/auto/-1}.topics-grid,.vocab-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.topic-card-cover{height:96px}.topic-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mistakes-list{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}@media (width>=861px){.stat-card{align-items:center;column-gap:var(--space-3);text-align:left;padding:var(--space-3) var(--space-4);grid-template-columns:auto auto minmax(0,1fr);display:grid}.stat-card-icon{width:36px;height:36px;margin:0}.stat-card-value{font-size:var(--text-2xl);margin:0;line-height:1}.stat-card-label{margin:0}}#main-content{min-height:100dvh}.home-panels{gap:var(--space-5);margin-top:var(--space-2);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid}.home-panel{gap:var(--space-4);padding:var(--space-5);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);flex-direction:column;display:flex}.home-panel-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.home-panel-head h2{font-size:var(--text-lg)}.home-panel-head a{font-size:var(--text-sm);color:var(--text-heading);text-underline-offset:3px;align-items:center;gap:2px;font-weight:700;text-decoration:underline;display:inline-flex}.week-bars{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;display:grid}.week-bar{flex-direction:column;align-items:center;gap:6px;display:flex}.week-bar-track{border-bottom:var(--outline);align-items:flex-end;width:100%;height:64px;display:flex}.week-bar-track i{background:var(--text-light);border:var(--outline);border-bottom:0;border-radius:4px 4px 0 0;width:100%;display:block}.week-bar.is-today .week-bar-track i{background:var(--primary-fill)}.week-bar-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.week-bar.is-today .week-bar-label{color:var(--text-heading);font-weight:800}.home-facts{gap:var(--space-4);padding-top:var(--space-4);border-top:2px dashed var(--border-soft);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.home-facts dt{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.home-facts dd{font-family:var(--font-display);font-weight:800;font-stretch:114%;font-size:var(--text-2xl);color:var(--text-heading);font-variant-numeric:tabular-nums;margin:2px 0 0}.home-rows{flex-direction:column;margin:0;padding:0;display:flex}.home-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:2px dashed var(--border-soft);color:var(--text-heading);font-weight:700;display:flex}.home-rows li:first-child .home-row{border-top:0;padding-top:0}.home-row-title{flex:1;min-width:0}.home-row-score{color:var(--error);font-variant-numeric:tabular-nums}.home-row:hover .home-row-title{text-underline-offset:3px;text-decoration:underline}.home-steps{gap:var(--space-4);counter-reset:none;flex-direction:column;margin:0;padding:0;display:flex}.home-steps li{gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);grid-template-columns:auto minmax(0,1fr);line-height:1.45;display:grid}.home-steps strong{color:var(--text-heading);font-size:var(--text-base)}.home-step-n{border:var(--outline);border-radius:var(--radius-sm);background:var(--sun);color:#17141f;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.progress-page{width:100%;max-width:1240px;padding:var(--space-6) var(--space-8) var(--space-10);gap:var(--space-6);flex-direction:column;margin-inline:auto;display:flex}.progress-page .progress-stats-row,.progress-page .activity-section,.progress-page .weak-topics-section,.progress-page .badges-section,.progress-page .progress-levels-wrap,.progress-page .data-io-section{max-width:none;margin:0;padding:0}.progress-stats-all>div[style]{padding:0!important}.progress-stats-all{gap:var(--space-4);flex-direction:column;display:flex}.progress-columns{gap:var(--space-6);flex-direction:column;display:flex}.progress-col-main,.progress-col-side{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.progress-page .activity-heading,.progress-page .badges-heading{margin:0 0 var(--space-3);font-size:var(--text-lg)}@media (width>=1024px){.progress-stats-all{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.progress-stats-all .progress-stats-row,.progress-stats-all .grid-3{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.progress-stats-all .stat-card{padding:var(--space-3);box-shadow:var(--shadow-xs);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon value""icon label";row-gap:0}.progress-stats-all .stat-card-icon{grid-area:icon}.progress-stats-all .stat-card-value{font-size:var(--text-xl);grid-area:value}.progress-stats-all .stat-card-label{font-size:var(--text-xs);grid-area:label}.progress-columns{gap:var(--space-8);grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;display:grid}.progress-col-side{top:var(--space-6);position:sticky}}.progress-summary{border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-sm);grid-template-columns:repeat(6,minmax(0,1fr));display:grid;overflow:hidden}.progress-summary-item{padding:var(--space-4) var(--space-5);border-left:2px dashed var(--border-soft);flex-direction:column;gap:6px;min-width:0;display:flex}.progress-summary-item:first-child{background:var(--sun);color:#17141f;border-left:0}.progress-summary-label{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-weight:700;display:inline-flex;overflow:hidden}.progress-summary-item:first-child .progress-summary-label{color:#17141f}.progress-summary-value{font-family:var(--font-display);font-weight:800;font-stretch:116%;font-size:var(--text-3xl);color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1}.progress-summary-item:first-child .progress-summary-value{color:#17141f}.progress-page .activity-heading{align-items:center;gap:var(--space-2);display:flex}.progress-section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.progress-section-note{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.progress-empty-note{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.progress-page .progress-levels-wrap{border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-sm);gap:0;overflow:hidden}.progress-page .progress-level-block{box-shadow:none;border:0;border-top:2px dashed var(--border-soft);background:0 0;border-radius:0}.progress-page .progress-level-block:first-child{border-top:0}.progress-page .progress-level-block>summary:hover{background:var(--bg)}.progress-page .progress-level-block[open]>summary{border-bottom:2px dashed var(--border-soft)}.progress-col-side{border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-sm);padding:var(--space-5);gap:var(--space-5)}.progress-col-side .weak-topics-section+.weak-topics-section{padding-top:var(--space-5);border-top:2px dashed var(--border-soft)}.progress-col-side .weak-topic-item{box-shadow:none;padding:var(--space-2) 0;background:0 0;border:0;border-radius:0}.progress-col-side .weak-topic-item:hover .weak-topic-name{text-underline-offset:3px;text-decoration:underline}.progress-col-side:empty{display:none}.badge-grid{gap:var(--space-3);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;display:grid}.badge-tile{padding:var(--space-4);border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);flex-direction:column;gap:4px;min-width:0;display:flex}.badge-tile-icon{margin-bottom:4px;font-size:1.6rem;line-height:1}.badge-tile-name{color:var(--text-heading);font-weight:800;font-size:var(--text-sm)}.badge-tile-desc{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.badge-tile.is-earned{background:var(--sun)}.badge-tile.is-earned .badge-tile-name,.badge-tile.is-earned .badge-tile-desc{color:#17141f}.badge-tile.is-locked{background:0 0;border-style:dashed}.badge-tile.is-locked .badge-tile-icon{filter:grayscale();opacity:.45}.data-strip{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);padding-top:var(--space-5);border-top:2px dashed var(--border-soft);flex-wrap:wrap;display:flex}.data-strip p{font-size:var(--text-sm);color:var(--text-muted);margin:0}.data-strip .data-io-actions{gap:var(--space-2);margin:0;display:flex}@media (width<=1023px){.progress-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-summary-item:nth-child(4){border-left:0}.progress-summary-item:nth-child(n+4){border-top:2px dashed var(--border-soft)}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.progress-page .progress-level-block{margin:0}.progress-levels-section{flex-direction:column;display:flex}.flip-back{background:var(--bg)}.skeleton{background:linear-gradient(90deg, var(--bg) 25%, var(--border-soft) 50%, var(--bg) 75%);background-size:200% 100%}.results-signup-banner{background:var(--sun)}[data-theme=dark] .writing-stat-pill--spelling{color:#f9e3a0;background:#f4cd5a2e}[data-theme=dark] .writing-stat-pill--grammar{color:#ffc9bf;background:#ff8a752e}[data-theme=dark] .writing-stat-pill--punctuation{color:#cfe0ff;background:#8ab6ff2e}[data-theme=dark] .writing-stat-pill--style{color:#e2d8ff;background:#b79cff2e}[data-theme=dark] .writing-mark--spelling{color:#fff3c9;background:#f4cd5a59}[data-theme=dark] .writing-mark--grammar{color:#ffe2db;background:#ff8a7559}[data-theme=dark] .writing-mark--punctuation{color:#e0ecff;background:#8ab6ff59}[data-theme=dark] .writing-mark--style{color:#ece5ff;background:#b79cff59}[data-theme=dark] .writing-mark--other{color:var(--text-heading);background:#e6d9c238}[data-theme=dark] .locked-modal-overlay{background:#000000b8}[data-theme=dark] .progress-bar,[data-theme=dark] .daily-goal-track,[data-theme=dark] .step-dot:not(.step-dot--ok):not(.step-dot--no):not(.step-dot--now),[data-theme=dark] .goal-pip:not(.is-done){background:var(--bg)}[data-theme=dark] .next-step-progress .progress-bar{background:#fff}[data-theme=dark] .exercise-page .next-btn-area .btn{box-shadow:3px 3px 0 var(--shadow-ink)}.btn:hover,.btn:active,a.topic-card:hover,a.topic-card:active,a.level-card:hover,a.level-card:active,a.part-row:hover,a.part-row:active,.card-interactive:hover,a.home-mistakes-strip:hover,.option-btn:hover:not(.disabled),.tf-btn:hover:not(.disabled),.match-item:hover:not(.matched):not(.disabled),.word-chip:hover:not(.placed),.side-block--link:hover,.level-tile:hover,.level-tile:active,.skill-tile:hover,.skill-tile:active,.level-card:hover:not(.level-locked),.topic-card:hover,.stat-card:hover,.badge-card:hover{transform:none}.btn:active,a.topic-card:active,a.level-card:active,a.part-row:active,.level-tile:active,.skill-tile:active,.option-btn:active:not(.disabled),.word-chip:active:not(.placed){box-shadow:1px 1px 0 var(--shadow-ink);filter:brightness(.94)}.btn-ghost:active{box-shadow:none}.weak-topic-item:hover,.writing-entry-card:hover,.home-row:hover,.mistake-row:hover{transform:none}.flashcard-header-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:inline-flex}.dictation-player{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.listening-player-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:800}.listening-player-label{font-family:var(--font-display);font-weight:800;font-stretch:110%;font-size:var(--text-lg);color:var(--text-heading);text-align:center}.transcript{width:100%;margin-top:var(--space-4);text-align:left;border-top:2px dashed var(--border-soft);padding-top:var(--space-3)}.transcript summary{cursor:pointer;font-weight:700;font-size:var(--text-sm);color:var(--text-heading)}.transcript-body{margin-top:var(--space-3);gap:var(--space-2);font-size:var(--text-sm);color:var(--text-body);flex-direction:column;max-height:38vh;line-height:1.55;display:flex;overflow-y:auto}.transcript-line{border-radius:var(--radius-md);cursor:pointer;border-left:3px solid #0000;margin:0;padding:4px 8px}.transcript-line:hover{background:var(--bg-subtle,#0000000a)}.transcript-line.is-evidence{border-left-color:var(--sun);background:color-mix(in srgb, var(--sun) 55%, transparent);color:var(--text-heading)}.transcript-line.is-playing{background:color-mix(in srgb, var(--orange) 18%, transparent)}.lp-controls,.lp-track,.lp-time,.lp-lines,.lp-lines-hint{flex-shrink:0}.lp-controls{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.lp-slow[aria-pressed=true]{background:var(--sun);color:#16161a}.lp-track{width:100%;max-width:420px;height:10px;margin-top:var(--space-4);border:var(--outline);background:var(--card-bg,#fff);cursor:pointer;border-radius:999px;position:relative;overflow:hidden}.lp-track:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.lp-track-fill{background:var(--orange);width:0;position:absolute;inset:0 auto 0 0}.lp-time{margin-top:var(--space-1);font-variant-numeric:tabular-nums}.lp-lines{margin-top:var(--space-4);flex-wrap:wrap;justify-content:center;gap:6px;max-width:460px;display:flex}.lp-line{border:var(--outline);background:var(--card-bg,#fff);min-height:34px;color:var(--text-heading);font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:700;display:inline-flex}.lp-line:hover{box-shadow:2px 2px 0 var(--line)}.lp-line-n{font-variant-numeric:tabular-nums}.lp-line-who{color:var(--text-muted);font-weight:500}.lp-line.is-evidence{background:var(--sun);color:#16161a}.lp-line.is-evidence .lp-line-who{color:#16161a}.lp-line.is-playing{background:var(--orange);color:#fff;border-color:var(--orange)}.lp-line.is-playing .lp-line-who{color:#fff}.lp-lines-hint{margin:var(--space-2) 0 0}.lp-evidence-btn{margin-top:var(--space-2)}@media (width<=1023px){.exercise-page>.reading-passage-card{max-height:46vh;overflow-y:auto}}.exercise-page>.listening-player:has(.transcript[open]){justify-content:flex-start}.task-line{align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-body);font-weight:600;line-height:1.45;display:flex}.task-line svg{color:var(--orange);flex-shrink:0;margin-top:2px}.word-order-instruction{color:var(--text-muted);font-family:inherit;font-weight:600;font-size:var(--text-base)!important}.wo-meaning{align-items:baseline;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:var(--outline);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--sun) 45%, var(--card-bg));flex-wrap:wrap;display:flex}.wo-meaning-label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.wo-meaning-text{font-family:var(--font-display);color:var(--text-heading);font-size:clamp(1.1rem,1rem + .5vw,1.35rem);font-weight:700;font-stretch:104%}.word-chip.in-sentence.is-ok{background:var(--success-bg)}.word-chip.in-sentence.is-off{background:var(--error-bg);outline:3px solid var(--error);outline-offset:1px}.ec-context{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.ec-sentence{margin-bottom:var(--space-4);flex-wrap:wrap;gap:8px;display:flex}.ec-word{border:var(--outline);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-heading);font-family:var(--font-display);cursor:pointer;box-shadow:2px 2px 0 var(--line);padding:6px 12px;font-size:clamp(1.05rem,1rem + .4vw,1.3rem);font-weight:600;font-stretch:104%}.ec-word:hover:not(:disabled){background:color-mix(in srgb, var(--sun) 35%, var(--card-bg))}.ec-word:disabled{cursor:default;box-shadow:none}.ec-word.is-error{background:var(--sun);color:#16161a;text-decoration:line-through;text-decoration-thickness:2px}.ec-word.is-miss{background:var(--error-bg);color:#16161a}.ec-fix-options{margin-top:var(--space-2)}.diff-mark{background:var(--sun);color:#16161a;border-radius:4px;padding:0 3px}.task-help{border:var(--outline);background:var(--card-bg);width:24px;height:24px;color:var(--text-heading);font:inherit;font-size:var(--text-xs);cursor:pointer;border-radius:50%;flex-shrink:0;margin-left:auto;font-weight:800}.task-help:hover{background:var(--sun);color:#16161a}.how-to{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:2px dashed var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--sun) 18%, var(--card-bg))}.how-to-grip{display:none}.how-to-title{margin:0 0 var(--space-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.how-to-steps{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-body);gap:4px;padding-left:1.3em;line-height:1.5;list-style:decimal;display:grid}[data-theme=dark] .wo-meaning,[data-theme=dark] .how-to{border-left:6px solid var(--sun);background:#2d2d35}[data-theme=dark] .how-to{border-top-style:dashed}.word-chip.in-sentence.is-ok,.word-chip.in-sentence.is-off{color:var(--text-heading)}.matching{gap:var(--space-3);display:grid}.match-current{display:none}.match-terms,.match-defs{flex-direction:column;gap:6px;display:flex}.match-term,.match-def{align-items:center;gap:var(--space-2);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:var(--card-bg);width:100%;min-height:44px;color:var(--text-heading);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;padding:8px 14px;line-height:1.4;display:flex}.match-term{justify-content:space-between;font-weight:700}.match-def{flex-wrap:wrap;font-weight:500}.match-term:hover:not(.is-matched),.match-def:hover:not(:disabled){background:var(--bg)}.match-term.is-current{background:var(--sun);color:#16161a;border-width:2px}.match-term.is-matched{background:var(--success-bg);color:var(--success-text);cursor:default}.match-term-mark{color:var(--success);display:inline-flex}.match-def.is-matched{background:var(--success-bg);color:var(--success-text);cursor:default;border-color:#0000}.match-def-tag{background:var(--success);color:#fff;font-size:var(--text-xs);border-radius:999px;padding:1px 8px;font-weight:800}.match-def-text{flex:60%}.match-def-example{font-size:var(--text-xs);opacity:.85;flex-basis:100%;font-style:italic}.match-term.is-wrong,.match-def.is-wrong,.match-current.is-wrong{background:var(--error-bg);color:var(--error-text)}@media (width>=861px){.matching{grid-template-columns:minmax(150px,28%) 1fr;align-items:start}}.ex-bar{align-items:center;gap:var(--space-4);display:flex}.ex-close{border-radius:var(--radius-lg);width:44px;height:44px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.ex-close:hover{background:var(--bg);color:var(--text-heading)}.ex-bar-heading{flex-direction:column;min-width:0;display:flex}.ex-bar-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.ex-bar-title{font-family:var(--font-display);font-weight:800;font-stretch:108%;font-size:var(--text-lg);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ex-bar-progress{flex:0 440px;min-width:120px;margin-left:auto;display:flex}.ex-bar-count{font-weight:800;font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-heading)}.ex-bar-meter{border:var(--outline);background:var(--card-bg);border-radius:999px;flex:1;height:12px;overflow:hidden}.ex-bar-meter>span{background:var(--orange);height:100%;display:block}.ex-v2 .question-label{display:none}.ex-v2 .option-btn{border:1.5px solid color-mix(in srgb, var(--line) 28%, var(--card-bg));box-shadow:none;min-height:52px}.ex-v2 .option-btn:hover:not(.disabled){background:var(--bg);border-color:var(--line);box-shadow:none}.ex-v2 .option-btn.correct,.ex-v2 .option-btn.wrong{border:2px solid var(--line)}.ex-v2 .option-btn.is-selected,.ex-v2 .tf-btn.is-selected{background:var(--sun);color:#16161a;border:2px solid var(--line)}.ex-v2 .option-btn.is-selected .option-letter{background:var(--card-bg)}.ex-dock [hidden]{display:none!important}.ex-dock:not(.is-visible) .ex-next,.ex-dock.is-visible .ex-dock-idle,.ex-dock.is-visible .ex-check{display:none}.ex-dock-label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:800}.ex-dock-rule{margin:4px 0 var(--space-3);font-size:var(--text-sm);color:var(--text-body);line-height:1.55}.ex-dock-hint{gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5;display:flex}.ex-dock-hint svg{color:var(--orange);flex-shrink:0;margin-top:2px}@media (width>=861px){.ex-v2{max-width:1240px;padding:0 var(--space-10,40px) 48px}.ex-v2>.ex-bar{padding:var(--space-4) 0;margin-bottom:var(--space-5);border-bottom:1.5px solid var(--border-soft)}.ex-v2 .ex-check{display:none!important}.ex-v2:not(.ex-side) .ex-dock:not(.is-visible){display:none}.ex-side{grid-template-columns:minmax(0,1fr) 360px;align-content:start;align-items:start;column-gap:28px;display:grid}.ex-side>.ex-bar{grid-column:1/-1}.ex-side>.question-card{grid-column:1;margin:0}.ex-side .options-list--grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ex-side .options-list--grid .option-btn{min-height:60px}.exercise-page.ex-side .next-btn-area,.exercise-page.ex-side #next-btn-container.is-visible{top:var(--space-5);align-items:stretch;gap:var(--space-3);padding:var(--space-5) var(--space-6);border:var(--outline);border-radius:var(--radius-2xl);background:var(--card-bg);box-shadow:var(--shadow-md);flex-direction:column;grid-column:2;animation:none;display:flex;position:sticky;bottom:auto;left:auto;right:auto}.exercise-page.ex-side #next-btn-container.is-correct{background:var(--success-bg)}.exercise-page.ex-side #next-btn-container.is-wrong{background:var(--error-bg)}.exercise-page.ex-side .next-btn-area #explanation-container{max-height:none;overflow:visible}.exercise-page.ex-side .next-btn-area .btn{width:100%;min-width:0;margin-top:var(--space-2)}.exercise-page.ex-side .next-btn-area .explanation-box{font-size:var(--text-base)}#app:has(.ex-side)~#toast-container{bottom:var(--space-6)}}@media (width>=1024px){:is(.exercise-page:has(.reading-passage-card)>.ex-bar,.exercise-page:has(.listening-player)>.ex-bar){grid-column:1/-1}}.stat-chip--freeze{background:var(--card-bg);color:var(--text-body)}.stat-chip--freeze strong{color:var(--text-heading)}.stat-chip--freeze svg{color:var(--a2)}.stat-chip svg{flex:none}.progress-summary-freeze{font-size:var(--text-sm);vertical-align:middle;color:#17141f;align-items:center;gap:3px;margin-left:6px;display:inline-flex}.mring{flex:none;overflow:visible}.mring circle{fill:none;stroke-width:3px}.mring-track{stroke:color-mix(in srgb, currentColor 22%, transparent)}.mring-fill{stroke:currentColor;stroke-linecap:round}.mring--new{color:var(--text-muted)}.mring--learning{color:var(--b2,#f08c2e)}.mring--settling{color:var(--a2,#3d7fe0)}.mring--lasting{color:var(--a1,#2fa35a)}.mring--lasting .mring-track{stroke:currentColor}.mring--lapsed{color:var(--c1,#e0463d)}.mring--lapsed .mring-track{stroke:currentColor;stroke-dasharray:3 2.5}.mring-badge{font-size:var(--text-xs);color:var(--text-heading);white-space:nowrap;align-items:center;gap:5px;margin-left:8px;font-weight:700;display:inline-flex}.pulse-moved li{align-items:center;gap:2px;display:inline-flex}.memory-desc{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--text-muted);max-width:60ch}.memory-levels{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0;padding:0;list-style:none;display:grid}.memory-level{column-gap:var(--space-3);padding:var(--space-3);border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;display:grid}.memory-level .mring{grid-row:span 2}.memory-level strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums;line-height:1}.memory-level span{font-size:var(--text-xs);color:var(--text-muted);font-weight:700}.memory-cta{margin-top:var(--space-4)}.flashcard-voice{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.flashcard-voice .flashcard-speak-btn{margin-top:var(--space-2)}.flashcard-say-result{min-height:1.4em;margin:var(--space-2) 0 0;font-size:var(--text-sm);text-align:center;justify-content:center;align-items:center;gap:5px;font-weight:700;display:flex}.flashcard-say-result:empty{min-height:0;margin:0}.flashcard-say-result.is-good{color:var(--success)}.flashcard-say-result.is-miss{color:var(--text-muted)}.speaking-context{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:6px;font-weight:700;display:inline-flex}.speaking-meaning{margin:var(--space-3) 0 var(--space-4);font-size:var(--text-base);color:var(--text-body);font-style:italic}.speak-word--target{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:3px;-webkit-text-decoration-color:var(--sun);text-decoration-color:var(--sun)}.shadow-blank{font-size:var(--text-xl);color:var(--text-heading);font-weight:700}.shadow-actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.question-passage{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-left:3px solid var(--sun);background:color-mix(in srgb, var(--sun) 12%, transparent);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--text-base);color:var(--text-body);line-height:1.6}.passage-target{background:var(--sun);color:#17141f;border-radius:3px;padding:0 3px;font-weight:700}.scene-page>:not(.ex-bar){width:100%;max-width:760px;margin-inline:auto}.scene-words{margin:var(--space-4) 0 var(--space-2);flex-wrap:wrap;gap:8px;display:flex}.scene-word{border:1.5px dashed var(--border-soft);font-weight:700;font-size:var(--text-sm);color:var(--text-muted);border-radius:999px;padding:4px 12px}.scene-word.is-used{border-style:solid;border-color:var(--success);color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.scene-scenario{margin:var(--space-2) 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.scene-chat{margin:0 0 var(--space-4);flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.scene-bubble{border:1.5px solid var(--border-soft);background:var(--card-bg);max-width:85%;color:var(--text-body);border-radius:16px;padding:10px 14px;line-height:1.5}.scene-bubble--ai{border-bottom-left-radius:4px;align-self:flex-start}.scene-bubble--user{background:color-mix(in srgb, var(--sun) 25%, var(--card-bg));border-bottom-right-radius:4px;flex-direction:column;align-self:flex-end;gap:6px;display:flex}.scene-bubble--system{font-size:var(--text-sm);color:var(--text-muted);border-style:dashed;align-self:center}.scene-correction{font-size:var(--text-sm);color:var(--success);flex-direction:column;gap:2px;display:flex}.scene-tip{color:var(--text-muted)}.scene-typing{color:var(--text-muted);font-style:italic}.scene-form{gap:var(--space-2);align-items:flex-end;display:flex}.scene-input{flex:auto;min-height:0}.scene-summary{text-align:center;margin-top:var(--space-4)}.pulse-scene-cta{align-self:center}.writing-ai{margin-top:var(--space-5);padding:var(--space-5)}.writing-ai-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.writing-ai-head h2{font-size:var(--text-lg);align-items:center;gap:8px;margin:0;display:inline-flex}.writing-ai-level{background:var(--sun);color:#17141f;font-weight:800;font-size:var(--text-sm);border-radius:999px;padding:3px 10px}.writing-ai-summary{margin:var(--space-3) 0}.writing-ai-sub{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.writing-ai-list{margin:0;padding-left:1.2em}.writing-ai-fixes{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.writing-ai-fixes li{border:1.5px solid var(--border-soft);border-radius:var(--radius-md);flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:10px 12px;display:flex}.writing-ai-quote{text-decoration:line-through;-webkit-text-decoration-color:var(--c1);text-decoration-color:var(--c1);color:var(--text-muted)}.writing-ai-better{color:var(--text-heading);font-weight:700}.writing-ai-why{font-size:var(--text-sm);color:var(--text-muted);flex-basis:100%}.writing-ai-next{margin:var(--space-4) 0 0}.pf-page{max-width:1040px;padding:var(--space-6) var(--space-8) var(--space-10);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.pf-breadcrumb{margin:0}.pf-head{align-items:center;gap:var(--space-4);display:flex}.pf-avatar.profile-avatar-sm{background:var(--sun);color:#17141f;border:var(--outline);width:64px;min-width:64px;height:64px;font-size:1.35rem}.pf-name{margin:0;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.2rem);line-height:1.1}.pf-since{color:var(--text-muted);font-size:var(--text-sm);margin:4px 0 0}.pf-facts{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.pf-fact{border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--card-bg);align-items:center;gap:8px;min-width:0;padding:10px 14px;display:flex}.pf-fact strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-heading);font-variant-numeric:tabular-nums}.pf-fact>span:last-child{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.pf-fact-icon{flex:none;display:inline-flex}.pf-fact--xp .pf-fact-icon{color:var(--b2)}.pf-fact--streak .pf-fact-icon{color:var(--c1)}.pf-fact--accuracy .pf-fact-icon{color:var(--a1)}.pf-fact--exercises .pf-fact-icon{color:var(--a2)}.pf-grid{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;display:grid}.pf-panel{padding:var(--space-5) var(--space-6);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-md);gap:var(--space-4);flex-direction:column;display:flex}.pf-panel-title{font-size:var(--text-lg);margin:0}.pf-fields{gap:var(--space-3);display:grid}.pf-field{font-size:var(--text-sm);color:var(--text-heading);flex-direction:column;gap:6px;font-weight:700;display:flex}.pf-field em{color:var(--text-muted);font-style:normal;font-weight:500}.pf-save{align-self:flex-start}.pf-panel-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.pf-info-list{margin:0;display:grid}.pf-info-row{gap:var(--space-3);border-top:1.5px solid var(--border-soft);grid-template-columns:9rem minmax(0,1fr);padding:10px 0;display:grid}.pf-info-row:first-child{border-top:0;padding-top:0}.pf-info-row dt{font-size:var(--text-sm);color:var(--text-muted);font-weight:700}.pf-info-row dd{color:var(--text-heading);overflow-wrap:anywhere;margin:0;font-weight:700}.pf-empty{color:var(--text-muted);font-weight:500}.pf-complete{font:inherit;font-size:var(--text-sm);color:var(--text-heading);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:0;font-weight:700;text-decoration:underline;display:inline-flex}.pf-info-form{gap:var(--space-4);flex-direction:column;display:flex}.pf-fields--2{column-gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.pf-form-actions{gap:var(--space-3);display:flex}.pf-page [hidden]{display:none!important}.pf-locked{align-items:flex-start;gap:6px;display:inline-flex}.pf-locked svg{color:var(--text-muted);flex:none;margin-top:3px}.pf-field--wide{grid-column:1/-1}.pf-readonly{border:1.5px dashed var(--border-soft);border-radius:var(--radius-md);background:color-mix(in srgb, var(--text-muted) 7%, transparent);min-height:44px;color:var(--text-muted);cursor:not-allowed;overflow-wrap:anywhere;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:flex}.pf-hint{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.pf-password-panel{border-top:1.5px solid var(--border-soft);padding-top:var(--space-4)}.pf-password-form{gap:var(--space-3);flex-direction:column;display:flex}.pf-password-input{display:block;position:relative}.pf-password-input .form-input{width:100%;padding-right:44px}.pf-eye{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pf-eye:hover{color:var(--text-heading);background:color-mix(in srgb, var(--text-heading) 7%, transparent)}.pf-pw-rules{font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.pf-pw-rules li:before{content:"○ "}.pf-pw-rules li.is-ok{color:var(--success)}.pf-pw-rules li.is-ok:before{content:"✓ "}.pf-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-4);border-top:1.5px solid var(--border-soft);display:flex}.pf-panel-title+.pf-row{border-top:0;padding-top:0}.pf-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pf-row-text strong{color:var(--text-heading)}.pf-row-text span{font-size:var(--text-sm);color:var(--text-muted)}.pf-row .lang-switch,.pf-row .btn{flex:none}.pf-account{justify-items:start;gap:var(--space-3);padding-top:var(--space-5);border-top:1.5px solid var(--border-soft);display:grid}.pf-account-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0}.pf-account-actions{align-items:center;gap:var(--space-4);display:flex}.pf-delete{font:inherit;color:var(--c1);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.pf-delete:disabled{opacity:.5;cursor:default}.pf-danger{width:100%;max-width:560px}.pf-danger-form{gap:var(--space-3);padding:var(--space-4) var(--space-5);border:2px solid var(--c1);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--c1) 7%, var(--card-bg));flex-direction:column;display:flex}.pf-danger-title{font-size:var(--text-base);color:var(--c1);margin:0}.pf-danger-text{font-size:var(--text-sm);color:var(--text-body);margin:0}.pf-danger-error{font-size:var(--text-sm);color:var(--c1);margin:0;font-weight:700}.btn.pf-danger-btn,.btn.pf-danger-btn:hover{background:var(--c1);border-color:var(--c1);color:#fff}.btn.pf-danger-btn:disabled{opacity:.6}.confirm-overlay{z-index:1000;padding:var(--space-4);background:#17141f8c;justify-content:center;align-items:center;animation:.12s fadeIn;display:flex;position:fixed;inset:0}[data-theme=dark] .confirm-overlay{background:#000000b8}.confirm-dialog{width:100%;max-width:420px;padding:var(--space-5) var(--space-6);border:var(--outline);border-radius:var(--radius-xl);background:var(--card-bg);box-shadow:var(--shadow-lg);gap:var(--space-3);flex-direction:column;display:flex}.confirm-title{font-size:var(--text-lg);margin:0}.confirm-message{color:var(--text-body);font-size:var(--text-sm);margin:0;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.btn.confirm-danger,.btn.confirm-danger:hover{background:var(--c1);border-color:var(--c1);color:#fff}:root{--adm-bar:#2f6fdd}[data-theme=dark]{--adm-bar:#6392ea}.pf-admin-link{font-size:var(--text-sm);color:var(--text-heading);align-items:center;gap:6px;font-weight:700;display:inline-flex}.adm-page{max-width:1320px;padding:var(--space-5) var(--space-6) var(--space-10);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.adm-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.adm-head h1{margin:0;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem)}.adm-head p{color:var(--text-muted);font-size:var(--text-sm);margin:4px 0 0}.adm-head-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.adm-export{border:1.5px solid var(--border-soft);background:var(--card-bg);border-radius:999px;align-items:center;gap:6px;padding:4px 4px 4px 10px;display:inline-flex}.adm-export-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:5px;font-weight:800;display:inline-flex}.adm-filterbar{z-index:20;padding:var(--space-3) 0;background:var(--bg);border-bottom:1.5px solid var(--border-soft);position:sticky;top:0}.adm-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adm-filter{position:relative}.adm-filter>summary{border:1.5px solid var(--border-soft);background:var(--card-bg);font-size:var(--text-sm);color:var(--text-heading);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:700;list-style:none;display:inline-flex}.adm-filter>summary::-webkit-details-marker{display:none}.adm-filter>summary:after{content:"▾";color:var(--text-muted);font-size:.8em}.adm-filter.is-set>summary{border-color:var(--adm-bar);background:color-mix(in srgb, var(--adm-bar) 10%, var(--card-bg))}.adm-filter>summary b{background:var(--adm-bar);color:#fff;min-width:18px;font-size:var(--text-xs);text-align:center;border-radius:999px;padding:0 5px}.adm-filter-pop{z-index:30;border:var(--outline);border-radius:var(--radius-lg);background:var(--card-bg);min-width:230px;max-height:320px;box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.adm-check{font-size:var(--text-sm);cursor:pointer;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.adm-check:hover{background:color-mix(in srgb, var(--text-heading) 6%, transparent)}.adm-check em{font-style:normal;font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.adm-select{border:1.5px solid var(--border-soft);background:var(--card-bg);color:var(--text-heading);font:inherit;font-size:var(--text-sm);border-radius:999px;padding:6px 10px;font-weight:700}.adm-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.adm-chip{background:color-mix(in srgb, var(--adm-bar) 14%, var(--card-bg));color:var(--text-heading);font:inherit;font-size:var(--text-xs);cursor:pointer;border:0;border-radius:999px;padding:3px 10px;font-weight:700}.adm-chip-clear{font:inherit;font-size:var(--text-xs);color:var(--c1);cursor:pointer;background:0 0;border:0;padding:3px 6px;font-weight:700;text-decoration:underline}.adm-chips-count{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto;font-weight:700}.adm-tabs{border-bottom:1.5px solid var(--border-soft);gap:4px;display:flex;overflow-x:auto}.adm-tab{font:inherit;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:8px 14px;font-weight:700}.adm-tab[aria-selected=true]{color:var(--text-heading);border-bottom-color:var(--adm-bar)}#adm-body{gap:var(--space-4);flex-direction:column;display:flex}.adm-kpis{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.adm-kpi{padding:var(--space-3);border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--card-bg);flex-direction:column;gap:2px;min-width:0;display:flex}.adm-kpi-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:700}.adm-kpi strong{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-heading);font-variant-numeric:tabular-nums;line-height:1.1}.adm-kpi small{color:var(--text-muted);font-size:11px}.adm-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.adm-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.adm-card{padding:var(--space-4) var(--space-5);border:1.5px solid var(--border-soft);border-radius:var(--radius-xl);background:var(--card-bg);min-width:0}.adm-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.adm-card-title{margin:0 0 var(--space-3);font-size:var(--text-base)}.adm-card-head .adm-card-title{margin:0}.adm-note{margin:0 0 var(--space-3);font-size:var(--text-xs);color:var(--text-muted);max-width:90ch}#adm-body>.adm-note{margin:0}.adm-empty{color:var(--text-muted);font-size:var(--text-sm);margin:0}.adm-inline{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:6px;font-weight:700;display:inline-flex}.adm-inline-group{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.adm-seg{border:1.5px solid var(--border-soft);border-radius:999px;display:inline-flex;overflow:hidden}.adm-seg button{background:var(--card-bg);font:inherit;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;border:0;padding:5px 12px;font-weight:700}.adm-seg button[aria-pressed=true]{background:var(--adm-bar);color:#fff}.adm-dim{color:var(--text-muted)}.adm-cols{border-bottom:1.5px solid var(--border-soft);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:6px;height:150px;display:grid}.adm-col{flex-direction:column;justify-content:flex-end;gap:3px;height:100%;display:flex}.adm-col:hover i{filter:brightness(1.1)}.adm-col-n{text-align:center;font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.adm-col i{background:var(--adm-bar);border-radius:4px 4px 0 0;width:100%;display:block}.adm-cols-axis{font-size:var(--text-xs);color:var(--text-muted);justify-content:space-between;margin-top:6px;display:flex}.adm-bars{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.adm-bar{align-items:center;gap:var(--space-2);font-size:var(--text-sm);border-radius:6px;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr) auto;padding:2px 4px;display:grid}.adm-bar:hover{background:color-mix(in srgb, var(--text-heading) 5%, transparent)}.adm-bar-label{max-width:100%;font:inherit;color:var(--text-body);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;overflow:hidden}.adm-bar-label:hover{color:var(--text-heading);text-decoration:underline}.adm-bar-track{height:10px}.adm-bar-track i{background:var(--adm-bar);border-radius:0 4px 4px 0;height:100%;display:block}.adm-bar.is-muted .adm-bar-track i{background:color-mix(in srgb, var(--text-muted) 45%, transparent)}.adm-bar-value{color:var(--text-heading);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.adm-bar-value em,td em{font-style:normal;font-weight:500;font-size:var(--text-xs);color:var(--text-muted);margin-left:4px}.adm-table-wrap{margin:0 calc(var(--space-5) * -1);padding:0 var(--space-5);overflow-x:auto}.adm-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm)}.adm-table th,.adm-table td{border-bottom:1px solid var(--border-soft);text-align:left;white-space:nowrap;padding:8px 10px}.adm-table thead th{background:var(--card-bg);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);vertical-align:bottom;font-weight:800;position:sticky;top:0}.adm-table tbody th{color:var(--text-heading);font-weight:700}.adm-table .is-num{text-align:right;font-variant-numeric:tabular-nums}.adm-table tbody tr:hover td,.adm-table tbody tr:hover th{box-shadow:inset 0 0 0 999px color-mix(in srgb, var(--text-heading) 4%, transparent)}.adm-table td small{opacity:.8;font-size:10px;display:block}.adm-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;padding:0}.adm-sort small{text-transform:none;font-weight:600}.adm-sort.is-desc:after{content:" ↓"}.adm-sort.is-asc:after{content:" ↑"}.adm-link{font:inherit;color:var(--text-heading);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:700}.adm-link:hover{text-decoration:underline}.adm-matrix td{min-width:84px}.adm-meter{background:color-mix(in srgb, var(--text-muted) 20%, transparent);vertical-align:middle;border-radius:999px;width:70px;height:8px;margin-right:6px;display:inline-block;overflow:hidden}.adm-meter i{background:var(--adm-bar);height:100%;display:block}.adm-total,.adm-total-row td,.adm-total-row th{background:color-mix(in srgb, var(--text-heading) 4%, transparent);font-weight:800}.adm-future{background:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--text-muted) 12%, transparent) 6px 7px)}.adm-search{max-width:280px}.adm-records td{text-overflow:ellipsis;max-width:240px;overflow:hidden}.adm-pager{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);display:flex}@media (width<=1180px){.adm-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.adm-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.adm-page{padding:var(--space-4) var(--space-4) var(--space-8)}.adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-grid,.adm-grid--3{grid-template-columns:1fr}.adm-cols{gap:3px;height:110px}.adm-filterbar{position:static}.adm-search{width:100%;max-width:none}}[hidden]{display:none!important}#play-btn{justify-content:center;min-width:12.5rem}#play-btn[aria-busy=true]{cursor:progress}.lp-spinner{border:2.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite lpSpin}@keyframes lpSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.lp-spinner{animation-duration:2s}}.sidebar-edge-toggle{top:34px;left:calc(var(--sidebar-width) - 15px);z-index:110;border:var(--outline);background:var(--card-bg);width:28px;height:28px;color:var(--text-heading);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s ease, left var(--transition-base), background .15s ease, box-shadow .15s ease;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}#navbar:hover~.sidebar-edge-toggle,.sidebar-edge-toggle:hover,.sidebar-edge-toggle:focus-visible{opacity:1;pointer-events:auto}.sidebar-edge-toggle:hover{background:var(--sun);color:#16161a;box-shadow:2px 2px 0 var(--line)}.sidebar-edge-toggle:focus-visible{outline:3px solid var(--sun);outline-offset:2px}#app.sidebar-collapsed .sidebar-edge-toggle{left:49px}#app:has(.exercise-page) .sidebar-edge-toggle{display:none}@media (hover:none){.sidebar-edge-toggle{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion:reduce){.sidebar-edge-toggle{transition:none}}.placement-run .placement-skip{margin:var(--space-4) auto 0;min-height:40px;padding:0 var(--space-4);font:inherit;font-size:var(--text-sm);color:var(--text-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline;display:block}.placement-run .placement-skip:hover{color:var(--text-heading)}.placement-run .option-btn.selected{background:var(--sun)}.placement-result{max-width:1180px;padding:var(--space-6) var(--space-8) var(--space-10,40px);gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;margin:0 auto;display:grid}.pr-hero,.pr-plan,.pr-review{border:var(--outline);border-radius:var(--radius-2xl);background:var(--card-bg);padding:var(--space-6);box-shadow:var(--shadow-md)}.pr-hero--a1{background:var(--a1-bg)}.pr-hero--a2{background:var(--a2-bg)}.pr-hero--b1{background:var(--b1-bg)}.pr-hero--b2{background:var(--b2-bg)}.pr-hero--c1{background:var(--c1-bg)}.pr-hero{color:#17141f}.pr-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-weight:800;display:inline-flex}.pr-level{align-items:center;gap:var(--space-3);margin:var(--space-3) 0 var(--space-2);display:flex}.pr-badge{background:var(--card-bg);color:#17141f;padding:6px 14px;font-size:1.1rem}.pr-name{font-family:var(--font-display);color:#17141f;margin:0;font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem);font-weight:900;font-stretch:115%;line-height:1.05}.pr-cando{font-size:var(--text-base);margin:0;line-height:1.55}.pr-note{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);background:#ffffff8c;font-weight:600}.pr-subhead{margin:var(--space-5) 0 var(--space-3);font-size:var(--text-lg);align-items:center;gap:var(--space-2);display:flex}.pr-plan>.pr-subhead:first-child,.pr-review>.pr-subhead:first-child{margin-top:0}.pr-path{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.pr-step{border-radius:var(--radius-md);text-align:center;background:#fff;border:2px solid #17141f;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.pr-step-code{font-family:var(--font-display);font-weight:900;font-size:var(--text-sm)}.pr-step-score{font-weight:800;font-size:var(--text-base)}.pr-step-label{color:#5f586e;font-size:11px}.pr-step--pass{background:#b9efcf}.pr-step--fail{background:#fff;border-style:dashed}.pr-step--none{opacity:.55}.pr-step.is-yours{box-shadow:3px 3px #17141f}.pr-start{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:var(--outline);border-radius:var(--radius-xl);background:var(--primary-fill);color:#17141f;box-shadow:3px 3px 0 var(--shadow-ink);text-decoration:none;display:flex}.pr-start:hover{box-shadow:5px 5px 0 var(--shadow-ink)}.pr-start-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pr-start-text strong{font-family:var(--font-display);font-stretch:110%;font-size:var(--text-lg)}.pr-start-text span{font-size:var(--text-sm)}.pr-minor{margin:var(--space-5) 0 4px;font-size:var(--text-base)}.pr-minor-desc{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.pr-focus{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pr-focus-row{align-items:center;gap:var(--space-3);border:1.5px solid color-mix(in srgb, var(--line) 22%, var(--card-bg));min-height:48px;color:var(--text-heading);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:8px 12px;text-decoration:none;display:grid}.pr-focus-row:hover{border-color:var(--line);background:color-mix(in srgb, var(--sun) 25%, var(--card-bg))}.pr-focus-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.pr-focus-kind{font-size:var(--text-xs);color:var(--text-muted)}.pr-focus-lock{color:var(--text-muted);display:inline-flex}.pr-more{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.pr-more a{border:1.5px solid var(--line);min-height:40px;font-size:var(--text-sm);color:var(--text-heading);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-weight:700;text-decoration:none;display:inline-flex}.pr-more a:hover{background:var(--sun);color:#17141f}.pr-review{grid-column:1/-1}.pr-count{background:var(--error-bg);min-width:26px;height:26px;color:var(--error-text);font-size:var(--text-sm);border-radius:999px;place-items:center;padding:0 6px;display:inline-grid}.pr-review-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin:0;padding:0;list-style:none;display:grid}.pr-review-item{padding:var(--space-4);border:1.5px solid var(--border-soft);border-radius:var(--radius-lg);flex-direction:column;align-items:flex-start;gap:6px;display:flex}.pr-review-q{color:var(--text-heading);margin:0;font-weight:700;line-height:1.45}.pr-review-q mark{background:var(--sun);color:#17141f;border-radius:4px;padding:0 4px}.pr-review-a{font-size:var(--text-sm);flex-wrap:wrap;gap:4px 14px;margin:0;display:flex}.pr-wrong{color:var(--error)}.pr-wrong s{text-decoration-thickness:2px}.pr-right{color:var(--success-text)}.pr-review-why{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.5}.pr-actions{grid-column:1/-1;justify-content:center;display:flex}[data-theme=dark] .pr-review-q mark{color:#17141f}[data-theme=dark] .pr-right{color:var(--success)}@media (width>=861px){:root{--dk-gutter:32px;--dk-max:1180px;--dk-h1:1.75rem}#navbar{flex-direction:column;display:flex;overflow:hidden}.sidebar-logo{border-bottom:1.5px solid var(--border-soft);color:inherit;flex:none;gap:10px;padding:14px 18px;text-decoration:none}.sidebar-logo-icon{width:34px;height:34px;font-size:1.05rem}.sidebar-nav{flex:auto;gap:1px;min-height:0;padding:6px 10px 10px;-webkit-mask-image:none;mask-image:none}.sidebar-section-label{margin:0;padding:12px 10px 4px;font-size:.68rem}.sidebar-link{gap:10px;min-height:34px;padding:5px 10px}.sidebar-link.active{border-color:var(--line)}.sidebar-link-count{background:var(--error);min-width:20px;height:20px}.sidebar-bottom{border-top:1.5px solid var(--border-soft);flex-direction:column;flex:none;gap:8px;padding:10px;display:flex}.sidebar-account-card{border-radius:var(--radius-lg);min-height:48px;color:var(--text-heading);border:2px solid #0000;align-items:center;gap:10px;padding:6px 8px;display:flex}.sidebar-account-card:hover{opacity:1;background:var(--sidebar-hover-bg)}.sidebar-account-card.active{border-color:var(--line);background:var(--sun);color:#17141f}.sidebar-user-avatar{border:var(--outline);background:var(--sun);color:#17141f;width:34px;min-width:34px;height:34px;font-family:var(--font-display);font-weight:800}.sidebar-account-card.active .sidebar-user-avatar{background:#fff7ec;border-color:#17141f}.sidebar-account-card.active .sidebar-account-stat svg{color:#17141f}.sidebar-user-info{flex-direction:column;gap:1px;display:flex}.sidebar-user-name{color:inherit;font-weight:700}.sidebar-account-stats{color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:.72rem;display:flex}.sidebar-account-card.active .sidebar-account-stats{color:#17141f}.sidebar-account-stat{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.sidebar-account-stat svg{color:var(--primary);flex:none}.sidebar-account-stat strong{color:inherit;font-weight:800}.sidebar-auth-btns{gap:6px}.sidebar-register-btn{min-height:38px}.sidebar-controls{align-items:center;gap:6px;display:flex}.sidebar-controls .sidebar-theme-btn{border:var(--outline);border-radius:var(--radius-md);width:38px;height:38px;color:var(--text-body);flex:none;justify-content:center;margin:0;padding:0}.sidebar-controls .sidebar-theme-btn:hover{border-color:var(--line);background:var(--sidebar-hover-bg);color:var(--text-heading)}.sidebar-controls .lang-switch{flex:auto;align-items:stretch;width:auto;height:38px}.sidebar-controls .lang-switch-btn{flex:1}#app.sidebar-collapsed .sidebar-logo{justify-content:center;padding:14px 0}#app.sidebar-collapsed .sidebar-nav{padding-inline:8px}#app.sidebar-collapsed .sidebar-link{padding:5px 0}#app.sidebar-collapsed .sidebar-link-count{display:none}#app.sidebar-collapsed .sidebar-bottom{padding:8px}#app.sidebar-collapsed .sidebar-account-card{justify-content:center;padding:6px 0}#app.sidebar-collapsed .sidebar-auth-btns,#app.sidebar-collapsed .sidebar-controls .lang-switch,#app.sidebar-collapsed .sidebar-controls #sound-toggle-btn{display:none}#app.sidebar-collapsed .sidebar-controls{justify-content:center}.home-page,.progress-page,.pf-page,.wb-page,.notes-page,.part-select-page,.rule-card-page,.flashcard-page,.placement-page,.placement-result,.writing-editor-page,.writing-index-body,.topics-page-header,.vocab-page-header,.progress-page-header,.writing-index-header,.topics-grid,.vocab-grid,.mastery-section,.mistakes-actions,.mistakes-list,.results-page{width:100%;max-width:var(--dk-max);padding-inline:var(--dk-gutter);margin-inline:auto}.topics-page-header,.vocab-page-header,.progress-page-header,.writing-index-header{box-shadow:none;background:0 0;border:0;padding-block:22px 0}h1,.exercise-title,.part-select-title,.pf-name,.wb-header h1,.writing-editor-heading{font-size:var(--dk-h1);line-height:1.15}.topics-page-header h1,.vocab-page-header h1,.progress-page-header h1,.writing-index-header h1{margin:0}.topics-page-header>p,.vocab-page-header>p,.progress-page-header>p,.writing-index-header p{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0 0!important}.breadcrumb{margin:0 0 8px;font-size:.82rem}.topics-page-header .topics-tabs-row,.vocab-page-header .topics-tabs-row{margin-top:16px!important}.tab-group{background:var(--card-bg);gap:2px;padding:3px}.tab-btn{min-width:52px;min-height:36px;font-family:var(--font-body);border-radius:9px;place-items:center;padding:0 14px;display:inline-grid}.tab-btn:hover:not(.active){background:var(--bg);color:var(--text-heading)}.tab-btn-a1.active{background:var(--a1-bg);color:var(--a1-dark)}.tab-btn-a2.active{background:var(--a2-bg);color:var(--a2-dark)}.tab-btn-b1.active{background:var(--b1-bg);color:var(--b1-dark)}.tab-btn-b2.active{background:var(--b2-bg);color:var(--b2-dark)}.tab-btn-c1.active{background:var(--c1-bg);color:var(--c1-dark)}.empty-state{padding:56px var(--dk-gutter) 40px}.empty-state-icon{border:var(--outline);box-shadow:var(--shadow-xs);border-radius:var(--radius-xl)!important;background:var(--sun)!important;color:#16161a!important;width:64px!important;height:64px!important}.empty-state p{max-width:46ch;margin-inline:auto}.mastery-row,.mistake-row,.notes-card,.pf-fact,.memory-level,.home-panel,.skill-tile{border:var(--outline);box-shadow:var(--shadow-xs)}a.topic-card:hover,.level-tile:hover,.skill-tile:hover,a.part-row:hover,.writing-entry-card:hover,a.topic-card:focus-visible,.level-tile:focus-visible,.skill-tile:focus-visible,a.part-row:focus-visible{border-color:var(--line);box-shadow:var(--shadow-md);transform:none}.mistake-row:hover{border-color:var(--line);box-shadow:var(--shadow-xs)}.topics-grid,.vocab-grid{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:16px;padding-block:20px 48px}a.topic-card{gap:6px;padding:16px 18px;position:relative}a.topic-card.topic-card--has-cover{padding:0}.topic-card-top{align-items:center;gap:12px}.topic-card-icon{width:40px;height:40px}.topic-card .topic-card-icon svg{display:none}.topic-card .topic-card-icon:before{font-family:var(--font-display);font-size:.9rem;font-weight:800;font-stretch:110%}.topic-card .topic-card-icon--a1:before{content:"A1"}.topic-card .topic-card-icon--a2:before{content:"A2"}.topic-card .topic-card-icon--b1:before{content:"B1"}.topic-card .topic-card-icon--b2:before{content:"B2"}.topic-card .topic-card-icon--c1:before{content:"C1"}.topic-card h4{font-size:1rem;line-height:1.25}.topic-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}.topic-card-footer{border-top:0;justify-content:flex-start;gap:8px;min-height:0;padding-top:0}.topic-card-footer:not(:has(*)){display:none}.topic-card:not(.topic-card--has-cover) .topic-card-footer .badge,.topic-card .topic-card-meta--kind{display:none}.topic-card .topic-card-count{font-size:var(--text-xs);color:var(--text-muted);display:inline}.topic-card:has(.topic-card-progress,.stars) .topic-card-count{display:none}.topic-card-footer:not(:has(>:not(.topic-card-meta--kind):not(.topic-card-locked-note))){display:none}.topic-card:not(.topic-card--has-cover) .topic-card-footer:not(:has(>:not(.topic-card-meta--kind):not(.topic-card-locked-note):not(.badge))){display:none}.topic-card-parts,.topic-card>.stars,.topic-card-progress{margin-top:auto;padding-top:8px}.topic-card-cover{border-radius:0;height:104px}.topic-card-content{gap:6px;padding:12px 16px 14px}.topic-card--has-cover .topic-card-icon{display:none}.topic-card-lock{width:30px;height:30px;top:14px;right:14px}.topic-card--locked .topic-card-top{padding-right:36px}.topic-card--locked h4,.topic-card--locked .topic-card-desc,.topic-card--locked .topic-card-icon,.topic-card--locked .topic-card-cover{opacity:.55}.topic-card--locked .topic-card-footer{display:none}.home-page{gap:18px;padding-block:22px 40px}.home-head-title{font-size:var(--dk-h1)}.home-today{padding:0 2px}.level-tiles,.skill-tiles{gap:12px}.level-tile{align-items:center;row-gap:8px;padding:14px 16px}.level-tile--a1 .progress-bar-fill{background:var(--a1)}.level-tile--a2 .progress-bar-fill{background:var(--a2)}.level-tile--b1 .progress-bar-fill{background:var(--b1)}.level-tile--b2 .progress-bar-fill{background:var(--b2)}.level-tile--c1 .progress-bar-fill{background:var(--c1)}.level-tile.is-yours{background:color-mix(in srgb, var(--sun) 22%, var(--card-bg));outline:0}.skill-tile{padding:10px 14px}.home-panels{gap:16px;margin-top:4px}.home-panel{padding:18px 20px}.part-select-page{padding-block:22px 40px}.part-select-title{margin:0 0 4px}.part-select-subtitle{font-size:var(--text-sm);margin-bottom:18px}.part-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.part-row{gap:12px;padding:12px 16px}.part-row--done{border-color:var(--line)}.part-row--current{background:color-mix(in srgb, var(--sun) 22%, var(--card-bg))}.part-row--current .part-row-marker{border-color:var(--line);background:var(--sun);color:#17141f}.part-row-current{color:var(--orange-dark)}.part-select-back{margin-top:20px}.rule-card-page{padding-block:22px 40px}.rule-card-page .exercise-top-bar{align-items:flex-start;margin-bottom:16px}.rule-card{border-radius:18px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:16px 28px;padding:24px 28px;display:grid}.rule-card-header{grid-column:1/-1;margin:0}.rule-card-header h2{font-family:var(--font-body);font-stretch:100%;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-weight:800}.rule-card-summary{color:var(--text-heading);font-size:1.05rem;font-weight:600}.rule-card-icon{background:var(--sun);color:#17141f;width:40px;height:40px}.rule-card-rules{grid-column:1;gap:10px;margin:0}.rule-card:not(:has(.rule-card-examples)) .rule-card-rules{grid-column:1/-1}.rule-item{padding:12px 16px}.rule-item h3{font-family:var(--font-body);color:var(--orange-dark);font-stretch:100%}.rule-item p{font-size:.95rem}.rule-card-examples{border:var(--outline);border-radius:var(--radius-lg);background:var(--bg);grid-column:2;padding:14px 18px}.rule-card:not(:has(.rule-card-rules)) .rule-card-examples{grid-column:1/-1}.rule-card-examples li{font-size:.95rem}.rule-card-actions{text-align:left;grid-column:1/-1;margin:4px 0 0}.rule-card-actions .btn{justify-content:center;min-width:240px}#main-content:has(>.mistakes-actions){flex-direction:column;display:flex}.mistakes-actions{order:1;gap:10px;padding-block:18px 0}.mastery-section{order:2;padding-block:24px 0}.mastery-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.mastery-row{padding:14px 16px}.mastery-pct{font-size:1.05rem}.mastery-go{color:var(--orange-dark)}.mistakes-list{order:3;gap:12px;padding-block:24px 48px}.mistake-row{padding:14px 16px}.mistake-row-icon{border:var(--outline)}.mistake-row-answer{grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;display:grid}.mistake-row-answer-label{margin:0}.notes-page{padding-block:18px 48px}.progress-page{gap:24px;padding-block:18px 48px}.progress-summary-label{white-space:normal;align-items:flex-start;line-height:1.25}.pf-fact>span:last-child{white-space:normal;line-height:1.25}.pf-page{padding-block:22px 48px}.writing-index-body{padding-block:18px 48px}.writing-index-toolbar{border-bottom:0;margin-bottom:18px;padding-bottom:0}.writing-editor-page,.placement-page{padding-block:22px 40px}.placement-header,.placement-info.card,.placement-actions,.placement-previous{max-width:640px}.placement-info.card{padding:6px 18px}.placement-info-item{padding:12px 0}.placement-info-item+.placement-info-item{border-top:2px dashed var(--border-soft)}.placement-actions{text-align:left}.placement-actions .btn{justify-content:center;min-width:240px}.flashcard-page{padding-block:22px 40px}.flashcard-header{margin-bottom:8px}.flashcard-header h2{font-size:var(--dk-h1);margin:0}.flashcard-counter,.flashcard-container,.flashcard-actions,.flashcard-say-result{max-width:560px;margin-inline:auto}.flashcard-actions .btn{flex:1 1 0;justify-content:center}.ex-v2:not(.ex-side) #next-btn-container.ex-dock:not(.is-visible){display:none}.writing-index-filters .tab-group,.writing-index-toolbar .tab-group{width:auto;display:inline-flex}.results-page{padding-block:24px 48px}}@media (width>=1100px){.results-card:has(>.answer-review){column-gap:var(--space-8);row-gap:var(--space-2);grid-template-rows:repeat(11,auto) 1fr;grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;max-width:1080px;display:grid}.results-card:has(>.answer-review)>*{grid-column:1}.results-card:has(>.answer-review)>.results-note{justify-self:center}.results-card:has(>.answer-review)>.answer-review{text-align:left;scrollbar-width:thin;grid-area:1/2/-1;max-height:calc(100dvh - 130px);margin:0;overflow-y:auto}.results-card:has(>.answer-review)>.results-actions{flex-direction:column;align-items:stretch}.results-card:has(>.answer-review)>.results-actions .btn{justify-content:center}}@media (width<=860px){:root{--sidebar-width:0px;--mobile-topbar-height:52px;--mobile-bottom-nav-height:58px;--ph-gutter:16px;--ph-gap:12px;--ph-row-gap:8px;--ph-radius:14px;--ph-hairline:color-mix(in srgb, var(--line) 20%, var(--card-bg));--ph-border:1.5px solid var(--ph-hairline);--ph-safe-top:env(safe-area-inset-top,0px);--ph-safe-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:calc(var(--mobile-topbar-height) + var(--ph-safe-top) + 8px)}body{-webkit-tap-highlight-color:transparent}#navbar{display:none!important}.sidebar-edge-toggle{display:none}#app.sidebar-collapsed #navbar,#app.sidebar-collapsed #content-column{width:unset;margin-left:0}#content-column{min-height:100dvh;padding-top:calc(var(--mobile-topbar-height) + var(--ph-safe-top));padding-bottom:calc(var(--mobile-bottom-nav-height) + var(--ph-safe-bottom));margin-left:0;overflow-x:clip}#main-content{min-height:0}.site-footer{display:none}h1{line-height:1.2;font-size:1.5rem!important}h2{font-size:1.2rem}h3{font-size:1.05rem}.container{padding:0 var(--ph-gutter)}.grid-5,.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.breadcrumb{display:none}.btn{min-height:44px}.btn-sm{min-height:40px}.btn-lg{border-radius:var(--ph-radius);min-height:52px;font-size:1.02rem}input,select,textarea,.form-input{font-size:16px}.mobile-topbar{z-index:120;justify-content:space-between;align-items:center;gap:var(--space-3);height:calc(var(--mobile-topbar-height) + var(--ph-safe-top));padding:var(--ph-safe-top) 10px 0 var(--ph-gutter);background:color-mix(in srgb, var(--page-bg) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);border-bottom:1.5px solid var(--border-soft);display:flex;position:fixed;top:0;left:0;right:0}.mobile-topbar-brand{min-height:44px;color:var(--text-heading);font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:9px;font-size:1.05rem;font-weight:800;font-stretch:112%;text-decoration:none;display:inline-flex}.mobile-topbar-brand .sidebar-logo-icon{border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:.95rem;font-weight:800;display:grid}.mobile-topbar-back{min-width:44px;min-height:44px;color:var(--text-heading);border-radius:12px;align-items:center;gap:2px;margin-left:-8px;padding:0 10px 0 4px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.mobile-topbar-back svg{flex:none}.mobile-topbar-back span{white-space:nowrap;text-overflow:ellipsis;max-width:52vw;overflow:hidden}.mobile-topbar-back:active{background:color-mix(in srgb, var(--line) 8%, transparent)}.mobile-account-btn{min-width:44px;min-height:44px;color:var(--text-heading);flex:none;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.mobile-account-avatar{border:var(--outline);background:var(--sun);color:#16161a;width:34px;height:34px;font-family:var(--font-display);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:.78rem;font-weight:800;font-stretch:110%;display:grid}.mobile-account-btn:active .mobile-account-avatar{box-shadow:0 0 0 3px color-mix(in srgb, var(--sun) 45%, transparent)}.mobile-account-btn--guest{border:1.5px solid var(--line);background:var(--card-bg);min-height:36px;font-size:var(--text-sm);white-space:nowrap;border-radius:999px;margin-right:6px;padding:0 14px;font-weight:800}.mobile-account-btn--guest svg{flex:none}.mobile-account-btn:focus-visible,.mobile-topbar-back:focus-visible,.mobile-topbar-brand:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:999px}.mobile-bottom-nav{z-index:110;height:calc(var(--mobile-bottom-nav-height) + var(--ph-safe-bottom));padding:0 4px var(--ph-safe-bottom);background:var(--card-bg);border-top:1.5px solid var(--border-soft);box-shadow:none;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav-item{cursor:pointer;min-width:0;min-height:44px;font-family:var(--font-body);color:var(--text-muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:11px;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.mobile-bottom-nav-icon{border:2px solid #0000;border-radius:999px;place-items:center;width:52px;height:28px;transition:background-color .14s,border-color .14s;display:grid;position:relative}.mobile-bottom-nav-icon svg{flex:none}.mobile-bottom-nav-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.mobile-bottom-nav-item.is-active{color:var(--text-heading);font-weight:800}.mobile-bottom-nav-item.is-active .mobile-bottom-nav-icon{background:var(--sun);border-color:var(--line);color:#16161a}.mobile-bottom-nav-item.is-active svg{color:inherit;background:0 0;border-radius:0;outline:0}.mobile-bottom-nav-item:active .mobile-bottom-nav-icon{background:color-mix(in srgb, var(--sun) 55%, transparent)}.mobile-bottom-nav-item:focus-visible{outline:3px solid var(--sun);outline-offset:-3px;border-radius:12px}.mobile-bottom-nav-count{background:var(--error);color:#fff;border:1.5px solid var(--card-bg);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:1;display:grid;position:absolute;top:-5px;left:calc(50% + 6px)}#sidebar-overlay{z-index:180;opacity:0;pointer-events:none;background:#0a081073;transition:opacity .2s;display:block;position:fixed;inset:0}#app.mobile-more-open #sidebar-overlay{opacity:1;pointer-events:auto}body.mobile-more-open{overflow:hidden}.mobile-more-sheet{z-index:200;max-height:calc(100dvh - var(--ph-safe-top) - 24px);padding:0 var(--ph-gutter) calc(var(--space-4) + var(--ph-safe-bottom));background:var(--card-bg);border-top:2px solid var(--line);overscroll-behavior:contain;visibility:hidden;box-shadow:none;border-radius:22px 22px 0 0;flex-direction:column;transition:transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear .24s;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}body.mobile-more-open .mobile-more-sheet{visibility:visible;transition:transform .24s cubic-bezier(.2,.8,.2,1),visibility;transform:translateY(0);box-shadow:0 -10px 30px #0000002e}.mobile-more-sheet-handle{background:var(--border-soft);border-radius:999px;flex:none;width:40px;height:4px;margin:8px auto 2px}.mobile-more-sheet-header{padding:2px 0 var(--space-2);touch-action:none;flex:none;justify-content:space-between;align-items:center;display:flex}.mobile-more-sheet-title{margin:0;font-size:1.2rem}.mobile-more-close{width:40px;height:40px;color:var(--text-muted);background:var(--bg);border-radius:12px;place-items:center;margin-right:-6px;display:grid}.mobile-more-stats{align-items:center;gap:var(--space-4);padding:0 0 var(--space-3);border-bottom:1.5px solid var(--border-soft);flex-wrap:wrap;flex:none;margin:0;display:flex}.mobile-more-stat{font-size:var(--text-sm);color:var(--text-muted);background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.mobile-more-stat svg{color:var(--orange);flex:none}.mobile-more-stat strong{color:var(--text-heading);font-variant-numeric:tabular-nums;font-weight:800}.mobile-more-links{gap:var(--ph-row-gap);padding:var(--space-3) 0;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:visible}.mobile-more-link{border:var(--ph-border);border-radius:var(--ph-radius);background:var(--card-bg);min-height:78px;color:var(--text-heading);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px 4px;font-weight:600;text-decoration:none;display:flex}.mobile-more-link:hover{background:var(--card-bg)}.mobile-more-link:active{border-color:var(--line);background:color-mix(in srgb, var(--sun) 25%, var(--card-bg))}.mobile-more-link.is-active{background:var(--sun);color:#16161a;border:1.5px solid var(--line)}.mobile-more-link-icon{background:var(--bg);width:36px;height:36px;color:var(--text-heading);border-radius:11px;place-items:center;display:grid}.mobile-more-link.is-active .mobile-more-link-icon{color:#16161a;background:#fff9}.mobile-more-link-label{font-family:var(--font-body);font-size:var(--text-xs);flex:none;font-weight:800;line-height:1.2}.mobile-more-controls{align-items:center;gap:var(--ph-row-gap);padding-top:var(--space-3);border-top:1.5px solid var(--border-soft);flex:none;margin:0;display:flex}.mobile-more-theme{border:var(--ph-border);background:var(--card-bg);min-width:0;min-height:44px;box-shadow:none;color:var(--text-heading);font-family:var(--font-body);font-size:var(--text-sm);white-space:nowrap;border-radius:12px;flex-direction:row;flex:1 1 0;justify-content:center;align-items:center;gap:6px;margin:0;padding:0 8px;font-weight:700;display:flex}.mobile-more-theme svg{flex:none}.mobile-more-theme span{text-overflow:ellipsis;overflow:hidden}.mobile-more-lang{border:0;flex:none;margin:0;padding:0}.mobile-more-lang .lang-switch{border-width:1.5px;border-radius:12px}.mobile-more-lang .lang-switch-btn{border-radius:9px;min-width:44px;min-height:38px}.mobile-more-legal{margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;flex:none;gap:4px 14px;display:flex}.mobile-more-legal a{color:var(--text-body);text-underline-offset:3px;font-weight:700;text-decoration:underline}#toast-container{top:calc(var(--mobile-topbar-height) + var(--ph-safe-top) + 8px);left:var(--ph-gutter);right:var(--ph-gutter);align-items:center;gap:6px}#toast-container .toast{min-width:0;max-width:100%;box-shadow:var(--shadow-sm);font-size:var(--text-sm);border-radius:18px;gap:8px;padding:8px 14px;line-height:1.3}#toast-container .toast:nth-last-child(n+3){display:none}#app:has(.exercise-page)~#toast-container{top:calc(var(--ph-safe-top) + 6px)}#app:has(.exercise-page)~#toast-container .toast-xp{display:none}.topics-page-header,.vocab-page-header,.progress-page-header,.writing-index-header{box-shadow:none;background:0 0;border:0;padding:var(--space-4) var(--ph-gutter) 0!important}.topics-page-header h1,.vocab-page-header h1,.progress-page-header h1,.writing-index-header h1{margin:0}.topics-page-header>p,.vocab-page-header>p,.progress-page-header>p,.writing-index-header p{font-size:var(--text-sm);color:var(--text-muted);line-height:1.45;margin:4px 0 0!important}.topics-heading-level,.topics-heading-sep{display:none}.topics-page-header .topics-tabs-row,.vocab-page-header .topics-tabs-row{padding:0;overflow:visible;margin-top:var(--space-3)!important}.tab-group{background:var(--card-bg);border-radius:13px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;width:100%;min-width:0;padding:3px;display:grid}.tab-btn{min-width:0;min-height:40px;font-size:var(--text-sm);color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:10px;place-items:center;padding:0 2px;font-weight:700;display:grid;overflow:hidden}.tab-btn.active{background:var(--sun);color:#16161a;outline:2px solid var(--line);outline-offset:-2px;box-shadow:none}.tab-btn-a1.active{background:var(--a1-bg);color:var(--a1-dark)}.tab-btn-a2.active{background:var(--a2-bg);color:var(--a2-dark)}.tab-btn-b1.active{background:var(--b1-bg);color:var(--b1-dark)}.tab-btn-b2.active{background:var(--b2-bg);color:var(--b2-dark)}.tab-btn-c1.active{background:var(--c1-bg);color:var(--c1-dark)}.topics-grid,.vocab-grid{flex-direction:column;gap:var(--ph-row-gap)!important;padding:var(--space-3) var(--ph-gutter) var(--space-6)!important;display:flex!important}a.topic-card{border:var(--ph-border);border-radius:var(--ph-radius);background:var(--card-bg);min-height:64px;box-shadow:none;opacity:1;flex-direction:column;justify-content:center;gap:3px;padding:10px 44px 10px 64px;animation:none;display:flex;position:relative}a.topic-card:hover,a.topic-card:active{box-shadow:none;filter:none}a.topic-card:active{border-color:var(--line);background:color-mix(in srgb, var(--sun) 16%, var(--card-bg))}a.topic-card .topic-card-top,a.topic-card .topic-card-content{display:contents}a.topic-card .topic-card-icon,a.topic-card .topic-card-cover{border:1.5px solid var(--line);width:40px;height:40px;box-shadow:none;border-radius:11px;margin:0;position:absolute;top:50%;left:12px;overflow:hidden;transform:translateY(-50%)}a.topic-card .topic-card-cover img{object-fit:cover;width:100%;height:100%}a.topic-card:has(.topic-card-cover:not([style*=none])) .topic-card-icon{display:none}a.topic-card h4{overflow-wrap:break-word;margin:0;font-size:1rem;line-height:1.25}a.topic-card .topic-card-desc{-webkit-line-clamp:2;font-size:var(--text-xs);color:var(--text-muted);-webkit-box-orient:vertical;margin:0;line-height:1.35;display:-webkit-box;overflow:hidden}a.topic-card .topic-card-footer{min-height:0;font-size:var(--text-xs);color:var(--text-muted);border:0;justify-content:flex-start;align-items:center;gap:6px;margin:0;padding:0;line-height:1.3;display:flex}a.topic-card .topic-card-footer .badge{box-shadow:none;border-width:1px;padding:0 5px;font-size:10px;line-height:16px}a.topic-card .topic-card-count{display:inline}a.topic-card .topic-card-meta{font-size:var(--text-xs)}a.topic-card .topic-card-meta--kind,a.topic-card:not(.topic-card--has-cover) .topic-card-footer .badge{display:none}a.topic-card .topic-card-footer:not(:has(>:not(.topic-card-meta--kind):not(.topic-card-locked-note))){display:none}a.topic-card:not(.topic-card--has-cover) .topic-card-footer:not(:has(>:not(.topic-card-meta--kind):not(.topic-card-locked-note):not(.badge))){display:none}a.topic-card .topic-card-parts,a.topic-card>.stars,a.topic-card .topic-card-progress,a.topic-card .topic-card-progress--skill{margin:2px 0 0}a.topic-card .topic-card-parts-head{font-size:var(--text-xs);margin-bottom:3px;line-height:1.3}a.topic-card .progress-bar--xs,a.topic-card .topic-card-progress .progress-bar{background:color-mix(in srgb, var(--line) 12%, var(--card-bg));border:0;height:5px}a.topic-card .stars{font-size:.8rem;line-height:1}a.topic-card .topic-card-icon svg{display:none}a.topic-card .topic-card-icon:before{font-family:var(--font-display);letter-spacing:.01em;font-size:.85rem;font-weight:800;font-stretch:110%}a.topic-card .topic-card-icon--a1:before{content:"A1"}a.topic-card .topic-card-icon--a2:before{content:"A2"}a.topic-card .topic-card-icon--b1:before{content:"B1"}a.topic-card .topic-card-icon--b2:before{content:"B2"}a.topic-card .topic-card-icon--c1:before{content:"C1"}a.topic-card:not(.topic-card--locked):after{content:"";border-right:2px solid var(--text-light);border-top:2px solid var(--text-light);opacity:.7;width:8px;height:8px;margin-top:-4px;position:absolute;top:50%;right:18px;transform:rotate(45deg)}a.topic-card .topic-card-lock{width:30px;height:30px;box-shadow:none;border-width:1.5px;place-items:center;display:grid;position:absolute;top:50%;left:auto;right:12px;transform:translateY(-50%)}a.topic-card .topic-card-lock svg{width:14px;height:14px}a.topic-card.topic-card--locked{background:color-mix(in srgb, var(--card-bg) 60%, transparent)}a.topic-card.topic-card--locked .topic-card-top{padding:0}a.topic-card.topic-card--locked h4,a.topic-card.topic-card--locked .topic-card-icon,a.topic-card.topic-card--locked .topic-card-cover{opacity:.55}a.topic-card.topic-card--locked .topic-card-locked-note,a.topic-card.topic-card--locked .topic-card-meta,a.topic-card.topic-card--locked .topic-card-count,a.topic-card.topic-card--locked .topic-card-footer{display:none}.empty-state{padding:var(--space-10) var(--ph-gutter) var(--space-8)}.empty-state-icon{border:var(--outline);box-shadow:var(--shadow-xs);background:var(--sun)!important;color:#16161a!important;border-radius:18px!important;width:64px!important;height:64px!important}.empty-state h2,.empty-state h3{font-size:1.2rem}.empty-state p{font-size:var(--text-sm);color:var(--text-muted);max-width:34ch;margin-inline:auto;line-height:1.5}.empty-state .btn,.locked-page-card .btn{justify-content:center;min-width:200px}.home-page{padding:var(--space-4) var(--ph-gutter) var(--space-8);gap:var(--space-4)}.home-head{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.home-head-title{text-transform:none;max-width:none;line-height:1.15;font-size:1.5rem!important}.home-head-stats{flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.home-head-stats .stat-chip{border:var(--ph-border);box-shadow:none;font-size:var(--text-sm);white-space:nowrap;border-radius:999px;flex:none;padding:4px 11px}.home-lead{gap:var(--space-4);grid-template-columns:1fr}.next-step{gap:var(--space-3);padding:var(--space-5);box-shadow:var(--shadow-sm);border-radius:20px}.next-step-title{font-size:1.6rem;line-height:1.1}.next-step-progress{gap:var(--space-3);margin-top:2px}.next-step .next-step-cta{border-radius:var(--ph-radius);justify-content:center;align-self:stretch;min-height:54px;margin-top:2px;font-size:1.05rem}.next-step-alt{text-wrap:balance;align-items:flex-start;line-height:1.4}.next-step-alt svg{flex:none;margin-top:3px}.home-today{align-items:stretch;gap:var(--ph-row-gap);flex-direction:column;padding:0;display:flex}.home-today-goal,.home-today-link{border:var(--ph-border);border-radius:var(--ph-radius);background:var(--card-bg);min-height:52px;box-shadow:none;font-size:var(--text-sm);flex-direction:row;align-items:center;gap:10px;padding:10px 14px;text-decoration:none;display:flex}.home-today-goal{flex-wrap:wrap;row-gap:4px}.home-today-label{flex:none}.home-today-note{text-align:right;min-width:0;font-size:var(--text-xs);color:var(--text-muted);flex:auto}.home-today-link{color:var(--text-heading);font-weight:700}.home-today-link svg{flex:none}.home-today-link svg:first-child{color:var(--error)}.home-today-link svg:last-child:not(:first-child){color:var(--text-light);margin-left:auto}.home-today-link--done svg:first-child{color:var(--success)}.home-today-link:not(.home-today-link--done):active{border-color:var(--line)}.home-page .section-heading{margin:var(--space-3) 0 calc(var(--space-1) * -1);align-items:baseline;gap:var(--space-3);flex-wrap:nowrap}.home-page .section-heading h2{text-transform:none;letter-spacing:-.01em;font-size:1.15rem}.home-page .section-heading>a,.section-heading-note{font-size:var(--text-sm);flex:none}.home-page .section-heading>a,.home-panel-head a,.section-heading-note a{align-items:center;min-height:44px;display:inline-flex}.home-panel-head{align-items:center}.level-tiles{gap:var(--ph-row-gap);flex-direction:column;display:flex}.level-tile{border:var(--ph-border);border-radius:var(--ph-radius);min-height:60px;box-shadow:none;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"code name count""code bar bar";align-items:center;gap:6px 12px;padding:10px 14px 10px 12px;display:grid;background:var(--card-bg)!important;color:var(--text-heading)!important}.level-tile:hover,.level-tile:active{box-shadow:none;filter:none;transform:none}.level-tile:active{border-color:var(--line)}.level-tile-code{border:1.5px solid var(--line);border-radius:10px;grid-area:code;place-self:center stretch;place-items:center;height:36px;padding:0;font-size:.95rem;font-stretch:110%;display:grid}.level-tile-name{white-space:nowrap;text-overflow:ellipsis;grid-area:name;font-size:.95rem;overflow:hidden}.level-tile-desc{display:none}.level-tile .progress-bar{background:color-mix(in srgb, var(--line) 12%, var(--card-bg));border:0;grid-area:bar;height:6px;margin:0}.level-tile-count{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;grid-area:count}.level-tile--a1 .level-tile-code{background:var(--a1-bg);color:var(--a1-dark)}.level-tile--a1 .progress-bar-fill{background:var(--a1)}.level-tile--a2 .level-tile-code{background:var(--a2-bg);color:var(--a2-dark)}.level-tile--a2 .progress-bar-fill{background:var(--a2)}.level-tile--b1 .level-tile-code{background:var(--b1-bg);color:var(--b1-dark)}.level-tile--b1 .progress-bar-fill{background:var(--b1)}.level-tile--b2 .level-tile-code{background:var(--b2-bg);color:var(--b2-dark)}.level-tile--b2 .progress-bar-fill{background:var(--b2)}.level-tile--c1 .level-tile-code{background:var(--c1-bg);color:var(--c1-dark)}.level-tile--c1 .progress-bar-fill{background:var(--c1)}.level-tile.is-yours{border:1.5px solid var(--line);outline:0;background:color-mix(in srgb, var(--sun) 22%, var(--card-bg))!important}.skill-tiles{gap:var(--ph-row-gap);grid-template-columns:repeat(3,minmax(0,1fr))}.skill-tile{border:var(--ph-border);border-radius:var(--ph-radius);min-height:84px;box-shadow:none;text-align:center;flex-direction:column;justify-content:center;gap:6px;padding:10px 4px}.skill-tile:hover,.skill-tile:active{box-shadow:none;filter:none;transform:none}.skill-tile:active{border-color:var(--line)}.skill-tile-icon{border-width:1.5px;border-radius:11px;width:38px;height:38px}.skill-tile-label{font-size:var(--text-xs);font-weight:800;line-height:1.2}.home-panels{gap:var(--ph-gap);margin-top:var(--space-2);grid-template-columns:1fr}.home-panel{gap:var(--space-3);padding:var(--space-4);border:var(--ph-border);border-radius:var(--ph-radius);box-shadow:none}.home-panel-head h2{font-size:1.1rem}.week-bar-track{border-bottom-width:1.5px;height:56px}.week-bar-track i{border-width:1.5px}.week-bar-label{font-size:11px}.home-facts{gap:var(--space-2);padding-top:var(--space-3);border-top:1.5px solid var(--border-soft)}.home-facts dt{line-height:1.3}.home-facts dd{font-size:1.35rem}.home-row{min-height:48px;padding:var(--space-2) 0;border-top:1.5px solid var(--border-soft)}.home-steps{gap:var(--space-3)}.rule-card-page{max-width:none;padding:var(--space-4) var(--ph-gutter) var(--space-6)}.rule-card-page .exercise-top-bar{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin:0 0 var(--space-4);flex-direction:row}.rule-card-page .exercise-title{font-size:1.5rem;line-height:1.2}.rule-card-page .exercise-top-bar>.badge{flex:none;margin-top:4px}.rule-card{padding:var(--space-4);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.rule-card-header{gap:var(--space-3);margin-bottom:var(--space-4);align-items:flex-start}.rule-card-icon{background:var(--sun);color:#16161a;border-radius:11px;width:40px;height:40px}.rule-card-header h2{font-family:var(--font-body);font-stretch:100%;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-weight:800}.rule-card-summary{color:var(--text-heading);font-size:1rem;font-weight:600;line-height:1.5}.rule-card-rules{gap:var(--ph-row-gap);margin-bottom:var(--space-4)}.rule-item{padding:12px 14px}.rule-item h3{font-family:var(--font-body);font-stretch:100%;font-size:var(--text-xs);color:var(--orange-dark);margin-bottom:2px}.rule-item p{color:var(--text-body);font-size:.95rem;line-height:1.55}.rule-card-examples{border:var(--outline);border-radius:var(--radius-lg);background:var(--bg);padding:12px 14px}.rule-card-examples h3{margin-bottom:var(--space-2)}.rule-card-examples ul{padding-left:1.1em;list-style:outside}.rule-card-examples li{margin-bottom:6px;font-size:.95rem;line-height:1.5}.rule-card-examples li:last-child{margin-bottom:0}.rule-card-actions{bottom:calc(var(--mobile-bottom-nav-height) + var(--ph-safe-bottom) + 10px);z-index:5;margin:var(--space-4) 0 0;padding:var(--space-3) 0 0;background:linear-gradient(to top, var(--card-bg) 72%, transparent);position:sticky}.rule-card-actions .btn{background:var(--text-heading);width:100%;min-height:54px;color:var(--card-bg);border-color:var(--text-heading);justify-content:center}.part-select-page{max-width:none;padding:var(--space-4) var(--ph-gutter) var(--space-6)}.part-select-title{margin:0 0 4px;font-size:1.5rem;line-height:1.2}.part-select-subtitle{margin-bottom:var(--space-4);font-size:var(--text-sm);line-height:1.45}.part-list{gap:var(--ph-row-gap)}.part-row{border:var(--ph-border);border-radius:var(--ph-radius);min-height:64px;box-shadow:none;gap:12px;padding:10px 14px 10px 12px}.part-row:hover,a.part-row:active{box-shadow:none;filter:none}a.part-row:active{border-color:var(--line)}.part-row--done{border-color:var(--ph-hairline)}.part-row--current{border:1.5px solid var(--line);background:color-mix(in srgb, var(--sun) 22%, var(--card-bg))}.part-row-marker{width:40px;height:40px}.part-row--done .part-row-marker{border-color:var(--success)}.part-row--current .part-row-marker{border-color:var(--line);background:var(--sun);color:#16161a}.part-row-title{color:var(--text-heading);flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-weight:700;display:flex}.part-row-current{color:var(--orange-dark);margin:0}.part-row-stars{letter-spacing:1px;flex:none}.part-select-back{display:none}#app:has(.exercise-page) #content-column{padding-top:0;padding-bottom:0}.exercise-page{max-width:none;padding:var(--space-4) var(--ph-gutter) calc(var(--dock-h,104px) + var(--space-6))}.ex-v2{padding-top:0}.exercise-top-bar{align-items:stretch;gap:var(--space-3);flex-direction:column}.exercise-progress-wrap{flex:none;min-width:0;max-width:none}.ex-v2>.ex-bar{z-index:25;margin:0 calc(-1 * var(--ph-gutter)) var(--space-3);padding:calc(var(--ph-safe-top) + 8px) 12px 8px 4px;background:var(--page-bg);border-bottom:1.5px solid var(--border-soft);grid-template-columns:44px minmax(0,1fr) auto auto;grid-template-areas:"close progress count note""close heading heading note";align-items:center;gap:2px 10px;display:grid;position:sticky;top:0}.ex-v2 .ex-close{grid-area:close}.ex-v2 .ex-bar-progress{grid-area:progress;align-self:end;min-width:0;margin:0}.ex-v2 .ex-bar-count{font-size:var(--text-xs);grid-area:count;align-self:end;line-height:1}.ex-v2 .ex-note{border-radius:12px;grid-area:note;justify-content:center;align-self:center;width:40px;min-height:40px;padding:0}.ex-v2 .ex-note-label{display:none}.ex-v2 .ex-bar-heading{flex-direction:row;grid-area:heading;align-self:start;align-items:baseline;gap:6px;min-width:0}.ex-v2 .ex-bar-eyebrow{flex:none;font-size:11px}.ex-v2 .ex-bar-title{font-family:var(--font-body);font-weight:600;font-stretch:100%;font-size:var(--text-xs);color:var(--text-muted)}.ex-v2 .step-dots{gap:3px}.ex-v2 .step-dot{height:10px}.question-card{padding:var(--space-5)}.ex-v2>.question-card{box-shadow:none;background:0 0;border:0;padding:0}.ex-v2 .task-line{margin-bottom:var(--space-3);font-size:.95rem}.ex-v2 .task-help{width:40px;height:40px;font-size:var(--text-sm);margin:-8px -4px -8px auto}.ex-v2 .question-text{margin-bottom:var(--space-4);font-size:1.35rem;line-height:1.35}.ex-v2 .question-passage{font-size:.98rem}.ex-v2 .options-list{flex-direction:column;gap:10px;display:flex}.ex-v2 .option-btn{border:var(--ph-border);border-radius:var(--ph-radius);min-height:56px;box-shadow:none;text-align:left;padding:10px 14px;font-size:1.02rem}.ex-v2 .option-btn .option-letter{border-width:1.5px;border-radius:9px;flex:none;width:30px;height:30px}.ex-v2 .option-btn:hover:not(.disabled){background:var(--card-bg);border-color:var(--ph-hairline);box-shadow:none}.ex-v2 .option-btn:active:not(.disabled){border-color:var(--line);box-shadow:none;filter:none}.ex-v2 .option-btn.is-selected,.ex-v2 .tf-btn.is-selected,.ex-v2 .option-btn.is-selected:hover,.ex-v2 .tf-btn.is-selected:hover{background:var(--sun);color:#16161a;border:1.5px solid var(--line)}.ex-v2 .option-btn.correct,.ex-v2 .option-btn.wrong,.ex-v2 .tf-btn.correct,.ex-v2 .tf-btn.wrong{border:1.5px solid var(--line)}.ex-v2 .tf-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ex-v2 .tf-btn{border-radius:var(--ph-radius);flex-direction:row;justify-content:center;align-items:center;gap:8px;min-height:64px;padding:10px;font-size:1.05rem;font-weight:700;display:flex}.ex-v2 .tf-btn.is-selected,.ex-v2 .tf-btn.is-selected:hover,.ex-v2 .tf-btn.correct,.ex-v2 .tf-btn.wrong{border:var(--outline)}.ex-v2 .tense-compare-options{gap:10px}.ex-v2 .fill-blank-row{display:block}.ex-v2 .fill-blank-row .fill-blank-input{border-radius:var(--ph-radius);width:100%;min-height:54px}.ex-v2 .hint-block{margin:0 0 var(--space-3)}.ex-v2 .hint-toggle{min-height:40px}.ex-v2 .dictation-player .btn{min-height:48px}.ex-v2 .word-chip,.ex-v2 .ec-word{min-height:44px;box-shadow:2px 2px 0 var(--shadow-ink)}.ex-v2 .word-chip{padding:8px 14px;font-size:1rem}.ex-v2 .word-bank{gap:8px}.ex-v2 .word-order-sentence{border-radius:var(--ph-radius);gap:8px;min-height:64px}.ex-v2 .word-order-actions{justify-content:center}.ex-v2 .wo-meaning{border-radius:var(--ph-radius)}.ex-v2 .ec-sentence{gap:8px}.match-terms{display:none}.match-current{align-items:center;gap:var(--space-3);border:var(--outline);border-radius:var(--ph-radius);background:var(--sun);color:#16161a;padding:12px 14px;display:flex}.matching.is-done .match-current{display:none}.match-current-count{font-size:var(--text-xs);opacity:.7;font-weight:800}.match-current-term{font-family:var(--font-display);font-weight:700;font-stretch:104%;font-size:var(--text-lg)}.match-def{border:var(--ph-border);border-radius:var(--ph-radius);min-height:52px;padding:10px 14px;font-size:.95rem}.match-defs{gap:var(--ph-row-gap)}.ex-v2 #check-fill-btn,.ex-v2 #check-correction-btn,.ex-v2 #check-word-order-btn,.ex-v2 #check-multi-blank-btn,.ex-v2 #check-dictation-btn{display:none}.how-to.is-open{z-index:130;overscroll-behavior:contain;max-height:88dvh;padding:22px var(--ph-gutter) calc(var(--space-4) + var(--ph-safe-bottom));border:0;border-top:2px solid var(--line);background:var(--card-bg);border-radius:22px 22px 0 0;margin:0;animation:.22s cubic-bezier(.2,.8,.2,1) ph-sheet-in;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 30px #0000002e}[data-theme=dark] .how-to.is-open{background:var(--card-bg);border-left:0}.how-to-grip{background:var(--border-soft);border-radius:999px;width:40px;height:4px;margin-left:-20px;display:block;position:absolute;top:8px;left:50%}.how-to-title{margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--text-heading)}.how-to-steps{margin-bottom:var(--space-4);gap:10px;font-size:1rem;line-height:1.5}.how-to .how-to-close{border-radius:var(--ph-radius);background:var(--text-heading);width:100%;min-height:52px;color:var(--card-bg);border-color:var(--text-heading);box-shadow:none;justify-content:center;font-size:1.02rem}.sheet-backdrop.is-open{z-index:125;background:#0a081073;display:block;position:fixed;inset:0}body.sheet-open{overflow:hidden}.exercise-page .next-btn-area,.exercise-page #next-btn-container.is-visible{left:0;right:0;bottom:var(--kb-inset,0px);z-index:30;align-items:center;row-gap:var(--space-2);padding:var(--space-3) var(--ph-gutter) calc(var(--space-3) + var(--ph-safe-bottom));border-top:var(--outline);grid-template-columns:minmax(0,1fr);grid-template-areas:"verdict""detail""action";margin:0;display:grid;position:fixed}.ex-dock-idle{display:none}.ex-v2 #next-btn-container.ex-dock:not(.is-visible):has(>.ex-check[hidden]){display:none}.ex-v2 .ex-dock:not(.is-visible){border-top:1.5px solid var(--border-soft);background:var(--page-bg);animation:none}.exercise-page .next-btn-area .btn,.ex-v2 .ex-dock .btn{border-radius:var(--ph-radius);width:100%;min-width:0;min-height:54px;font-size:1.08rem}.ex-v2 .ex-check:disabled{opacity:.4}.dock-verdict{font-size:1.15rem}.dock-xp{font-family:var(--font-body);font-stretch:100%;font-size:var(--text-xs);white-space:nowrap;border:1.5px solid;border-radius:999px;align-items:center;margin-left:auto;padding:2px 10px;font-weight:800;display:inline-flex}.exercise-page .next-btn-area #explanation-container{overscroll-behavior:contain;max-height:26dvh;overflow-y:auto}.exercise-page .next-btn-area .explanation-box{font-size:.95rem;line-height:1.5}html.kb-open .exercise-page .next-btn-area,html.kb-open .exercise-page #next-btn-container.is-visible{padding-top:var(--space-2);padding-bottom:var(--space-2);max-height:calc(var(--vv-height,100dvh) * .5);overscroll-behavior:contain;animation:none;overflow-y:auto}html.kb-open .ex-v2 .ex-dock .btn{min-height:48px}html.kb-open .exercise-page{padding-bottom:calc(var(--kb-inset,0px) + 96px)}.exercise-page>.reading-passage-card,.exercise-page>.listening-player{margin:0 0 var(--space-4);padding:var(--space-4)}.exercise-page>.reading-passage-card{max-height:44dvh}.reading-passage-body{font-size:1.02rem;line-height:1.7}.lp-controls .btn{min-height:48px}.lp-line{min-height:40px}.results-page{padding:var(--space-5) var(--ph-gutter) var(--space-8)}.results-card{gap:var(--space-5);max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.results-main{gap:6px}.results-icon{display:none}.results-title{text-transform:none;margin:0;font-size:1.3rem}.results-subtitle{font-size:var(--text-sm);margin:0}.results-score{margin:4px 0 0;font-size:3.4rem}.results-card .stars{font-size:1.6rem}.results-message{margin:0;font-size:.98rem}.results-note{font-size:var(--text-sm);border-radius:999px;margin:2px 0 0}.results-actions{gap:var(--ph-row-gap);margin-top:var(--space-4);flex-flow:wrap;order:1;display:flex}.results-actions .btn{text-align:center;flex:100%;justify-content:center;width:auto;min-width:0;padding-inline:10px}.results-actions .btn-primary{min-height:54px}.results-actions .btn-secondary{flex:1 1 calc(50% - var(--ph-row-gap));min-height:48px;font-size:.92rem}.results-actions .btn-ghost{min-height:44px}.results-part-progress,.results-signup-banner,.guest-save,.next-topic-suggestion{order:2}.results-part-progress{margin-top:var(--space-4);text-align:left}.results-signup-banner{border-radius:var(--ph-radius)}.next-topic-suggestion{border-top:1.5px solid var(--border-soft)}.results-card>.answer-review,.results-card>.lesson-summary,.results-card>.results-detail{order:3}.results-card>.answer-review{margin-top:var(--space-5);text-align:left}.results-detail{gap:var(--space-4)}.answer-review-list{gap:var(--ph-row-gap);max-height:none}.answer-review-item{padding:12px 14px}.form-input,select.form-input,textarea.form-input{border-radius:12px;min-height:50px;padding:11px 14px;font-size:16px;font-weight:500}select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23807a8c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.auth-page{min-height:0;padding:var(--space-5) var(--ph-gutter) var(--space-8);align-items:flex-start}.auth-card{max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.auth-logo{margin-bottom:var(--space-4)}.auth-heading{margin-bottom:var(--space-4);font-size:1.5rem}.auth-tabs{margin-bottom:var(--space-5);border:var(--outline);background:var(--card-bg);border-radius:13px;gap:2px;padding:3px}.auth-tab-btn{min-height:40px;font-family:var(--font-body);border-radius:10px;font-weight:700}.auth-tab-btn.active{background:var(--sun);color:#16161a;outline:2px solid var(--line);outline-offset:-2px;box-shadow:none}.auth-field{margin-bottom:var(--space-3);gap:6px}.auth-field-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px}.auth-field-row:has(>[hidden]){grid-template-columns:minmax(0,1fr)}.auth-label{color:var(--text-heading);font-weight:700}.auth-card .btn-primary{border-radius:var(--ph-radius);min-height:54px;font-size:1.05rem}.auth-link-btn{min-height:44px;padding:0 8px}.auth-social-btn{min-height:50px}.locked-page{padding:var(--space-6) var(--ph-gutter) var(--space-8)}.locked-page-card{max-width:none;padding:var(--space-6) var(--space-5);border-radius:20px}.locked-page-card .btn-primary{width:100%;min-height:54px}.locked-modal{border-radius:20px}.flashcard-page{max-width:none;padding:var(--space-4) var(--ph-gutter) var(--space-5)}.flashcard-header{margin:0 0 var(--space-3);padding:0!important}.flashcard-header>div[style]{align-items:center;gap:var(--ph-row-gap);flex-wrap:wrap}.flashcard-header h2{flex:calc(100% - 64px);min-width:0;margin:0;font-size:1.5rem;line-height:1.2}.flashcard-header-actions{display:contents}.flashcard-header-actions .badge{flex:none;order:1}.flashcard-header-actions .btn{order:2;flex:1 1 calc(50% - var(--ph-row-gap));text-align:center;white-space:normal;text-wrap:balance;border-radius:12px;justify-content:center;min-width:0;min-height:44px;padding:4px 8px;font-size:.82rem;line-height:1.2}.flashcard-header-actions .btn svg{flex:none}.flashcard-counter{margin-bottom:var(--space-2);font-family:var(--font-body)}.flashcard-container{margin-bottom:var(--space-3)}.flip-card{min-height:clamp(320px,100dvh - 360px,440px)}.flip-front,.flip-back{padding:var(--space-4);border-radius:20px}.flip-front{justify-content:center}.flashcard-img-wrap{border-radius:14px;flex:80px;width:100%;min-height:72px;max-height:170px}.flashcard-img-wrap img{object-fit:cover;width:100%;height:100%}.flashcard-emoji{font-size:4.2rem;line-height:1}.flashcard-word{margin:var(--space-2) 0 0;flex:none;font-size:1.8rem;line-height:1.15}.flashcard-pronunciation{flex:none;margin-bottom:0}.flashcard-voice,.flashcard-hint{flex:none}.flashcard-hint{margin-top:var(--space-2)}.flashcard-voice .btn{min-height:40px}.flashcard-definition{font-size:1.15rem}.flashcard-actions{gap:var(--ph-row-gap);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.flashcard-actions .btn{justify-content:center;width:100%;min-width:0;padding-inline:8px;font-size:.98rem}.speaking-card,.speaking-phrase-card{border-radius:20px}.speak-word{min-height:44px}#main-content:has(>.mistakes-actions){flex-direction:column;display:flex}#main-content:has(>.mistakes-actions)>.vocab-page-header{order:0}.mistakes-actions{gap:var(--ph-row-gap);padding:var(--space-3) var(--ph-gutter) 0;order:1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mistakes-actions .btn{justify-content:center;min-width:0;padding-inline:8px;font-size:.92rem}.mistakes-actions .btn-primary{border-radius:var(--ph-radius);background:var(--text-heading);min-height:54px;color:var(--card-bg);border-color:var(--text-heading);grid-column:1/-1;font-size:1.02rem}.mistakes-actions .btn-ghost{border:var(--ph-border);background:var(--card-bg);color:var(--text-muted)}.mastery-section{padding:var(--space-5) var(--ph-gutter) 0;order:2}.mastery-section h2{font-size:1.15rem}.mastery-desc{margin-bottom:var(--space-3);line-height:1.45}.mastery-list{gap:var(--ph-row-gap);grid-template-columns:1fr}.mastery-row{border:var(--ph-border);border-radius:var(--ph-radius);box-shadow:none;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name pct""meter meter""meta go";row-gap:6px;padding:12px 14px}.mastery-name{font-size:.98rem}.mastery-name span:first-child{white-space:normal;overflow:visible}.mastery-name .badge{border-width:1px;flex:none;padding:0 5px;font-size:10px;line-height:16px}.mastery-pct{font-size:1rem}.mastery-meter{background:color-mix(in srgb, var(--line) 12%, var(--card-bg));border:0;height:6px}.mastery-go{min-height:40px;color:var(--orange-dark)}.mistakes-list{gap:var(--ph-row-gap);padding:var(--space-5) var(--ph-gutter) var(--space-6);order:3}.mistake-row{border:var(--ph-border);border-radius:var(--ph-radius);box-shadow:none;gap:10px;padding:12px}.mistake-row:hover{border-color:var(--ph-hairline);box-shadow:none}.mistake-row-icon{border:1.5px solid var(--line);border-radius:10px;width:36px;height:36px}.mistake-row-question{margin-bottom:4px;font-size:.95rem;line-height:1.4}.mistake-row-answer{font-size:var(--text-sm);grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;margin-bottom:4px;line-height:1.4;display:grid}.mistake-row-answer-label{margin:0;padding:1px 7px;font-size:10px}.mistake-row-meta{font-size:var(--text-xs);gap:4px 6px}.mistake-row-meta .badge{box-shadow:none;border-width:1px;padding:0 5px;font-size:10px;line-height:16px}.mistake-row-remove{width:40px;height:40px;margin:-4px -6px 0 0}.vocab-page-header:has(+.notes-page--phone)>p.text-muted{display:none}.notes-page,.notes-page--phone{padding:var(--space-3) var(--ph-gutter) var(--space-6)}.notes-list{grid-template-columns:1fr}.notes-page--phone .notes-toolbar{gap:var(--ph-row-gap);margin-bottom:var(--space-3);flex-wrap:nowrap}.notes-page--phone .notes-search{flex:auto}.notes-page--phone .notes-search input{border-radius:12px;min-height:48px}.notes-page--phone .notes-count{display:none}.notes-page--phone .notes-toolbar #notes-new{border-radius:12px;flex:none;justify-content:center;width:48px;min-height:48px;padding:0}.notes-page--phone .notes-new-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.notes-page--phone .notes-list{gap:var(--ph-row-gap);flex-direction:column;margin:0;display:flex}.notes-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:var(--card-bg);border:var(--ph-border);border-radius:var(--ph-radius);grid-template-columns:36px minmax(0,1fr);align-items:start;column-gap:12px;padding:12px;display:grid}.notes-row:active{border-color:var(--line);background:color-mix(in srgb, var(--sun) 18%, var(--card-bg))}.notes-row:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.notes-row .notes-card-icon{width:36px;height:36px}.notes-row-body{flex-direction:column;gap:3px;min-width:0;display:flex}.notes-row-head{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.notes-row-title{min-width:0;color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:800;overflow:hidden}.notes-row-date{font-size:var(--text-xs);color:var(--text-muted);flex:none}.notes-row-preview{-webkit-line-clamp:2;font-size:var(--text-sm);color:var(--text-body);white-space:pre-line;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.note-panel.is-open{top:auto;left:0;right:0;bottom:var(--kb-inset,0px);width:auto;max-height:calc(var(--vv-height,100dvh) - 24px);padding:0 var(--ph-gutter) calc(var(--space-4) + var(--ph-safe-bottom));border:0;border-top:2px solid var(--line);border-radius:22px 22px 0 0;animation:.22s ease-out note-sheet-in;transform:none;box-shadow:0 -10px 30px #0000002e}.note-panel-head{touch-action:none;padding-top:18px}.note-panel-grip{background:var(--border-soft);border-radius:999px;width:40px;height:4px;margin-left:-20px;display:block;position:absolute;top:8px;left:50%}.note-panel-text{min-height:140px;font-size:16px}.note-panel-close{min-width:40px;min-height:40px}.notes-editor.is-open{height:min(78dvh, calc(var(--vv-height,100dvh) - 24px))}.notes-editor .note-panel-text{resize:none;flex:auto;min-height:0}.notes-editor-title{border:0;border-bottom:1.5px solid var(--border-soft);width:100%;color:var(--text-heading);font:inherit;background:0 0;margin-top:2px;padding:4px 0;font-size:1.05rem;font-weight:800}.notes-editor-title:focus{border-bottom-color:var(--line);outline:none}.notes-editor-actions{align-items:center;gap:var(--space-4);display:inline-flex}.notes-editor-delete{min-height:40px;font:inherit;color:var(--error);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 4px;font-weight:700;display:inline-flex}.progress-page{padding:var(--space-3) var(--ph-gutter) var(--space-6);gap:var(--space-5)}.progress-page-header{padding:var(--space-4) var(--ph-gutter) 0!important}.progress-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-summary-item{border-left:0;border-top:2px dashed var(--border-soft);gap:4px;padding:12px 14px}.progress-summary-item:nth-child(2n){border-left:2px dashed var(--border-soft)}.progress-summary-item:nth-child(-n+2){border-top:0}.progress-summary-label{white-space:normal;line-height:1.25}.progress-summary-value{font-size:1.6rem}.progress-page .activity-heading,.progress-page .badges-heading{margin-bottom:var(--space-2);font-size:1.15rem}.activity-chart{padding:var(--space-4)}.progress-col-side{padding:var(--space-4);gap:var(--space-4)}.progress-level-block>summary{grid-template-columns:44px minmax(0,1fr) auto 16px;grid-template-areas:"badge name count chev""badge bar bar chev";align-items:center;gap:6px 12px;min-height:60px;padding:10px 14px 10px 12px;display:grid}.progress-level-block>summary .badge{border-radius:10px;grid-area:badge;place-items:center;height:36px;padding:0;font-size:.9rem;display:grid}.progress-level-block>summary h3{white-space:nowrap;text-overflow:ellipsis;grid-area:name;font-size:.95rem;overflow:hidden}.progress-level-block-count{font-size:var(--text-xs);white-space:nowrap;grid-area:count;margin:0}.progress-bar.progress-level-block-bar{grid-area:bar;width:auto}.progress-level-block .progress-topic-row{min-height:48px;padding-inline:14px}.progress-level-block-chevron{grid-area:chev}.progress-topic-bar{display:none}.memory-levels{gap:var(--ph-row-gap);grid-template-columns:repeat(2,minmax(0,1fr))}.memory-level{border:var(--ph-border);background:var(--card-bg);border-radius:12px}.memory-cta{justify-content:center;width:100%}.badge-grid{gap:var(--ph-row-gap);grid-template-columns:repeat(2,minmax(0,1fr))}.badge-tile{border-radius:var(--ph-radius);padding:12px}.data-strip{padding-top:var(--space-4);border-top:1.5px solid var(--border-soft);flex-direction:column;align-items:stretch}.data-strip .data-io-actions{gap:var(--ph-row-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.data-strip .data-io-actions .btn{justify-content:center}.pf-page{padding:var(--space-4) var(--ph-gutter) var(--space-8);gap:var(--space-4)}.pf-avatar.profile-avatar-sm{width:56px;min-width:56px;height:56px;font-size:1.15rem}.pf-name{font-size:1.5rem!important}.pf-facts{gap:var(--ph-row-gap);grid-template-columns:repeat(2,minmax(0,1fr))}.pf-fact{border:var(--ph-border);border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:0 8px;padding:10px 12px;display:grid}.pf-fact-icon{grid-row:span 2}.pf-fact>span:last-child{white-space:normal;line-height:1.25}.pf-grid{gap:var(--ph-gap);grid-template-columns:1fr}.pf-panel{padding:var(--space-4);border:var(--ph-border);border-radius:var(--ph-radius);box-shadow:none}.pf-row{flex-direction:column;align-items:flex-start}.pf-save{align-self:stretch}.pf-fields--2{grid-template-columns:1fr}.pf-info-row{grid-template-columns:7rem minmax(0,1fr)}.pf-form-actions .btn-primary{flex:auto}.pf-page .lang-switch-btn{min-height:40px;padding-inline:14px}.pf-page .pf-delete,.pf-page .pf-complete{min-height:44px}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{justify-content:center;width:100%}.writing-index-body{padding:var(--space-3) var(--ph-gutter) var(--space-6)}.writing-index-header .writing-header-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.writing-index-header .writing-header-row .btn{border-radius:var(--ph-radius);justify-content:center;width:100%;min-height:52px}.writing-editor-header{margin-bottom:var(--space-3)}.writing-editor-header .writing-header-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-direction:row}.writing-index-toolbar{align-items:stretch;gap:var(--space-2);margin:0 0 var(--space-3);border:0;flex-direction:column;padding:0;overflow:visible}.writing-index-stats{font-size:var(--text-sm);justify-content:flex-start}.writing-entries-grid{gap:var(--ph-row-gap);grid-template-columns:1fr!important}.writing-entry-card{padding:14px}.writing-editor-page{padding:var(--space-4) var(--ph-gutter) var(--space-6)}.writing-editor-actions{flex:none;width:auto}.writing-form.card{box-shadow:none;background:0 0;border:0;padding:0}.writing-level-group{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.writing-level-btn{min-width:0;min-height:44px;font-size:var(--text-sm);border-radius:11px;padding:0}.writing-prompts-list{gap:var(--ph-row-gap);margin-inline:calc(-1 * var(--ph-gutter));padding:2px var(--ph-gutter) var(--space-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;display:flex;overflow-x:auto}.writing-prompts-list::-webkit-scrollbar{display:none}.writing-prompt-chip{flex:none;min-height:40px}.writing-input{background:var(--card-bg);border-radius:12px;min-height:50px;font-size:16px}.writing-form textarea{background:var(--card-bg);border-radius:var(--ph-radius);min-height:42dvh;font-size:16px;line-height:1.6}.writing-form-footer{align-items:stretch;gap:var(--space-3);flex-direction:column}.writing-form-buttons{gap:var(--ph-row-gap);flex-direction:column;width:100%;display:flex}.writing-form-buttons .btn,.writing-form-buttons a.btn{justify-content:center;width:100%}.writing-form-buttons .btn-primary{border-radius:var(--ph-radius);min-height:54px}.writing-results-layout{grid-template-columns:1fr}.writing-ai{padding:var(--space-4)}.placement-page{max-width:none;padding:var(--space-4) var(--ph-gutter) var(--space-6)}.placement-header{margin-bottom:var(--space-4)}.placement-header p{font-size:.95rem;line-height:1.5;margin-top:6px!important}.placement-info.card{padding:4px 14px}.placement-info-item{padding:12px 0;font-size:.95rem;line-height:1.4}.placement-info-item+.placement-info-item{border-top:2px dashed var(--border-soft)}.placement-info-item svg{flex:none}.placement-actions .btn{justify-content:center;width:100%;min-height:54px}.placement-skip{min-height:44px}.placement-result{padding:var(--space-4) var(--ph-gutter) var(--space-8);gap:var(--ph-gap);grid-template-columns:minmax(0,1fr)}.pr-hero,.pr-plan,.pr-review{padding:var(--space-5) var(--space-4);box-shadow:none}.pr-review{background:0 0;border:0;padding:0}.pr-review-list{grid-template-columns:minmax(0,1fr)}.pr-step-label,.pr-focus-kind{display:none}.pr-focus-row{grid-template-columns:auto minmax(0,1fr) auto;min-height:48px}.pr-more{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pr-more a{justify-content:center;min-height:44px;padding:0 8px}.scene-form{flex-direction:column;align-items:stretch}.scene-bubble{max-width:95%}}@keyframes ph-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@media (width>=600px) and (width<=860px){#main-content>*{max-width:640px;margin-inline:auto}.exercise-page .next-btn-area>*,.exercise-page #next-btn-container.is-visible>*{width:100%;max-width:608px;margin-inline:auto}.mobile-more-sheet,.how-to.is-open,.note-panel.is-open{border-inline:2px solid var(--line);max-width:640px;margin-inline:auto}}
