:root{--font-sans:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--bg-app:#f4f6fb;--bg-surface:#fff;--bg-surface-subtle:#f8fafc;--bg-card:#fff;--border-color:#e2e8f0;--border-subtle:#edf2f7;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-subtle:#cbd5e1;--primary:#3b82f6;--primary-hover:#2563eb;--primary-glow:#3b82f626;--card-purple-bg:#f5f3ff;--card-purple-accent:#7c3aed;--card-green-bg:#ecfdf5;--card-green-accent:#10b981;--card-blue-bg:#eff6ff;--card-blue-accent:#0284c7;--card-red-bg:#fff1f2;--card-red-accent:#e11d48;--badge-a1-bg:#dcfce7;--badge-a1-text:#166534;--badge-a2-bg:#e0f2fe;--badge-a2-text:#0369a1;--badge-b1-bg:#e0e7ff;--badge-b1-text:#4338ca;--badge-b2-bg:#fef9c3;--badge-b2-text:#854d0e;--badge-c1-bg:#ccfbf1;--badge-c1-text:#0f766e;--badge-c2-bg:#f3e8ff;--badge-c2-text:#7e22ce;--success:#10b981;--success-bg:#ecfdf5;--danger:#ef4444;--danger-bg:#fef2f2;--warning:#f59e0b;--warning-bg:#fef3c7;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-card:0 2px 8px -2px #0f172a0f, 0 1px 4px -1px #0f172a0a;--shadow-md:0 8px 24px -4px #0f172a14;--shadow-elevated:0 20px 40px -8px #0f172a29;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--background:var(--bg-app);--foreground:var(--text-primary);--foreground-muted:var(--text-muted);--foreground-secondary:var(--text-secondary);--surface:var(--bg-surface);--surface-muted:var(--bg-surface-subtle);--border:var(--border-color)}[data-theme=dark]{--bg-app:#0b0f19;--bg-surface:#111827;--bg-surface-subtle:#1a2234;--bg-card:#131d31;--border-color:#1e293b;--border-subtle:#172338;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-subtle:#64748b;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-glow:#3b82f640;--card-purple-bg:#7c3aed1f;--card-purple-accent:#a78bfa;--card-green-bg:#10b9811f;--card-green-accent:#34d399;--card-blue-bg:#0284c71f;--card-blue-accent:#38bdf8;--card-red-bg:#e11d481f;--card-red-accent:#fb7185;--badge-a1-bg:#22c55e2e;--badge-a1-text:#86efac;--badge-a2-bg:#38bdf82e;--badge-a2-text:#7dd3fc;--badge-b1-bg:#818cf82e;--badge-b1-text:#c7d2fe;--badge-b2-bg:#eab3082e;--badge-b2-text:#fde047;--badge-c1-bg:#14b8a62e;--badge-c1-text:#5eead4;--badge-c2-bg:#a855f72e;--badge-c2-text:#e9d5ff;--success:#34d399;--success-bg:#10b98126;--danger:#f87171;--danger-bg:#ef444426;--warning:#fbbf24;--warning-bg:#f59e0b26;--shadow-sm:0 1px 2px 0 #0006;--shadow-card:0 4px 14px 0 #00000059;--shadow-md:0 10px 28px #00000073;--shadow-elevated:0 24px 48px #0009;--background:var(--bg-app);--foreground:var(--text-primary);--foreground-muted:var(--text-muted);--foreground-secondary:var(--text-secondary);--surface:var(--bg-surface);--surface-muted:var(--bg-surface-subtle);--border:var(--border-color)}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{color:inherit;font-family:inherit}html,body{background-color:var(--background);min-height:100vh;color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5}.app-container{max-width:640px;margin:0 auto;padding:32px 20px 120px}.site-header{margin-bottom:24px}.nav-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex}.brand-section{align-items:center;gap:12px;display:flex}.brand-title{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--foreground);font-size:26px;font-weight:600;line-height:1}.brand-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-xs);background:var(--surface-muted);color:var(--foreground-secondary);border:1px solid var(--border);padding:2px 7px;font-size:10.5px;font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.icon-btn{background:var(--surface);color:var(--foreground-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:34px;height:34px;transition:all .15s;display:inline-flex}.icon-btn:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-focus)}.text-btn{font-family:var(--font-sans);border-radius:var(--radius-sm);background:var(--surface);color:var(--foreground-secondary);border:1px solid var(--border);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.text-btn:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-focus)}.metrics-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;margin-bottom:20px;display:flex}.metric-pill{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--foreground);align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.metric-pill.coin{background:var(--accent-gold-surface);border-color:var(--accent-gold-border);color:var(--accent-gold)}.metric-pill.flame{background:var(--accent-flame-surface);border-color:var(--accent-flame-border);color:var(--accent-flame)}.stats-summary{font-family:var(--font-mono);color:var(--foreground-muted);align-items:center;gap:14px;font-size:12px;display:flex}.stats-summary strong{color:var(--foreground);font-weight:600}.level-toolbar{margin-bottom:20px}.level-chips{flex-wrap:wrap;gap:6px;display:flex}.level-chip{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--surface);color:var(--foreground-muted);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.level-chip:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-focus)}.level-chip.active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.mode-toolbar{margin-bottom:20px}.mode-chips{flex-wrap:wrap;gap:6px;display:flex}.mode-chip{border-radius:var(--radius-full);background:var(--surface);color:var(--foreground-muted);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:6px 14px;font-size:12.5px;font-weight:500;transition:all .15s}.mode-chip:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-focus)}.mode-chip.active{background:var(--foreground);color:var(--surface);border-color:var(--foreground)}.study-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px 22px;transition:border-color .2s,box-shadow .2s;position:relative}.card-header-meta{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.cefr-badge{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-xs);border:1px solid #0000;padding:3px 8px;font-size:11px;font-weight:700}.cefr-badge.A1{background:var(--badge-a1-bg);color:var(--badge-a1-text);border-color:var(--badge-a1-border)}.cefr-badge.A2{background:var(--badge-a2-bg);color:var(--badge-a2-text);border-color:var(--badge-a2-border)}.cefr-badge.B1{background:var(--badge-b1-bg);color:var(--badge-b1-text);border-color:var(--badge-b1-border)}.cefr-badge.B2{background:var(--badge-b2-bg);color:var(--badge-b2-text);border-color:var(--badge-b2-border)}.cefr-badge.C1{background:var(--badge-c1-bg);color:var(--badge-c1-text);border-color:var(--badge-c1-border)}.cefr-badge.C2{background:var(--badge-c2-bg);color:var(--badge-c2-text);border-color:var(--badge-c2-border)}.card-counter{font-family:var(--font-mono);color:var(--foreground-muted);font-size:11px}.word-presentation{align-items:center;gap:14px;margin-bottom:30px;display:flex}.vocab-word{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--foreground);font-size:44px;font-weight:600;line-height:1.1}.pos-tag{color:var(--foreground-muted);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-full);white-space:nowrap;align-self:center;margin-left:auto;padding:4px 12px;font-size:12px;font-style:italic;font-weight:500}.ipa-tag{font-family:var(--font-mono);color:var(--foreground-muted);white-space:nowrap;font-size:15px}.vocab-word-vi{font-family:var(--font-sans,var(--font-serif));font-size:30px;font-weight:600;line-height:1.3}.typed-answer-form{align-items:center;gap:10px;margin-top:4px;display:flex}.typed-answer-input{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--foreground);flex:1;padding:12px 14px;font-size:16px}.typed-answer-input:focus{border-color:var(--border-focus);outline:none}.typed-answer-input.correct{border-color:var(--success,#16a34a);color:var(--success,#16a34a)}.typed-answer-input.wrong{border-color:var(--danger,#dc2626);color:var(--danger,#dc2626)}.speaker-btn{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;width:36px;height:36px;color:var(--foreground-secondary);flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.speaker-btn:hover{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);transform:scale(1.05)}.choices-list{flex-direction:column;gap:9px;display:flex}.choice-item{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);color:var(--foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;font-size:15px;font-weight:500;transition:all .15s;display:flex}.choice-item:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-focus)}.choice-left{flex:1;align-items:center;gap:12px;display:flex}.choice-key{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--surface-muted);width:22px;height:22px;color:var(--foreground-muted);border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;font-size:11.5px;font-weight:600;display:inline-flex}.choice-text{line-height:1.4}.choice-item:disabled{cursor:default}.choice-item.correct{background:var(--success-surface)!important;border-color:var(--success)!important;color:var(--success-text)!important}.choice-item.correct .choice-key{background:var(--success);color:#fff;border-color:var(--success)}.choice-item.wrong{background:var(--danger-surface)!important;border-color:var(--danger)!important;color:var(--danger-text)!important}.choice-item.wrong .choice-key{background:var(--danger);color:#fff;border-color:var(--danger)}.choice-item.dim{opacity:.38}.status-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.feedback-section{border-radius:var(--radius-md);border:1px solid;margin-top:22px;padding:16px 20px;animation:.18s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.feedback-section.correct{background:var(--success-surface);border-color:var(--success-border);color:var(--success-text)}.feedback-section.wrong{background:var(--danger-surface);border-color:var(--danger-border);color:var(--danger-text)}.feedback-title{align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.feedback-detail{color:var(--foreground-secondary);font-size:13.5px;line-height:1.5}.example-callout{border-left:3px solid var(--success);background:var(--surface);border-radius:0 var(--radius-xs) var(--radius-xs) 0;color:var(--foreground);margin-top:12px;padding:10px 14px;font-size:14px;font-style:italic;line-height:1.55}.example-callout strong{color:var(--success);text-underline-offset:3px;font-style:normal;font-weight:700;text-decoration:underline}.action-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.shortcut-tip{font-family:var(--font-mono);color:var(--foreground-muted);font-size:11.5px}.shortcut-tip kbd{background:var(--surface-muted);border:1px solid var(--border);color:var(--foreground-secondary);border-radius:3px;padding:2px 5px}.primary-btn{font-family:var(--font-sans);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-foreground);border:1px solid var(--primary);cursor:pointer;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.primary-btn:hover{background:var(--primary-hover)}.cats-layer{pointer-events:none;z-index:500;background:0 0;border:none;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.cat-3d-hitbox{pointer-events:auto;cursor:grab;z-index:501;-webkit-user-select:none;user-select:none;touch-action:none;width:84px;height:68px;position:fixed}.cat-3d-hitbox.dragging{cursor:grabbing}.cat-floor-drag-shadow{pointer-events:none;z-index:499;transform-origin:50%;background:radial-gradient(#0f172a47 0%,#0f172a00 72%);border-radius:50%;width:52px;height:9px;transition:opacity 80ms ease-out,transform 80ms ease-out;position:absolute;bottom:4px}.cat{touch-action:none;pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;width:76px;height:52px;position:absolute;bottom:6px;left:0}.cat:hover{filter:drop-shadow(0 4px 10px #00000029)}.cat-inner{transform-origin:38px bottom;will-change:transform;width:100%;height:100%;transition:transform .26s cubic-bezier(.4,0,.2,1);position:relative}.cat.facing-left .cat-inner{transform:scaleX(-1)}.cat-part-svg{pointer-events:none;width:100%;height:100%;display:block;overflow:visible}.cat.turning .cat-head{transition:transform .16s ease-in-out;transform:rotate(-14deg)translate(-3px)}.cat-shadow{pointer-events:none;background:radial-gradient(#0f172a3d 0%,#0f172a00 72%);border-radius:50%;width:52px;height:9px;transition:transform .2s,opacity .2s;position:absolute;bottom:1px;left:12px}.cat.dragging .cat-shadow,.cat.falling .cat-shadow{opacity:0!important}.cat-bubble{background:var(--bg-surface,#fff);color:var(--text-primary,#0f172a);border:1px solid var(--border-color,#e2e8f0);font-family:var(--font-sans);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;border-radius:12px;padding:3px 8px;font-size:11px;font-weight:700;transition:all .25s cubic-bezier(.34,1.56,.64,1);position:absolute;top:-24px;right:0;transform:translateY(6px)scale(.7);box-shadow:0 4px 12px #0000001f}.cat-bubble:after{content:"";background:inherit;border-right:1px solid var(--border-color,#e2e8f0);border-bottom:1px solid var(--border-color,#e2e8f0);width:6px;height:6px;position:absolute;bottom:-4px;right:14px;transform:rotate(45deg)}.cat-bubble.show{opacity:1;transform:translateY(0)scale(1)}.cat-body{z-index:2;transform-origin:bottom;filter:drop-shadow(0 1px 2px #00000014);width:44px;height:28px;transition:transform .2s;position:absolute;bottom:8px;left:14px}.cat-leg-back-l{z-index:1;filter:brightness(.82);transform-origin:7px 4px;width:15px;height:22px;transition:transform .12s;position:absolute;bottom:2px;left:16px}.cat-leg-back-r{z-index:3;transform-origin:7px 4px;width:15px;height:22px;transition:transform .12s;position:absolute;bottom:2px;left:22px}.cat-leg-front-l{z-index:1;filter:brightness(.86);transform-origin:5px 3px;width:11px;height:20px;transition:transform .12s;position:absolute;bottom:2px;left:40px}.cat-leg-front-r{z-index:3;transform-origin:5px 3px;width:11px;height:20px;transition:transform .12s;position:absolute;bottom:2px;left:47px}.cat-tail{transform-origin:24px 16px;z-index:1;width:28px;height:22px;transition:transform .3s;position:absolute;bottom:18px;left:0;transform:rotate(10deg)}.cat-head{z-index:4;transform-origin:17px 26px;filter:drop-shadow(0 2px 3px #00000014);width:34px;height:32px;transition:transform .2s;position:absolute;bottom:14px;left:38px}.cat-eyes-open{display:block}.cat-eyes-happy,.cat.sleeping .cat-eyes-open,.cat.petted .cat-eyes-open,.cat.grooming .cat-eyes-open{display:none}.cat.sleeping .cat-eyes-happy,.cat.petted .cat-eyes-happy,.cat.grooming .cat-eyes-happy{display:block}.cat-zzz{font-family:var(--font-mono);color:var(--primary,#3b82f6);opacity:0;pointer-events:none;font-size:13px;font-weight:700;position:absolute;top:-26px;right:12px}.cat.walking .cat-body{animation:.42s ease-in-out infinite alternate catTrotBody}.cat.walking .cat-head{animation:.42s ease-in-out infinite alternate catTrotHead}.cat.walking .cat-tail{animation:.42s ease-in-out infinite alternate catTailWalk}.cat.walking .cat-shadow{animation:.42s ease-in-out infinite alternate catShadowBob}.cat.walking .cat-leg-front-l{animation:.42s ease-in-out infinite alternate trotForeL}.cat.walking .cat-leg-back-r{animation:.42s ease-in-out infinite alternate trotHindR}.cat.walking .cat-leg-front-r{animation:.42s ease-in-out infinite alternate trotForeR}.cat.walking .cat-leg-back-l{animation:.42s ease-in-out infinite alternate trotHindL}@keyframes trotForeL{0%{transform:rotate(-24deg)translateY(0)}to{transform:rotate(26deg)translateY(-2px)}}@keyframes trotHindR{0%{transform:rotate(-22deg)translateY(0)}to{transform:rotate(24deg)translateY(-2px)}}@keyframes trotForeR{0%{transform:rotate(26deg)translateY(-2px)}to{transform:rotate(-24deg)translateY(0)}}@keyframes trotHindL{0%{transform:rotate(24deg)translateY(-2px)}to{transform:rotate(-22deg)translateY(0)}}@keyframes catTrotBody{0%{transform:translateY(0)rotate(-.8deg)}to{transform:translateY(-2px)rotate(1.2deg)}}@keyframes catTrotHead{0%{transform:translateY(0)rotate(1.2deg)}to{transform:translateY(-1.2px)rotate(-.8deg)}}@keyframes catTailWalk{0%{transform:rotate(5deg)scaleX(.96)}to{transform:rotate(26deg)scaleX(1.04)}}@keyframes catShadowBob{0%{opacity:.24;transform:scale(1)}to{opacity:.18;transform:scale(.92)}}.cat.idle .cat-body,.cat:not(.walking):not(.sleeping):not(.grooming):not(.stretching):not(.butt-wiggle):not(.dragging):not(.falling):not(.landing) .cat-body{animation:2.4s ease-in-out infinite catBreathe}.cat.idle .cat-tail,.cat:not(.walking):not(.sleeping):not(.grooming):not(.stretching):not(.butt-wiggle):not(.dragging):not(.falling):not(.landing) .cat-tail{animation:3.2s ease-in-out infinite tailLazy}.cat.idle .cat-head,.cat:not(.walking):not(.sleeping):not(.petted):not(.grooming):not(.dragging):not(.falling) .cat-head{animation:4.8s ease-in-out infinite catHeadNod}@keyframes catBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.98)translateY(-.8px)}}@keyframes tailLazy{0%,to{transform:rotate(10deg)}50%{transform:rotate(22deg)}}@keyframes catHeadNod{0%,to{transform:rotate(0)}35%{transform:rotate(2deg)}75%{transform:rotate(-2deg)}}.cat.sitting .cat-body{transform:translateY(2px)scale(.96,1.04)}.cat.sitting .cat-leg-front-l,.cat.sitting .cat-leg-front-r{transform:scaleY(1.04)translateY(0)}.cat.sitting .cat-leg-back-l,.cat.sitting .cat-leg-back-r{bottom:0;transform:rotate(-70deg)scaleY(.7)translateY(5px)}.cat.sitting .cat-tail{transform:rotate(45deg)translateY(4px)}.cat.sitting .cat-head{transform:translateY(-1px)}.cat.grooming .cat-body{transform:translateY(2px)scale(.96,1.04)}.cat.grooming .cat-leg-back-l,.cat.grooming .cat-leg-back-r{bottom:0;transform:rotate(-70deg)scaleY(.7)translateY(5px)}.cat.grooming .cat-tail{transform:rotate(38deg)translateY(4px)}.cat.grooming .cat-head{animation:.8s ease-in-out infinite catGroomHeadTilt}.cat.grooming .cat-leg-front-r{animation:.8s ease-in-out infinite catWashFace}@keyframes catWashFace{0%{transform:translateY(0)rotate(0)}25%{transform:translateY(-8px)rotate(-35deg)}45%{transform:translateY(-10px)rotate(-30deg)}65%{transform:translateY(-14px)rotate(-60deg)}85%{transform:translateY(-11px)rotate(-40deg)}to{transform:translateY(0)rotate(0)}}@keyframes catGroomHeadTilt{0%,to{transform:rotate(0)}50%{transform:rotate(-8deg)translateY(2px)}}.cat.stretching .cat-body{animation:2.6s ease-in-out infinite catStretchBody}.cat.stretching .cat-head{animation:2.6s ease-in-out infinite catStretchHead}.cat.stretching .cat-leg-front-r,.cat.stretching .cat-leg-front-l{animation:2.6s ease-in-out infinite catStretchForelegs}.cat.stretching .cat-leg-back-r,.cat.stretching .cat-leg-back-l{animation:2.6s ease-in-out infinite catStretchHindlegs}.cat.stretching .cat-tail{animation:2.6s ease-in-out infinite catStretchTail}@keyframes catStretchBody{0%,to{transform:translateY(0)rotate(0)}35%,70%{transform:translateY(4px)rotate(12deg)scale(1.06,.94)}}@keyframes catStretchHead{0%,to{transform:translateY(0)rotate(0)}35%,70%{transform:translateY(5px)rotate(-12deg)}}@keyframes catStretchForelegs{0%,to{transform:translateY(0)rotate(0)}35%,70%{transform:rotate(48deg)translateY(-2px)}}@keyframes catStretchHindlegs{0%,to{transform:translateY(0)rotate(0)}35%,70%{transform:scaleY(1.08)translateY(-1px)}}@keyframes catStretchTail{0%,to{transform:rotate(10deg)}35%,70%{transform:rotate(72deg)translateY(-6px)}}.cat.butt-wiggle .cat-body{animation:.22s ease-in-out infinite catPounceWiggle}.cat.butt-wiggle .cat-tail{animation:.22s ease-in-out infinite catPounceTail}.cat.butt-wiggle .cat-head{transform:translateY(3px)rotate(2deg)}.cat.butt-wiggle .cat-eye-pupil{transform:scale(1.35)}.cat.butt-wiggle .cat-leg{transform:scaleY(.7)translateY(2px)}@keyframes catPounceWiggle{0%,to{transform:translateY(4px)rotate(-2.5deg)scale(1.04,.9)}50%{transform:translateY(4px)rotate(2.5deg)scale(1.04,.9)}}@keyframes catPounceTail{0%,to{transform:rotate(10deg)}50%{transform:rotate(32deg)}}.cat.sleeping .cat-body{animation:3s ease-in-out infinite catLoafBreathe;transform:translateY(5px)scale(1.04,.96)}.cat.sleeping .cat-head{bottom:8px;left:36px;transform:rotate(6deg)}.cat.sleeping .cat-tail{bottom:6px;transform:rotate(6deg)translateY(2px)}.cat.sleeping .cat-leg{opacity:0;transform:scale(.01)}.cat.sleeping .cat-zzz{animation:2.4s ease-in-out infinite zzzFloat}@keyframes catLoafBreathe{0%,to{transform:translateY(5px)scale(1)}50%{transform:translateY(4.2px)scale(1.03,.97)}}@keyframes zzzFloat{0%{opacity:0;transform:translateY(0)scale(.6)}40%{opacity:1;transform:translateY(-14px)scale(1)}to{opacity:0;transform:translateY(-28px)scale(1.2)rotate(10deg)}}.cat.petted .cat-inner{animation:.12s ease-in-out infinite alternate catPurrVibe}.cat.petted .cat-body{transform:translateY(-3px)scale(.96,1.08)}.cat.petted .cat-tail{transform:rotate(78deg)}.cat.petted .cat-head{transform:translateY(-4px)rotate(-10deg)}@keyframes catPurrVibe{0%{transform:translateY(0)}to{transform:translateY(-1px)}}.cat.jumping{z-index:998;animation:.65s cubic-bezier(.22,1,.36,1) catGracefulLeap}.cat.jumping .cat-leg-front-r,.cat.jumping .cat-leg-front-l{transform:rotate(45deg)}.cat.jumping .cat-leg-back-r,.cat.jumping .cat-leg-back-l{transform:rotate(-50deg)}@keyframes catGracefulLeap{0%{transform:translateY(0)}45%{transform:translateY(-170px)rotate(-15deg)}80%{transform:translateY(-40px)rotate(5deg)}to{transform:translateY(0)rotate(0)}}.cat.dragging{cursor:grabbing;filter:drop-shadow(0 14px 28px #0000004d)}.cat.dragging .cat-inner{animation:1.2s ease-in-out infinite alternate catDanglePhysics!important}.cat.dragging .cat-body{transform:scale(.92,1.15)translateY(2px)}.cat.dragging .cat-leg-front-l,.cat.dragging .cat-leg-front-r{transform:rotate(18deg)translateY(2px)}.cat.dragging .cat-leg-back-l,.cat.dragging .cat-leg-back-r{transform:rotate(6deg)translateY(4px)scaleY(1.15)}.cat.dragging .cat-tail{transform:rotate(-18deg)translateY(5px)}.cat.dragging .cat-head{transform:rotate(12deg)translateY(-2px)}@keyframes catDanglePhysics{0%{transform:rotate(-3.5deg)}to{transform:rotate(3.5deg)}}.cat.falling{filter:drop-shadow(0 8px 16px #00000038);pointer-events:none}.cat.falling .cat-body{transition:transform .1s ease-out;transform:scale(.96,1.06)translateY(-2px)}.cat.falling .cat-leg-front-l,.cat.falling .cat-leg-front-r{transition:transform .1s ease-out;transform:rotate(26deg)translateY(2px)}.cat.falling .cat-leg-back-l,.cat.falling .cat-leg-back-r{transition:transform .1s ease-out;transform:rotate(-16deg)translateY(3px)scaleY(1.08)}.cat.falling .cat-tail{transition:transform .15s ease-out;transform:rotate(65deg)translateY(-4px)}.cat.falling .cat-head{transition:transform .1s ease-out;transform:rotate(-8deg)translateY(2px)}.cat.landing{pointer-events:none}.cat.landing .cat-inner{animation:.44s cubic-bezier(.2,.9,.3,1.25) forwards catLandPhysicSquash}@keyframes catLandPhysicSquash{0%{transform:translateY(-4px)scale(.92,1.1)}28%{transform:translateY(6px)scale(1.32,.66)}62%{transform:translateY(-3px)scale(.95,1.06)}84%{transform:translateY(1px)scale(1.02,.98)}to{transform:translateY(0)scale(1)}}.cat.landing .cat-leg{animation:.44s ease-out forwards catLegImpactBend}@keyframes catLegImpactBend{0%{transform:scaleY(1)}28%{transform:scaleY(.55)translateY(5px)}62%{transform:scaleY(1.06)translateY(-2px)}to{transform:scaleY(1)translateY(0)}}.cat.landing .cat-tail{animation:.44s ease-out forwards catTailImpactWhip}@keyframes catTailImpactWhip{0%{transform:rotate(50deg)}28%{transform:rotate(85deg)translateY(-6px)}62%{transform:rotate(20deg)}to{transform:rotate(10deg)}}.cat.cat-preview-mode{cursor:default;margin:0 auto}.cat-toast{background:var(--primary);color:var(--primary-foreground);font-family:var(--font-mono);border-radius:var(--radius-full);opacity:0;z-index:950;pointer-events:none;box-shadow:var(--shadow-card);padding:8px 16px;font-size:12.5px;font-weight:500;transition:all .2s;position:fixed;top:18px;left:50%;transform:translate(-50%,-12px)}.cat-toast.show{opacity:1;transform:translate(-50%)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:900;background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out fadeIn;display:none;position:fixed;inset:0}.modal-backdrop.show{display:flex}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:84vh;box-shadow:var(--shadow-elevated);padding:28px 24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.modal-title{font-family:var(--font-serif);color:var(--foreground);font-size:20px;font-weight:600}.modal-subtitle{color:var(--foreground-secondary);margin-bottom:20px;font-size:13px}.shop-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.shop-card{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;flex-direction:column;align-items:center;padding:16px 12px;display:flex}.shop-cat-preview{border-radius:var(--radius-sm);background:radial-gradient(circle at 50% 60%,#ffffff14 0%,#0000 72%);justify-content:center;align-items:center;width:100%;height:110px;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.cat-3d-preview-card{cursor:grab;width:100%;height:100%}.cat-3d-preview-card:active{cursor:grabbing}.shop-name{margin-bottom:2px;font-size:13.5px;font-weight:600}.shop-price{font-family:var(--font-mono);color:var(--accent-gold);margin-bottom:10px;font-size:12px;font-weight:600}.shop-buy-btn{font-family:var(--font-sans);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-foreground);cursor:pointer;border:none;width:100%;padding:7px 12px;font-size:12.5px;font-weight:600;transition:all .15s}.shop-buy-btn:disabled{background:var(--surface);color:var(--foreground-subtle);border:1px solid var(--border);cursor:not-allowed}.shop-owned-tag{font-family:var(--font-mono);color:var(--foreground-muted);margin-top:6px;font-size:11px}.auth-wrapper{background-color:var(--bg-app);background-image:radial-gradient(at 15% 15%,#3b82f614 0,#0000 50%),radial-gradient(at 85% 85%,#6366f112 0,#0000 50%),radial-gradient(at 50% 10%,#3b82f60d 0,#0000 40%);justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex;position:relative;overflow:hidden}[data-theme=dark] .auth-wrapper{background-color:#080c14;background-image:radial-gradient(at 20% 15%,#3b82f629 0,#0000 50%),radial-gradient(at 80% 85%,#7c3aed1f 0,#0000 50%),radial-gradient(at 50% 0,#1e3a8a2e 0,#0000 65%)}.auth-bg-decor{filter:blur(80px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.auth-bg-decor-1{background:#3b82f624;width:340px;height:340px;top:-80px;left:12%}.auth-bg-decor-2{background:#8b5cf61f;width:360px;height:360px;bottom:-90px;right:12%}.auth-box{z-index:1;-webkit-backdrop-filter:blur(20px);background:#fffffff0;border:1px solid #e2e8f0e6;border-radius:24px;width:100%;max-width:440px;padding:36px 32px;transition:all .3s;position:relative;box-shadow:0 10px 25px -5px #0f172a0f,0 20px 40px -15px #3b82f614,inset 0 0 0 1px #fffc}[data-theme=dark] .auth-box{background:#111827e0;border:1px solid #ffffff14;box-shadow:0 25px 50px -12px #000000a6,inset 0 0 0 1px #ffffff0d,0 0 40px #3b82f612}.auth-header{text-align:center;margin-bottom:22px}.auth-logo-badge{width:56px;height:56px;box-shadow:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;display:inline-flex}.auth-title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--text-primary);margin:0 0 6px;font-size:23px;font-weight:700}.auth-sub{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.4}.auth-google-section{justify-content:center;align-items:center;width:100%;margin-bottom:18px;display:flex}.google-auth-btn{width:100%;height:44px;font-family:var(--font-sans);background:var(--bg-surface);color:var(--text-primary);border:1.5px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:0 16px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:0 1px 3px #0000000d}[data-theme=dark] .google-auth-btn{color:#f8fafc;background:#ffffff0a;border:1.5px solid #ffffff1f;box-shadow:0 2px 6px #0003}.google-auth-btn:hover{background:var(--bg-surface-subtle);border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f61f}[data-theme=dark] .google-auth-btn:hover{background:#ffffff14;border-color:#3b82f666;box-shadow:0 4px 14px #00000059}.google-auth-btn:active{transform:translateY(0)}.google-auth-btn svg{flex-shrink:0}.auth-divider{text-align:center;color:var(--text-muted);align-items:center;margin:18px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--border-color);flex:1}.auth-divider span{color:var(--text-muted);text-transform:lowercase;letter-spacing:.02em;padding:0 14px;font-weight:500}.form-group{margin-bottom:15px}.form-label{color:var(--text-primary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input-icon-wrapper{align-items:center;width:100%;display:flex;position:relative}.input-prefix-icon{color:var(--text-muted);pointer-events:none;z-index:2;justify-content:center;align-items:center;transition:color .15s;display:flex;position:absolute;left:14px}.form-input{width:100%;font-family:var(--font-sans);background:var(--bg-surface);border:1.5px solid var(--border-color);color:var(--text-primary);border-radius:12px;outline:none;padding:11px 14px 11px 40px;font-size:14px;transition:all .2s cubic-bezier(.16,1,.3,1)}.form-input.has-toggle{padding-right:42px}.form-input::placeholder{color:var(--text-subtle)}.form-input:hover{border-color:#3b82f666}.form-input:focus{border-color:var(--primary);background:var(--bg-surface);box-shadow:0 0 0 3px #3b82f629}.input-icon-wrapper:focus-within .input-prefix-icon{color:var(--primary)}.password-toggle-btn{color:var(--text-muted);cursor:pointer;z-index:2;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;right:12px}.password-toggle-btn:hover{color:var(--text-primary)}.form-row-between{justify-content:space-between;align-items:center;margin:8px 0 16px;font-size:13px;display:flex}.remember-label{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.remember-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--primary);border-radius:4px}.submit-btn{width:100%;font-family:var(--font-sans);color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:6px;padding:12px;font-size:14.5px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 4px 14px #2563eb47}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #2563eb61}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.guest-btn{width:100%;font-family:var(--font-sans);background:var(--bg-surface-subtle);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:11px;font-size:13.5px;font-weight:500;transition:all .15s;display:flex}.guest-btn:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--primary);box-shadow:0 2px 8px #0000000a}.alert-error{color:#ef4444;background:#ef44441a;border:1px solid #ef444440;border-radius:10px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;animation:.2s fadeIn;display:flex}[data-theme=dark] .alert-error{color:#f87171;background:#ef444426;border-color:#ef44444d}.auth-footer-nav{color:var(--text-muted);text-align:center;margin-top:22px;font-size:13.5px}.auth-footer-nav a{color:var(--primary);font-weight:600;text-decoration:none;transition:-webkit-text-decoration .15s,text-decoration .15s}.auth-footer-nav a:hover{text-decoration:underline}.auth-theme-toggle{z-index:10;background:var(--bg-surface);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:fixed;top:20px;right:20px;box-shadow:0 2px 8px #0000000f}.auth-theme-toggle:hover{color:var(--text-primary);border-color:var(--primary);transform:translateY(-1px)}.auth-loading-screen{background-color:var(--bg-app);flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.auth-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-loading-text{color:var(--text-secondary);font-size:14px;font-weight:500}.app-footer{text-align:center;color:var(--foreground-muted);margin-top:36px;font-size:12px;line-height:1.6}.app-footer a,.app-footer button{color:var(--foreground);cursor:pointer;text-decoration:underline}@media (max-width:600px){.app-container{padding:20px 16px 100px}.study-card{padding:24px 18px 20px}.vocab-word{font-size:34px}.shop-grid{grid-template-columns:1fr}.nav-row{flex-direction:column;align-items:flex-start}.header-actions{justify-content:space-between;width:100%}}.dashboard-layout{background:var(--bg-app);width:100%;min-height:100vh;display:flex}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-color);z-index:50;will-change:width, transform, opacity;flex-direction:column;flex-shrink:0;width:220px;height:100vh;padding:20px 12px;transition:width .35s cubic-bezier(.16,1,.3,1),padding .35s cubic-bezier(.16,1,.3,1),opacity .22s,transform .35s cubic-bezier(.16,1,.3,1);display:flex;position:sticky;top:0;overflow:hidden auto}.dashboard-layout.sidebar-collapsed .sidebar,.sidebar.collapsed{opacity:0!important;pointer-events:none!important;border-right-width:0!important;border-right-color:#0000!important;width:0!important;min-width:0!important;max-width:0!important;padding:20px 0!important;overflow:hidden!important;transform:translate(-28px)!important}.sidebar .brand-title-wrap,.sidebar .sidebar-nav,.sidebar .sidebar-brand-footer{white-space:nowrap;transition:opacity .2s,transform .2s}.sidebar.collapsed .brand-title-wrap,.sidebar.collapsed .sidebar-nav,.sidebar.collapsed .sidebar-brand-footer{opacity:0;transform:translate(-12px)}.brand-container{align-items:center;gap:12px;margin-bottom:32px;padding:0 8px;display:flex}.brand-logo-icon{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;font-weight:800;display:flex;box-shadow:0 4px 12px #2563eb4d}.brand-title-wrap{flex-direction:column;display:flex}.brand-logo-text{letter-spacing:-.02em;color:var(--text-primary);font-size:20px;font-weight:800;line-height:1.1}.brand-tagline{color:var(--text-muted);font-size:10px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:6px;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px 14px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-surface-subtle);color:var(--text-primary)}.nav-item.active{color:#4f46e5;background:#eef2ff}[data-theme=dark] .nav-item.active{color:#a5b4fc;background:#6366f12e}.nav-item svg{flex-shrink:0;width:18px;height:18px}.sidebar-pro-card{border-radius:var(--radius-lg);background:linear-gradient(135deg,#eff6ff 0%,#f5f3ff 100%);border:1px solid #e0e7ff;margin-top:auto;padding:18px 16px;position:relative;overflow:hidden}[data-theme=dark] .sidebar-pro-card{background:linear-gradient(135deg,#1e3a8a40 0%,#581c8740 100%);border-color:#3730a3}.pro-icon-badge{color:#fff;background:#6366f1;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:12px;display:flex}.pro-card-title{color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:700}.pro-card-desc{color:var(--text-secondary);margin-bottom:12px;font-size:11.5px;line-height:1.4}.pro-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:#4f46e5;border:none;width:100%;padding:8px 12px;font-size:12.5px;font-weight:600;transition:opacity .15s}.pro-btn:hover{opacity:.9}.main-content{transform-origin:top;flex:1;min-width:0;padding:24px 22px;transition:max-width .35s cubic-bezier(.16,1,.3,1),padding .35s cubic-bezier(.16,1,.3,1),width .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto}.dashboard-layout.sidebar-collapsed .main-content,.main-content.sidebar-collapsed-content{padding-left:36px;padding-right:36px;animation:.38s cubic-bezier(.16,1,.3,1) both contentExpandZoom;width:100%!important;max-width:100%!important}.dashboard-layout:not(.sidebar-collapsed) .main-content{animation:.35s cubic-bezier(.16,1,.3,1) both contentShrinkBack}@keyframes contentExpandZoom{0%{transform:scale(.986)}to{transform:scale(1)}}@keyframes contentShrinkBack{0%{transform:scale(1.01)}to{transform:scale(1)}}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.topbar-nav-left-group{flex-shrink:0;align-items:center;gap:10px;display:flex}.topbar-sidebar-toggle-btn{background:var(--bg-surface);border:1px solid var(--border-color);height:38px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;transition:all .22s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 1px 3px #0000000a}.topbar-sidebar-toggle-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent);transform:translateY(-1px)}.topbar-sidebar-toggle-btn.collapsed{color:#2563eb;background:#2563eb17;border-color:#2563eb4d;font-weight:700}[data-theme=dark] .topbar-sidebar-toggle-btn.collapsed{color:#60a5fa;background:#3b82f629;border-color:#3b82f666}.topbar-sidebar-toggle-btn .toggle-text{letter-spacing:-.01em;font-size:12.5px}.search-box{flex:1;max-width:580px;position:relative}.search-input{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-surface);width:100%;color:var(--text-primary);box-shadow:var(--shadow-sm);outline:none;padding:10px 16px 10px 42px;font-size:14px;transition:all .2s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.topbar-right{align-items:center;gap:12px;display:flex}.top-icon-btn{border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-color);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:all .15s;display:flex}.top-icon-btn:hover{color:var(--text-primary);background:var(--bg-surface-subtle);border-color:var(--text-muted)}.user-profile-btn{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;align-items:center;gap:10px;padding:4px 12px 4px 4px;transition:all .15s;display:flex}.user-profile-btn:hover{border-color:var(--text-muted)}.user-avatar{color:#fff;background:linear-gradient(135deg,#f59e0b,#ec4899);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.user-name{color:var(--text-primary);font-size:13.5px;font-weight:600}.hero-banner{border-radius:var(--radius-xl);color:#fff;box-shadow:var(--shadow-md);background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 40%,#2563eb 85%,#3b82f6 100%);border:1px solid #ffffff1a;margin-bottom:24px;padding:32px 36px;position:relative;overflow:hidden}.hero-mountains-art{pointer-events:none;opacity:.85;justify-content:flex-end;align-items:flex-end;width:520px;max-width:55%;display:flex;position:absolute;top:0;bottom:0;right:0;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#0000004d 25%,#000 65%);mask-image:linear-gradient(90deg,#0000 0%,#0000004d 25%,#000 65%)}.hero-mountains-art svg{object-fit:cover;object-position:right bottom;width:100%;height:100%;display:block}.hero-content{z-index:3;max-width:600px;position:relative}.hero-title{letter-spacing:-.02em;color:#fff;text-shadow:0 2px 4px #00000040;margin-bottom:8px;font-size:28px;font-weight:800}.hero-subtitle{color:#ffffffe6;text-shadow:0 1px 2px #0003;margin-bottom:26px;font-size:14.5px;line-height:1.5}.hero-stats-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.hero-stat-item{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);background:#0f172a80;border:1px solid #ffffff2e;align-items:center;gap:12px;padding:10px 18px;transition:transform .15s,background .15s;display:flex;box-shadow:0 4px 14px #00000026}.hero-stat-item:hover{background:#0f172aa6;border-color:#ffffff4d}.stat-icon-wrap{border-radius:var(--radius-md);background:#ffffff1f;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.stat-info{flex-direction:column;display:flex}.stat-value{color:#fff;font-size:20px;font-weight:800;line-height:1.1}.action-cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}@media (max-width:960px){.action-cards-grid{grid-template-columns:repeat(2,1fr)}}.action-card{border-radius:var(--radius-lg);cursor:pointer;text-align:left;border:1px solid #0000;flex-direction:column;justify-content:space-between;min-height:128px;padding:20px;transition:all .2s;display:flex;position:relative}.action-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.action-card.learn-card{background:var(--card-purple-bg);border-color:#7c3aed26}.action-card.flashcard-card{background:var(--card-green-bg);border-color:#10b98126}.action-card.practice-card{background:var(--card-blue-bg);border-color:#0284c726}.action-card.test-card{background:var(--card-red-bg);border-color:#e11d4833}.card-top-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:12px;display:flex}.learn-card .card-top-icon{color:var(--card-purple-accent);background:#7c3aed26}.flashcard-card .card-top-icon{color:var(--card-green-accent);background:#10b98126}.practice-card .card-top-icon{color:var(--card-blue-accent);background:#0284c726}.test-card .card-top-icon{color:var(--card-red-accent);background:#e11d4826}.action-card-title{color:var(--text-primary);margin-bottom:3px;font-size:16px;font-weight:700}.action-card-desc{color:var(--text-secondary);font-size:12.5px}.action-card-arrow{color:var(--text-muted);align-self:flex-end;transition:transform .15s}.action-card:hover .action-card-arrow{color:var(--text-primary);transform:translate(4px)}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-title{letter-spacing:-.01em;color:var(--text-primary);font-size:18px;font-weight:800}.section-link{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.section-link:hover{text-decoration:underline}.study-card,.today-study-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:28px;padding:26px 30px;transition:border-color .2s,box-shadow .2s;position:relative}[data-theme=dark] .study-card,[data-theme=dark] .today-study-card{background:#111a2e;border-color:#1e2e4a;box-shadow:0 4px 20px #00000059}.study-card-left{align-items:center;gap:22px;display:flex}.word-display-box,.study-left-box{background:#eff6ff;border:1.5px solid #dbeafe;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:140px;height:120px;padding:14px;transition:all .2s;display:flex;box-shadow:0 4px 14px #3b82f614}[data-theme=dark] .word-display-box,[data-theme=dark] .study-left-box{background:#1e3a8a38;border-color:#3b82f659;box-shadow:0 4px 16px #0006}.word-text,.word-hero-text{color:var(--text-primary);letter-spacing:-.02em;text-align:center;word-break:break-word;font-size:26px;font-weight:800;line-height:1.2}.word-meta-col,.word-details-box{flex-direction:column;justify-content:center;gap:8px;min-width:0;display:flex}.sound-round-btn,.speaker-btn-inline{background:var(--bg-surface);border:1.5px solid var(--border-color);width:34px;height:34px;color:var(--primary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.sound-round-btn:hover,.speaker-btn-inline:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(1.06)}[data-theme=dark] .sound-round-btn,[data-theme=dark] .speaker-btn-inline{color:#60a5fa;background:#17243b;border-color:#24385a}.ipa-text,.ipa-badge{font-family:var(--font-mono);color:var(--text-muted);font-size:13.5px;font-weight:500}.pos-badge,.pos-tag{border-radius:var(--radius-full);color:#475569;background:#f1f5f9;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-block}[data-theme=dark] .pos-badge,[data-theme=dark] .pos-tag{color:#94a3b8;background:#1e2c44}.word-meaning-text,.word-meaning-main{color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.4}.word-meaning-text.spoiler-hidden{color:var(--text-muted);opacity:.45;letter-spacing:.25em;-webkit-user-select:none;user-select:none;font-size:13px}.mode-indicator-tag{color:var(--primary);background:#3b82f614;border:1px solid #3b82f62e;border-radius:6px;align-items:center;gap:6px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}[data-theme=dark] .mode-indicator-tag{color:#93c5fd;background:#3b82f626;border-color:#3b82f64d}.study-card-right{flex-direction:column;justify-content:center;display:flex}.example-box,.example-quote-box{background:var(--bg-surface-subtle);border-left:3.5px solid var(--primary);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:18px;padding:14px 18px}[data-theme=dark] .example-box,[data-theme=dark] .example-quote-box{background:#152238}.example-en,.example-sentence-en{color:var(--text-primary);margin-bottom:4px;font-size:14.5px;font-weight:500;line-height:1.55}.example-en strong,.example-sentence-en strong,.highlighted-word{color:var(--primary);font-weight:700}.example-vi,.example-sentence-vi{color:var(--text-muted);font-size:13px}.options-grid,.quiz-choices-wrap{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px;display:grid}.option-btn,.quiz-choice-btn{background:var(--bg-surface);border:1.5px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--text-primary);outline:none;align-items:center;gap:10px;padding:12px 16px;font-family:inherit;transition:all .15s;display:flex}.option-btn:hover:not(:disabled),.quiz-choice-btn:hover:not(:disabled){border-color:var(--primary);background:var(--bg-surface-subtle);transform:translateY(-1px)}[data-theme=dark] .option-btn,[data-theme=dark] .quiz-choice-btn{color:#f1f5f9;background:#141f35;border-color:#223452}[data-theme=dark] .option-btn:hover:not(:disabled),[data-theme=dark] .quiz-choice-btn:hover:not(:disabled){color:#fff;background:#1b2a47;border-color:#3b82f6}.opt-key{background:var(--bg-surface-subtle);border:1px solid var(--border-color);width:22px;height:22px;color:var(--text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}[data-theme=dark] .opt-key{color:#94a3b8;background:#1c2b46;border-color:#2b3f63}.opt-text{color:var(--text-primary);font-size:13.5px;font-weight:600;line-height:1.3}.option-btn.correct,.quiz-choice-btn.correct{background:#10b9811f!important;border-color:#10b981!important}.option-btn.correct .opt-key,.quiz-choice-btn.correct .opt-key{color:#fff;background:#10b981;border-color:#10b981}.option-btn.correct .opt-text,.quiz-choice-btn.correct{color:#10b981!important}[data-theme=dark] .option-btn.correct,[data-theme=dark] .quiz-choice-btn.correct{background:#10b98133!important;border-color:#10b981!important}[data-theme=dark] .option-btn.correct .opt-text,[data-theme=dark] .quiz-choice-btn.correct{color:#6ee7b7!important}.option-btn.wrong,.quiz-choice-btn.wrong{background:#ef44441f!important;border-color:#ef4444!important}.option-btn.wrong .opt-key,.quiz-choice-btn.wrong .opt-key{color:#fff;background:#ef4444;border-color:#ef4444}.option-btn.wrong .opt-text,.quiz-choice-btn.wrong{color:#ef4444!important}[data-theme=dark] .option-btn.wrong,[data-theme=dark] .quiz-choice-btn.wrong{background:#ef444433!important;border-color:#ef4444!important}[data-theme=dark] .option-btn.wrong .opt-text,[data-theme=dark] .quiz-choice-btn.wrong{color:#fca5a5!important}.type-form,.typed-answer-form{gap:10px;margin-bottom:18px;display:flex}.type-input,.typed-answer-input{background:var(--bg-surface);border:1.5px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);outline:none;flex:1;padding:12px 16px;font-size:14px;font-weight:500;transition:all .15s}.type-input:focus,.typed-answer-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}[data-theme=dark] .type-input,[data-theme=dark] .typed-answer-input{color:#f8fafc;background:#141f35;border-color:#223452}.type-submit-btn{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:12px 20px;font-size:13.5px;font-weight:600;transition:background .15s,transform .15s;display:flex}.type-submit-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.type-submit-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-banner{border-radius:var(--radius-md);margin-bottom:18px;padding:12px 16px;font-size:13.5px}.feedback-banner.correct{color:#10b981;background:#10b9811f;border:1px solid #10b9814d}.feedback-banner.wrong{color:#ef4444;background:#ef44441f;border:1px solid #ef44444d}.feedback-status-row{align-items:center;gap:8px;font-weight:700;display:flex}.feedback-text{color:var(--text-secondary);margin-top:4px}.study-actions-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;display:flex}.study-action-btns{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn-primary-action{background:var(--orange,#ea580c);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:8px;padding:11px 22px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 2px 8px #ea580c59}.btn-primary-action:hover{background:#f97316;transform:translateY(-1px);box-shadow:0 4px 12px #ea580c73}.btn-secondary-action{background:var(--bg-surface);color:var(--text-secondary);border:1.5px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:8px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn-secondary-action:hover{background:var(--bg-surface-subtle);border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}[data-theme=dark] .btn-secondary-action{color:#cbd5e1;background:#141f35;border-color:#223452}[data-theme=dark] .btn-secondary-action:hover{color:#60a5fa;background:#1c2b46;border-color:#3b82f6}.study-accuracy-footer{border-top:1px solid var(--border-color,#ffffff14);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;padding-top:16px;display:flex}.study-acc-breakdown{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acc-part-pill{border-radius:var(--radius-full,999px);background:var(--bg-surface-subtle,#ffffff08);border:1px solid var(--border-color,#ffffff14);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.acc-part-pill:hover{background:var(--bg-surface);border-color:#3b82f64d;transform:translateY(-1px)}.acc-part-pill .acc-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.acc-part-pill .dot-words{background:#3b82f6;box-shadow:0 0 6px #3b82f680}.acc-part-pill .dot-phrasal{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.acc-part-pill .dot-idioms{background:#a855f7;box-shadow:0 0 6px #a855f780}.acc-part-pill.active-words{font-weight:700;color:#2563eb!important;background:#3b82f61f!important;border-color:#3b82f6!important}.acc-part-pill.active-phrasal{font-weight:700;color:#d97706!important;background:#f59e0b1f!important;border-color:#f59e0b!important}.acc-part-pill.active-idioms{font-weight:700;color:#9333ea!important;background:#a855f71f!important;border-color:#a855f7!important}[data-theme=dark] .acc-part-pill.active-words{color:#60a5fa!important}[data-theme=dark] .acc-part-pill.active-phrasal{color:#fbbf24!important}[data-theme=dark] .acc-part-pill.active-idioms{color:#c084fc!important}.acc-part-label{font-size:12px}.acc-part-pct{font-size:12.5px;font-weight:800}.acc-part-fraction{color:var(--text-muted);opacity:.85;font-size:11px}.study-acc-gauge-box{background:var(--bg-surface-subtle,#ffffff0a);border:1.5px solid var(--border-color,#ffffff1a);border-radius:14px;align-items:center;gap:12px;margin-left:auto;padding:8px 16px 8px 10px;transition:all .2s;display:flex;box-shadow:0 2px 8px #00000014}.study-acc-gauge-box:hover{border-color:#3b82f666;transform:translateY(-1px)}.circular-progress-wrap-sm{flex-shrink:0;width:56px;height:56px;position:relative}.circular-center-label-sm{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.circular-pct-sm{color:var(--text-primary);font-size:14px;font-weight:800;line-height:1}.gauge-info-col{flex-direction:column;gap:2px;line-height:1.3;display:flex}.gauge-title{color:var(--text-primary);font-size:13px;font-weight:800}.gauge-category-sub{white-space:nowrap;font-size:11.5px;font-weight:600}.study-acc-gauge-box.inline-gauge{background:var(--bg-surface-subtle,#ffffff0a);border:1px solid var(--border-color,#ffffff1a);border-radius:12px;gap:10px;margin-left:auto;padding:4px 12px 4px 8px;box-shadow:0 2px 6px #0000000f}.study-acc-gauge-box.inline-gauge .circular-progress-wrap-sm{width:42px;height:42px}.study-acc-gauge-box.inline-gauge .circular-pct-sm{font-size:12px;font-weight:800}.study-acc-gauge-box.inline-gauge .gauge-info-col{gap:1px}.study-acc-gauge-box.inline-gauge .gauge-title{font-size:11.5px;font-weight:700}.study-acc-gauge-box.inline-gauge .gauge-category-sub{font-size:10.5px;font-weight:600}.controls-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.chip-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{border-radius:var(--radius-full);border:1.5px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.chip:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-surface-subtle);transform:translateY(-1px)}.chip.active{box-shadow:0 2px 8px var(--primary-glow);font-weight:700;background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}[data-theme=dark] .chip{color:#cbd5e1;background:#131d31;border-color:#1e2d47}[data-theme=dark] .chip:hover{color:#60a5fa;background:#1a2a46;border-color:#3b82f6}[data-theme=dark] .chip.active{color:#fff!important;background:#3b82f6!important;border-color:#3b82f6!important}.filter-controls-container{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;gap:14px;margin-bottom:24px;padding:16px 20px;display:flex}.filter-section-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-label-wrap{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.filter-label-badge{border-radius:var(--radius-full);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--primary);padding:2px 8px;font-size:11px;font-weight:800}.level-chips,.mode-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.level-chip{border-radius:var(--radius-full);border:1.5px solid var(--border-color);background:var(--bg-surface-subtle);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.level-chip:hover:not(:disabled):not(.locked){border-color:var(--primary);color:var(--primary);background:var(--bg-surface);transform:translateY(-1px)}.level-chip.active{box-shadow:0 2px 8px #3b82f659;background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}.level-chip.locked{opacity:.45;cursor:not-allowed;color:var(--text-muted);background:0 0;border-style:dashed}.mode-chip{border-radius:var(--radius-full);border:1.5px solid var(--border-color);background:var(--bg-surface-subtle);color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.mode-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-surface);transform:translateY(-1px)}.mode-chip.active{box-shadow:0 0 0 1px var(--primary);font-weight:700;border-color:var(--primary)!important;color:var(--primary)!important;background:#3b82f61f!important}[data-theme=dark] .filter-controls-container{background:#111a2d;border-color:#1e2d47}[data-theme=dark] .level-chip,[data-theme=dark] .mode-chip{color:#e2e8f0;background:#162238;border-color:#243553}[data-theme=dark] .level-chip:hover:not(:disabled):not(.locked),[data-theme=dark] .mode-chip:hover{color:#60a5fa;background:#1c2b48;border-color:#3b82f6}[data-theme=dark] .mode-chip.active{color:#93c5fd!important;background:#3b82f638!important;border-color:#3b82f6!important}.current-mode-indicator{border-radius:var(--radius-full);color:var(--primary);background:#3b82f61f;border:1px solid #3b82f647;align-items:center;gap:6px;margin-bottom:12px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}[data-theme=dark] .current-mode-indicator{color:#93c5fd;background:#3b82f633;border-color:#3b82f6}.vocab-table-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:28px;overflow:hidden}.vocab-table{border-collapse:collapse;text-align:left;width:100%}.vocab-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-surface-subtle);border-bottom:1px solid var(--border-color);padding:14px 20px;font-size:12px;font-weight:700}.vocab-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:16px 20px;font-size:14px}.vocab-table tr:last-child td{border-bottom:none}.vocab-table tr:hover td{background:var(--bg-surface-subtle)}.table-word-cell{align-items:center;gap:10px;font-weight:700;display:flex}.table-sound-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .15s;display:flex}.table-sound-btn:hover{color:var(--primary)}.level-badge{border-radius:var(--radius-full);padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.level-badge.A1{background:var(--badge-a1-bg);color:var(--badge-a1-text)}.level-badge.A2{background:var(--badge-a2-bg);color:var(--badge-a2-text)}.level-badge.B1{background:var(--badge-b1-bg);color:var(--badge-b1-text)}.level-badge.B2{background:var(--badge-b2-bg);color:var(--badge-b2-text)}.level-badge.C1{background:var(--badge-c1-bg);color:var(--badge-c1-text)}.level-badge.C2{background:var(--badge-c2-bg);color:var(--badge-c2-text)}.continue-cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.continue-item-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;justify-content:space-between;align-items:center;padding:18px 20px;transition:all .15s;display:flex}.continue-item-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.continue-card-left{align-items:center;gap:14px;display:flex}.continue-icon-wrap{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.continue-info h4{color:var(--text-primary);margin-bottom:2px;font-size:14.5px;font-weight:700}.continue-info p{color:var(--text-muted);font-size:12px}.right-sidebar{flex-direction:column;flex-shrink:0;gap:16px;width:310px;padding:24px 16px;display:flex}.side-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:20px}.side-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.side-card-title{color:var(--text-primary);font-size:16px;font-weight:800}.progress-body{justify-content:space-between;align-items:center;gap:16px;display:flex}.progress-circle-col{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;width:95px;display:flex}.circular-progress-wrap{width:78px;height:78px;position:relative}.circular-center-label{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.circular-pct{color:var(--text-primary);font-size:19px;font-weight:800;line-height:1}.circular-sub{color:var(--text-muted);text-align:center;white-space:nowrap;font-size:10px;font-weight:600}.progress-categories{flex-direction:column;gap:8px;width:100%;display:flex}.progress-cat-row{background:var(--card-bg-subtle,#ffffff0a);border:1px solid var(--border-color,#ffffff14);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;transition:all .2s;display:flex}.progress-cat-row:hover{background:var(--bg-surface-subtle);border-color:#3b82f640;transform:translate(2px)}.progress-cat-left{align-items:center;gap:9px;display:flex}.progress-cat-icon{background:#ffffff0d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.progress-cat-label{color:var(--text-primary);font-size:13px;font-weight:600}.progress-cat-right{white-space:nowrap;align-items:center;font-size:13px;display:flex}.progress-cat-val{color:var(--text-primary);background:#3b82f614;border-radius:6px;padding:2px 8px;font-weight:800}.progress-cat-sep{color:var(--text-muted);margin:0 1px;font-size:10.5px}.progress-cat-max{color:var(--text-muted);font-size:11px}.streak-num-wrap{align-items:center;gap:6px;margin-bottom:4px;display:flex}.streak-days-count{color:var(--text-primary);font-size:28px;font-weight:800;line-height:1}.streak-days-unit{color:var(--text-secondary);padding-top:6px;font-size:15px;font-weight:600}.streak-subtext{color:var(--text-muted);margin-bottom:16px;font-size:12.5px}.streak-days-row{justify-content:space-between;display:flex}.streak-day-item{flex-direction:column;align-items:center;gap:6px;display:flex}.streak-day-label{color:var(--text-muted);font-size:11px;font-weight:600}.streak-check-circle{background:var(--bg-surface-subtle);border:1px solid var(--border-color);width:26px;height:26px;color:var(--text-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex}.streak-check-circle.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.upcoming-list{flex-direction:column;gap:12px;display:flex}.upcoming-item{align-items:center;gap:12px;padding:8px 0;display:flex}.upcoming-icon{border-radius:var(--radius-md);background:var(--bg-surface-subtle);width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.upcoming-info{flex:1}.upcoming-title{color:var(--text-primary);font-size:13.5px;font-weight:700}.upcoming-subtitle{color:var(--text-muted);font-size:11.5px}.quote-card{border-radius:var(--radius-xl);color:#1e3a8a;box-shadow:var(--shadow-sm);text-align:center;border:1px solid #bfdbfe99;justify-content:center;align-items:center;min-height:135px;display:flex;position:relative;overflow:hidden}[data-theme=dark] .quote-card{border:1px solid #1e293b}.quote-mountain-bg{z-index:1;width:100%;height:100%;position:absolute;inset:0}.quote-mountain-bg svg{object-fit:cover;width:100%;height:100%;display:block}.quote-content-wrap{z-index:2;background:radial-gradient(circle,#ffffffb8 0%,#ffffff59 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:22px 18px;display:flex;position:relative}[data-theme=dark] .quote-content-wrap{color:#93c5fd;background:radial-gradient(circle,#0f172acc 0%,#0f172a73 100%)}.quote-text{max-width:250px;margin-bottom:6px;font-size:13.5px;font-weight:600;line-height:1.45}.quote-author{opacity:.8;font-size:11.5px;font-weight:500}.test-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172ab3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.test-modal-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:760px;box-shadow:var(--shadow-elevated);flex-direction:column;max-height:92vh;display:flex;overflow:hidden}.test-header-bar{border-bottom:1px solid var(--border-color);background:var(--bg-surface-subtle);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.test-badge-group{align-items:center;gap:10px;display:flex}.test-level-pill{border-radius:var(--radius-full);color:#fff;background:#f43f5e;padding:5px 14px;font-size:13px;font-weight:800}.test-timer-badge{font-family:var(--font-mono);color:#e11d48;border-radius:var(--radius-full);background:#fff1f2;border:1px solid #fecdd3;align-items:center;gap:8px;padding:6px 14px;font-size:16px;font-weight:800;display:flex}[data-theme=dark] .test-timer-badge{color:#fda4af;background:#e11d4833;border-color:#e11d48}.test-progress-strip{background:var(--border-color);width:100%;height:6px}.test-progress-fill{background:linear-gradient(90deg,#3b82f6,#10b981);height:100%;transition:width .2s}.test-body-content{text-align:center;padding:36px 32px;overflow-y:auto}.test-question-tracker{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;font-size:13px;font-weight:700}.test-target-word{color:var(--text-primary);margin-bottom:8px;font-size:42px;font-weight:800}.test-rules-hint{color:#e11d48;margin-bottom:28px;font-size:13px;font-weight:600}.test-options-grid{text-align:left;grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.test-option-btn{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;align-items:center;gap:14px;padding:16px 20px;font-size:15px;font-weight:600;transition:all .15s;display:flex}.test-option-btn:hover{border-color:var(--primary);background:var(--bg-surface-subtle)}.test-option-num{background:var(--bg-surface-subtle);border:1px solid var(--border-color);width:28px;height:28px;font-family:var(--font-mono);color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.test-result-box{text-align:center;padding:40px 20px}.result-icon-hero{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;display:inline-flex}.result-icon-hero.fail{color:#ef4444;background:#fef2f2}.result-icon-hero.success{color:#10b981;background:#ecfdf5}.result-title{color:var(--text-primary);margin-bottom:12px;font-size:28px;font-weight:800}.result-desc{color:var(--text-secondary);max-width:480px;margin:0 auto 28px;font-size:15px;line-height:1.6}@media (max-width:980px){.right-sidebar{display:none}}@media (max-width:860px){.dashboard-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;height:auto;position:relative}.action-cards-grid,.study-card-content,.quiz-choices-wrap,.test-options-grid{grid-template-columns:1fr}.hero-mountains-art{opacity:.35;width:320px}}.sidebar-brand-footer{border-top:1px solid var(--border-color);flex-direction:column;gap:4px;margin-top:auto;padding:16px 14px 10px;display:flex}.brand-edition-pill{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);align-items:center;gap:7px;font-size:11.5px;font-weight:700;display:inline-flex}.edition-dot{background:#10b981;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #10b98199}.brand-edition-sub{color:var(--text-muted);font-size:11px;font-weight:500}.app-toast-pill{z-index:1200;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#f8fafc;background:#0f172ae6;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:13.5px;font-weight:600;animation:.28s cubic-bezier(.16,1,.3,1) slideDownFade;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000040}[data-theme=dark] .app-toast-pill{background:#1e293bf2;border-color:#fff3}@keyframes slideDownFade{0%{opacity:0;transform:translate(-50%,-12px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.lang-selector-wrap{position:relative}.lang-selector-btn{border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.lang-selector-btn:hover{background:var(--bg-surface-subtle);border-color:var(--primary);transform:translateY(-1px)}.lang-name-text{font-size:12.5px}.lang-chevron{color:var(--text-muted);transition:transform .2s}.lang-chevron.open{transform:rotate(180deg)}.lang-dropdown-panel{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1000;flex-direction:column;width:270px;max-height:380px;animation:.14s cubic-bezier(.16,1,.3,1) forwards dropdownFadeIn;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px -8px #0000002e,0 0 0 1px #0000000a}[data-theme=dark] .lang-dropdown-panel{box-shadow:0 20px 48px -8px #0009,0 0 0 1px #ffffff14}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.lang-dropdown-header{border-bottom:1px solid var(--border-color);padding:14px 16px 10px}.lang-dropdown-title-wrap{justify-content:space-between;align-items:center;gap:8px;display:flex}.lang-dropdown-title{color:var(--text-primary);font-size:13.5px;font-weight:700}.lang-ip-badge{color:var(--primary);background:var(--primary-glow);border-radius:var(--radius-full);align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:flex}.lang-autodetect-row{border-bottom:1px solid var(--border-color);padding:8px 14px 6px}.lang-detect-ip-btn{border-radius:var(--radius-md);background:var(--bg-hover);border:1px dashed var(--primary);width:100%;color:var(--primary);cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font-size:11.5px;font-weight:600;transition:all .2s;display:flex}.lang-detect-ip-btn:hover{background:var(--primary-glow);border-style:solid;transform:translateY(-1px)}.float-target-badge{color:var(--primary);background:var(--primary-glow);border-radius:var(--radius-full);align-items:center;margin-left:6px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}.lang-search-box{align-items:center;padding:10px 14px;display:flex;position:relative}.lang-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:24px}.lang-search-input{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);outline:none;padding:8px 30px 8px 34px;font-size:12.5px;transition:all .2s}.lang-search-input:focus{border-color:var(--primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--primary-glow)}.lang-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:24px}.lang-suggested-section{border-bottom:1px solid var(--border-color);padding:4px 14px 12px}.lang-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:700}.lang-chips-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.lang-chip{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.lang-chip:hover{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}.lang-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.lang-list-wrap{max-height:220px;padding:10px 14px;overflow-y:auto}.lang-list{flex-direction:column;gap:3px;display:flex}.lang-list-item{border-radius:var(--radius-md);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 10px;transition:background .15s;display:flex}.lang-list-item:hover{background:var(--bg-surface-subtle)}.lang-list-item.selected{background:var(--primary-glow)}.lang-item-left{align-items:center;gap:10px;display:flex}.lang-item-names{flex-direction:column;display:flex}.lang-item-native{color:var(--text-primary);font-size:13px;font-weight:600}.lang-item-en{color:var(--text-muted);font-size:11px}.lang-item-check{color:var(--primary)}.settings-modal-card{overflow:hidden;border-radius:var(--radius-2xl)!important;width:92%!important;max-width:540px!important;padding:0!important;box-shadow:0 25px 60px -15px #00000040!important}.settings-modal-card .modal-header{border-bottom:1px solid var(--border-color);margin-bottom:0;padding:20px 24px 18px}.settings-header-icon{border-radius:var(--radius-lg);width:38px;height:38px;color:var(--primary);background:linear-gradient(135deg,#3b82f626 0%,#8b5cf626 100%);justify-content:center;align-items:center;display:flex}.modal-subtitle-text{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.settings-body{flex-direction:column;gap:20px;max-height:480px;padding:20px 24px;display:flex;overflow-y:auto}.settings-group{flex-direction:column;gap:12px;display:flex}.settings-group-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding-bottom:6px;font-size:12.5px;font-weight:800;display:flex}.setting-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.setting-info{flex-direction:column;gap:2px;display:flex}.setting-label{color:var(--text-primary);font-size:13.5px;font-weight:600}.setting-desc{color:var(--text-muted);max-width:320px;font-size:12px}.toggle-switch{cursor:pointer;background:#cbd5e1;border:none;border-radius:999px;flex-shrink:0;width:44px;height:24px;padding:2px;transition:background .25s;position:relative}[data-theme=dark] .toggle-switch{background:#334155}.toggle-switch.on{background:var(--primary)}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .25s cubic-bezier(.16,1,.3,1);display:block;box-shadow:0 2px 5px #0003}.toggle-switch.on .toggle-thumb{transform:translate(20px)}.speed-chip{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;padding:5px 10px;font-size:12px;font-weight:600;transition:all .15s}.speed-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.theme-toggle-group{gap:6px;display:flex}.theme-chip{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.theme-chip.active{background:var(--text-primary);color:var(--bg-surface);border-color:var(--text-primary)}.settings-footer{border-top:1px solid var(--border-color);background:var(--bg-surface-subtle);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.settings-edition-tag{color:var(--text-muted);font-size:11.5px;font-weight:500}.luxury-blank-view{justify-content:center;align-items:center;min-height:520px;padding:40px 20px;display:flex}.blank-hero-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-2xl);text-align:center;flex-direction:column;align-items:center;width:100%;max-width:580px;padding:44px 36px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 45px -10px #00000014}[data-theme=dark] .blank-hero-card{border-color:#ffffff14;box-shadow:0 24px 50px -10px #00000080}.blank-glow-badge{border-radius:var(--radius-2xl);color:#3b82f6;background:linear-gradient(135deg,#3b82f626 0%,#2563eb40 100%);justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex;box-shadow:0 10px 25px #3b82f633}.blank-glow-badge.reading{color:#10b981;background:linear-gradient(135deg,#10b98126 0%,#05966940 100%);box-shadow:0 10px 25px #10b98133}.blank-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);background:var(--primary-glow);border-radius:var(--radius-full);margin-bottom:12px;padding:4px 12px;font-size:11px;font-weight:800}.blank-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:12px;font-size:26px;font-weight:800}.blank-desc{color:var(--text-secondary);max-width:440px;margin-bottom:24px;font-size:14px;line-height:1.6}.blank-features-preview{flex-direction:column;gap:10px;width:100%;max-width:360px;margin-bottom:28px;display:flex}.preview-chip{border-radius:var(--radius-lg);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-primary);align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.blank-action-group{gap:12px;display:flex}.today-study-card{padding:24px}.study-card-content{grid-template-columns:280px 1fr;align-items:start;gap:24px;display:grid}@media (max-width:900px){.study-card-content{grid-template-columns:1fr}}.study-card-left{flex-direction:column;gap:14px;display:flex}.word-display-box{text-align:center;background:linear-gradient(135deg,#3b82f61f 0%,#8b5cf61f 100%);border:1px solid #3b82f640;border-radius:16px;justify-content:center;align-items:center;width:100%;min-height:130px;max-height:200px;padding:16px 20px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #ffffff14}.word-text{font-family:var(--font-sans);color:var(--text-primary);word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin:0;padding:0;font-weight:700;line-height:1.35}.word-meta-col{flex-direction:column;gap:8px;display:flex}.word-meta-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sound-round-btn{width:32px;height:32px;color:var(--primary);cursor:pointer;background:#3b82f61f;border:1px solid #3b82f633;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.sound-round-btn:hover{background:var(--primary);color:#fff}.ipa-text{font-family:var(--font-mono);color:var(--text-muted);font-size:13px}.pos-badge{background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;padding:2px 8px;font-size:11px;font-style:italic}.word-meaning-text{color:var(--text-primary);word-break:break-word;font-size:15px;font-weight:600;line-height:1.4}.word-meaning-text.spoiler-hidden{color:var(--text-muted);letter-spacing:2px;-webkit-user-select:none;user-select:none;font-size:18px}.mode-indicator-tag{color:var(--text-muted);align-items:center;gap:6px;margin-top:4px;font-size:11.5px;font-weight:600;display:flex}.reading-studio-view{width:100%;padding:10px 0 40px}.reading-header-toolbar{margin-bottom:24px}.reading-hero-intro{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.reading-studio-pill{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);background:var(--primary-glow);border-radius:var(--radius-full);margin-bottom:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.reading-main-title{color:var(--text-primary);letter-spacing:-.02em;font-size:22px;font-weight:800}.reading-cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:20px;display:grid}.reading-doc-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;transition:all .25s;display:flex;overflow:hidden}.reading-doc-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary);transform:translateY(-4px)}.doc-cover-art{background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;height:140px;padding:14px 16px;display:flex;position:relative}.doc-cover-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:linear-gradient(#0f172a66 0%,#0f172ae0 100%);position:absolute;inset:0}.doc-cover-top{z-index:2;justify-content:space-between;align-items:center;display:flex;position:relative}.doc-time-tag{color:#fff;border-radius:var(--radius-full);background:#0006;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:flex}.doc-card-title{z-index:2;color:var(--text,#0f172a);font-size:17px;font-weight:700;line-height:1.3;position:relative}[data-theme=dark] .doc-card-title{color:#f8fafc}.doc-card-body{flex-direction:column;flex:1;justify-content:space-between;padding:16px;display:flex}.doc-card-summary{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:16px;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.doc-card-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.doc-category-tag{color:var(--text-muted);font-size:11.5px;font-weight:600}.doc-read-btn{padding:6px 14px;font-size:12.5px}.passage-workspace{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:24px}.workspace-top-bar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:18px;display:flex}.workspace-title-group{align-items:center;gap:12px;display:flex}.workspace-passage-title{color:var(--text-primary);font-size:20px;font-weight:800}.workspace-qtype-select{align-items:center;gap:8px;display:flex}.qtype-select-dropdown{border-radius:var(--radius-sm);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-primary);outline:none;padding:6px 12px;font-size:13px;font-weight:600}.passage-reader-split{grid-template-columns:1fr 1fr;align-items:start;gap:28px;display:grid}@media (max-width:960px){.passage-reader-split{grid-template-columns:1fr}}.passage-text-column{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px 24px}.passage-hint-banner{color:var(--primary);background:var(--primary-glow);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:18px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.passage-paragraph{color:var(--text-primary);cursor:text;-webkit-user-select:text;user-select:text;margin-bottom:16px;font-size:15.5px;line-height:1.7}.passage-paragraph::selection{color:var(--primary-hover);background:#3b82f640}.passage-questions-column{flex-direction:column;gap:16px;display:flex}.questions-column-header{justify-content:space-between;align-items:center;display:flex}.q-count-tag{color:var(--text-muted);background:var(--bg-surface-subtle);border-radius:var(--radius-full);padding:3px 10px;font-size:12px;font-weight:700}.question-exercise-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px 18px}.question-exercise-card.correct{border-color:var(--success);background:var(--success-bg)}.question-exercise-card.wrong{border-color:var(--danger);background:var(--danger-bg)}.q-card-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.q-index-pill{background:var(--primary);color:#fff;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700}.q-type-badge{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:600}.q-prompt-text{color:var(--text-primary);margin-bottom:12px;font-size:14.5px;font-weight:600}.q-options-grid{flex-direction:column;gap:8px;display:flex}.q-opt-btn{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px;transition:all .15s;display:flex}.q-opt-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-glow)}.q-opt-btn.selected{border-color:var(--primary);background:var(--primary);color:#fff}.q-opt-num{background:#00000014;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.q-tfng-row{gap:8px;display:flex}.q-tfng-btn{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;text-align:center;flex:1;padding:10px;font-size:13px;font-weight:600}.q-tfng-btn.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.q-text-input{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-color);width:100%;color:var(--text-primary);outline:none;padding:10px 14px;font-size:14px}.q-text-input:focus{border-color:var(--primary)}.q-explanation-box{border-radius:var(--radius-sm);margin-top:12px;padding:10px 14px;font-size:13px}.q-explanation-box.correct{color:var(--success);background:#10b9811f}.q-explanation-box.wrong{color:var(--danger);background:#ef44441f}.floating-lookup-bar{background:var(--bg-surface);border:1px solid var(--primary);border-radius:var(--radius-lg);width:90%;max-width:560px;box-shadow:var(--shadow-elevated);z-index:1000;padding:16px 20px;animation:.25s ease-out slideUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.float-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;position:absolute;top:10px;right:12px}.float-word-content{align-items:center;gap:14px;display:flex}.float-word-text{color:var(--text-primary);font-size:18px;font-weight:800}.float-ipa-text{font-family:var(--font-mono);color:var(--text-muted);font-size:13px}.float-meaning-text{color:var(--primary);margin-top:2px;font-size:14.5px;font-weight:600}.float-sentence-content{flex-direction:column;gap:4px;display:flex}.float-sentence-en{color:var(--text-secondary);font-size:13.5px;font-style:italic}.float-sentence-vi{color:var(--primary);font-size:14.5px;font-weight:700}.tutorial-modal-card{max-width:500px}.tutorial-tips-list{flex-direction:column;gap:14px;margin-top:16px;display:flex}.tutorial-tip-card{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);align-items:flex-start;gap:14px;padding:14px;display:flex}.tip-icon-wrap{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.reading-test-card{max-width:900px;max-height:90vh}.reading-test-split{grid-template-columns:1fr 1fr;gap:24px;margin-top:16px;display:grid}.test-passage-column{max-height:55vh;padding-right:12px;overflow-y:auto}.test-no-lookup-tag{color:var(--warning);background:var(--warning-bg);border-radius:var(--radius-sm);align-items:center;gap:6px;margin-bottom:14px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.test-question-column{flex-direction:column;display:flex}.dashboard-layout.reading-focus-mode{background:var(--bg-app);width:100%;min-height:100vh;display:block}.dashboard-layout.reading-focus-mode .main-content,.main-content.focus-main-content{width:100%;max-width:1580px;margin:0 auto;padding:24px 32px 80px;overflow-y:visible}.dashboard-layout.reading-focus-mode .sidebar,.dashboard-layout.reading-focus-mode .right-sidebar{display:none!important}.dashboard-layout.exam-focus-mode{background:var(--bg-app);width:100%;min-height:100vh;display:flex}.dashboard-layout.exam-focus-mode .sidebar{opacity:0!important;pointer-events:none!important;border-right-width:0!important;width:0!important;min-width:0!important;max-width:0!important;padding-left:0!important;padding-right:0!important;overflow:hidden!important;transform:translate(-28px)!important}.dashboard-layout.exam-focus-mode .right-sidebar{display:none!important}.dashboard-layout.exam-focus-mode .main-content,.main-content.exam-main-content{padding:16px 36px 80px;overflow-y:auto;width:100%!important;max-width:100%!important}.topbar-focus-controls{flex-shrink:0;align-items:center;gap:10px;margin-right:12px;display:flex}.topbar-focus-back-btn{background:var(--bg-surface);color:var(--text-primary);border:1.5px solid var(--border-color);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 15px;font-size:13px;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 6px #0000000a}.topbar-focus-back-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px var(--primary-glow);transform:translateY(-1px)}.topbar-sidebar-toggle-btn{background:var(--bg-surface-subtle);color:var(--text-secondary);border:1.5px solid var(--border-color);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:12.5px;font-weight:600;transition:all .2s;display:inline-flex}.topbar-sidebar-toggle-btn:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--primary)}.topbar-sidebar-toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px var(--primary-glow)}.dashboard-layout.reading-focus-mode .reading-paper-desk{width:100%;padding:28px 32px}.reading-exam-desk{border:1.5px solid #dc262647;box-shadow:0 8px 32px #dc262614,0 2px 8px #0000000a}.exam-danger-badge{letter-spacing:.8px;font-weight:800;box-shadow:0 2px 8px #dc262659;color:#fff!important;background:linear-gradient(135deg,#dc2626,#b91c1c)!important}.exam-timer-pill{font-size:13px;font-weight:700;font-family:var(--font-mono,monospace);color:#2563eb;background:#2563eb1a;border:1px solid #2563eb40;border-radius:999px;align-items:center;gap:7px;padding:5px 14px;transition:all .3s;display:inline-flex}[data-theme=dark] .exam-timer-pill{color:#93c5fd;background:#3b82f633;border-color:#3b82f666}.exam-timer-pill.urgent{color:#dc2626;background:#ef444426;border-color:#ef4444;animation:1s ease-in-out infinite alternate timerPulse}@keyframes timerPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.exam-rule-pill{color:#d97706;background:#f59e0b1a;border:1px solid #f59e0b40;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}[data-theme=dark] .exam-rule-pill{color:#fcd34d;background:#f59e0b2e}.exam-result-banner{border-radius:10px;margin-bottom:22px;padding:18px 22px;box-shadow:0 4px 16px #0000000f}.exam-result-banner.passed{background:linear-gradient(135deg,#10b9811f 0%,#0596690f 100%);border:1.5px solid #10b981}.exam-result-banner.failed{background:linear-gradient(135deg,#ef44441f 0%,#dc26260f 100%);border:1.5px solid #ef4444}.reading-paper-desk{background:var(--bg-surface-subtle,#f3f4f6);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:24px;position:relative}.paper-desk-topbar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:18px;display:flex}.paper-desk-title-group{align-items:center;gap:12px;display:flex}.paper-exam-badge{font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.5px;color:#f8fafc;background:#1e293b;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.paper-autosave-indicator{color:#10b981;background:#10b9811a;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.paper-split-layout{grid-template-columns:1.12fr 1fr;align-items:start;gap:28px;display:grid}@media (max-width:1024px){.paper-split-layout{grid-template-columns:1fr}}.reading-paper-sheet{color:#1a1a1a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:84vh;padding:32px 36px 95px;position:relative;overflow-y:auto;box-shadow:0 4px 20px #0000000f,0 1px 3px #0000000a}[data-theme=dark] .reading-paper-sheet{color:#f1f5f9;background:#181d28;border-color:#ffffff1f;box-shadow:0 8px 30px #0006}.reading-paper-sheet::-webkit-scrollbar{width:6px}.reading-paper-sheet::-webkit-scrollbar-thumb{background:#0000002e;border-radius:4px}[data-theme=dark] .reading-paper-sheet::-webkit-scrollbar-thumb{background:#fff3}.paper-header-rule{border-bottom:1px solid #cbd5e1;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:8px;display:flex}[data-theme=dark] .paper-header-rule{border-color:#ffffff26}.paper-header-label{letter-spacing:1px;text-transform:uppercase;color:#64748b;font-size:11.5px;font-weight:700;font-family:var(--font-sans,sans-serif)}.paper-passage-title{text-align:center;text-transform:uppercase;letter-spacing:.8px;color:inherit;margin:12px 0 24px;font-family:Times New Roman,Times,Georgia,serif;font-size:24px;font-weight:800}.paper-para-block{margin-bottom:22px;position:relative}.paper-para-letter{color:inherit;margin-bottom:4px;font-family:Times New Roman,Times,Georgia,serif;font-size:17px;font-weight:800;display:block}.paper-para-text{color:inherit;text-align:justify;-webkit-user-select:text;user-select:text;cursor:text;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.8}.highlighter-mode-on .paper-para-text{cursor:crosshair}.paper-text-highlight{cursor:pointer;border-radius:3px;margin:0 -1px;padding:1px 3px;font-weight:500;transition:opacity .15s;color:#111827!important}.paper-text-highlight:hover{opacity:.85;-webkit-text-decoration:underline dotted #ef4444;text-decoration:underline dotted #ef4444}.paper-passage-footer-hint{color:#2563eb;background:#3b82f614;border:1px dashed #3b82f64d;border-radius:6px;align-items:center;gap:8px;margin-top:28px;padding:12px 14px;font-size:12.5px;display:flex}[data-theme=dark] .paper-passage-footer-hint{color:#93c5fd;background:#3b82f626;border-color:#3b82f666}.paper-qtype-nav{border-bottom:1px solid #cbd5e1;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding-bottom:16px;display:flex}[data-theme=dark] .paper-qtype-nav{border-color:#ffffff26}.paper-qtype-tab{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:all .15s;display:flex}[data-theme=dark] .paper-qtype-tab{color:#cbd5e1;background:#1e293b;border-color:#ffffff1f}.paper-qtype-tab:hover{color:#2563eb;border-color:#3b82f6}.paper-qtype-tab.active{color:#fff;background:#1e293b;border-color:#0f172a;font-weight:700}.paper-qtype-tab.active,[data-theme=dark] .paper-qtype-tab.active{background:var(--orange,#ea580c)!important;border-color:var(--orange,#ea580c)!important;color:#fff!important;box-shadow:0 2px 8px #ea580c59!important}.paper-tab-count{opacity:.9;font-size:12px;font-weight:600;font-family:var(--font-body,"Be Vietnam Pro", sans-serif)!important}.paper-tab-dot-done{background:#10b981;border-radius:50%;width:7px;height:7px}.paper-questions-sheet-content{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);transform:translateY(0)}.paper-questions-sheet-content.fade-out{opacity:0;pointer-events:none;transform:translateY(8px)}.paper-instruction-box{border-bottom:1px dashed #cbd5e1;margin-bottom:20px;padding-bottom:12px}[data-theme=dark] .paper-instruction-box{border-color:#ffffff26}.paper-q-range-title{margin-bottom:4px;font-family:Times New Roman,Times,Georgia,serif;font-size:16px;font-weight:700}.paper-q-instruction-text{color:#475569;font-family:Georgia,Times New Roman,serif;font-size:14.5px;font-style:italic;line-height:1.6}[data-theme=dark] .paper-q-instruction-text{color:#94a3b8}.paper-headings-box{background:#fafaf9;border:1.5px solid #334155;margin:16px 0 24px;padding:16px 20px}[data-theme=dark] .paper-headings-box{background:#1a202c;border-color:#64748b}.paper-headings-title{text-align:center;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0;margin-bottom:14px;padding-bottom:8px;font-family:Times New Roman,Times,Georgia,serif;font-size:16px;font-weight:800}[data-theme=dark] .paper-headings-title{border-color:#ffffff1a}.paper-headings-list{flex-direction:column;gap:8px;display:flex}.paper-heading-entry{grid-template-columns:32px 1fr;align-items:baseline;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.5;display:grid}.heading-roman{font-family:Times New Roman,Times,serif;font-style:italic;font-weight:700}.paper-heading-match-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}[data-theme=dark] .paper-heading-match-item{background:#1e293b;border-color:#ffffff1a}.heading-q-label{align-items:center;gap:8px;font-size:14.5px;font-weight:600;display:flex}.heading-q-num{color:#2563eb;font-weight:700}.paper-heading-select{color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:4px;outline:none;min-width:220px;max-width:100%;padding:7px 12px;font-family:inherit;font-size:13.5px}[data-theme=dark] .paper-heading-select{color:#f8fafc;background:#0f172a;border-color:#ffffff26}.paper-q-card{background:#fdfdfd;border:1px solid #e2e8f0;border-radius:4px;margin-bottom:16px;padding:16px 18px}[data-theme=dark] .paper-q-card{background:#1a202c;border-color:#ffffff1a}.paper-q-stem{color:inherit;gap:8px;margin-bottom:12px;font-size:15px;font-weight:600;line-height:1.5;display:flex}.paper-q-num{color:#3b82f6;flex-shrink:0;font-weight:700}.paper-mc-options{flex-direction:column;gap:8px;display:flex}.paper-mc-label{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:4px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;transition:all .15s;display:flex}[data-theme=dark] .paper-mc-label{background:#1e293b;border-color:#ffffff1a}.paper-mc-label:hover:not(.disabled){background:#f8fafc;border-color:#94a3b8}[data-theme=dark] .paper-mc-label:hover:not(.disabled){background:#273549}.paper-mc-label.selected{background:#3b82f614;border-color:#3b82f6;font-weight:600}[data-theme=dark] .paper-mc-label.selected{background:#3b82f633;border-color:#60a5fa}.paper-mc-radio{cursor:pointer;accent-color:#2563eb}.paper-opt-letter{width:18px;font-weight:700}.paper-tfng-group{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.paper-tfng-btn{color:#334155;cursor:pointer;text-align:center;background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:9px 12px;font-size:13px;font-weight:700;transition:all .15s}[data-theme=dark] .paper-tfng-btn{color:#e2e8f0;background:#1e293b;border-color:#ffffff1f}.paper-tfng-btn:hover:not(:disabled){background:#f1f5f9;border-color:#3b82f6}.paper-tfng-btn.selected{color:#fff;background:#1e293b;border-color:#0f172a}[data-theme=dark] .paper-tfng-btn.selected{color:#fff;background:#3b82f6;border-color:#60a5fa}.paper-blank-input{width:100%;color:inherit;background:0 0;border:none;border-bottom:2px solid #94a3b8;outline:none;padding:8px 12px;font-family:inherit;font-size:14.5px;transition:border-color .15s}.paper-blank-input:focus{border-bottom-color:#2563eb}.paper-feedback-box{border-radius:4px;margin-top:10px;padding:8px 12px;font-size:13px}.paper-feedback-box.correct{color:#059669;background:#10b9811f;border-left:3px solid #10b981}.paper-feedback-box.wrong{color:#dc2626;background:#ef44441f;border-left:3px solid #ef4444}.feedback-status{margin-bottom:2px;font-weight:700}.feedback-explanation{opacity:.9;font-size:12.5px}.paper-actions-bar{border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}[data-theme=dark] .paper-actions-bar{border-color:#ffffff26}.paper-section-score{background:#f1f5f9;border-radius:4px;padding:6px 12px;font-size:14px;font-weight:700}[data-theme=dark] .paper-section-score{background:#1e293b}.paper-highlighter-fab-wrap{z-index:1000;flex-direction:column;align-items:flex-start;gap:12px;display:flex;position:fixed;bottom:28px;left:28px}.paper-highlighter-circle-btn{color:#1e293b;cursor:pointer;background:#fff;border:2px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 6px 20px #00000026,0 2px 6px #00000014}[data-theme=dark] .paper-highlighter-circle-btn{color:#f8fafc;background:#1e293b;border-color:#fff3}.paper-highlighter-circle-btn:hover{transform:translateY(-2px)scale(1.06);box-shadow:0 8px 24px #00000038}.paper-highlighter-circle-btn.active{color:#854d0e;background:#fef9c3;border-color:#eab308;box-shadow:0 0 0 4px #facc1573,0 8px 24px #eab30866}[data-theme=dark] .paper-highlighter-circle-btn.active{color:#fef08a;background:#422006;border-color:#facc15;box-shadow:0 0 0 4px #facc1559,0 8px 24px #00000080}.highlighter-beacon-dot{border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:3px;right:3px;box-shadow:0 0 6px #22c55ecc}.highlighter-popup-palette{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:10px;min-width:210px;padding:12px 14px;animation:.2s ease-out slideUpPalette;display:flex;box-shadow:0 10px 25px #0000001f}[data-theme=dark] .highlighter-popup-palette{background:#1e293b;border-color:#ffffff26}@keyframes slideUpPalette{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.palette-header{justify-content:space-between;align-items:center;display:flex}.palette-title{text-transform:uppercase;letter-spacing:.5px;color:#64748b;font-size:12px;font-weight:700}.palette-close-mini{cursor:pointer;color:#94a3b8;background:0 0;border:none;font-size:16px}.palette-swatches{align-items:center;gap:8px;display:flex}.swatch-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .15s}.swatch-btn:hover{transform:scale(1.15)}.swatch-btn.active{border-color:#0f172a;transform:scale(1.15);box-shadow:0 0 0 2px #0003}[data-theme=dark] .swatch-btn.active{border-color:#fff;box-shadow:0 0 0 2px #ffffff4d}.palette-clear-btn{color:#b91c1c;cursor:pointer;text-align:center;background:#fee2e2;border:1px solid #fca5a5;border-radius:4px;padding:6px 10px;font-size:11.5px;font-weight:600}.palette-status{color:#64748b;font-size:11px;line-height:1.4}.page-transition-wrapper,.tab-appear-anim{will-change:transform, opacity;width:100%;animation:.36s cubic-bezier(.16,1,.3,1) both tabAppear}@keyframes tabAppear{0%{opacity:0;transform:translateY(22px)scale(.988)}to{opacity:1;transform:translateY(0)scale(1)}}.reading-paper-desk{will-change:transform, opacity;animation:.42s cubic-bezier(.16,1,.3,1) both paperDeskAppear}@keyframes paperDeskAppear{0%{opacity:0;transform:translateY(26px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.reading-paper-desk .reading-paper-sheet.paper-passage-column{will-change:transform, opacity;animation:.45s cubic-bezier(.16,1,.3,1) 30ms both paperSheetSlideLeft}.reading-paper-desk .reading-paper-sheet.paper-questions-sheet{will-change:transform, opacity;animation:.45s cubic-bezier(.16,1,.3,1) 60ms both paperSheetSlideRight}@keyframes paperSheetSlideLeft{0%{opacity:0;transform:translate(-18px)translateY(8px)}to{opacity:1;transform:translate(0)translateY(0)}}@keyframes paperSheetSlideRight{0%{opacity:0;transform:translate(18px)translateY(8px)}to{opacity:1;transform:translate(0)translateY(0)}}.studio-hero-header{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding:24px 28px;display:flex;box-shadow:0 4px 20px #00000008}[data-theme=dark] .studio-hero-header{background:#1e293b;border-color:#ffffff14}.studio-hero-left{flex:1;min-width:260px}.studio-badge{text-transform:uppercase;letter-spacing:.5px;color:#6366f1;background:#6366f11a;border-radius:20px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.studio-badge.practice{color:#0ea5e9;background:#0ea5e91a}.studio-badge.progress{color:#10b981;background:#10b9811a}.studio-title{color:var(--text-primary,#0f172a);letter-spacing:-.3px;margin:0 0 6px;font-size:22px;font-weight:800}.studio-desc{color:var(--text-muted,#64748b);max-width:640px;margin:0;font-size:13.5px;line-height:1.5}.studio-hero-stats{gap:12px;display:flex}.studio-stat-box{background:var(--bg-primary,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;flex-direction:column;align-items:center;min-width:95px;padding:12px 18px;display:flex}[data-theme=dark] .studio-stat-box{background:#0f172a99;border-color:#ffffff0f}.studio-stat-num{color:#3b82f6;font-size:20px;font-weight:800}.studio-stat-lbl{color:var(--text-muted,#64748b);margin-top:2px;font-size:11.5px;font-weight:500}.vocab-search-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.vocab-search-box{flex:1;align-items:center;min-width:240px;display:flex;position:relative}.vocab-search-box .search-icon{color:var(--text-muted,#94a3b8);pointer-events:none;position:absolute;left:14px}.vocab-search-box input{border:1px solid var(--border-color,#e2e8f0);background:var(--card-bg,#fff);width:100%;color:var(--text-primary,#0f172a);border-radius:10px;outline:none;padding:10px 14px 10px 40px;font-size:13.5px;transition:border-color .2s}[data-theme=dark] .vocab-search-box input{background:#1e293b;border-color:#ffffff1a}.vocab-search-box input:focus{border-color:#3b82f6}.progress-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-bottom:24px;display:grid}.progress-metric-card{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:14px;flex-direction:column;padding:20px;display:flex;box-shadow:0 2px 10px #00000005}[data-theme=dark] .progress-metric-card{background:#1e293b;border-color:#ffffff14}.progress-metric-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.progress-metric-title{color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.5px;font-size:13.5px;font-weight:700}.progress-metric-val{color:var(--text-primary,#0f172a);letter-spacing:-.5px;margin-bottom:4px;font-size:30px;font-weight:800}.progress-metric-desc{color:var(--text-muted,#94a3b8);font-size:12.5px}.progress-level-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.progress-level-lbl{min-width:32px;color:var(--text-primary,#0f172a);font-size:12.5px;font-weight:700}.progress-level-bar-wrap{background:#0000000f;border-radius:4px;flex:1;height:8px;overflow:hidden}[data-theme=dark] .progress-level-bar-wrap{background:#ffffff14}.progress-level-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.progress-level-count{color:var(--text-muted,#64748b);text-align:right;min-width:45px;font-size:12px;font-weight:600}.vocab-category-bar{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;display:grid}@media (max-width:768px){.vocab-category-bar{grid-template-columns:1fr;gap:10px}}.vocab-cat-card{border:1.5px solid var(--border-color,#e2e8f0);background:var(--card-bg,#fff);cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;gap:14px;padding:16px 18px;transition:all .28s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}[data-theme=dark] .vocab-cat-card{background:#1e293b;border-color:#ffffff14}.vocab-cat-card:active{transform:scale(.975)}.icon-words{color:#2563eb;background:#3b82f61f}[data-theme=dark] .icon-words{color:#60a5fa;background:#3b82f633}.cat-words:hover{border-color:#93c5fd;transform:translateY(-3px);box-shadow:0 8px 24px -4px #2563eb26}.cat-words.active{background:linear-gradient(135deg,#2563eb14 0%,#60a5fa08 100%);border-color:#2563eb;animation:3.5s ease-in-out infinite blueCardPulse;box-shadow:0 8px 28px -4px #2563eb33}[data-theme=dark] .cat-words.active{background:linear-gradient(135deg,#2563eb38,#1e293bd9);border-color:#3b82f6}.icon-idioms{color:#9333ea;background:#a855f71f}[data-theme=dark] .icon-idioms{color:#c084fc;background:#a855f733}.cat-idioms:hover{border-color:#c084fc;transform:translateY(-3px);box-shadow:0 8px 24px -4px #9333ea2e}.cat-idioms.active{background:linear-gradient(135deg,#9333ea14 0%,#c084fc08 100%);border-color:#9333ea;animation:3.5s ease-in-out infinite purpleCardPulse;box-shadow:0 8px 28px -4px #9333ea33}[data-theme=dark] .cat-idioms.active{background:linear-gradient(135deg,#9333ea38,#1e293bd9);border-color:#a855f7}.icon-phrasal{color:#d97706;background:#f59e0b1f}[data-theme=dark] .icon-phrasal{color:#fbbf24;background:#f59e0b33}.cat-phrasal:hover{border-color:#fcd34d;transform:translateY(-3px);box-shadow:0 8px 24px -4px #d977062e}.cat-phrasal.active{background:linear-gradient(135deg,#d9770614 0%,#fbbf2408 100%);border-color:#d97706;animation:3.5s ease-in-out infinite amberCardPulse;box-shadow:0 8px 28px -4px #d9770633}[data-theme=dark] .cat-phrasal.active{background:linear-gradient(135deg,#d9770638,#1e293bd9);border-color:#f59e0b}.vocab-cat-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:all .35s cubic-bezier(.34,1.56,.64,1);display:flex}.vocab-cat-card:hover .vocab-cat-icon{transform:scale(1.1)translateY(-1px)}.vocab-cat-card.active .vocab-cat-icon{transform:scale(1.12)translateY(-1px)}.vocab-cat-info{flex-direction:column;display:flex}.vocab-cat-title{color:var(--text-primary,#0f172a);letter-spacing:-.01em;font-size:14.5px;font-weight:700}.vocab-cat-active-pill{border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;margin-left:auto;display:flex}.pill-words{background:#2563eb1f}.pill-idioms{background:#9333ea1f}.pill-phrasal{background:#d977061f}.active-glow-dot{border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite activeDotPulse}.pill-words .active-glow-dot{background:#2563eb;box-shadow:0 0 8px #2563ebcc}.pill-idioms .active-glow-dot{background:#9333ea;box-shadow:0 0 8px #9333eacc}.pill-phrasal .active-glow-dot{background:#d97706;box-shadow:0 0 8px #d97706cc}.page-transition-wrapper{will-change:transform, opacity;width:100%;animation:.35s cubic-bezier(.16,1,.3,1) both pageRevealCascade}@keyframes pageRevealCascade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page-transition-wrapper .studio-hero-header{animation:.36s cubic-bezier(.16,1,.3,1) 20ms both subElemCascade}.page-transition-wrapper .vocab-category-bar,.page-transition-wrapper .history-filter-bar{animation:.38s cubic-bezier(.16,1,.3,1) 60ms both subElemCascade}.page-transition-wrapper .vocab-subtab-container,.page-transition-wrapper .history-table-container{animation:.4s cubic-bezier(.16,1,.3,1) .1s both subElemCascade}@keyframes subElemCascade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.subtab-content-anim{will-change:transform, opacity;animation:.3s cubic-bezier(.16,1,.3,1) both subtabSlideUp}@keyframes subtabSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card-question-anim{will-change:transform, opacity;animation:.24s cubic-bezier(.16,1,.3,1) both cardQuestionEnter}@keyframes cardQuestionEnter{0%{opacity:.25;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.history-filter-anim{will-change:transform, opacity;animation:.26s cubic-bezier(.16,1,.3,1) both historyTableFade}@keyframes historyTableFade{0%{opacity:.2;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.cat-badge{border-radius:var(--radius-full,999px);letter-spacing:.02em;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.cat-badge-idiom{color:#9333ea;background:#a855f71f;border:1px solid #a855f740}.cat-badge-phrasal{color:#d97706;background:#f59e0b1f;border:1px solid #f59e0b40}.cat-badge-word{color:#2563eb;background:#3b82f61f;border:1px solid #3b82f640}[data-theme=dark] .cat-badge-idiom{color:#c084fc;background:#a855f733;border-color:#a855f766}[data-theme=dark] .cat-badge-phrasal{color:#fbbf24;background:#f59e0b33;border-color:#f59e0b66}[data-theme=dark] .cat-badge-word{color:#60a5fa;background:#3b82f633;border-color:#3b82f666}@keyframes streakFlameBurn{0%,to{filter:drop-shadow(0 0 5px #f9731699)drop-shadow(0 0 12px #ef44444d);transform:scale(1)rotate(0)}20%{filter:drop-shadow(0 0 8px #f97316cc)drop-shadow(0 0 16px #f59e0b73);transform:scale(.96,1.05)rotate(-2deg)skew(-1.2deg)}40%{filter:drop-shadow(0 0 5px #f9731680)drop-shadow(0 0 10px #ef444440);transform:scale(1.04,.96)rotate(1.5deg)skew(1.2deg)}60%{filter:drop-shadow(0 0 9px #f97316d9)drop-shadow(0 0 18px #f59e0b80);transform:scale(.95,1.06)rotate(-1.2deg)skew(-.8deg)}80%{filter:drop-shadow(0 0 6px #f97316a6)drop-shadow(0 0 13px #ef444459);transform:scale(1.03,.97)rotate(1deg)skew(1deg)}}@keyframes streakInnerCoreDance{0%,to{opacity:.92;transform:scale(1)translateY(0)}25%{opacity:1;transform:scale(.92,1.1)translateY(-.6px)skew(2deg)}50%{opacity:.86;transform:scale(1.06,.94)translateY(.3px)skew(-2deg)}75%{opacity:1;transform:scale(.95,1.08)translateY(-.4px)skew(1deg)}}@keyframes streakEmberRise{0%{opacity:0;transform:translateY(0)scale(.6)}25%{opacity:.95;transform:translateY(-1.5px)scale(1.1)}65%{opacity:.7;transform:translateY(-4.5px)scale(.85)translate(1px)}to{opacity:0;transform:translateY(-7.5px)scale(.3)translate(-1px)}}.flame-icon-animated{vertical-align:middle;transform-origin:50% 92%;will-change:transform, filter;animation:1.8s ease-in-out infinite streakFlameBurn;display:inline-block}.flame-icon-animated .flame-inner-core{transform-origin:50% 90%;animation:1.2s ease-in-out infinite streakInnerCoreDance}.flame-icon-animated .flame-spark-ember{transform-origin:50%;animation:2.1s cubic-bezier(.4,0,.2,1) infinite streakEmberRise}.listening-catalog-view{flex-direction:column;gap:24px;width:100%;display:flex}.listening-hero-banner{background:linear-gradient(135deg,#6366f114 0%,#a855f70f 100%);border:1px solid #6366f126;border-radius:16px;padding:28px 32px;position:relative;overflow:hidden}[data-theme=dark] .listening-hero-banner{background:linear-gradient(135deg,#6366f129 0%,#a855f71f 100%);border-color:#6366f140}.hero-badge{color:#4f46e5;background:#6366f11f;border-radius:20px;align-items:center;gap:8px;margin-bottom:12px;padding:6px 14px;font-size:13px;font-weight:700;display:inline-flex}[data-theme=dark] .hero-badge{color:#a5b4fc;background:#6366f140}.hero-heading{color:#0f172a;letter-spacing:-.02em;margin:0 0 8px;font-size:28px;font-weight:800}[data-theme=dark] .hero-heading{color:#f8fafc}.hero-subtext{color:#64748b;max-width:780px;margin:0 0 20px;font-size:15px;line-height:1.6}[data-theme=dark] .hero-subtext{color:#94a3b8}.hero-progress-stats{flex-wrap:wrap;gap:16px;display:flex}.stat-box{background:#ffffffd9;border:1px solid #00000014;border-radius:10px;flex-direction:column;gap:2px;padding:10px 18px;display:flex}[data-theme=dark] .stat-box{background:#1e293bcc;border-color:#ffffff14}.stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}[data-theme=dark] .stat-label{color:#94a3b8}.stat-num{color:#1e293b;font-size:18px;font-weight:800}[data-theme=dark] .stat-num{color:#f1f5f9}.stat-num.highlight{color:#10b981}.listening-filter-bar{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;gap:14px;padding:16px;display:flex}[data-theme=dark] .listening-filter-bar{background:#1e293b;border-color:#ffffff1a}.level-tabs-scrollable{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.btn-level-tab{color:#475569;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:all .15s;display:flex}[data-theme=dark] .btn-level-tab{color:#94a3b8;background:#0f172a;border-color:#ffffff1a}.btn-level-tab:hover{color:#4f46e5;border-color:#6366f1}[data-theme=dark] .btn-level-tab:hover{color:#c7d2fe;border-color:#818cf8}.btn-level-tab.active{color:#fff;background:#4f46e5;border-color:#4338ca;box-shadow:0 2px 8px #4f46e547}.btn-level-tab.active .tab-lvl-count{opacity:.85}.tab-lvl-count{opacity:.7;font-size:11.5px;font-weight:500}.search-filter-controls-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.listening-search-input-wrap{color:#64748b;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;flex:1;align-items:center;gap:10px;min-width:260px;height:42px;padding:0 14px;display:flex}[data-theme=dark] .listening-search-input-wrap{color:#94a3b8;background:#0f172a;border-color:#ffffff26}.listening-search-input-wrap input{color:#1e293b;background:0 0;border:none;outline:none;flex:1;font-size:13.5px}[data-theme=dark] .listening-search-input-wrap input{color:#f1f5f9}.clear-search-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.filter-dropdown-group{gap:10px;display:flex}.custom-filter-select{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;outline:none;height:42px;padding:0 14px;font-size:13px;font-weight:500}[data-theme=dark] .custom-filter-select{color:#cbd5e1;background:#0f172a;border-color:#ffffff26}.custom-dropdown-container{-webkit-user-select:none;user-select:none;position:relative}.custom-dropdown-trigger{color:#1e293b;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:8px;height:42px;padding:0 14px;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.custom-dropdown-trigger:hover{background:#f1f5f9;border-color:#94a3b8}.custom-dropdown-trigger.open{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.custom-dropdown-trigger .dropdown-chevron{color:#64748b;align-items:center;margin-left:auto;transition:transform .2s cubic-bezier(.16,1,.3,1);display:flex}.custom-dropdown-trigger.open .dropdown-chevron{color:#3b82f6;transform:rotate(180deg)}[data-theme=dark] .custom-dropdown-trigger{color:#e2e8f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172ad9;border-color:#ffffff1f}[data-theme=dark] .custom-dropdown-trigger:hover{background:#1e293be6;border-color:#ffffff38}[data-theme=dark] .custom-dropdown-trigger.open{border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf833}@keyframes customDropdownScaleFade{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.custom-dropdown-menu{z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:2px;min-width:210px;padding:6px;animation:.18s cubic-bezier(.16,1,.3,1) forwards customDropdownScaleFade;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px #0000001f,0 2px 6px #0000000f}[data-theme=dark] .custom-dropdown-menu{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172af5;border-color:#ffffff24;box-shadow:0 16px 36px #0009,0 0 1px #fff3}.custom-dropdown-menu.sleek-scrollbar,.custom-dropdown-menu{scrollbar-width:thin;scrollbar-color:#94a3b859 transparent}.custom-dropdown-menu::-webkit-scrollbar{width:5px}.custom-dropdown-menu::-webkit-scrollbar-track{background:0 0;margin:4px 0}.custom-dropdown-menu::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:999px;transition:background .2s}.custom-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#3b82f6b3}[data-theme=dark] .custom-dropdown-menu::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] .custom-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#38bdf899}.custom-dropdown-item{color:#334155;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}[data-theme=dark] .custom-dropdown-item{color:#cbd5e1}.custom-dropdown-item:hover{color:#0f172a;background:#f1f5f9}[data-theme=dark] .custom-dropdown-item:hover{color:#38bdf8;background:#3b82f624}.custom-dropdown-item.active{color:#2563eb;background:#3b82f61f;font-weight:600}[data-theme=dark] .custom-dropdown-item.active{color:#60a5fa;background:#3b82f638}.custom-dropdown-item .item-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.custom-dropdown-item .item-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.custom-dropdown-item .item-check{color:#38bdf8;margin-left:auto;font-size:12px}.catalog-results-header{color:#64748b;justify-content:space-between;align-items:center;padding:0 4px;font-size:13px;display:flex}[data-theme=dark] .catalog-results-header{color:#94a3b8}.catalog-results-header strong{color:#0f172a}[data-theme=dark] .catalog-results-header strong{color:#f1f5f9}.compact-pagination-controls{align-items:center;gap:8px;display:flex}.btn-page-step{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}[data-theme=dark] .btn-page-step{color:#cbd5e1;background:#1e293b;border-color:#ffffff26}.btn-page-step:disabled{opacity:.35;cursor:not-allowed}.page-indicator{font-size:12px;font-weight:600}.listening-cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.listening-track-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;padding:18px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}[data-theme=dark] .listening-track-card{background:#1e293b;border-color:#ffffff14}.listening-track-card:hover{border-color:#818cf8;transform:translateY(-2px);box-shadow:0 8px 20px #0000000f}[data-theme=dark] .listening-track-card:hover{border-color:#6366f1;box-shadow:0 8px 24px #00000059}.listening-track-card.is-completed{border-left:4px solid #10b981}.card-top-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card-level-badge{letter-spacing:.02em;border:1px solid #0000;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700}.card-source-badge{letter-spacing:.02em;border-radius:6px;align-items:center;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge-source-elllo{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}[data-theme=dark] .badge-source-elllo{color:#93c5fd;background:#3b82f626;border-color:#3b82f64d}.badge-source-hh{color:#b45309;background:#fffbeb;border:1px solid #fde68a}[data-theme=dark] .badge-source-hh{color:#fcd34d;background:#f59e0b26;border-color:#f59e0b4d}.badge-source-lc{color:#7e22ce;background:#faf5ff;border:1px solid #e9d5ff}[data-theme=dark] .badge-source-lc{color:#d8b4fe;background:#a855f726;border-color:#a855f74d}.track-source-pill{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:9999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}[data-theme=dark] .track-source-pill{color:#a5b4fc;background:#6366f126;border-color:#6366f14d}.audio-retry-box{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:inline-flex}[data-theme=dark] .audio-retry-box{background:#f43f5e26;border-color:#f43f5e4d}.audio-error-label{color:#e11d48;font-weight:600}[data-theme=dark] .audio-error-label{color:#fb7185}.btn-retry-audio{color:#fff;cursor:pointer;background:#e11d48;border:none;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;transition:background .15s;display:inline-flex}.btn-retry-audio:hover{background:#be123c}.card-duration-pill{color:#64748b;background:#f1f5f9;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}[data-theme=dark] .card-duration-pill{color:#94a3b8;background:#0f172a}.card-status-done-pill{color:#059669;background:#ecfdf5;border-radius:6px;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}[data-theme=dark] .card-status-done-pill{color:#34d399;background:#10b98126}.card-track-title{color:#0f172a;margin:0;font-size:16px;font-weight:700;line-height:1.35}[data-theme=dark] .card-track-title{color:#f1f5f9}.card-topic-tag{color:#6366f1;font-size:12.5px;font-weight:500}[data-theme=dark] .card-topic-tag{color:#a5b4fc}.card-footer-speakers{border-top:1px dashed #f1f5f9;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;display:flex}[data-theme=dark] .card-footer-speakers{border-top-color:#ffffff12}.speakers-list{flex-wrap:wrap;gap:8px;display:flex}.speaker-avatar-tag{color:#475569;align-items:center;gap:5px;font-size:12px;font-weight:500;display:inline-flex}[data-theme=dark] .speaker-avatar-tag{color:#cbd5e1}.speaker-avatar-tag .flag{font-size:14px}.btn-card-listen{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .15s;display:inline-flex}[data-theme=dark] .btn-card-listen{color:#4ade80;background:#22c55e1f;border-color:#22c55e40}.listening-track-card:hover .btn-card-listen{color:#fff;background:#16a34a;border-color:#15803d}.catalog-bottom-pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.btn-page-nav{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:600}[data-theme=dark] .btn-page-nav{color:#cbd5e1;background:#1e293b;border-color:#ffffff1f}.btn-page-nav:disabled{opacity:.35;cursor:not-allowed}.page-numbers-row{gap:6px;display:flex}.btn-page-num{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex}[data-theme=dark] .btn-page-num{color:#cbd5e1;background:#1e293b;border-color:#ffffff1f}.btn-page-num.active{color:#fff;background:#4f46e5;border-color:#4338ca;font-weight:800}.listening-desk-wrapper{flex-direction:column;gap:20px;width:100%;display:flex}.listening-desk-topbar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}[data-theme=dark] .listening-desk-topbar{background:#1e293b;border-color:#ffffff14}.back-catalog-btn{align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.listening-track-meta-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.level-pill{border:1px solid #0000;border-radius:6px;padding:4px 10px;font-size:11.5px;font-weight:700}.track-id-pill{color:#64748b;background:#f1f5f9;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700}[data-theme=dark] .track-id-pill{color:#94a3b8;background:#0f172a}.track-topic-pill{color:#6366f1;font-size:12px;font-weight:600}.completed-badge-pill{color:#059669;background:#ecfdf5;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.desk-track-nav-btns{gap:8px;display:flex}.btn-nav-arrow{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600}[data-theme=dark] .btn-nav-arrow{color:#cbd5e1;background:#0f172a;border-color:#ffffff1f}.listening-desk-layout{grid-template-columns:1.15fr .95fr;align-items:flex-start;gap:20px;display:grid}@media (max-width:960px){.listening-desk-layout{grid-template-columns:1fr}}.listening-desk-left{flex-direction:column;gap:18px;display:flex}.listening-player-card{color:#fff;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:18px;padding:24px;display:flex;box-shadow:0 10px 25px #0003}.player-header-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.track-title-info .track-title{color:#f8fafc;letter-spacing:-.01em;margin:0 0 8px;font-size:20px;font-weight:800}.speakers-row{flex-wrap:wrap;gap:10px;display:flex}.speaker-chip{color:#cbd5e1;background:#ffffff14;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:inline-flex}.audio-fallback-badge{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b66;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.player-progress-area{align-items:center;gap:12px;display:flex}.time-display{color:#94a3b8;min-width:38px;font-family:monospace;font-size:12px;font-weight:600}.audio-scrubber{accent-color:#6366f1;cursor:pointer;background:#ffffff26;border-radius:3px;flex:1;height:6px}.player-controls-row{justify-content:space-between;align-items:center;display:flex}.speed-selector-group{gap:4px;display:flex}.btn-speed-pill{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;border-radius:6px;padding:4px 8px;font-size:11.5px;font-weight:600;transition:all .15s}.btn-speed-pill.active{color:#fff;background:#6366f1;border-color:#4f46e5}.center-playback-group{align-items:center;gap:14px;display:flex}.btn-seek-skip{color:#f1f5f9;cursor:pointer;background:#ffffff1a;border:none;border-radius:20px;padding:8px 12px;font-size:12px;font-weight:700;transition:all .15s}.btn-seek-skip:hover{background:#fff3}.btn-play-pause-circle{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 4px 15px #6366f166}.btn-play-pause-circle:hover{background:#4f46e5;transform:scale(1.08)}.btn-play-pause-circle.playing{background:#10b981;box-shadow:0 4px 15px #10b98166}.play-triangle-icon{border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:15px solid #fff;width:0;height:0;margin-left:3px}.pause-icon-bars{gap:4px;display:flex}.pause-icon-bars span{background:#fff;border-radius:2px;width:4px;height:16px}.volume-control-group .btn-icon-subtle{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;padding:8px;display:flex}.listening-transcript-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:16px;padding:20px;display:flex}[data-theme=dark] .listening-transcript-card{background:#1e293b;border-color:#ffffff14}.transcript-card-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}[data-theme=dark] .transcript-card-header{border-bottom-color:#ffffff12}.header-title-flex{color:#0f172a;align-items:center;gap:8px;display:flex}[data-theme=dark] .header-title-flex{color:#f1f5f9}.header-title-flex h4{margin:0;font-size:15.5px;font-weight:700}.btn-conceal-toggle{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s}[data-theme=dark] .btn-conceal-toggle{color:#cbd5e1;background:#0f172a;border-color:#ffffff1f}.btn-conceal-toggle.active{color:#b45309;background:#fef3c7;border-color:#f59e0b}.transcript-dialogue-flow{flex-direction:column;gap:14px;max-height:520px;padding-right:6px;display:flex;overflow-y:auto}.concealed-overlay-notice{text-align:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;padding:40px 20px}[data-theme=dark] .concealed-overlay-notice{background:#0f172a;border-color:#ffffff1f}.notice-icon{margin-bottom:8px;font-size:32px}.concealed-overlay-notice h5{color:#0f172a;margin:0 0 6px;font-size:16px;font-weight:700}[data-theme=dark] .concealed-overlay-notice h5{color:#f1f5f9}.concealed-overlay-notice p{color:#64748b;margin:0;font-size:13.5px}.dialogue-line-card{align-items:flex-start;gap:12px;display:flex}.speaker-avatar-badge{color:#4338ca;background:#e0e7ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:flex;position:relative}[data-theme=dark] .speaker-avatar-badge{color:#c7d2fe;background:#312e81}.avatar-flag{font-size:11px;position:absolute;bottom:-2px;right:-2px}.dialogue-speech-bubble{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex:1;padding:12px 16px}[data-theme=dark] .dialogue-speech-bubble{background:#0f172a;border-color:#ffffff14}.bubble-meta{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.speaker-name{color:#1e293b;font-size:13px}[data-theme=dark] .speaker-name{color:#f1f5f9}.time-jump-tag{color:#6366f1;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11.5px;font-weight:600}.time-jump-tag:hover{background:#6366f11a}.speech-text{color:#334155;margin:0;font-size:14.5px;line-height:1.5}[data-theme=dark] .speech-text{color:#cbd5e1}.listening-desk-right{flex-direction:column;gap:16px;display:flex}.listening-tabs-bar{background:#f1f5f9;border-radius:10px;gap:4px;padding:4px;display:flex}[data-theme=dark] .listening-tabs-bar{background:#0f172a}.listening-tab-btn{color:#64748b;cursor:pointer;text-align:center;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 10px;font-size:13px;font-weight:600;transition:all .15s}[data-theme=dark] .listening-tab-btn{color:#94a3b8}.listening-tab-btn.active{color:#0f172a;background:#fff;box-shadow:0 1px 4px #00000014}[data-theme=dark] .listening-tab-btn.active{color:#fff;background:#1e293b}.tab-pane-content{background:#fff;border:1px solid #e2e8f0;border-radius:16px;min-height:400px;padding:20px}[data-theme=dark] .tab-pane-content{background:#1e293b;border-color:#ffffff14}.summary-section-box{margin-bottom:20px}.summary-section-box .section-title{color:#0f172a;margin:0 0 10px;font-size:15px;font-weight:700}[data-theme=dark] .summary-section-box .section-title{color:#f1f5f9}.summary-text-vi{color:#1e293b;margin:0 0 8px;font-size:14.5px;font-weight:500;line-height:1.6}[data-theme=dark] .summary-text-vi{color:#e2e8f0}.summary-text-en{color:#64748b;margin:0;font-size:14px;font-style:italic;line-height:1.5}[data-theme=dark] .summary-text-en{color:#94a3b8}.lesson-guide-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px}[data-theme=dark] .lesson-guide-box{background:#0f172a;border-color:#ffffff14}.lesson-guide-box h6{color:#0f172a;margin:0 0 10px;font-size:13.5px;font-weight:700}[data-theme=dark] .lesson-guide-box h6{color:#f1f5f9}.lesson-guide-box ul{color:#475569;margin:0;padding-left:18px;font-size:13px;line-height:1.6}[data-theme=dark] .lesson-guide-box ul{color:#cbd5e1}.quiz-questions-list{flex-direction:column;gap:20px;display:flex}.listening-quiz-card{background:#fafafa;border:1px solid #e2e8f0;border-radius:12px;padding:16px}[data-theme=dark] .listening-quiz-card{background:#0f172a;border-color:#ffffff14}.quiz-question-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.q-number-pill{color:#4338ca;background:#e0e7ff;border-radius:6px;flex-shrink:0;margin-top:2px;padding:3px 8px;font-size:11px;font-weight:700}[data-theme=dark] .q-number-pill{color:#c7d2fe;background:#312e81}.q-question-text{color:#0f172a;margin:0;font-size:14.5px;font-weight:600;line-height:1.4}[data-theme=dark] .q-question-text{color:#f1f5f9}.quiz-options-group{flex-direction:column;gap:8px;display:flex}.btn-quiz-option{color:#334155;cursor:pointer;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px;transition:all .15s;display:flex}[data-theme=dark] .btn-quiz-option{color:#cbd5e1;background:#1e293b;border-color:#ffffff1f}.btn-quiz-option:hover:not(:disabled){background:#f8fafc;border-color:#6366f1}.btn-quiz-option.option-selected{color:#4338ca;background:#eef2ff;border-color:#4f46e5;font-weight:600}[data-theme=dark] .btn-quiz-option.option-selected{color:#c7d2fe;background:#6366f133;border-color:#818cf8}.btn-quiz-option.option-correct{color:#047857;background:#ecfdf5;border-color:#10b981;font-weight:700}[data-theme=dark] .btn-quiz-option.option-correct{color:#6ee7b7;background:#10b98133;border-color:#34d399}.btn-quiz-option.option-wrong{color:#be123c;background:#fff1f2;border-color:#f43f5e}[data-theme=dark] .btn-quiz-option.option-wrong{color:#fda4af;background:#f43f5e33;border-color:#fb7185}.opt-letter{background:#0000000d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.quiz-feedback-box{border-radius:8px;flex-direction:column;gap:6px;margin-top:12px;padding:12px;font-size:13px;display:flex}.feedback-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}[data-theme=dark] .feedback-success{color:#86efac;background:#16653433;border-color:#22c55e4d}.feedback-danger{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3}[data-theme=dark] .feedback-danger{color:#fda4af;background:#9f123933;border-color:#f43f5e4d}.evidence-quote-box{background:#ffffffb3;border-left:3px solid #6366f1;border-radius:4px;padding:6px 10px}[data-theme=dark] .evidence-quote-box{background:#0003}.quote-label{text-transform:uppercase;color:#6366f1;margin-bottom:2px;font-size:11px;font-weight:700;display:block}.quote-content{margin:0;font-size:12.5px;font-style:italic}.quiz-bottom-actions{justify-content:flex-end;margin-top:20px;display:flex}.submit-quiz-btn{padding:10px 24px;font-size:14px}.quiz-completed-banner{background:#fefce8;border:1px solid #fef08a;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:14px 18px;display:flex}[data-theme=dark] .quiz-completed-banner{background:#eab30826;border-color:#eab3084d}.banner-left{align-items:center;gap:12px;display:flex}.banner-left h6{color:#854d0e;margin:0 0 2px;font-size:14.5px;font-weight:700}[data-theme=dark] .banner-left h6{color:#fef08a}.banner-left p{color:#a16207;margin:0;font-size:13px}[data-theme=dark] .banner-left p{color:#fef9c3}.gapfill-card{flex-direction:column;gap:16px;display:flex}.gapfill-prompt{color:#0f172a;margin:0;font-size:15px;font-weight:700}[data-theme=dark] .gapfill-prompt{color:#f1f5f9}.gapfill-sentence-box{background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;padding:20px}[data-theme=dark] .gapfill-sentence-box{background:#0f172a;border-color:#ffffff1f}.sentence-text{color:#1e293b;margin:0;font-size:16px;line-height:2.2}[data-theme=dark] .sentence-text{color:#f1f5f9}.gap-input-wrap{vertical-align:middle;flex-direction:column;margin:0 4px;display:inline-flex}.gap-input{color:#0f172a;text-align:center;background:#fff;border:2px dashed #6366f1;border-radius:6px;outline:none;width:140px;padding:4px 10px;font-size:15px;font-weight:600}[data-theme=dark] .gap-input{color:#fff;background:#1e293b}.gap-input.gap-correct{color:#047857;background:#ecfdf5;border-color:#10b981}.gap-input.gap-wrong{color:#be123c;background:#fff1f2;border-color:#f43f5e}.gap-hint-bubble{color:#d97706;margin-top:2px;font-size:11px;font-weight:600}.gap-actions-row{justify-content:space-between;align-items:center;display:flex}.gap-answers-reveal{background:#f1f5f9;border-radius:8px;padding:12px 16px;font-size:13px}[data-theme=dark] .gap-answers-reveal{background:#0f172a}.gap-answers-reveal h6{margin:0 0 6px;font-size:13px;font-weight:700}.gap-answers-reveal ul{margin:0;padding-left:18px}.vocab-cards-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.listening-vocab-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:6px;padding:14px;display:flex}[data-theme=dark] .listening-vocab-card{background:#0f172a;border-color:#ffffff14}.vocab-word-header{justify-content:space-between;align-items:center;display:flex}.vocab-word{color:#0f172a;margin-right:6px;font-size:15px;font-weight:700}[data-theme=dark] .vocab-word{color:#f1f5f9}.vocab-phonetic{color:#6366f1;font-family:monospace;font-size:12px}.btn-sound-trigger{color:#64748b;cursor:pointer;background:0 0;border:none;padding:4px}.btn-sound-trigger:hover{color:#4f46e5}.vocab-meaning-line{color:#1e293b;font-size:13px}[data-theme=dark] .vocab-meaning-line{color:#cbd5e1}.vocab-meaning-line .label,.vocab-example-line .label{color:#64748b;margin-right:4px;font-weight:600}.vocab-example-line{color:#64748b;font-size:12px;font-style:italic}.status-glow-yellow,.reading-doc-card.status-in-progress,.listening-catalog-card.status-in-progress,.history-item-card.status-in-progress{position:relative;border-color:#eab308!important;box-shadow:0 0 16px #eab3086b!important}.status-glow-green,.reading-doc-card.status-completed,.listening-catalog-card.status-completed,.history-item-card.status-completed{border-color:#10b981!important;box-shadow:0 0 16px #10b9816b!important}.status-glow-orange,.reading-doc-card.status-partial,.listening-catalog-card.status-partial,.history-item-card.status-partial{border-color:#f97316!important;box-shadow:0 0 16px #f973166b!important}.status-glow-red,.reading-doc-card.status-failed,.listening-catalog-card.status-failed,.history-item-card.status-failed{border-color:#ef4444!important;box-shadow:0 0 16px #ef44446b!important}.card-status-pill{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-in-progress{color:#854d0e;background:#fef9c3;border:1px solid #fde047}[data-theme=dark] .badge-in-progress{color:#fef08a;background:#eab30833;border-color:#eab30866}.badge-completed{color:#065f46;background:#ecfdf5;border:1px solid #6ee7b7}[data-theme=dark] .badge-completed{color:#a7f3d0;background:#10b98133;border-color:#10b98166}.badge-partial{color:#9a3412;background:#fff7ed;border:1px solid #fdba74}[data-theme=dark] .badge-partial{color:#fed7aa;background:#f9731633;border-color:#f9731666}.badge-failed{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5}[data-theme=dark] .badge-failed{color:#fecaca;background:#ef444433;border-color:#ef444466}.badge-favorite{color:#a16207;background:#fefce8;border:1px solid #facc15}[data-theme=dark] .badge-favorite{color:#fde047;background:#eab30838;border-color:#eab30873}.badge-not-started{color:#64748b;background:#f1f5f9;border:1px solid #cbd5e1}[data-theme=dark] .badge-not-started{color:#94a3b8;background:#94a3b826;border-color:#94a3b84d}.history-studio-wrapper{flex-direction:column;gap:20px;display:flex}.history-filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.history-category-tabs{flex-wrap:wrap;gap:8px;display:flex}.history-cat-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);color:var(--foreground-secondary);cursor:pointer;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.history-cat-btn:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-focus)}.history-cat-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #2563eb40}.history-cat-count{background:#00000014;border-radius:999px;justify-content:center;align-items:center;margin-left:2px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.history-cat-btn.active .history-cat-count{color:#fff;background:#ffffff40}[data-theme=dark] .history-cat-count{background:#ffffff1f}.history-cat-btn.fav-cat-btn{border-color:#eab30866}.history-cat-btn.fav-cat-btn.active{background:#ca8a04;border-color:#ca8a04;box-shadow:0 4px 14px #ca8a044d}.history-actions-group{align-items:center;gap:10px;display:flex}.btn-clear-history{border-radius:var(--radius-xs);border:1px solid var(--border);color:var(--foreground-muted);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;transition:all .15s;display:inline-flex}.btn-clear-history:hover{color:#ef4444;background:#ef44440d;border-color:#ef4444}.history-cards-flow{flex-direction:column;gap:12px;display:flex}.history-item-card{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.history-item-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000000f}.history-item-left{flex:1;align-items:center;gap:16px;display:flex}.history-type-avatar{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.history-type-avatar.vocab{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}[data-theme=dark] .history-type-avatar.vocab{color:#60a5fa;background:#2563eb26;border-color:#2563eb4d}.history-type-avatar.reading{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}[data-theme=dark] .history-type-avatar.reading{color:#4ade80;background:#16a34a26;border-color:#16a34a4d}.history-type-avatar.listening{color:#9333ea;background:#faf5ff;border:1px solid #e9d5ff}[data-theme=dark] .history-type-avatar.listening{color:#c084fc;background:#9333ea26;border-color:#9333ea4d}.history-type-avatar.favorite{color:#ca8a04;background:#fefce8;border:1px solid #fde047}[data-theme=dark] .history-type-avatar.favorite{color:#facc15;background:#eab3082e;border-color:#eab30859}.history-type-avatar.writing{color:#ea580c;background:#fff7ed;border:1px solid #fed7aa}[data-theme=dark] .history-type-avatar.writing{color:#fb923c;background:#ea580c2e;border-color:#ea580c59}.history-content-main{flex-direction:column;gap:4px;display:flex}.history-item-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.history-item-title{color:var(--foreground);margin:0;font-size:15px;font-weight:700}.history-item-subtitle{color:var(--foreground-secondary);margin:0;font-size:13.5px}.history-item-meta{color:var(--foreground-muted);align-items:center;gap:12px;font-size:12px;display:flex}.history-item-right{flex-shrink:0;align-items:center;gap:14px;display:flex}.history-score-display{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.history-score-text{color:var(--foreground);font-size:14px;font-weight:700}.history-timestamp{color:var(--foreground-muted);font-size:11.5px}.btn-history-action{border-radius:var(--radius-xs);background:var(--surface-muted);border:1px solid var(--border);color:var(--foreground);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-history-action:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-fav-icon-toggle{border-radius:var(--radius-sm);justify-content:center;align-items:center;transition:transform .15s cubic-bezier(.16,1,.3,1),background .15s,border-color .15s;display:inline-flex}.btn-fav-icon-toggle:hover{transform:scale(1.12)}.btn-fav-icon-toggle:active{transform:scale(.92)}.btn-practice-fav{align-items:center;gap:5px;transition:all .18s;display:inline-flex}.btn-practice-fav:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.history-empty-box{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--foreground-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.history-empty-box p{margin:0;font-size:14.5px}.writing-studio-container{flex-direction:column;gap:24px;width:100%;max-width:1850px;margin:0 auto;padding:16px 24px 60px;display:flex}.writing-studio-header{border-bottom:1px solid var(--border-color);flex-direction:column;gap:18px;padding-bottom:20px;display:flex}.header-brand-line{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.writing-title-group{flex-direction:column;gap:6px;display:flex}.writing-badge-chip{color:var(--primary);letter-spacing:.03em;background:#3b82f61a;border:1px solid #3b82f633;border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.writing-main-heading{color:var(--text-primary);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.writing-subheading{color:var(--text-secondary);max-width:720px;margin:0;font-size:14px;line-height:1.5}.writing-header-actions{align-items:center;gap:10px;display:flex}.studio-btn{border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.studio-btn-outline{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color)}.studio-btn-outline:hover{background:var(--bg-surface-subtle);border-color:var(--primary)}.studio-btn-gradient{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);box-shadow:0 4px 14px #2563eb40}.studio-btn-gradient:hover{transform:translateY(-1px);box-shadow:0 6px 20px #2563eb59}.writing-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.task-filter-chips{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:all .2s}.filter-chip:hover{background:var(--bg-surface-subtle);color:var(--text-primary)}.filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #3b82f64d}.writing-search-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:999px;align-items:center;gap:8px;min-width:280px;padding:6px 14px;display:flex}.toolbar-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-size:13px}.toolbar-search-input::placeholder{color:var(--text-muted)}.writing-workspace-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:stretch;gap:28px;display:grid}@media (max-width:1080px){.writing-workspace-grid{grid-template-columns:1fr;gap:20px}}.prompt-card-panel{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;gap:20px;padding:24px;display:flex}.prompt-header-bar{flex-direction:column;gap:12px;display:flex}.prompt-meta-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;padding:4px 10px;font-size:11.5px;font-weight:800}.task-badge.task-1{color:#10b981;background:#10b9811f;border:1px solid #10b98140}.task-badge.task-2{color:#6366f1;background:#6366f11f;border:1px solid #6366f140}.type-badge{background:var(--bg-surface-subtle);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.topic-badge{color:var(--primary);background:#3b82f614;border:1px solid #3b82f633;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.prompt-select-native{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);width:100%;color:var(--text-primary);cursor:pointer;outline:none;padding:10px 14px;font-size:13.5px;font-weight:600}.prompt-title{color:var(--text-primary);letter-spacing:-.01em;margin:0 0 14px;font-size:22px;font-weight:800;line-height:1.35}.prompt-text-box{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:16px;padding:16px 18px}.prompt-para{color:var(--text-primary);margin:0 0 12px;font-size:15.5px;line-height:1.72}.prompt-para:last-child{margin-bottom:0}.prompt-data-table-container{border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden}.data-table-header{background:var(--bg-surface-subtle);border-bottom:1px solid var(--border-color);padding:8px 12px}.data-table-title{color:var(--text-primary);font-size:12px;font-weight:700}.data-table-scroll{max-height:180px;overflow:auto}.prompt-data-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.prompt-data-table th,.prompt-data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:7px 10px}.prompt-data-table th{background:var(--bg-surface);font-weight:700;position:sticky;top:0}.prompt-outlining-box{border-radius:var(--radius-md);background:#f59e0b0f;border:1px dashed #f59e0b4d;margin-bottom:14px;padding:14px 16px}.outlining-header{color:#d97706;margin-bottom:8px;font-size:13.5px;font-weight:800;display:block}.outlining-list{color:var(--text-secondary);margin:0;padding-left:20px;font-size:14px;line-height:1.6}.outlining-list li{margin-bottom:6px}.prompt-keywords-wrap{flex-direction:column;gap:6px;display:flex}.keywords-label{color:var(--text-muted);font-size:12px;font-weight:700}.keywords-tags{flex-wrap:wrap;gap:6px;display:flex}.keyword-chip{background:var(--bg-surface-subtle);color:var(--primary);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.timer-widget{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.timer-widget.timer-alert{background:#ef444414;border-color:#ef4444}.timer-info{align-items:center;gap:10px;display:flex}.timer-running-icon{color:var(--primary);animation:1.5s ease-in-out infinite timerPulse}.timer-text-group{flex-direction:column;display:flex}.timer-label{color:var(--text-muted);text-transform:uppercase;font-size:11.5px;font-weight:700}.timer-digits{color:var(--text-primary);letter-spacing:.04em;font-family:monospace;font-size:20px;font-weight:900}.timer-controls{align-items:center;gap:8px;display:flex}.timer-toggle-btn{cursor:pointer;border:none;border-radius:6px;padding:7px 14px;font-size:12.5px;font-weight:700}.timer-toggle-btn.start{background:var(--primary);color:#fff}.timer-toggle-btn.pause{color:#fff;background:#f97316}.timer-reset-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:12px}.editor-card-panel{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;gap:16px;padding:22px;display:flex;position:relative}.editor-top-bar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;display:flex}.word-count-widget{flex-direction:column;gap:6px;min-width:240px;display:flex}.word-count-numbers{align-items:center;gap:6px;font-size:15px;display:flex}.current-count{font-size:21px;font-weight:900}.current-count.count-reached{color:#10b981}.current-count.count-pending{color:#f59e0b}.target-count{color:var(--text-secondary);font-size:15px;font-weight:600}.count-verified-badge{color:#10b981;background:#10b98126;border-radius:999px;align-items:center;gap:4px;margin-left:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.word-progress-bar-bg{background:var(--bg-surface-subtle);border-radius:999px;width:100%;height:6px;overflow:hidden}.word-progress-fill{border-radius:999px;height:100%;transition:width .3s}.progress-green{background:linear-gradient(90deg,#10b981,#059669)}.progress-amber{background:linear-gradient(90deg,#f59e0b,#d97706)}.auto-save-tag{color:var(--text-muted);align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.textarea-container{flex:1;width:100%;min-height:560px;display:flex}.essay-input-area{background:var(--bg-surface-subtle);border:1.5px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:560px;color:var(--text-primary);resize:vertical;outline:none;padding:22px 24px;font-family:inherit;font-size:16.5px;line-height:1.85;transition:border-color .2s,box-shadow .2s}.essay-input-area:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.grading-error-alert{color:#ef4444;border-radius:var(--radius-md);background:#ef44441a;border:1px solid #ef44444d;align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.editor-bottom-bar{justify-content:flex-end;align-items:center;gap:12px;display:flex}.action-btn-secondary{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s}.action-btn-secondary:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary);border-color:var(--text-muted)}.action-btn-primary{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border:none;align-items:center;gap:8px;padding:10px 24px;font-size:14px;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 14px #2563eb4d}.action-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #2563eb66}.action-btn-primary:disabled,.action-btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.studio-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite studioSpin}@keyframes studioSpin{to{transform:rotate(360deg)}}.grading-progress-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);z-index:20;background:#0f172abf;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.grading-progress-card{background:var(--bg-surface);border:1px solid var(--border-color);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:480px;padding:30px;display:flex;box-shadow:0 20px 40px #0006}.spinner-halo{border:3.5px solid #3b82f633;border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.9s linear infinite studioSpin}.progress-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:800}.progress-steps-list{text-align:left;flex-direction:column;gap:10px;width:100%;display:flex}.progress-step-item{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;transition:color .3s;display:flex}.progress-step-item.active{color:var(--text-primary);font-weight:600}.step-num{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:inline-flex}.progress-step-item.active .step-num{background:var(--primary);color:#fff;border-color:var(--primary)}.writing-results-studio{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:28px;margin-top:12px;padding:28px;animation:.4s cubic-bezier(.16,1,.3,1) resultSlideUp;display:flex}@keyframes resultSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-hero-card{background:linear-gradient(135deg,#3b82f614 0%,#6366f114 100%);border:1px solid #3b82f633;border-radius:16px;flex-wrap:wrap;align-items:center;gap:32px;padding:24px 30px;display:flex}.hero-score-badge-area{flex-direction:column;align-items:center;gap:8px;display:flex}.band-circle-wrapper{color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#3b82f6 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:110px;height:110px;display:flex;position:relative;box-shadow:0 8px 24px #2563eb66}.band-crown-icon{color:#fde047;position:absolute;top:10px}.band-number{margin-top:16px;font-size:34px;font-weight:900;line-height:1}.band-label{letter-spacing:.1em;opacity:.9;font-size:9px;font-weight:800}.cefr-badge-chip{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);border-radius:999px;padding:3px 10px;font-size:12px}.hero-verdict-area{flex:1;min-width:280px}.verdict-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.verdict-title{color:var(--text-primary);margin:0;font-size:20px;font-weight:800}.verdict-tags{align-items:center;gap:8px;display:flex}.metric-tag{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:600}.metric-tag.tag-warning{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.verdict-summary{color:var(--text-primary);margin:0;font-size:14.5px;line-height:1.6}.criteria-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.criteria-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:16px;display:flex}.criteria-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.criteria-name{color:var(--text-primary);font-size:13.5px;font-weight:700}.criteria-score-pill{background:var(--primary);color:#fff;border-radius:999px;padding:3px 9px;font-size:13px;font-weight:800}.criteria-progress-bg{background:var(--border-color);border-radius:999px;width:100%;height:6px;overflow:hidden}.criteria-progress-fill{background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:999px;height:100%}.criteria-feedback-text{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.5}.result-tabs-bar{border-bottom:1px solid var(--border-color);gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.result-tab-btn{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;transition:all .2s;display:inline-flex}.result-tab-btn:hover{background:var(--bg-surface-subtle);color:var(--text-primary)}.result-tab-btn.active{background:var(--bg-surface-subtle);color:var(--primary);border-bottom:2px solid var(--primary);border-radius:var(--radius-md) var(--radius-md) 0 0}.errors-list-grid{flex-direction:column;gap:14px;display:flex}.error-correction-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.error-card-header{justify-content:space-between;align-items:center;display:flex}.error-type-tag{text-transform:uppercase;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:800}.error-type-tag.grammar{color:#ef4444;background:#ef44441f}.error-type-tag.lexical{color:#f59e0b;background:#f59e0b1f}.error-type-tag.punctuation,.error-type-tag.spelling{color:#a855f7;background:#a855f71f}.error-idx{color:var(--text-muted);font-size:12px;font-weight:700}.error-comparison-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.comparison-box{border-radius:var(--radius-md);flex:1;min-width:220px;padding:10px 14px}.mistake-box{background:#ef44440f;border:1px solid #ef444433}.corrected-box{background:#10b98114;border:1px solid #10b98140}.box-label{margin-bottom:4px;font-size:11px;font-weight:700;display:block}.mistake-box .box-label{color:#dc2626}.corrected-box .box-label{color:#059669}.box-text{margin:0;font-size:13.5px;font-weight:600}.mistake-text{color:#b91c1c;text-decoration:line-through}.corrected-text{color:#047857}.comparison-arrow{color:var(--text-muted);font-size:18px;font-weight:800}.error-explanation-box{color:var(--text-secondary);background:var(--bg-surface);border-radius:6px;padding:8px 12px;font-size:13px;line-height:1.5}.no-errors-card{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.sw-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (max-width:768px){.sw-grid{grid-template-columns:1fr}}.sw-column{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:18px 20px}.sw-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.sw-header h4{color:var(--text-primary);margin:0;font-size:16px;font-weight:800}.sw-icon-circle{border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:inline-flex}.sw-icon-circle.green{color:#10b981;background:#10b98126}.sw-icon-circle.orange{color:#f97316;background:#f9731626}.sw-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.sw-item{color:var(--text-primary);align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.5;display:flex}.advice-card-panel{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:18px;padding:22px;display:flex}.advice-header-line{align-items:center;gap:12px;display:flex}.advice-icon{color:var(--primary)}.advice-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:800}.advice-desc{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.advice-steps-grid{flex-direction:column;gap:10px;display:flex}.advice-step-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:16px;padding:14px 18px;display:flex}.step-counter{color:var(--primary);font-family:monospace;font-size:16px;font-weight:900}.step-content{color:var(--text-primary);margin:0;font-size:13.5px;line-height:1.5}.sample-rewrite-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:16px;padding:22px;display:flex}.sample-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sample-title-group{align-items:center;gap:8px;display:flex}.sample-title-group h4{color:var(--text-primary);margin:0;font-size:17px;font-weight:800}.model-badge{color:#10b981;background:#10b9811f;border:1px solid #10b9814d;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.copy-sample-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all .2s}.copy-sample-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.sample-content-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px}.sample-paragraph{color:var(--text-primary);margin:0 0 14px;font-size:14.5px;line-height:1.75}.sample-paragraph:last-child{margin-bottom:0}.result-bottom-actions{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.writing-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.writing-modal-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;width:100%;max-width:520px;animation:.25s cubic-bezier(.16,1,.3,1) modalScale;display:flex;overflow:hidden;box-shadow:0 24px 48px #0000004d}@keyframes modalScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-title-group{color:var(--primary);align-items:center;gap:8px;display:flex}.modal-title-group h3{color:var(--text-primary);margin:0;font-size:17px;font-weight:800}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.modal-body{flex-direction:column;gap:16px;padding:22px;display:flex}.modal-field{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--text-primary);font-size:13px;font-weight:700}.modal-task-radios{gap:10px;display:flex}.task-radio-item{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;flex:1;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;font-weight:600;transition:all .2s;display:flex}.task-radio-item.active{border-color:var(--primary);color:var(--primary);background:#3b82f614}.modal-select,.modal-input{border-radius:var(--radius-md);background:var(--bg-surface-subtle);border:1px solid var(--border-color);width:100%;color:var(--text-primary);outline:none;padding:10px 14px;font-size:13.5px}.modal-select:focus,.modal-input:focus{border-color:var(--primary)}.modal-footer{border-top:1px solid var(--border-color);background:var(--bg-surface-subtle);justify-content:flex-end;align-items:center;gap:10px;padding:16px 22px;display:flex}.modal-cancel-btn{border-radius:var(--radius-md);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;padding:8px 16px;font-size:13px;font-weight:600}.modal-submit-btn{border-radius:var(--radius-md);background:var(--primary);color:#fff;cursor:pointer;border:none;padding:8px 18px;font-size:13px;font-weight:700}.modal-submit-btn:disabled{opacity:.5;cursor:not-allowed}html,body,*{scrollbar-width:thin;scrollbar-color:#94a3b859 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:999px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#94a3b899}[data-theme=dark],[data-theme=dark] *{scrollbar-color:#94a3b840 transparent}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#94a3b840}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#94a3b880}.custom-test-selector-container{-webkit-user-select:none;user-select:none;display:inline-block;position:relative}.custom-test-selector-trigger{background:var(--bg-surface);border:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);text-align:left;border-radius:14px;outline:none;align-items:center;gap:10px;padding:8px 16px;font-family:inherit;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 2px 8px #0000000a}.custom-test-selector-trigger:hover{border-color:var(--primary);box-shadow:0 4px 14px var(--primary-glow);transform:translateY(-1px)}.custom-test-selector-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.test-selector-lead{align-items:center;gap:6px;display:flex}.test-selector-icon{color:var(--primary);justify-content:center;align-items:center;display:flex}.custom-test-selector-trigger .selector-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:12px;font-weight:700}.test-selector-current{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;max-width:480px;font-size:13.5px;display:flex;overflow:hidden}.test-current-title{color:var(--text-primary);font-weight:700}.test-current-separator{color:var(--text-muted);opacity:.6}.test-current-topic{color:var(--text-secondary);text-overflow:ellipsis;font-weight:500;overflow:hidden}.test-selector-chevron{color:var(--text-muted);justify-content:center;align-items:center;margin-left:4px;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex}.test-selector-chevron.rotated{color:var(--primary);transform:rotate(180deg)}.custom-test-dropdown-menu{background:var(--bg-surface);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1000;border-radius:18px;flex-direction:column;min-width:480px;max-width:580px;max-height:480px;padding:8px 8px 10px;animation:.2s cubic-bezier(.16,1,.3,1) testDropdownFadeIn;display:flex;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 16px 40px #0003,0 0 0 1px #0000000d}[data-theme=dark] .custom-test-dropdown-menu{background:#0d1527;border-color:#ffffff1f;box-shadow:0 20px 48px #0009,0 0 0 1px #ffffff14}@keyframes testDropdownFadeIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.test-dropdown-header{border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px 10px;font-size:11.5px;font-weight:700;display:flex}.test-count-badge{background:var(--primary-glow);color:var(--primary);border-radius:999px;padding:2px 8px;font-size:11px}.test-dropdown-items-list{flex-direction:column;gap:4px;max-height:350px;padding-right:4px;display:flex;overflow-y:auto}.test-dropdown-item{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 14px;transition:all .18s;display:flex}.test-dropdown-item:hover{background:#3b82f614;border-color:#3b82f633;transform:translate(2px)}[data-theme=dark] .test-dropdown-item:hover{background:#3b82f626;border-color:#3b82f64d}.test-dropdown-item.selected{background:var(--primary-glow);border-color:#3b82f659}[data-theme=dark] .test-dropdown-item.selected{background:#3b82f633;border-color:#3b82f680}.test-item-left{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.test-item-badge-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.test-item-id-badge{color:var(--text-primary);font-size:12.5px;font-weight:800}.test-dropdown-item.selected .test-item-id-badge{color:var(--primary)}.test-item-task-types{align-items:center;gap:6px;display:flex}.task-pill{border-radius:6px;padding:1.5px 7px;font-size:10.5px;font-weight:600;line-height:1.3}.task-pill.t1{color:#10b981;background:#10b9811f;border:1px solid #10b98140}.task-pill.t2{color:#8b5cf6;background:#8b5cf61f;border:1px solid #8b5cf640}.test-item-topic{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.test-item-check{color:var(--primary);justify-content:center;align-items:center;padding-left:10px;display:flex}@media (max-width:768px){.custom-test-dropdown-menu{min-width:100%;max-width:calc(100vw - 32px)}.test-selector-current{max-width:220px}}.test-task-tabs-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:640px){.test-task-tabs-row{grid-template-columns:1fr}}.test-task-tab{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:12px 18px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.test-task-tab:hover{border-color:var(--primary);background:var(--bg-surface-subtle)}.test-task-tab.active{border-color:var(--primary);background:#3b82f614;box-shadow:0 4px 12px #3b82f626}.task-tab-badge{text-transform:uppercase;border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:800}.task-tab-badge.task-1{color:#10b981;background:#10b98126}.task-tab-badge.task-2{color:#6366f1;background:#6366f126}.task-tab-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;font-weight:700;overflow:hidden}.task-tab-meta{color:var(--text-muted);white-space:nowrap;font-size:11.5px;font-weight:600}.prompt-body-scrollable{flex-direction:column;gap:14px;max-height:820px;padding-right:6px;display:flex;overflow-y:auto}.editor-mode-switch{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:4px;padding:3px;display:flex}.mode-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.mode-btn:hover:not(:disabled){color:var(--text-primary)}.mode-btn.active{background:var(--bg-surface);color:var(--primary);font-weight:700;box-shadow:0 1px 4px #0000001a}.mode-btn:disabled{opacity:.4;cursor:not-allowed}.marked-essay-container{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:560px;max-height:820px;padding:18px 20px;overflow-y:auto}.marked-essay-header{border-bottom:1px solid var(--border-color);margin-bottom:14px;padding-bottom:12px}.marked-title{color:var(--text-secondary);font-size:12.5px;line-height:1.5}.marked-essay-body{color:var(--text-primary);font-size:15px;line-height:1.85}.marked-paragraph{margin-bottom:14px}.inline-error-red{cursor:pointer;background:#ef44441f;border-bottom:2px solid #ef4444;border-radius:4px;padding:2px 4px;font-weight:600;transition:background .15s;position:relative;color:#dc2626!important}.inline-error-red:hover{background:#ef444438}[data-theme=dark] .inline-error-red{background:#f8717129;border-bottom-color:#f87171;color:#f87171!important}.error-mark-badge{color:#fff;vertical-align:super;background:#ef4444;border-radius:999px;margin-left:3px;padding:0 4px;font-size:9.5px;font-weight:900}.error-tooltip-floating{background:var(--bg-surface);z-index:100;border:1.5px solid #ef4444;border-radius:12px;flex-direction:column;gap:8px;max-width:380px;padding:14px 18px;animation:.2s cubic-bezier(.16,1,.3,1) modalScale;display:flex;position:absolute;bottom:80px;right:30px;box-shadow:0 12px 28px #ef444440}.tooltip-top{justify-content:space-between;align-items:center;display:flex}.tooltip-type-tag{color:#ef4444;text-transform:uppercase;background:#ef444426;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:800}.tooltip-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.tooltip-row{align-items:baseline;gap:8px;font-size:13px;display:flex}.tooltip-label{color:var(--text-secondary);font-size:11.5px;font-weight:700}.tooltip-wrong{color:#dc2626;font-weight:600;text-decoration:line-through}.tooltip-correct{color:#10b981;font-weight:700}.tooltip-exp{color:var(--text-secondary);background:var(--bg-surface-subtle);border-radius:6px;padding:6px 10px;font-size:12.5px;line-height:1.4}.marked-essay-guide-banner{border-radius:var(--radius-md);color:var(--text-primary);background:#ef444414;border:1px solid #ef444433;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.guide-dot.red{background:#ef4444;border-radius:50%;flex-shrink:0;width:10px;height:10px}.marked-essay-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);max-height:480px;padding:20px 24px;overflow-y:auto}.action-btns-group{align-items:center;gap:10px;display:flex}.auth-floating-controls{z-index:50;align-items:center;gap:10px;display:flex;position:absolute;top:20px;right:20px}.auth-lang-selector{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:999px;padding:4px 10px}.auth-lang-native-select{color:var(--text-primary);cursor:pointer;background:0 0;border:none;outline:none;font-size:12px;font-weight:600}.ielts-exam-chart-card{background:var(--bg-surface-subtle);border:1.5px solid var(--border-color);border-radius:16px;flex-direction:column;gap:14px;margin-top:6px;margin-bottom:12px;padding:18px 20px;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 4px 16px #00000008}[data-theme=dark] .ielts-exam-chart-card{background:#0f172abf;border-color:#ffffff1a;box-shadow:0 8px 24px #00000059}.exam-chart-card-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding-bottom:12px;display:flex}.header-left-title{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.exam-figure-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);background:var(--primary-glow);border-radius:6px;width:fit-content;padding:3px 10px;font-size:11px;font-weight:800}.exam-chart-label{color:var(--text-primary);font-size:16px;font-weight:800;line-height:1.35}.fullscreen-expand-btn{background:var(--bg-surface);color:var(--primary);border:1.2px solid var(--border-color);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:7px 15px;font-size:13px;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 6px #0000000a}.fullscreen-expand-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px var(--primary-glow);transform:translateY(-1px)}.exam-chart-body-zoomable{cursor:zoom-in;border:1px solid #0000;border-radius:12px;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.exam-chart-body-zoomable:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.exam-chart-body-zoomable:hover .chart-zoom-hint-tag{opacity:1;transform:translateY(0)}.chart-zoom-hint-tag{color:#fff;-webkit-backdrop-filter:blur(8px);pointer-events:none;opacity:.88;z-index:10;background:#0f172ae0;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:700;transition:all .2s;display:inline-flex;position:absolute;bottom:12px;right:12px;transform:translateY(0);box-shadow:0 4px 14px #00000059}.chart-inner-content{flex-direction:column;gap:14px;width:100%;display:flex}.chart-official-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.figure-caption-text{color:var(--text-secondary);flex:1;min-width:220px;font-size:14.5px;line-height:1.55}.figure-caption-text strong{color:var(--text-primary);font-size:15px;font-weight:800}.chart-quick-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chart-filter-tag{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;transition:all .18s}.chart-filter-tag:hover{border-color:var(--primary);color:var(--primary)}.chart-filter-tag.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px var(--primary-glow)}.chart-filter-tag.wind.active{background:#10b981;border-color:#10b981;box-shadow:0 2px 8px #10b9814d}.chart-filter-tag.solar.active{background:#f59e0b;border-color:#f59e0b;box-shadow:0 2px 8px #f59e0b4d}.chart-filter-tag.hydro.active{background:#3b82f6;border-color:#3b82f6;box-shadow:0 2px 8px #3b82f64d}.svg-canvas-container{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;width:100%;padding:14px 16px 10px;overflow:hidden;box-shadow:inset 0 1px 3px #00000005}[data-theme=dark] .svg-canvas-container{background:#090e1a;border-color:#ffffff14}.svg-canvas-container.process-canvas{background:#f8fafc;padding:10px}[data-theme=dark] .svg-canvas-container.process-canvas{background:#070d18}.ielts-main-svg{width:100%;height:auto;display:block}.bar-hover-item{transition:opacity .15s}.bar-hover-item:hover rect{opacity:.92;filter:brightness(1.12)}.chart-legend-box{justify-content:center;align-items:center;padding:6px 0 2px;display:flex}.legend-row{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;font-size:13px;display:flex}.legend-entry{align-items:center;gap:7px;font-size:13px;display:flex}.legend-swatch{border-radius:3px;flex-shrink:0;width:16px;height:12px;display:inline-block}.legend-swatch.striped{border:1.5px solid}.legend-shape{font-size:14px}.process-summary-footer{padding:6px 0 2px}.summary-pill{color:#10b981;background:#10b98114;border:1px solid #10b98140;border-radius:12px;padding:10px 16px;font-size:13.5px;line-height:1.55;display:block}[data-theme=dark] .summary-pill{color:#34d399;background:#10b9811f}.dual-pie-charts-wrapper{flex-wrap:wrap;justify-content:space-around;align-items:center;gap:24px;padding:14px 8px;display:flex}.pie-item-col{flex-direction:column;align-items:center;gap:8px;display:flex}.pie-year-title{background:var(--primary-glow);color:var(--primary);border:1px solid var(--border-color);border-radius:999px;padding:4px 18px;font-size:16px;font-weight:800}.pie-svg{filter:drop-shadow(0 4px 12px #00000014)}.pie-sub-label{color:var(--text-muted);font-size:12.5px;font-weight:600}.official-table-wrapper{border:1.5px solid var(--border-color);background:var(--bg-surface);border-radius:14px;width:100%;overflow-x:auto;box-shadow:0 4px 16px #0000000a}[data-theme=dark] .official-table-wrapper{background:#0a101f;border-color:#ffffff1a}.cambridge-exam-table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.5}.cambridge-exam-table th{background:var(--bg-surface-subtle);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:2px solid var(--border-color);white-space:nowrap;padding:14px 18px;font-size:13.5px;font-weight:800}[data-theme=dark] .cambridge-exam-table th{color:#94a3b8;background:#ffffff0d}.cambridge-exam-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:14px 18px;font-size:15px}.cambridge-exam-table tr:last-child td{border-bottom:none}.cambridge-exam-table tr:hover td{background:var(--bg-surface-hover)}.cambridge-exam-table .region-name{color:var(--text-primary);white-space:nowrap;font-size:15px;font-weight:700}.cambridge-exam-table .num-col{font-family:var(--font-mono);text-align:center;font-size:15.5px;font-weight:700}.cambridge-exam-table .num-col.highlighted{color:var(--primary);font-weight:800}.delta-badge{color:var(--primary);font-size:13px;font-weight:800;font-family:var(--font-mono);background:#3b82f61f;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;display:inline-flex}.delta-badge.surge{color:#10b981;background:#10b9812e}.scenario-voucher-sheet{background:linear-gradient(135deg,#ef44440d,#f59e0b0d);border:1.5px solid #ef444440;border-radius:14px;flex-direction:column;gap:12px;padding:20px 22px;display:flex;position:relative;overflow:hidden}[data-theme=dark] .scenario-voucher-sheet{background:linear-gradient(135deg,#ef444414,#f59e0b0a);border-color:#ef444459}.voucher-watermark{text-transform:uppercase;letter-spacing:.08em;color:#ef4444;background:#ef44441f;border:1px solid #ef444440;border-radius:4px;padding:3px 10px;font-size:10.5px;font-weight:900;position:absolute;top:14px;right:16px}.voucher-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:14.5px;display:flex}.vr-key{color:var(--text-primary);font-weight:700}.vr-val{color:var(--text-secondary);margin-right:16px}.voucher-divider{border-top:1px dashed #ef444440;height:1px;margin:4px 0}.voucher-incidents-title{color:#ef4444;font-size:14.5px;font-weight:800}.voucher-incidents-ordered{color:var(--text-primary);margin:0;padding-left:20px;font-size:14px;line-height:1.65}.voucher-incidents-ordered li{margin-bottom:6px}.chart-fullscreen-modal-backdrop{-webkit-backdrop-filter:blur(10px);z-index:10000;background:#000000d1;justify-content:center;align-items:center;padding:24px;animation:.2s cubic-bezier(.16,1,.3,1) chartModalFadeIn;display:flex;position:fixed;inset:0}@keyframes chartModalFadeIn{0%{opacity:0}to{opacity:1}}.chart-fullscreen-modal-window{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:20px;flex-direction:column;width:96vw;max-width:1280px;height:92vh;max-height:900px;animation:.25s cubic-bezier(.16,1,.3,1) chartModalScaleUp;display:flex;overflow:hidden;box-shadow:0 25px 60px #00000080,0 0 0 1px #ffffff14}[data-theme=dark] .chart-fullscreen-modal-window{background:#0b1120;border-color:#ffffff1f}@keyframes chartModalScaleUp{0%{opacity:0;transform:scale(.96)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.fullscreen-modal-header{border-bottom:1px solid var(--border-color);background:var(--bg-surface-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;display:flex}[data-theme=dark] .fullscreen-modal-header{background:#0f172ad9}.modal-title-group{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.modal-cambridge-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);font-size:11px;font-weight:800}.modal-chart-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:800;overflow:hidden}.modal-zoom-controls{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex;box-shadow:0 2px 8px #0000000f}[data-theme=dark] .modal-zoom-controls{background:#111827;border-color:#ffffff26}.zoom-btn{width:28px;height:28px;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;line-height:1;transition:all .15s;display:flex}.zoom-btn:hover{background:var(--bg-surface-subtle);border-color:var(--border-color);color:var(--primary)}.zoom-btn.reset{background:var(--bg-surface-subtle);border-color:var(--border-color);border-radius:999px;width:auto;height:28px;padding:0 10px;font-size:11.5px;font-weight:800}.zoom-btn.reset:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.zoom-indicator-text{text-align:center;min-width:44px;font-size:12px;font-weight:800;font-family:var(--font-mono);color:var(--primary)}.modal-close-btn{color:#ef4444;cursor:pointer;background:#ef44441a;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-left:6px;transition:all .15s;display:flex}.modal-close-btn:hover{color:#fff;background:#ef4444;transform:rotate(90deg)}.fullscreen-modal-scrollable{background:var(--bg-canvas);flex:1;justify-content:center;align-items:flex-start;padding:24px;display:flex;overflow:auto}[data-theme=dark] .fullscreen-modal-scrollable{background:#060913}.fullscreen-modal-canvas{flex-direction:column;align-items:center;width:100%;max-width:1100px;margin:0 auto;display:flex}.fullscreen-modal-footer{border-top:1px solid var(--border-color);color:var(--text-muted);text-align:center;background:var(--bg-surface-subtle);flex-shrink:0;padding:10px 22px;font-size:12px}[data-theme=dark] .fullscreen-modal-footer{background:#0f172ad9}.dual-pie-charts-wrapper{flex-flow:wrap;justify-content:center;align-items:flex-start;gap:28px;width:100%;display:flex}.modal-pie-mode .dual-pie-charts-wrapper,.modal-dual-pie{padding:10px 0;flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:56px!important;width:100%!important;display:flex!important}.pie-item-col{flex-direction:column;flex:1;align-items:center;min-width:250px;max-width:360px;display:flex}.modal-dual-pie .pie-item-col{max-width:460px}.pie-svg{filter:drop-shadow(0 4px 12px #0000001a);width:100%;max-width:320px;height:auto;overflow:visible}.modal-pie-svg{filter:drop-shadow(0 8px 24px #00000040)!important;max-width:440px!important}.pie-year-title{color:#fff;letter-spacing:.03em;background:#2563eb;border-radius:20px;margin-bottom:12px;padding:4px 18px;font-size:15px;font-weight:800;display:inline-block;box-shadow:0 2px 8px #2563eb59}.modal-dual-pie .pie-year-title{margin-bottom:16px;padding:6px 22px;font-size:17px}.pie-sub-label{color:var(--text-muted);margin-top:8px;font-size:12px;font-weight:600}.chart-legend-box{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:900px;margin-top:24px;margin-left:auto;margin-right:auto;padding:14px 20px}.legend-row.wrap-legend{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.legend-entry{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.legend-swatch.solid{border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.writing-top-mode-nav{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:12px 18px;display:flex;box-shadow:0 2px 8px #0000000a}.writing-mode-switcher-group{align-items:center;gap:8px;display:flex}.writing-mode-tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex}.writing-mode-tab-btn:hover{background:var(--bg-surface-subtle);color:var(--text-primary)}.writing-mode-tab-btn.active{color:#fff;background:#2563eb;border-color:#2563eb;box-shadow:0 2px 8px #2563eb47}.writing-active-test-pill{color:#2563eb;background:#2563eb1a;border:1px solid #2563eb33;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}[data-theme=dark] .writing-active-test-pill{color:#93c5fd;background:#3b82f62e;border-color:#3b82f64d}.writing-catalog-view{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;display:flex}.writing-catalog-hero{background:linear-gradient(135deg,#2563eb14 0%,#7c3aed14 100%);border:1px solid #2563eb2e;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:24px 28px;display:flex}[data-theme=dark] .writing-catalog-hero{background:linear-gradient(135deg,#1e3a8a40 0%,#581c8740 100%);border-color:#3b82f64d}.hero-badge-tag{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:#2563eb;border-radius:20px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.writing-catalog-hero h2{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:6px;font-size:24px;font-weight:800}.writing-catalog-hero p{color:var(--text-secondary);font-size:14px;line-height:1.5}.hero-stats-row{align-items:center;gap:14px;display:flex}.hero-stat-pill{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;align-items:center;padding:10px 18px;display:flex;box-shadow:0 2px 6px #0000000a}.hero-stat-num{color:#2563eb;font-size:20px;font-weight:800;line-height:1.1}.hero-stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:11px;font-weight:600}.writing-filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.chart-filter-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chart-filter-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:all .15s}.chart-filter-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent)}.chart-filter-btn.active{color:#fff;background:#2563eb;border-color:#2563eb}.writing-search-box{align-items:center;min-width:250px;display:flex;position:relative}.writing-search-box input{background:var(--bg-surface);border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:8px 14px 8px 36px;font-size:13px;transition:border-color .15s}.writing-search-box input:focus{border-color:#2563eb}.writing-search-icon{color:var(--text-muted);position:absolute;left:11px}.writing-cards-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px;display:grid}.writing-test-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1),border-color .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 14px #0000000a}.writing-test-card:hover{border-color:#2563eb66;transform:translateY(-4px);box-shadow:0 12px 28px #0000001a}.writing-test-card.active-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb40,0 8px 24px #2563eb1f}.test-card-cover-art{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);justify-content:center;align-items:center;height:140px;display:flex;position:relative;overflow:hidden}.test-chart-preview-bg,.test-chart-blurred-bg{opacity:.95;pointer-events:none;justify-content:center;align-items:center;transition:transform .25s;display:flex;position:absolute;inset:0}.writing-test-card:hover .test-chart-preview-bg,.writing-test-card:hover .test-chart-blurred-bg{transform:scale(1.04)}.mini-chart-img-cover-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.mini-chart-actual-img{object-fit:cover;object-position:center;width:100%;height:100%}.mini-chart-svg{width:100%;height:100%}.test-card-cover-overlay{z-index:1;pointer-events:none;background:linear-gradient(#0f172a73 0%,#0f172ae0 100%);position:absolute;inset:0}.test-card-cover-top{z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute;top:12px;left:14px;right:14px}.test-card-id-badge{color:#fff;letter-spacing:.02em;background:#2563eb;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700;box-shadow:0 2px 6px #00000040}.test-card-type-tag{-webkit-backdrop-filter:blur(8px);color:#fff;text-shadow:0 1px 2px #0000004d;background:#ffffff38;border:1px solid #ffffff59;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.test-card-cover-title{z-index:2;position:absolute;bottom:12px;left:14px;right:14px}.test-card-cover-title h4{color:#fff;text-shadow:0 2px 6px #000c;margin:0;font-size:15px;font-weight:800;line-height:1.3}.test-card-body{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex}.test-tasks-preview-box{background:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.task-preview-row{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.4;display:flex}.task-badge-pill{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:800}.task-badge-pill.t1{color:#2563eb;background:#2563eb26}.task-badge-pill.t2{color:#9333ea;background:#a855f726}[data-theme=dark] .task-badge-pill.t1{color:#93c5fd;background:#3b82f638}[data-theme=dark] .task-badge-pill.t2{color:#d8b4fe;background:#a855f738}.task-preview-title{-webkit-line-clamp:2;color:var(--text-primary);-webkit-box-orient:vertical;font-size:12px;font-weight:500;display:-webkit-box;overflow:hidden}.test-card-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.test-meta-pill{color:var(--text-muted);background:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.test-meta-pill.standard{color:#10b981;background:#10b9811a;border-color:#10b98133;font-weight:700}.test-card-footer{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}.test-ready-status{color:var(--text-muted);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:inline-flex}.status-dot{background:#10b981;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 6px #10b981}.btn-start-writing-exam{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .18s;display:inline-flex}.btn-start-writing-exam:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb59}.btn-back-to-catalog{background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn-back-to-catalog:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent)}.process-diagram-container{flex-direction:column;gap:16px;width:100%;display:flex}.process-step-nav-bar{scrollbar-width:thin;align-items:center;gap:8px;padding:4px 2px 10px;display:flex;overflow-x:auto}.step-nav-pill{border:1px solid var(--border-color);background:var(--bg-surface-subtle);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:6px 13px;font-size:12px;font-weight:600;transition:all .18s;display:inline-flex}.step-nav-pill:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent)}.step-nav-pill.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #2563eb4d}.step-pill-num{background:#ffffff40;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10.5px;font-weight:800;display:inline-flex}.step-nav-pill.active .step-pill-num{color:var(--accent);background:#fff}.process-canvas-modern{background:#0f172a;border:1px solid #ffffff1f;border-radius:14px;width:100%;overflow:hidden;box-shadow:0 4px 20px #00000040}.process-svg-canvas{width:100%;height:auto;display:block}.process-stage-node{transition:transform .2s,opacity .2s}.process-stage-node:hover{filter:brightness(1.15);transform:translateY(-2px)}.process-stage-node.highlighted{filter:drop-shadow(0 0 12px #fff9)}.process-stage-inspector-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;padding:16px 18px;box-shadow:0 2px 10px #0000000a}.stage-detail-content{flex-direction:column;gap:12px;display:flex}.stage-detail-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.stage-title-group{align-items:center;gap:10px;display:flex}.stage-badge-tag{color:#fff;letter-spacing:.03em;text-shadow:0 1px 2px #0000004d;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:800}.stage-main-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:800}.stage-location-tag{color:var(--text-muted);font-size:12px}.stage-location-tag strong{color:var(--text-primary)}.stage-mechanism-box{background:var(--bg-surface-subtle);border-left:3px solid #3b82f6;border-radius:8px;align-items:baseline;gap:8px;padding:8px 12px;font-size:12.5px;display:flex}.mechanism-label{color:var(--text-secondary);flex-shrink:0;font-weight:700}.mechanism-text{color:var(--text-primary)}.stage-band8-box{background:linear-gradient(135deg,#2563eb14 0%,#6366f114 100%);border:1px solid #3b82f640;border-radius:10px;padding:12px 14px}.band8-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.band8-badge{color:#fff;background:#2563eb;border-radius:6px;padding:2px 8px;font-size:10.5px;font-weight:800}.band8-hint{color:var(--text-muted);font-size:11px;font-style:italic}.band8-sentence{color:var(--text-primary);margin:0;font-size:13.5px;font-style:italic;font-weight:600;line-height:1.5}.stage-keywords-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kw-header{color:var(--text-secondary);font-size:12px;font-weight:700}.kw-chips-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kw-chip{background:var(--bg-surface-subtle);border:1px solid var(--border-color);color:#3b82f6;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.process-overview-summary-box{flex-direction:column;gap:14px;display:flex}.overview-summary-head{align-items:flex-start;gap:12px;display:flex}.overview-icon{font-size:24px;line-height:1}.overview-summary-head h4{color:var(--text-primary);margin:0 0 4px;font-size:14px;font-weight:800}.overview-summary-head p{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.5}.overview-steps-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.mini-step-card{background:var(--bg-surface-subtle);border:1px solid var(--border-color);cursor:pointer;border-left-width:4px;border-radius:8px;padding:8px 10px;transition:all .16s}.mini-step-card:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-1px)}.mini-step-top{align-items:center;gap:6px;margin-bottom:2px;display:flex}.mini-num{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9.5px;font-weight:900;display:inline-flex}.mini-name{color:var(--text-primary);font-size:11px;font-weight:700}.mini-sub{color:var(--text-muted);font-size:10px}.dual-map-canvas-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:10px;display:grid}.map-view-column{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;overflow:hidden}.map-year-badge{letter-spacing:.02em;border-radius:6px;align-self:flex-start;padding:3px 10px;font-size:11.5px;font-weight:800}.map-year-badge.old{color:#d97706;background:#f59e0b26;border:1px solid #f59e0b4d}.map-year-badge.new{color:#059669;background:#10b98126;border:1px solid #10b9814d}.map-svg{border-radius:8px;width:100%;height:auto;display:block}.catalog-hero-stats{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.catalog-stat-pill{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;align-items:center;min-width:90px;padding:8px 16px;display:flex;box-shadow:0 2px 6px #00000008}.catalog-stat-pill.highlight{background:linear-gradient(135deg,#2563eb14 0%,#6366f114 100%);border-color:#2563eb4d}.stat-pill-num{color:var(--accent);font-size:18px;font-weight:900;line-height:1.2}.stat-pill-label{color:var(--text-muted);font-size:11px;font-weight:600}.catalog-results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 16px;padding:0 4px;display:flex}.results-count-pill{color:var(--text-secondary);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.results-indicator-dot{background:#10b981;border-radius:50%;width:7px;height:7px;display:inline-block}.results-page-indicator{color:var(--text-muted);background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700}.writing-pagination-bar{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:36px;padding-top:24px;display:flex}.pagination-nav-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .16s;display:inline-flex}.pagination-nav-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.pagination-nav-btn:disabled{opacity:.45;cursor:not-allowed}.pagination-pages-list{align-items:center;gap:4px;display:flex}.pagination-page-item{border:1px solid var(--border-color);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:all .16s;display:inline-flex}.pagination-page-item:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent)}.pagination-page-item.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #2563eb4d}.pagination-ellipsis{color:var(--text-muted);padding:0 4px;font-weight:700}.writing-catalog-empty{text-align:center;background:var(--bg-surface);border:1px dashed var(--border-color);color:var(--text-muted);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.writing-catalog-empty h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.writing-catalog-empty p{margin:0;font-size:13px}.btn-reset-filters{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .16s}.btn-reset-filters:hover{background:#1d4ed8}.dropdown-search-wrapper{background:var(--bg-surface-subtle);border-bottom:1px solid var(--border-color);align-items:center;padding:8px 12px;display:flex;position:relative}.dropdown-search-wrapper svg{color:var(--text-muted);flex-shrink:0;margin-right:8px}.dropdown-search-input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;font-size:12.5px}.dropdown-search-input::placeholder{color:var(--text-muted)}.clear-dropdown-search{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.clear-dropdown-search:hover{color:var(--text-primary)}.dropdown-empty-item{text-align:center;color:var(--text-muted);padding:16px;font-size:12.5px}.header-right-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inline-chart-zoom-group{background:var(--bg-surface-subtle,#f8fafc);border:1.2px solid var(--border-color,#e2e8f0);border-radius:999px;align-items:center;gap:4px;padding:3px 6px;display:inline-flex;box-shadow:0 1px 3px #00000008}[data-theme=dark] .inline-chart-zoom-group{background:#0f172a;border-color:#ffffff1a}.inline-zoom-btn{background:var(--bg-surface,#fff);border:1px solid var(--border-subtle,#cbd5e1);width:24px;height:24px;color:var(--text-primary,#0f172a);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;font-size:13px;font-weight:800;transition:all .15s;display:flex}[data-theme=dark] .inline-zoom-btn{color:#f8fafc;background:#1e293b;border-color:#ffffff1f}.inline-zoom-btn:hover{background:var(--primary,#3b82f6);color:#fff;border-color:var(--primary,#3b82f6)}.inline-zoom-btn.reset-text{width:auto;padding:0 8px;font-size:11px;font-weight:700}.inline-zoom-text{font-size:11.5px;font-weight:800;font-family:var(--font-mono,monospace);color:var(--text-primary,#0f172a);text-align:center;-webkit-user-select:none;user-select:none;min-width:38px;padding:0 4px}[data-theme=dark] .inline-zoom-text{color:#f1f5f9}.chart-pan-hint-tag{color:#38bdf8;pointer-events:none;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ae0;border:1px solid #38bdf873;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:11.5px;font-weight:800;animation:.2s ease-out fadeIn;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 12px #0000004d}.ielts-diagram-image-wrapper{border:1.5px solid var(--border-color,#e2e8f0);background:#fff;border-radius:12px;justify-content:center;align-items:center;width:100%;padding:10px;display:flex;overflow:hidden;box-shadow:0 2px 10px #0000000a}[data-theme=dark] .ielts-diagram-image-wrapper{background:#0f172a;border-color:#ffffff1a}.ielts-official-diagram-img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:auto;border-radius:8px;max-width:100%;height:auto;max-height:480px;display:block}.fullscreen-modal-canvas .ielts-official-diagram-img{max-width:98%;max-height:76vh;box-shadow:0 8px 30px #00000026}.diagram-view-badge{color:#10b981;background:#10b9811f;border:1px solid #10b9814d;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:800;display:inline-flex}.diagram-vocab-tag{color:var(--primary,#3b82f6);background:#3b82f61a;border:1px solid #3b82f640;border-radius:999px;margin:2px 4px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.writing-catalog-hero-minimal{border-bottom:1px solid var(--border-color);margin-bottom:20px;padding:10px 0 16px}.hero-minimal-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-minimal-title{color:var(--text-primary);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.hero-minimal-status-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-chip{letter-spacing:.01em;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.status-chip.total{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color)}.status-chip.in-progress{color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b4d}.status-chip.completed{color:#10b981;background:#10b9811f;border:1px solid #10b9814d}.writing-filter-bar-minimal{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.filter-row-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.status-filter-pills{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.btn-status-filter-pill{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:5px 13px;font-size:12.5px;font-weight:600;transition:all .15s}.btn-status-filter-pill:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--primary,#3b82f6)}.btn-status-filter-pill.active{background:var(--primary,#3b82f6);color:#fff;border-color:var(--primary,#3b82f6);box-shadow:0 2px 6px #3b82f640}.btn-level-tab.minimal{border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600}.writing-search-box.minimal{min-width:240px}.test-status-pill{-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.test-status-pill.not-started{color:#94a3b8;background:#94a3b81a;border:1px solid #94a3b838}.test-status-pill.in-progress{color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b4d}.test-status-pill.completed{color:#10b981;background:#10b98124;border:1px solid #10b98159}.test-desk-title-pill{color:var(--text-primary);background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:8px;padding:4px 12px;font-size:13px;font-weight:700}.writing-studio-header.minimal{border-bottom:1px solid var(--border-color);margin-bottom:12px;padding-bottom:12px}.test-task-tabs-row.minimal{gap:8px;margin-top:10px;display:flex}.test-task-tab.minimal{border-radius:8px;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:flex}.writing-mode-switcher-group.minimal{background:var(--bg-surface-subtle);border:1px solid var(--border-color);border-radius:10px;gap:4px;padding:3px;display:inline-flex}.writing-mode-tab-btn.minimal{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:7px;padding:6px 14px;font-size:12.5px;font-weight:700;transition:all .15s;display:inline-flex}.writing-mode-tab-btn.minimal:hover{color:var(--text-primary)}.writing-mode-tab-btn.minimal.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 4px #00000014}.dropdown-status-done{color:#10b981;background:#10b9811f;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:700}.dropdown-status-prog{color:#f59e0b;background:#f59e0b1f;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:700}.grammarly-badge-count{color:#fff;background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 5px;font-size:10.5px;font-weight:800;display:inline-flex}.grammarly-workspace-layout{grid-template-columns:1.1fr .9fr;gap:14px;height:480px;min-height:480px;display:grid}@media (max-width:960px){.grammarly-workspace-layout{grid-template-columns:1fr;height:auto}}.grammarly-marked-text-pane{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:18px;font-size:15px;line-height:1.85;overflow-y:auto}.grammarly-underline{cursor:pointer;text-underline-offset:4px;border-radius:3px;padding:1px 2px;font-weight:600;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;transition:background .15s}.grammarly-underline.spelling{color:#ef4444;background:#ef444414;text-decoration-color:#ef4444}.grammarly-underline.grammar{color:#f59e0b;background:#f59e0b14;text-decoration-color:#f59e0b}.grammarly-underline.style{color:#8b5cf6;background:#8b5cf614;text-decoration-color:#8b5cf6}.grammarly-underline.punctuation{color:#3b82f6;background:#3b82f614;text-decoration-color:#3b82f6}.grammarly-underline:hover,.grammarly-underline.active{background:#3b82f638}.grammarly-sidebar-panel{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;height:100%;display:flex;overflow:hidden}.grammarly-sidebar-header{background:var(--bg-surface-subtle);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.grammarly-sidebar-title{color:var(--text-primary);align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.issues-badge{color:#ef4444;background:#ef44441f;border:1px solid #ef444440;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.btn-apply-all-grammarly{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:6px;padding:4px 12px;font-size:11.5px;font-weight:700;transition:opacity .15s}.btn-apply-all-grammarly:hover{opacity:.9}.grammarly-cards-list{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.grammarly-issue-card{background:var(--bg-surface-subtle);border:1.5px solid var(--border-color);border-radius:10px;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s,box-shadow .15s;display:flex}.grammarly-issue-card:hover,.grammarly-issue-card.selected{border-color:#3b82f6;box-shadow:0 2px 10px #3b82f61f}.issue-card-top{justify-content:space-between;align-items:center;display:flex}.issue-cat-chip{letter-spacing:.02em;border-radius:4px;padding:2px 8px;font-size:10.5px;font-weight:800}.issue-diff-row{align-items:center;gap:8px;font-size:13.5px;display:flex}.issue-wrong-word{color:#ef4444;font-weight:600;text-decoration:line-through}.issue-arrow{color:var(--text-muted);font-size:12px}.issue-correct-word{color:#10b981;font-weight:700}.issue-explanation-text{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.45}.btn-apply-single-fix{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;align-self:flex-start;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:700;transition:background .15s;display:inline-flex}.btn-apply-single-fix:hover{background:#1d4ed8}.grammarly-empty-clean{text-align:center;color:#10b981;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 16px;display:flex}.grammarly-empty-clean h4{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.grammarly-empty-clean p{color:var(--text-secondary);margin:0;font-size:12.5px}.grammarly-placeholder-text{color:var(--text-muted);padding:20px;font-style:italic}
