@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Outfit:wght@500;600;700;800&display=swap");:root{--bg-primary:#f3faf8;--bg-surface:#fff;--bg-surface-elevated:#e8f5f1;--bg-surface-hover:#def0eb;--bg-glass:rgba(243,250,248,.94);--bg-glass-border:rgba(22,50,63,.08);--text-main:#16323f;--text-muted:#49665f;--text-subtle:#6d8a83;--accent-primary:#0e9384;--accent-primary-hover:#0b7568;--accent-primary-glow:rgba(14,147,132,.22);--accent-primary-soft:#e6f8f5;--accent-cyan:#0ea5a4;--accent-cyan-glow:rgba(14,165,164,.18);--accent-emerald:#15815c;--accent-emerald-glow:rgba(21,129,92,.18);--accent-amber:#d97706;--accent-rose:#e0533d;--accent-purple:#7c3aed;--border-subtle:rgba(22,50,63,.09);--border-focus:#0e9384;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(22,50,63,.04),0 1px 2px rgba(22,50,63,.02);--shadow-md:0 4px 16px rgba(22,50,63,.06);--shadow-lg:0 12px 32px rgba(22,50,63,.08);--shadow-glow:0 4px 20px var(--accent-primary-glow);--transition-fast:0.18s cubic-bezier(0.4,0,0.2,1);--transition-smooth:0.3s cubic-bezier(0.16,1,0.3,1)}:root[data-theme=dark],[data-theme=dark]{--bg-primary:#0a0f1d;--bg-surface:#111827;--bg-surface-elevated:#1e293b;--bg-surface-hover:#283548;--bg-glass:rgba(10,15,29,.94);--bg-glass-border:hsla(0,0%,100%,.08);--text-main:#f1f5f9;--text-muted:#94a3b8;--text-subtle:#64748b;--accent-primary:#14b8a6;--accent-primary-hover:#0d9488;--accent-primary-glow:rgba(20,184,166,.28);--accent-primary-soft:rgba(20,184,166,.15);--accent-cyan:#22d3ee;--accent-cyan-glow:rgba(34,211,238,.2);--accent-emerald:#10b981;--accent-emerald-glow:rgba(16,185,129,.2);--border-subtle:hsla(0,0%,100%,.1);--border-focus:#14b8a6;--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4);--shadow-lg:0 12px 32px rgba(0,0,0,.5);--shadow-glow:0 4px 20px var(--accent-primary-glow)}[data-theme=dark] body{background-color:var(--bg-primary);color:var(--text-main)}[data-theme=dark] .analytics-card,[data-theme=dark] .card,[data-theme=dark] .dashboard-widget,[data-theme=dark] .mobile-drawer-content,[data-theme=dark] .modal-content,[data-theme=dark] .part-card,[data-theme=dark] .test-card{background-color:var(--bg-surface)!important;color:var(--text-main);border-color:var(--border-subtle)!important}[data-theme=dark] .login-pill-btn,[data-theme=dark] .user-profile-badge{background:var(--bg-surface-elevated)!important;color:var(--text-main)!important;border-color:var(--border-subtle)!important}[data-theme=dark] .nav-menu{background:hsla(0,0%,100%,.05);border-color:hsla(0,0%,100%,.08)}[data-theme=dark] .nav-link{color:var(--text-muted)}[data-theme=dark] .nav-link.active,[data-theme=dark] .nav-link:hover{color:#14b8a6;background:rgba(20,184,166,.12)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background-color:var(--bg-surface-elevated)!important;color:var(--text-main)!important;border-color:var(--border-subtle)!important}[data-theme=dark] .ambient-glow-1{background:radial-gradient(circle,rgba(20,184,166,.12) 0,transparent 70%)}[data-theme=dark] .ambient-glow-2{background:radial-gradient(circle,rgba(16,185,129,.1) 0,transparent 70%)}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--bg-primary)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#334155}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}body.mode-wireframe{--bg-primary:#f0f7f5;--bg-surface:#fff;--bg-surface-elevated:#e2efeb;--bg-surface-hover:#d5e7e2;--bg-glass:rgba(240,247,245,.94);--bg-glass-border:rgba(14,147,132,.2);--text-main:#16323f;--text-muted:#35766d;--text-subtle:#0e9384;--accent-primary:#0e9384;--accent-primary-hover:#0b7568;--accent-primary-glow:rgba(14,147,132,.25);--border-subtle:rgba(14,147,132,.2);--border-focus:#0e9384;background-image:linear-gradient(rgba(14,147,132,.06) 1px,transparent 0),linear-gradient(90deg,rgba(14,147,132,.06) 1px,transparent 0);background-size:24px 24px}.wf-spec-badge,body.mode-wireframe .wf-spec-badge{display:none!important}body.mode-wireframe .blueprint-marker{opacity:1!important}body.mode-wireframe .card,body.mode-wireframe .dashboard-widget,body.mode-wireframe .part-card{border:1px dashed rgba(14,147,132,.45)!important;box-shadow:none!important}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}body,html{background-color:var(--bg-primary);overflow-x:hidden!important;width:100%!important;max-width:100vw!important}body{font-family:Be Vietnam Pro,Plus Jakarta Sans,system-ui,-apple-system,sans-serif;color:var(--text-main);line-height:1.5;min-height:100vh;position:relative;transition:background-color var(--transition-smooth);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#c2ddd5;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.ambient-glow-1{top:-120px;left:20%;width:600px;height:600px;background:radial-gradient(circle,rgba(14,147,132,.09) 0,transparent 70%)}.ambient-glow-1,.ambient-glow-2{position:fixed;pointer-events:none;z-index:0;filter:blur(70px)}.ambient-glow-2{bottom:40px;right:10%;width:500px;height:500px;background:radial-gradient(circle,rgba(34,197,94,.07) 0,transparent 70%)}.app-container{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100vh}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;height:72px;background:var(--bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--bg-glass-border);justify-content:space-between;padding:0 32px;transition:all var(--transition-fast)}.app-header,.brand-section{display:flex;align-items:center}.brand-section{gap:14px}.brand-logo{width:42px;height:42px;background:linear-gradient(135deg,#0ea5a4,#22c55e);border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(14,147,132,.25);font-family:Be Vietnam Pro,Outfit,sans-serif;font-weight:800;font-size:20px;color:#fff;letter-spacing:-.5px}.brand-meta{display:flex;flex-direction:column}.brand-title{font-family:Be Vietnam Pro,Outfit,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.5px;color:var(--text-main);display:flex;align-items:center;gap:8px}.brand-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:#e6f8f5;color:#087a6e;padding:2px 8px;border-radius:var(--radius-full);border:1px solid #bce8df}.nav-menu{gap:6px;background:rgba(22,50,63,.05);padding:4px;border-radius:var(--radius-full);border:1px solid var(--border-subtle)}.nav-link,.nav-menu{display:flex;align-items:center}.nav-link{gap:8px;padding:8px 18px;font-size:13.5px;font-weight:600;color:var(--text-muted);text-decoration:none;border-radius:var(--radius-full);transition:all var(--transition-fast);cursor:pointer;border:none;background:transparent}.nav-link:hover{color:var(--text-main);background:hsla(0,0%,100%,.85)}.nav-link.active{color:#fff;background:var(--accent-primary);box-shadow:0 3px 12px var(--accent-primary-glow)}.header-actions{display:flex;align-items:center;gap:16px}.score-target-pill{gap:10px;background:#fff;padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.score-target-pill,.streak-pill{display:flex;align-items:center;font-size:13px}.streak-pill{gap:6px;background:#fffbeb;border:1px solid #fde68a;color:#d97706;padding:6px 12px;border-radius:var(--radius-full);font-weight:700}.mode-toggle-btn{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border-subtle);color:var(--text-main);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;padding:8px 14px;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.mode-toggle-btn:hover{background:#f0f8f6;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.mobile-mode-btn,.mobile-supabase-link,.mode-toggle-btn,.supabase-pill,.wf-spec-badge{display:none!important}.main-viewport{flex:1 1;padding:28px 32px 64px;max-width:1440px;margin:0 auto;width:100%}.view-section{display:none;animation:fadeIn .35s ease-out forwards}.view-section.active{display:block}.section-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.section-title-group h1{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:28px;font-weight:800;letter-spacing:-.5px;color:var(--text-main);display:flex;align-items:center}.section-desc{font-size:14px;color:var(--text-muted);margin-top:4px}.quick-action-bar{display:flex;align-items:center;gap:12px}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;grid-gap:24px;gap:24px;margin-bottom:28px}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:all var(--transition-fast)}.card:hover{border-color:rgba(14,147,132,.35);box-shadow:var(--shadow-md)}.score-hero-card{background:linear-gradient(145deg,#fff,#f3faf8);border:1px solid #bce8df;box-shadow:var(--shadow-sm);flex-direction:column}.score-hero-card,.score-hero-header{display:flex;justify-content:space-between}.score-hero-header{align-items:center}.score-hero-body{display:flex;align-items:center;justify-content:space-around;padding:24px 0;gap:20px}.gauge-wrapper{position:relative;width:170px;height:170px;display:flex;align-items:center;justify-content:center}.gauge-svg{width:100%;height:100%;transform:rotate(-90deg)}.gauge-bg{fill:none;stroke:#e2ece8;stroke-width:12}.gauge-progress{fill:none;stroke:url(#scoreGradient);stroke-width:12;stroke-linecap:round;stroke-dasharray:440;stroke-dashoffset:120;transition:stroke-dashoffset 1.5s ease-out}.gauge-center-content{position:absolute;text-align:center}.gauge-val{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:38px;font-weight:800;color:var(--text-main);line-height:1}.gauge-sub{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.subscore-breakdown{display:flex;flex-direction:column;gap:16px;min-width:220px}.subscore-item{background:#f8fbfb;border:1px solid rgba(22,50,63,.08);border-radius:var(--radius-md);padding:12px 16px}.subscore-title{font-size:12.5px;color:var(--text-muted);font-weight:600;display:flex;justify-content:space-between;margin-bottom:6px}.subscore-value{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:18px;font-weight:700;color:var(--text-main)}.subscore-progress-bar{height:6px;background:#e2ece8;border-radius:var(--radius-full);overflow:hidden}.subscore-progress-fill{height:100%;border-radius:var(--radius-full)}.subscore-progress-fill.listening{background:linear-gradient(90deg,#0ea5a4,#0e9384);width:76%}.subscore-progress-fill.reading{background:linear-gradient(90deg,#10b981,#22c55e);width:68%}.daily-tasks-card{display:flex;flex-direction:column}.card-title{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:18px;font-weight:700;color:var(--text-main);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.task-list{display:flex;flex-direction:column;gap:12px}.task-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f8fbfb;border:1px solid rgba(22,50,63,.07);border-radius:var(--radius-md);transition:all var(--transition-fast)}.task-item:hover{background:#edf8f5;border-color:rgba(14,147,132,.3)}.task-left{gap:12px}.task-icon,.task-left{display:flex;align-items:center}.task-icon{width:36px;height:36px;border-radius:var(--radius-sm);justify-content:center;font-size:18px}.task-icon.blue{background:#e0f2fe;color:#0284c7}.task-icon.cyan{background:#e6f8f5;color:#087a6e}.task-icon.amber{background:#fef3c7;color:#d97706}.task-name{font-size:14px;font-weight:600;color:var(--text-main)}.task-sub{font-size:12px;color:var(--text-subtle)}.btn-sm{padding:6px 14px;font-size:12px;font-weight:600;border-radius:var(--radius-full);cursor:pointer;border:none;transition:all var(--transition-fast)}.btn-primary-sm{background:var(--accent-primary);color:#fff}.btn-primary-sm:hover{background:var(--accent-primary-hover)}.roadmap-section-title{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:20px;font-weight:700;color:var(--text-main);margin:36px 0 16px;display:flex;align-items:center;justify-content:space-between}.parts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:18px;gap:18px}.part-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;justify-content:space-between;transition:all var(--transition-fast);cursor:pointer;position:relative;box-shadow:var(--shadow-sm)}.part-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.part-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.part-badge{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.badge-listening{background:#e0f2fe;color:#0284c7;border:1px solid #bae6fd}.badge-reading{background:#e6f8f5;color:#087a6e;border:1px solid #a8ddd3}.status-tag{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:var(--radius-full)}.status-tag.Mastered{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.status-tag.InProgress{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.status-tag.NeedsFocus{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.status-tag.Critical{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.part-name{font-size:16px;font-weight:700;color:var(--text-main);margin-bottom:6px}.part-desc{font-size:12.5px;color:var(--text-muted);line-height:1.45;margin-bottom:16px;flex:1 1}.part-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-subtle);margin-bottom:8px}.part-progress{height:6px;background:#e2ece8;border-radius:var(--radius-full);overflow:hidden;margin-bottom:14px}.part-progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,#0ea5a4,#22c55e)}.part-action-row{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border-subtle)}.part-time-stat{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-subtle)}.btn-text-action{font-size:12.5px;font-weight:600;color:var(--accent-primary);background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:4px}.btn-text-action:hover{color:var(--accent-primary-hover);text-decoration:underline}.practice-container{display:flex;flex-direction:column;gap:20px;min-width:0;max-width:100%;box-sizing:border-box;overflow-x:hidden}.exam-toolbar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;box-shadow:var(--shadow-sm)}.part-filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.filter-tab{background:#edf5f3;border:1px solid transparent;color:var(--text-muted);padding:6px 14px;border-radius:var(--radius-full);font-size:12.5px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--text-main);background:#def0eb}.filter-tab.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 8px var(--accent-primary-glow)}.exam-timer-box{display:flex;align-items:center;gap:12px;background:#e6f8f5;padding:6px 16px;border-radius:var(--radius-full);border:1px solid #bce8df}.timer-digits{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700;color:#087a6e}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;display:flex;align-items:center}.btn-icon:hover{color:var(--text-main)}.exam-workspace{display:grid;grid-template-columns:1fr 1.15fr;grid-gap:24px;gap:24px;min-height:540px;min-width:0;max-width:100%}@media (max-width:960px){.exam-workspace{grid-template-columns:1fr}}.exam-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm);min-width:0;max-width:100%;box-sizing:border-box}.panel-title-bar{justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.panel-title,.panel-title-bar{display:flex;align-items:center}.panel-title{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);gap:8px}.audio-player-card{background:#f4fbf9;border:1px solid #d0ebe4;border-radius:var(--radius-md);padding:18px;margin-bottom:20px}.waveform-display{height:50px;display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:16px;background:#e4f2ee;border-radius:var(--radius-sm);padding:0 12px}.wave-bar{width:4px;height:12px;background:var(--accent-primary);border-radius:2px;transition:height .15s ease}.waveform-display.playing .wave-bar{animation:wavePulse 1s ease-in-out infinite alternate}.waveform-display.playing .wave-bar:nth-child(2n){animation-delay:.2s}.waveform-display.playing .wave-bar:nth-child(3n){animation-delay:.4s}.waveform-display.playing .wave-bar:nth-child(4n){animation-delay:.1s}@keyframes wavePulse{0%{height:6px}to{height:42px;background:#22c55e}}.audio-controls-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.audio-btn-play{width:40px;height:40px;border-radius:50%;background:var(--accent-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all var(--transition-fast);box-shadow:0 2px 8px var(--accent-primary-glow)}.audio-btn-play:hover{background:var(--accent-primary-hover);transform:scale(1.05)}.playback-speed-select{background:#fff;border:1px solid #c8e4dd;color:var(--text-main);padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;font-family:JetBrains Mono,monospace;cursor:pointer}.transcript-collapse-btn{background:none;border:none;color:var(--accent-primary);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline}.transcript-box{background:#fff;border:1px solid #d0ebe4;border-radius:var(--radius-sm);padding:12px;margin-top:14px;font-size:13px;color:#355048;line-height:1.6;white-space:pre-line;display:none}.transcript-box.open{display:block}.passage-container{background:#fafcfc;border-radius:var(--radius-md);padding:18px;border:1px solid #dce9e5;font-size:14.5px;line-height:1.7;color:var(--text-main);white-space:pre-line;max-height:400px;overflow-y:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}.passage-graphic-card{background:#f3faf8;border:1px solid #bce8df;border-radius:var(--radius-sm);padding:12px;margin-top:16px}.passage-graphic-title{font-size:12px;font-weight:700;color:#087a6e;margin-bottom:8px;text-transform:uppercase}.schedule-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(22,50,63,.08);font-size:12.5px}.question-prompt-text{font-size:16px;font-weight:650;color:var(--text-main);line-height:1.5;margin-bottom:20px}.options-container{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.option-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1.5px solid rgba(22,50,63,.12);border-radius:var(--radius-md);padding:14px 18px;cursor:pointer!important;transition:all .2s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.option-item:hover{background:#f0fdfa!important;border-color:#0e9384!important;transform:translateX(4px);box-shadow:0 4px 12px rgba(14,147,132,.12)}.option-item:hover .option-bullet{border-color:#0e9384;color:#0e9384;background:#e6f7f4}.option-item:active{transform:scale(.99)}.option-item.selected{background:#eaf8f5!important;border-color:#0e9384!important;box-shadow:0 0 0 2px #0e9384,0 3px 12px rgba(14,147,132,.18)}.option-item.correct{background:#eefbf4;border-color:#22c55e;box-shadow:0 0 0 1px #22c55e}.option-item.incorrect{background:#fef2f2;border-color:#ef4444;box-shadow:0 0 0 1px #ef4444}.option-item.struck-out{opacity:.4;text-decoration:line-through;filter:grayscale(1)}.option-left{gap:12px;flex:1 1}.option-bullet,.option-left{display:flex;align-items:center}.option-bullet{width:26px;height:26px;border-radius:50%;border:1px solid #cadcd7;background:#edf4f2;justify-content:center;font-size:12px;font-weight:700;color:#3e5a53}.option-item.selected .option-bullet{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.option-item.correct .option-bullet{background:#22c55e;border-color:#22c55e;color:#fff}.option-item.incorrect .option-bullet{background:#ef4444;border-color:#ef4444;color:#fff}.option-text{font-size:14px;color:var(--text-main);flex:1 1}.option-strike-tool{opacity:.4;cursor:pointer;padding:4px;font-size:14px;transition:opacity var(--transition-fast)}.option-strike-tool:hover{opacity:1;color:#ef4444}.btn-script-toggle{display:inline-flex;align-items:center;gap:6px;background:#f0f7f5;border:1px solid rgba(14,147,132,.35);color:#087a6e;padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-script-toggle:hover{background:#def3ee;border-color:#0e9384;color:#065f46;transform:translateY(-1px);box-shadow:0 2px 8px rgba(14,147,132,.15)}.btn-script-toggle.active{background:#0e9384;border-color:#0e9384;color:#fff;box-shadow:0 2px 10px rgba(14,147,132,.3)}.ets-standard-notice{display:flex;align-items:center;gap:10px;background:#fffdf5;border:1px dashed #e8d08d;border-radius:var(--radius-md);padding:10px 14px;font-size:12.5px;color:#854d0e;line-height:1.5;margin-bottom:14px;animation:fadeIn .25s ease-out}.ets-notice-icon{font-size:18px;flex-shrink:0}.option-text-placeholder{display:flex;flex-direction:column;gap:2px;flex:1 1}.placeholder-label{font-size:14px;font-weight:700;color:var(--text-main)}.placeholder-sub{font-size:11.5px;color:var(--text-muted);display:flex;align-items:center;gap:5px}.placeholder-icon{color:#0e9384}.option-item.script-hidden-mode{padding:12px 16px}.part1-photo-viewer{background:#fff;border:1.5px solid rgba(14,147,132,.22);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 20px rgba(14,147,132,.08);transition:all var(--transition-fast)}.part1-photo-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:linear-gradient(135deg,#f0fbf8,#e8f7f4);border-bottom:1px solid rgba(14,147,132,.12);flex-wrap:wrap;gap:8px}.photo-tag-pill{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#087a6e}.photo-spec-code{font-family:JetBrains Mono,monospace;font-size:11px;color:#10b981;background:#fff;padding:2px 8px;border-radius:var(--radius-full);border:1px solid rgba(16,185,129,.2);font-weight:600}.btn-photo-zoom{background:#fff;border:1px solid rgba(14,147,132,.25);color:#087a6e;padding:3px 10px;border-radius:var(--radius-full);font-size:11.5px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-photo-zoom:hover{background:#0e9384;color:#fff;border-color:#0e9384}.part1-image-wrapper{position:relative;width:100%;background:#091a18;display:flex;align-items:center;justify-content:center;min-height:260px;max-height:480px;overflow:hidden;padding:8px;cursor:zoom-in}.part1-photograph-img{width:100%;max-height:440px;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.18);transition:transform .25s cubic-bezier(.16,1,.3,1)}.part1-image-wrapper:hover .part1-photograph-img{transform:scale(1.02)}.part1-zoom-hint{position:absolute;bottom:12px;right:12px;background:rgba(14,27,24,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--radius-full);pointer-events:none;opacity:.85;transition:opacity .2s ease}.part1-image-wrapper:hover .part1-zoom-hint{opacity:1}.part1-fallback-box{padding:36px 16px;text-align:center;color:var(--text-muted)}.part1-photo-footer{padding:10px 16px;background:#fafcfb;border-top:1px solid rgba(22,50,63,.06);font-size:12.5px;color:var(--text-muted)}.photo-scenario-label{display:flex;align-items:center;gap:8px;line-height:1.4}.scenario-dot{width:8px;height:8px;border-radius:50%;background:#0e9384;flex-shrink:0}.photo-lightbox-overlay{position:fixed;inset:0;background:rgba(8,18,16,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease-out}.photo-lightbox-dialog{max-width:90vw;max-height:90vh;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column}.lightbox-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#0e1b18;color:#fff}.lightbox-title{font-size:13.5px;font-weight:700;color:#e2f4f0}.btn-lightbox-close{background:hsla(0,0%,100%,.15);border:none;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--transition-fast)}.btn-lightbox-close:hover{background:#ef4444}.lightbox-img-wrap{padding:12px;background:#050d0c;display:flex;align-items:center;justify-content:center;overflow:auto}.lightbox-full-img{max-width:85vw;max-height:78vh;object-fit:contain;border-radius:6px}.question-actions-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--border-subtle)}.btn-action{padding:10px 22px;border-radius:var(--radius-md);font-size:13.5px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast);display:flex;align-items:center;gap:8px}.btn-secondary{background:#f0f7f5;border:1px solid var(--border-subtle);color:var(--text-main)}.btn-secondary:hover{background:#e3f2ee}.btn-primary{background:linear-gradient(135deg,#0e9384,#0b7568);color:#fff;box-shadow:0 4px 14px var(--accent-primary-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--accent-primary-glow)}.explanation-card{margin-top:18px;background:linear-gradient(135deg,#e8f8f5,#f4fbfa);border:1px solid #bce8df;border-radius:var(--radius-md);padding:16px 20px;animation:fadeIn .3s ease-out forwards}.explanation-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;color:#087a6e;margin-bottom:8px}.explanation-body{font-size:13.5px;color:#26433c;line-height:1.6}.trap-pill{display:inline-flex;align-items:center;gap:4px;background:#fff1f0;color:#cf1322;border:1px solid #ffccc7;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;margin-top:8px}.vocab-layout{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:28px;gap:28px}@media (max-width:980px){.vocab-layout{grid-template-columns:1fr}}.flashcard-stage{display:flex;flex-direction:column;align-items:center}.card-scene{width:100%;max-width:480px;height:320px;perspective:1200px;cursor:pointer;margin-bottom:20px}.flashcard-flipper{width:100%;height:100%;position:relative;transition:transform .6s cubic-bezier(.175,.885,.32,1.275);transform-style:preserve-3d}.flashcard-flipper.is-flipped{transform:rotateY(180deg)}.card-face{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-xl);padding:32px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg)}.card-face-front{background:linear-gradient(145deg,#fff,#f3faf8);border-color:#bce8df}.card-face-back{background:linear-gradient(145deg,#fff,#edf8f5);border-color:#a2dcd1;transform:rotateY(180deg)}.flashcard-top-row{display:flex;justify-content:space-between;align-items:center}.flashcard-category{font-size:12px;font-weight:700;color:#087a6e;text-transform:uppercase;letter-spacing:.5px}.flashcard-flip-prompt{font-size:11px;color:var(--text-subtle);display:flex;align-items:center;gap:4px}.flashcard-main-word{text-align:center;margin:auto 0}.vocab-word-display{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:36px;font-weight:800;color:var(--text-main);letter-spacing:-.5px}.vocab-phonetic{font-size:15px;color:#087a6e;margin-top:6px}.audio-pronounce-btn,.vocab-pronounce-btn{margin-top:14px;background:#fff7ed;border:1.5px solid #fed7aa;color:#ea580c;padding:8px 18px;border-radius:var(--radius-full);font-family:Be Vietnam Pro,system-ui,sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.4;box-shadow:0 2px 6px rgba(249,115,22,.1);transition:all var(--transition-fast);width:auto;min-width:140px;height:auto;white-space:nowrap}.audio-pronounce-btn:hover,.vocab-pronounce-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 4px 12px rgba(249,115,22,.25);transform:translateY(-1px)}.audio-pronounce-btn.playing,.vocab-pronounce-btn.playing{background:#fef08a;border-color:#eab308;color:#854d0e}.pronounce-icon{font-size:16px;line-height:1;display:inline-block}.pronounce-text{font-family:Be Vietnam Pro,system-ui,sans-serif;font-size:13px;font-weight:700;color:inherit;white-space:nowrap}.vocab-back-definition{margin:auto 0}.vocab-meaning-text{font-size:16px;color:var(--text-main);font-weight:650;line-height:1.5;margin-bottom:12px}.vocab-example-quote{font-size:13.5px;color:#49665f;font-style:italic;border-left:3px solid var(--accent-primary);padding-left:10px;margin-bottom:8px}.vocab-collocation-tag{font-size:12px;color:#087a6e}.leitner-actions{display:flex;gap:10px;width:100%;max-width:480px;justify-content:center}.leitner-btn{flex:1 1;padding:10px 8px;border-radius:var(--radius-md);font-size:12px;font-weight:700;cursor:pointer;border:none;transition:all var(--transition-fast);display:flex;flex-direction:column;align-items:center;gap:2px}.leitner-btn span.interval{font-size:10px;font-weight:400;opacity:.8}.leitner-btn.again{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.leitner-btn.hard{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.leitner-btn.good{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.leitner-btn.easy{background:#e6f8f5;color:#087a6e;border:1px solid #9fe5d7}.leitner-btn:hover{transform:translateY(-2px);filter:brightness(.96)}.vocab-table-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.table-filter-bar{display:flex;gap:12px;margin-bottom:16px}.search-input{flex:1 1;background:#fff;border:1px solid rgba(22,50,63,.14);border-radius:var(--radius-md);padding:10px 14px;color:var(--text-main);font-size:13.5px;outline:none;box-shadow:0 1px 2px rgba(22,50,63,.03);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(14,147,132,.15)}.vocab-list-items{display:flex;flex-direction:column;gap:8px;max-height:480px;overflow-y:auto}.vocab-row-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border:1px solid rgba(22,50,63,.08);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.vocab-row-item:hover{background:#f3faf8;border-color:rgba(14,147,132,.4)}.vocab-row-word{font-weight:700;font-size:14px;color:var(--text-main)}.vocab-row-def{font-size:12px;color:var(--text-muted);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}@media (max-width:900px){.analytics-grid{grid-template-columns:1fr}}.pacing-bar-list{gap:14px}.pacing-bar-list,.pacing-item{display:flex;flex-direction:column}.pacing-item{gap:6px}.pacing-labels{display:flex;justify-content:space-between;font-size:13px}.pacing-track{height:8px;background:#e2ece8;border-radius:var(--radius-full);position:relative;overflow:hidden}.pacing-fill-actual{height:100%;border-radius:var(--radius-full)}.pacing-marker-target{position:absolute;top:0;bottom:0;width:3px;background:#0e9384;box-shadow:0 0 6px rgba(14,147,132,.6)}.specs-container{display:flex;flex-direction:column;gap:24px}.spec-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));grid-gap:20px;gap:20px}.spec-doc-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-sm)}.spec-badge-header{display:flex;justify-content:space-between;align-items:center}.spec-code{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;background:#e6f8f5;color:#087a6e;border:1px solid #a8ddd3;padding:2px 8px;border-radius:4px}.spec-section-name{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:17px;font-weight:700;color:var(--text-main)}.spec-field{display:flex;flex-direction:column;gap:4px}.spec-field-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--text-subtle)}.spec-field-text{font-size:13px;color:var(--text-muted);line-height:1.5}.spec-tags-cloud{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.spec-tag{font-size:11px;font-family:JetBrains Mono,monospace;background:#edf5f3;color:#355048;padding:2px 8px;border-radius:4px}.spec-modal-backdrop{position:fixed;inset:0;background:rgba(22,50,63,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}.spec-modal-backdrop.open{display:flex}.spec-modal-window{background:#fff;border:1px solid #a8ddd3;border-radius:var(--radius-xl);max-width:600px;width:100%;padding:28px;box-shadow:0 16px 40px rgba(22,50,63,.15);position:relative;animation:fadeIn .25s ease-out}.spec-modal-close{position:absolute;top:20px;right:20px;background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer}.spec-modal-close:hover,.toast-notice{color:var(--text-main)}.toast-notice{position:fixed;bottom:24px;right:24px;background:#fff;border:1px solid #bce8df;box-shadow:0 8px 24px rgba(22,50,63,.12);padding:12px 20px;border-radius:var(--radius-md);font-size:13.5px;display:flex;align-items:center;gap:10px;z-index:300;transform:translateY(100px);opacity:0;transition:all .3s cubic-bezier(.16,1,.3,1)}.toast-notice.show{transform:translateY(0);opacity:1}.supabase-pill{display:inline-flex;align-items:center;gap:6px;background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;padding:6px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;text-decoration:none;transition:all var(--transition-fast)}.supabase-pill.offline{background:#fffbeb;border-color:#fde68a;color:#b45309}.supabase-pill:hover{transform:translateY(-1px)}.auth-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 120px);padding:32px 16px}.auth-card{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:var(--shadow-lg)}.auth-input-group{margin-bottom:20px;display:flex;flex-direction:column;gap:6px}.auth-label{font-size:13px;font-weight:600;color:var(--text-main)}.auth-input{width:100%;padding:12px 16px;background:#fff;border:1px solid rgba(22,50,63,.15);border-radius:var(--radius-md);color:var(--text-main);font-size:14px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.auth-guard-loader-screen{flex-direction:column;min-height:calc(100vh - 140px);gap:16px;text-align:center;padding:32px 16px}.auth-guard-brand-mark,.auth-guard-loader-screen{display:flex;align-items:center;justify-content:center}.auth-guard-brand-mark{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-cyan));color:#fff;font-weight:800;font-size:24px;box-shadow:0 8px 24px rgba(14,147,132,.25);animation:pulseBrand 2s ease-in-out infinite}@keyframes pulseBrand{0%,to{transform:scale(1);box-shadow:0 8px 24px rgba(14,147,132,.25)}50%{transform:scale(1.05);box-shadow:0 12px 32px rgba(14,147,132,.4)}}.auth-guard-spinner{width:32px;height:32px;border:3px solid rgba(14,147,132,.15);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spinLoader .8s linear infinite}@keyframes spinLoader{to{transform:rotate(1turn)}}.auth-guard-loading-text{font-size:14px;color:var(--text-muted);font-weight:500}.google-auth-btn-primary:hover:not(:disabled){background:#f9fafb!important;border-color:#9ca3af!important;box-shadow:0 4px 14px rgba(0,0,0,.1)!important;transform:translateY(-1px)}.google-auth-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px rgba(0,0,0,.04)!important}.google-auth-btn-primary:disabled{opacity:.7;cursor:not-allowed!important}.part5-experience-container{display:flex;flex-direction:column;gap:18px;width:100%}.blueprint-tag-row{display:flex;align-items:center;gap:10px;padding:4px 0}.blueprint-dimensions-label{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--text-muted);opacity:.85}.p5-toolbar{justify-content:space-between;gap:16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:10px 16px;box-shadow:var(--shadow-sm);flex-wrap:wrap}.p5-toolbar,.p5-topic-scroll{display:flex;align-items:center}.p5-topic-scroll{gap:8px;overflow-x:auto;scrollbar-width:none}.p5-topic-scroll::-webkit-scrollbar{display:none}.p5-topic-tab{padding:7px 14px;font-size:13px;font-weight:600;border-radius:9999px;border:1px solid var(--border-subtle);background:#f8fcfa;color:var(--text-main);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.p5-topic-tab:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#e6f5f1}.p5-topic-tab.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 8px var(--accent-primary-glow)}.p5-timer-group{display:flex;align-items:center;gap:12px;flex-shrink:0}.p5-audio-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;font-size:12.5px;font-weight:600;color:#087a6e;background:#eaf6f3;border:1px solid rgba(14,147,132,.25);border-radius:9999px;cursor:pointer;transition:all var(--transition-fast)}.p5-audio-btn.speaking,.p5-audio-btn:hover{background:#0e9384;color:#fff}.p5-pacing-pill{gap:8px;padding:6px 12px;background:#f3faf8;border:1px solid rgba(14,147,132,.2);border-radius:9999px}.btn-icon-tiny,.p5-pacing-pill{display:inline-flex;align-items:center}.btn-icon-tiny{background:none;border:none;font-size:11px;cursor:pointer;color:var(--text-muted);justify-content:center;padding:2px}.btn-icon-tiny:hover{color:var(--accent-primary)}.p5-main-grid{display:grid;grid-template-columns:1fr 340px;grid-gap:20px;gap:20px;align-items:start}@media (max-width:1024px){.p5-main-grid{grid-template-columns:1fr}}.p5-question-card{padding:24px 28px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:20px}.p5-card-header{justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--border-subtle);gap:12px}.p5-card-header,.p5-card-meta{display:flex;align-items:center;flex-wrap:wrap}.p5-card-meta{gap:10px}.p5-q-number{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700;color:var(--text-main)}.p5-q-part-badge{font-size:11px;font-weight:700;text-transform:uppercase;background:#eaf6f3;color:#087a6e}.p5-q-part-badge,.p5-topic-badge{padding:2px 8px;border-radius:4px}.p5-topic-badge{font-size:11.5px;font-weight:600;background:#eef2f6;color:#475569}.p5-bilingual-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;background:#f1f8f6;border:1px solid rgba(14,147,132,.25);border-radius:9999px;color:#087a6e;cursor:pointer;transition:all var(--transition-fast)}.p5-bilingual-btn.active,.p5-bilingual-btn:hover{background:#0e9384;color:#fff}.p5-flag-btn{background:none;border:1px solid var(--border-subtle);border-radius:9999px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all var(--transition-fast)}.p5-flag-btn:hover{background:#fef9c3;border-color:#facc15}.p5-flag-btn.flagged{background:#fef08a;border-color:#eab308}.p5-sentence-box{background:#f9fdfc;border:1px solid rgba(14,147,132,.15);border-radius:var(--radius-md);padding:20px 24px;line-height:1.8}.p5-sentence-text{font-size:17px;font-weight:500;color:var(--text-main);letter-spacing:-.01em}.p5-blank-pill{display:inline-block;min-width:90px;padding:2px 14px;margin:0 4px;border-bottom:2.5px solid #0e9384;color:#087a6e;font-weight:700;text-align:center;background:rgba(14,147,132,.08);border-radius:4px;transition:all var(--transition-fast)}.p5-blank-pill.correct,.p5-blank-pill.filled{background:#d1fae5;color:#065f46;border-bottom-color:#10b981}.p5-blank-pill.incorrect{background:#ffe4e6;color:#be123c;border-bottom-color:#f43f5e}.p5-translation-box{background:#f0fdf9;border:1px dashed #6ee7b7;border-radius:var(--radius-md);padding:14px 18px;animation:fadeIn .25s ease-out}.p5-trans-label{font-size:11.5px;font-weight:700;color:#047857;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.p5-trans-text{font-size:14.5px;color:#16323f;line-height:1.6;font-style:italic}.p5-options-section{display:flex;flex-direction:column;gap:12px}.p5-options-header{display:flex;align-items:center;gap:8px}.p5-options-list{display:flex;flex-direction:column;gap:10px}.p5-option-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border:1.5px solid rgba(22,50,63,.12);border-radius:var(--radius-md);cursor:pointer!important;transition:all .2s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.p5-option-row:hover{border-color:#0e9384!important;background:#f0fdfa!important;transform:translateX(4px);box-shadow:0 4px 14px rgba(14,147,132,.15)}.p5-option-row:hover .p5-opt-letter{border-color:#0e9384;color:#0e9384;background:#e6f7f4}.p5-option-row:active{transform:scale(.99)}.p5-option-row.selected{border-color:#0e9384!important;background:#eaf6f3!important;box-shadow:0 0 0 2px #0e9384,0 4px 14px rgba(14,147,132,.18)}.p5-option-row.struck{opacity:.45;text-decoration:line-through;background:#f8fafc}.p5-option-row.correct{border-color:#10b981!important;background:#ecfdf5!important}.p5-option-row.incorrect{border-color:#f43f5e!important;background:#fff1f2!important}.p5-option-main{gap:14px;flex:1 1}.p5-opt-letter,.p5-option-main{display:flex;align-items:center}.p5-opt-letter{width:30px;height:30px;border-radius:50%;background:#eef2f6;color:#334155;font-size:13px;font-weight:700;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.p5-option-row.selected .p5-opt-letter{background:#0e9384;color:#fff}.p5-option-row.correct .p5-opt-letter{background:#10b981;color:#fff}.p5-option-row.incorrect .p5-opt-letter{background:#f43f5e;color:#fff}.p5-opt-content{display:flex;flex-direction:column;gap:3px}.p5-opt-text{font-size:15.5px;font-weight:600;color:var(--text-main)}.p5-opt-meaning{font-size:12.5px;color:#4b6777;font-weight:500}.p5-option-tools{display:flex;align-items:center;gap:10px}.p5-status-icon.correct{color:#059669;font-weight:700;font-size:13px}.p5-status-icon.incorrect{color:#e11d48;font-weight:700;font-size:13px}.p5-btn-strike{background:none;border:1px solid var(--border-subtle);border-radius:6px;padding:3px 6px;cursor:pointer;font-size:12px;opacity:.6;transition:opacity var(--transition-fast)}.p5-btn-strike:hover{opacity:1;background:#fee2e2}.p5-tutor-box{background:#f9fdfc;border:1px solid #a7f3d0;border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:16px;animation:fadeIn .3s ease-out}.p5-tutor-head{display:flex;align-items:center;gap:10px;color:#065f46;font-size:15px}.p5-tutor-icon{font-size:20px}.p5-grammar-rule-card{background:#fff;border-left:4px solid #0e9384;padding:12px 16px;border-radius:0 6px 6px 0;box-shadow:0 1px 3px rgba(0,0,0,.05)}.rule-label{font-size:12px;font-weight:700;color:#087a6e;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:4px}.rule-content{font-weight:600;line-height:1.5}.p5-rationale-text,.rule-content{font-size:14px;color:var(--text-main)}.p5-rationale-text{line-height:1.65}.p5-trap-alert{display:flex;align-items:flex-start;gap:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:10px 14px;font-size:13.5px;color:#92400e;line-height:1.5}.p5-key-vocab-section{border-top:1px solid rgba(14,147,132,.15);padding-top:12px}.p5-vocab-title{font-size:13px;font-weight:700;color:#087a6e;margin-bottom:10px}.p5-vocab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:8px;gap:8px}.p5-vocab-item{background:#fff;border:1px solid rgba(14,147,132,.2);border-radius:6px;padding:8px 12px}.p5-vocab-top{display:flex;align-items:baseline;gap:6px;margin-bottom:2px}.vocab-word{font-weight:700;font-size:13.5px;color:var(--text-main)}.vocab-pos{font-size:11px;color:#087a6e;font-style:italic}.vocab-phonetic{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted)}.vocab-meaning{font-size:12.5px;color:var(--text-main)}.p5-actions-footer{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:12px}.p5-palette-card{padding:20px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:16px}.p5-palette-head{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.p5-palette-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.palette-stat-box{background:#f8fafc;border-radius:6px;padding:8px 4px;text-align:center;display:flex;flex-direction:column}.palette-stat-box.correct{background:#ecfdf5;color:#047857}.palette-stat-box.incorrect{background:#fff1f2;color:#be123c}.palette-stat-box.flagged{background:#fefce8;color:#a16207}.stat-number{font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700}.stat-label{font-size:10.5px}.p5-matrix-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px}.p5-matrix-item{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:6px;background:#f8fafc;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;color:var(--text-main);cursor:pointer;transition:all var(--transition-fast)}.p5-matrix-item:hover{border-color:#0e9384;background:#e6f5f1}.p5-matrix-item.current{border:2px solid #0e9384;background:#eaf6f3;color:#087a6e;font-weight:800}.p5-matrix-item.correct{background:#10b981;color:#fff;border-color:#10b981}.p5-matrix-item.incorrect{background:#f43f5e;color:#fff;border-color:#f43f5e}.matrix-flag-dot{position:absolute;top:-4px;right:-4px;font-size:9px}.p5-palette-legend{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted);padding:8px 0;border-top:1px dashed var(--border-subtle)}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1}.legend-dot.current{border:2px solid #0e9384;background:#eaf6f3}.legend-dot.correct{background:#10b981}.legend-dot.incorrect{background:#f43f5e}.p5-target-note{font-size:12px;color:#334155;background:#f0f7f5;border-radius:6px;padding:10px 12px;line-height:1.5}.smart-explanation-card{margin-top:24px;background:linear-gradient(145deg,#fff,#f7fdfb);border:1.5px solid rgba(14,147,132,.22);border-radius:18px;padding:22px 24px;box-shadow:0 12px 36px -4px rgba(14,147,132,.12),0 2px 8px rgba(0,0,0,.03);position:relative;overflow:hidden;max-width:100%;width:100%;box-sizing:border-box;overflow-wrap:break-word;word-break:break-word;animation:slideUpFadeIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes slideUpFadeIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.smart-explanation-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid rgba(14,147,132,.12);flex-wrap:wrap}.tutor-identity{display:flex;align-items:center;gap:12px}.tutor-avatar-glow{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#0e9384,#10b981);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 14px rgba(14,147,132,.35);animation:pulseAvatar 3s ease-in-out infinite}@keyframes pulseAvatar{0%,to{transform:scale(1);box-shadow:0 4px 14px rgba(14,147,132,.35)}50%{transform:scale(1.04);box-shadow:0 6px 18px rgba(14,147,132,.5)}}.tutor-title-group{display:flex;flex-direction:column;gap:2px}.tutor-title-row{display:flex;align-items:center;gap:8px}.tutor-title-text{font-family:Outfit,Be Vietnam Pro,sans-serif;font-weight:800;font-size:15px;color:#065f46;letter-spacing:-.2px}.wf-spec-badge.interactive{cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast)}.wf-spec-badge.interactive:hover{transform:translateY(-1px);background:#0e9384;color:#fff}.tutor-subtitle{font-size:11.5px;color:#49665f;font-weight:500}.smart-explanation-toolbar{display:flex;align-items:center;gap:8px}.tutor-tool-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid rgba(14,147,132,.25);color:#0e9384;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 1px 3px rgba(0,0,0,.03)}.tutor-tool-btn:hover{background:#eaf8f5;border-color:#0e9384;transform:translateY(-1px);box-shadow:0 3px 8px rgba(14,147,132,.15)}.tutor-tool-btn.active-speech{background:#fef2f2;border-color:#ef4444;color:#ef4444}.tutor-tool-btn.active-copied{background:#ecfdf5;border-color:#10b981;color:#10b981}.tutor-tool-btn.active-bookmark{background:#fffbeb;border-color:#f59e0b;color:#d97706}.tutor-outcome-banner{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-radius:12px;margin-top:16px;animation:fadeIn .25s ease-out}.outcome-correct{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #6ee7b7}.outcome-incorrect{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa}.outcome-icon-wrap{flex-shrink:0;margin-top:2px}.correct-icon{color:#059669}.incorrect-icon{color:#ea580c}.outcome-content{flex:1 1}.outcome-headline{display:flex;align-items:center;gap:8px;margin-bottom:4px}.outcome-status-tag{font-size:13.5px;font-weight:800;letter-spacing:.3px}.outcome-status-tag.success{color:#065f46}.outcome-status-tag.warning{color:#9a3412}.outcome-xp-badge{background:#059669;color:#fff;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700}.outcome-target-badge{background:rgba(234,88,12,.12);color:#c2410c;padding:1px 8px;border-radius:6px;font-size:11.5px;font-weight:600}.outcome-desc{font-size:13px;line-height:1.55;color:#334155;margin:0}.tutor-speed-hack-box{margin-top:14px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fcd34d;border-radius:12px;padding:12px 16px;box-shadow:0 2px 10px rgba(245,158,11,.08)}.speed-hack-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.speed-hack-title-wrap{display:flex;align-items:center;gap:6px}.speed-hack-icon-pulse{color:#d97706;display:flex;align-items:center;justify-content:center}.speed-hack-badge{font-size:11.5px;font-weight:800;color:#92400e;letter-spacing:.3px}.speed-hack-efficiency{font-size:11px;font-weight:700;background:#fbbf24;color:#78350f;padding:2px 8px;border-radius:999px}.speed-hack-body{font-size:13px;font-weight:600;line-height:1.5;color:#78350f}.speed-hack-text{margin:0}.tutor-tabs-nav{display:flex;align-items:center;gap:6px;margin-top:18px;background:#edf7f4;padding:4px;border-radius:10px;overflow-x:auto}.tutor-tab-item{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;background:transparent;color:#33534b;font-size:12.5px;font-weight:600;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.tutor-tab-item:hover{color:#065f46;background:hsla(0,0%,100%,.6)}.tutor-tab-item.active{background:#fff;color:#087a6e;font-weight:700;box-shadow:0 2px 8px rgba(14,147,132,.12)}.tab-pill-badge{font-size:10.5px;background:#0e9384;color:#fff;padding:1px 6px;border-radius:999px}.tutor-tab-body{margin-top:16px}.animate-fade-in{animation:fadeIn .25s ease-out}.tutor-rule-card{background:#fff;border:1px solid #bce8df;border-left:4px solid #0e9384;border-radius:0 10px 10px 0;padding:12px 16px;box-shadow:0 2px 6px rgba(0,0,0,.02);margin-bottom:16px}.rule-card-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#087a6e;letter-spacing:.4px;margin-bottom:6px}.rule-pin-icon{font-size:12px}.rule-topic-chip{background:#e6f8f5;color:#087a6e;padding:1px 7px;border-radius:4px;font-size:10.5px;font-weight:600}.rule-card-formula{font-size:13.5px;font-weight:700;color:#16323f;line-height:1.5}.tutor-options-breakdown{margin-bottom:16px}.options-breakdown-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#49665f;margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}.options-breakdown-list{display:flex;flex-direction:column;gap:8px}.breakdown-option-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid rgba(22,50,63,.08);border-radius:10px;padding:10px 14px;transition:all var(--transition-fast)}.breakdown-option-item:hover{border-color:#bce8df;box-shadow:0 2px 8px rgba(0,0,0,.02)}.breakdown-option-item.is-correct-option{background:#f0fdf4;border-color:#86efac}.breakdown-option-item.is-wrong-selection{background:#fff7ed;border-color:#fdba74}.breakdown-option-left{display:flex;align-items:center;gap:10px;flex:1 1}.breakdown-bullet{width:24px;height:24px;border-radius:6px;background:#f1f5f9;color:#475569;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.breakdown-bullet.bullet-correct{background:#22c55e;color:#fff}.breakdown-text-group{display:flex;flex-direction:column;gap:1px}.breakdown-opt-en{font-size:13.5px;font-weight:600;color:#1e293b}.breakdown-opt-vi{font-size:12px;color:#64748b}.breakdown-option-status{flex-shrink:0}.status-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.status-pill.correct-pill{background:#dcfce7;color:#15803d}.status-pill.selected-wrong-pill{background:#ffedd5;color:#c2410c}.status-pill.neutral-pill{background:#f1f5f9;color:#64748b}.tutor-explanation-prose{background:#fcfefe;border:1px solid #d4f1eb;border-radius:10px;padding:14px 16px;margin-bottom:14px}.prose-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#087a6e;margin-bottom:8px}.prose-body-text{font-size:13.5px;line-height:1.65;color:#1e293b}.tutor-trap-callout{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:12px 16px}.trap-callout-head{display:flex;align-items:center;gap:8px;color:#92400e;font-size:12.5px;margin-bottom:4px;flex-wrap:wrap}.trap-alert-icon{color:#d97706}.trap-name-badge{background:#fef3c7;color:#b45309;border:1px solid #fcd34d;padding:1px 8px;border-radius:4px;font-size:11.5px;font-weight:700}.trap-callout-text{font-size:12.5px;line-height:1.5;color:#78350f;margin:0}.bilingual-passage-card,.bilingual-script-card{background:#fff;border:1px solid #bce8df;border-radius:10px;padding:12px 16px;margin-bottom:14px}.bilingual-section-tag{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#087a6e;margin-bottom:8px;text-transform:uppercase}.audio-script-content{font-size:13px;line-height:1.6;color:#1e293b}.audio-script-line{padding:4px 0;border-bottom:1px dashed rgba(22,50,63,.06)}.audio-script-line:last-child{border-bottom:none}.passage-content-preview{font-size:13px;line-height:1.6;color:#334155;white-space:pre-line;max-height:180px;overflow-y:auto}.bilingual-question-compare{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:16px}@media (max-width:640px){.bilingual-question-compare{grid-template-columns:1fr}}.bilingual-box{background:#fff;border:1px solid rgba(22,50,63,.08);border-radius:10px;padding:12px 14px}.bilingual-box.en-box{border-left:3px solid #3b82f6}.bilingual-box.vi-box{border-left:3px solid #ef4444}.box-badge{font-size:11px;font-weight:700;margin-bottom:6px}.en-badge{color:#1d4ed8}.vi-badge{color:#b91c1c}.box-text{font-size:13px;line-height:1.55;color:#1e293b;margin:0}.bilingual-options-heading{font-size:12px;font-weight:700;color:#49665f;margin-bottom:8px;text-transform:uppercase}.bilingual-options-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.bilingual-opt-card{background:#fff;border:1px solid rgba(22,50,63,.08);border-radius:8px;padding:10px 12px}.bilingual-opt-card.is-correct{background:#f0fdf4;border-color:#86efac}.opt-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.opt-letter{font-weight:800;font-size:12px;color:#0e9384}.opt-badge-correct{font-size:10px;font-weight:800;background:#22c55e;color:#fff;padding:1px 6px;border-radius:4px}.opt-en-str{font-size:13px;font-weight:600;color:#0f172a;margin-bottom:2px}.opt-vi-str{font-size:12px;color:#475569}.vocab-pane-header{margin-bottom:12px}.vocab-pane-desc{font-size:12px;color:#49665f;background:#edf7f4;border-radius:6px;padding:8px 12px}.smart-vocab-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:10px;gap:10px}.smart-vocab-card{background:#fff;border:1px solid rgba(14,147,132,.2);border-radius:10px;padding:12px 14px;box-shadow:0 1px 3px rgba(0,0,0,.02);transition:all var(--transition-fast)}.smart-vocab-card:hover{border-color:#0e9384;transform:translateY(-1px);box-shadow:0 4px 12px rgba(14,147,132,.1)}.vocab-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.vocab-word-group{display:flex;align-items:baseline;gap:6px}.vocab-main-word{font-weight:800;font-size:14px;color:#0e9384}.vocab-pos-badge{font-size:11px;font-style:italic;color:#64748b}.vocab-card-actions{display:flex;align-items:center;gap:4px}.vocab-audio-btn,.vocab-save-btn{width:26px;height:26px;border-radius:6px;border:1px solid rgba(14,147,132,.2);background:#f0f7f5;color:#087a6e;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all var(--transition-fast)}.vocab-audio-btn:hover,.vocab-save-btn:hover{background:#0e9384;color:#fff}.vocab-audio-btn.speaking{background:#10b981;color:#fff}.vocab-save-btn.saved{background:#059669;color:#fff;border-color:#059669}.vocab-phonetic-line{font-family:JetBrains Mono,monospace;font-size:11px;color:#64748b;margin-bottom:4px}.vocab-meaning-line{font-size:12.5px;font-weight:500;color:#334155;line-height:1.4}.trap-hero-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;border-radius:12px;padding:14px 18px;margin-bottom:14px}.trap-hero-icon-wrap{color:#e11d48;flex-shrink:0}.trap-hero-title{font-size:14px;font-weight:800;color:#9f1239;margin-bottom:2px}.trap-hero-sub{font-size:12px;color:#be123c}.trap-detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.trap-detail-grid{grid-template-columns:1fr}}.trap-detail-card{background:#fff;border-radius:10px;padding:12px 14px}.trap-detail-card.danger-card{border:1px solid #fecdd3}.trap-detail-card.solution-card{border:1px solid #a7f3d0}.card-headline{font-size:12px;font-weight:700;color:#1e293b;margin-bottom:8px}.trap-points-list{padding-left:18px;margin:0;font-size:12px;color:#475569;line-height:1.6}.trap-points-list li{margin-bottom:4px}.smart-explanation-footer{justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid rgba(14,147,132,.12);gap:10px}.smart-explanation-footer,.tutor-tags-list{display:flex;align-items:center;flex-wrap:wrap}.tutor-tags-list{gap:6px}.tags-label{color:#49665f}.tags-label,.tutor-topic-tag{font-size:11px;font-weight:600}.tutor-topic-tag{background:#edf7f4;color:#087a6e;border:1px solid rgba(14,147,132,.15);padding:2px 8px;border-radius:999px}.tutor-footer-brand{font-size:10.5px;font-weight:700;color:#94a3b8;letter-spacing:.5px;text-transform:uppercase}.desktop-only,.desktop-tablet-only{display:inline-flex!important}.mobile-only{display:none!important}body,html{overflow-x:hidden;max-width:100vw;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.mobile-hamburger-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;background:rgba(22,50,63,.05);border:1px solid var(--border-subtle);border-radius:8px;font-size:18px;color:var(--text-main);cursor:pointer;transition:all .2s ease}.mobile-hamburger-btn:hover{background:rgba(14,147,132,.1);border-color:#0e9384}.mobile-drawer-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:500;display:flex;flex-direction:column;justify-content:flex-start;animation:fadeIn .2s ease-out}.mobile-drawer-content{background:#fff;border-bottom:1.5px solid rgba(14,147,132,.2);border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding:20px 20px 24px;box-shadow:0 16px 36px rgba(0,0,0,.12);animation:slideDown .25s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--border-subtle);margin-bottom:14px}.drawer-close-btn{background:rgba(22,50,63,.06);border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:15px;cursor:pointer}.mobile-stats-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-bottom:16px}.mobile-stat-card{background:#f8fafc;border:1px solid rgba(22,50,63,.06);border-radius:10px;padding:8px 10px;text-align:center;display:flex;flex-direction:column;gap:3px}.mobile-stat-card .stat-label{font-size:10.5px;color:var(--text-muted);font-weight:500}.mobile-stat-card .stat-value{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:14px;font-weight:800}.mobile-nav-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.mobile-nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;text-decoration:none;color:var(--text-main);font-size:14px;font-weight:600;transition:all .15s ease;background:#fbfdfc;border:1px solid rgba(22,50,63,.04)}.mobile-nav-item.active{background:#e6f8f5;color:#087a6e;border-color:#bce8df;font-weight:700}.mobile-nav-item .nav-icon{font-size:17px}.mobile-nav-item .nav-title{flex:1 1}.mobile-nav-item .active-dot{color:#0e9384;font-size:12px}.mobile-drawer-footer{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--border-subtle)}.mobile-mode-btn{gap:8px;padding:10px 14px;background:#f1f5f9;border:1px solid #cbd5e1;color:#334155;font-size:13px;font-weight:600;cursor:pointer}.mobile-mode-btn,.mobile-supabase-link{display:flex;align-items:center;justify-content:center;border-radius:8px}.mobile-supabase-link{gap:6px;padding:8px 12px;font-size:12px;text-decoration:none;background:#f8fafc;border:1px solid rgba(22,50,63,.08);color:var(--text-muted)}.mobile-bottom-bar{position:fixed;bottom:0;left:0;right:0;height:calc(56px + env(safe-area-inset-bottom, 0px));background:hsla(0,0%,100%,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(22,50,63,.1);z-index:990;display:none;align-items:center;justify-content:space-around;padding:4px 4px env(safe-area-inset-bottom,6px);box-sizing:border-box;box-shadow:0 -4px 18px rgba(0,0,0,.05)}.bottom-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1 1;min-width:0;height:100%;text-decoration:none;color:#64748b;position:relative;padding:2px 1px;transition:all .15s ease}.bottom-tab-icon{font-size:17px;line-height:1}.bottom-tab-label{font-size:9.5px;font-weight:600;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-tab.active{color:#087a6e}.bottom-tab.active .bottom-tab-label{font-weight:750}.bottom-active-indicator{position:absolute;top:0;width:24px;height:2.5px;background:#0e9384;border-radius:999px}@media (max-width:1024px){.desktop-only{display:none!important}.app-header{padding:0 20px;height:66px}.brand-logo{width:38px;height:38px}.brand-logo,.brand-title{font-size:18px}.nav-menu{gap:4px;padding:3px}.nav-link{padding:6px 12px;font-size:12.5px;gap:6px}.header-actions{gap:8px}.mode-toggle-btn{padding:6px 12px;font-size:12px}.main-viewport{padding:20px 20px 50px}.parts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}}@media (max-width:768px){.desktop-tablet-only{display:none!important}.mobile-only{display:flex!important}.desktop-nav{display:none!important}.mobile-hamburger-btn{display:flex!important}input,select,textarea{font-size:16px!important}.app-header{padding:0 16px;height:58px}.brand-section{gap:8px}.brand-logo{width:34px;height:34px;border-radius:9px}.brand-logo,.brand-title{font-size:16px}.header-actions{gap:8px}.user-profile-badge{padding:2px 6px 2px 2px!important}.user-display-name{display:none!important}.main-viewport{padding:14px 14px calc(76px + env(safe-area-inset-bottom, 16px))!important;max-width:100vw;box-sizing:border-box;overflow-x:hidden}.section-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:18px}.section-title-group h1{font-size:21px;line-height:1.25}.section-title-group p{font-size:12.5px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.score-hero-card{padding:18px 14px}.score-hero-body{flex-direction:column!important;align-items:center!important;gap:18px!important;padding:16px 0!important}.gauge-wrapper{width:150px;height:150px}.gauge-val{font-size:32px}.subscore-breakdown{width:100%!important;min-width:0!important;gap:10px}.subscore-item{padding:10px 14px}.roadmap-section-title{flex-direction:column;align-items:flex-start;gap:4px}.parts-grid{grid-template-columns:1fr!important;gap:12px}.part-card{padding:16px}.exam-toolbar{padding:12px 14px;flex-direction:column;align-items:stretch;gap:10px}.part-filter-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding-bottom:4px;gap:6px;scrollbar-width:none}.part-filter-tabs::-webkit-scrollbar{display:none}.filter-tab{white-space:nowrap!important;flex-shrink:0;padding:6px 12px;font-size:12px}.exam-timer-box{width:100%;justify-content:space-between;padding:6px 14px}.exam-workspace{grid-template-columns:1fr!important;gap:16px}.exam-panel{padding:16px}.audio-controls-row{flex-direction:column;align-items:flex-start;gap:10px}.btn-script-toggle{font-size:11px!important;padding:5px 10px!important}.ets-standard-notice{font-size:11.5px!important;padding:8px 10px!important}.p5-question-card{padding:16px 12px!important;gap:16px;border-radius:14px!important}.test-nav-banner{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding:10px 12px!important}.btn-back-catalog{font-size:12px!important;padding:6px 10px!important}.test-active-pill{max-width:100%!important;font-size:12px!important;flex-wrap:wrap!important}.question-progress-chip{font-size:11px!important;padding:4px 8px!important;margin-left:auto}.p5-toolbar{flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding:10px 12px!important}.p5-timer-group{width:100%!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;order:1!important}.p5-audio-btn{flex:1 1!important;justify-content:center!important;padding:7px 10px!important;font-size:12px!important}.p5-pacing-pill{flex-shrink:0!important;padding:6px 10px!important;font-size:12px!important}.p5-topic-scroll{order:2!important;width:100%!important;display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;gap:6px!important;padding-bottom:2px!important}.p5-topic-tab{flex-shrink:0!important;padding:5px 12px!important;font-size:12px!important}.p5-card-header{flex-direction:column!important;align-items:stretch!important;gap:10px!important}.p5-card-meta{flex-wrap:wrap!important;gap:6px!important}.p5-card-meta,.p5-card-tools{display:flex!important;align-items:center!important}.p5-card-tools{gap:8px!important;width:100%!important}.btn-tool-flag,.p5-flag-btn{flex:1 1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:7px 10px!important;font-size:12px!important;font-weight:600!important;border-radius:999px!important;border:1px solid #fde68a!important;background:#fffbeb!important;color:#92400e!important;cursor:pointer!important}.btn-tool-flag.flagged,.p5-flag-btn.flagged{background:#fef08a!important;border-color:#eab308!important}.btn-tool-bilingual,.p5-bilingual-btn{flex:1 1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:7px 10px!important;font-size:12px!important;font-weight:600!important;border-radius:999px!important;border:1px solid rgba(14,147,132,.3)!important;background:#f0fdf9!important;color:#087a6e!important;cursor:pointer!important}.btn-tool-bilingual.active,.p5-bilingual-btn.active{background:#0e9384!important;color:#fff!important;border-color:#0e9384!important}.p5-sentence-box{padding:14px 12px!important;border-radius:12px!important}.p5-sentence-text{font-size:15px!important;line-height:1.7!important;word-break:break-word!important}.p5-blank-pill{min-width:60px!important;max-width:100%!important;padding:2px 8px!important;margin:2px!important;word-break:break-word!important}.p5-option-row{padding:12px 10px!important;gap:8px!important}.p5-opt-letter{width:26px!important;height:26px!important;font-size:12px!important}.p5-opt-text{font-size:14px!important;word-break:break-word!important}.p5-opt-meaning{font-size:11.5px!important}.p5-action-footer,.p5-actions-footer{display:flex!important;flex-direction:column-reverse!important;gap:10px!important;align-items:stretch!important;width:100%!important;margin-top:18px!important;padding-top:14px!important;border-top:1px solid var(--border-subtle)!important}.p5-actions-footer>div,.p5-left-actions,.p5-right-actions{display:flex!important;width:100%!important;gap:8px!important}.p5-actions-footer .btn-action,.p5-left-actions .btn-action,.p5-right-actions .btn-action{flex:1 1!important;justify-content:center!important;padding:11px 12px!important;font-size:13px!important;min-height:44px!important;display:flex!important;align-items:center!important}.p5-palette-card{padding:14px 12px!important;border-radius:14px!important}.p5-palette-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;grid-gap:6px!important;gap:6px!important}.palette-stat-box{padding:6px 2px!important}.stat-number{font-size:13px!important}.stat-label{font-size:9.5px!important}.p5-matrix-grid,.p5-palette-grid{display:grid!important;grid-template-columns:repeat(5,1fr)!important;grid-gap:5px!important;gap:5px!important}.p5-matrix-item{min-width:0!important;aspect-ratio:1!important;font-size:11px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.p5-palette-legend{display:flex!important;flex-wrap:wrap!important;gap:8px!important;justify-content:flex-start!important;font-size:10.5px!important}.smart-explanation-card{padding:16px 12px!important;margin-top:16px!important;border-radius:14px!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;overflow-x:hidden!important}.smart-explanation-header{flex-direction:column!important;align-items:flex-start!important;gap:12px!important;padding-bottom:12px!important;width:100%!important}.tutor-identity{width:100%!important;gap:10px!important}.tutor-title-text{font-size:14px!important}.tutor-subtitle{font-size:11px!important;line-height:1.4!important}.smart-explanation-toolbar{width:100%!important;display:flex!important;flex-wrap:wrap!important;gap:6px!important;justify-content:flex-start!important}.tutor-tool-btn{flex:1 1 auto!important;justify-content:center!important;padding:6px 8px!important;font-size:11.5px!important;gap:4px!important}.tool-btn-label{white-space:nowrap!important}.tutor-outcome-banner{padding:12px!important;gap:10px!important;margin-top:12px!important;width:100%!important;box-sizing:border-box!important}.outcome-headline{flex-wrap:wrap!important;gap:6px!important}.outcome-desc{font-size:12px!important;line-height:1.5!important;overflow-wrap:break-word!important;word-break:break-word!important}.tutor-speed-hack-box{padding:10px 12px!important;margin-top:10px!important;width:100%!important;box-sizing:border-box!important}.speed-hack-header{flex-direction:column!important;align-items:flex-start!important;gap:6px!important}.speed-hack-badge{font-size:10.5px!important;white-space:normal!important;word-break:break-word!important}.speed-hack-efficiency{align-self:flex-start!important;font-size:10px!important}.speed-hack-body{font-size:12px!important;overflow-wrap:break-word!important;word-break:break-word!important}.tutor-tabs-nav{margin-top:12px!important;padding:3px!important;gap:4px!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important}.tutor-tabs-nav::-webkit-scrollbar{display:none!important}.tutor-tab-item{padding:7px 10px!important;font-size:11.5px!important;gap:4px!important;flex-shrink:0!important}.tab-pane-analysis,.tab-pane-bilingual,.tab-pane-trap,.tab-pane-vocab{width:100%!important;max-width:100%!important;overflow-x:hidden!important}.breakdown-option-item{flex-direction:column!important;padding:10px 12px!important;max-width:100%!important;box-sizing:border-box!important}.breakdown-option-item,.breakdown-option-left{align-items:flex-start!important;gap:8px!important;width:100%!important}.breakdown-option-left{min-width:0!important}.breakdown-text-group{min-width:0!important;flex:1 1!important}.breakdown-opt-en,.breakdown-text-group{overflow-wrap:break-word!important;word-break:break-word!important}.breakdown-opt-en{font-size:13px!important}.breakdown-opt-vi{font-size:11.5px!important;overflow-wrap:break-word!important;word-break:break-word!important}.breakdown-option-status{align-self:flex-start!important;margin-left:32px!important}.tutor-rule-card{padding:10px 12px!important;width:100%!important;box-sizing:border-box!important}.rule-card-label{flex-wrap:wrap!important;gap:4px!important}.rule-card-formula{font-size:12.5px!important;overflow-wrap:break-word!important;word-break:break-word!important}.tutor-explanation-prose{padding:12px!important;width:100%!important;box-sizing:border-box!important}.prose-body-text{font-size:12.5px!important;line-height:1.6!important;overflow-wrap:break-word!important;word-break:break-word!important}.tutor-trap-callout{width:100%!important;box-sizing:border-box!important}.trap-callout-text{overflow-wrap:break-word!important;word-break:break-word!important}.bilingual-question-compare{grid-template-columns:1fr!important;gap:8px!important;width:100%!important}.bilingual-box{padding:10px 12px!important;width:100%!important;box-sizing:border-box!important}.bilingual-box .box-text{font-size:12.5px!important;overflow-wrap:break-word!important;word-break:break-word!important}.bilingual-options-cards{grid-template-columns:1fr!important;gap:8px!important;width:100%!important}.bilingual-opt-card{width:100%!important;box-sizing:border-box!important}.opt-en-str,.opt-vi-str{overflow-wrap:break-word!important;word-break:break-word!important}.smart-vocab-cards-grid{grid-template-columns:1fr!important;gap:8px!important;width:100%!important}.smart-vocab-card{width:100%!important;box-sizing:border-box!important}.vocab-card-top{flex-wrap:wrap!important;gap:6px!important}.vocab-meaning-line{overflow-wrap:break-word!important;word-break:break-word!important}.trap-hero-banner{flex-direction:column!important;align-items:flex-start!important;padding:12px 14px!important;box-sizing:border-box!important}.trap-detail-grid,.trap-hero-banner{gap:8px!important;width:100%!important}.trap-detail-grid{grid-template-columns:1fr!important}.trap-detail-card{width:100%!important;box-sizing:border-box!important}.trap-points-list{overflow-wrap:break-word!important;word-break:break-word!important}.smart-explanation-footer{flex-direction:column!important;align-items:flex-start!important;gap:8px!important;padding-top:10px!important;width:100%!important}.tutor-tags-list{flex-wrap:wrap!important;gap:4px!important}.vocab-layout{grid-template-columns:1fr!important;gap:20px}.card-scene{height:280px!important;max-width:100%!important}.vocab-word-display{font-size:26px!important}.card-face{padding:20px 16px!important}.leitner-actions,.leitner-rating-bar{display:grid!important;grid-template-columns:repeat(2,1fr)!important;grid-gap:8px!important;gap:8px!important;width:100%!important;max-width:100%!important}.btn-leitner,.leitner-btn{width:100%!important;padding:10px 8px!important;font-size:12px!important;min-height:44px!important}.analytics-grid{gap:16px}.analytics-grid,.spec-cards-grid{grid-template-columns:1fr!important}.spec-modal-window{width:94vw!important;max-height:85vh;overflow-y:auto;padding:20px 16px!important;border-radius:16px}.auth-card{padding:24px 18px!important;margin:0 8px}}.exam-catalog-page{display:flex;flex-direction:column;gap:20px;width:100%;animation:fadeIn .3s ease-out}.catalog-header-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:#fff;padding:22px 28px;border-radius:16px;border:1px solid rgba(226,232,240,.9);box-shadow:0 2px 8px rgba(0,0,0,.03)}.catalog-header-info{display:flex;flex-direction:column;gap:6px}.catalog-header-title-row{display:flex;align-items:center;gap:12px}.catalog-main-title{font-size:24px;font-weight:800;color:#0f172a;letter-spacing:-.02em;margin:0}.catalog-badge-total{font-size:12px;font-weight:600;color:#0e9384;background:#f0fdfa;border:1px solid #ccfbf1;padding:3px 10px;border-radius:999px}.catalog-subtitle{font-size:13.5px;color:#64748b;margin:0;line-height:1.5}.catalog-subtitle strong{color:#0e9384;font-weight:600}.catalog-quick-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.catalog-icon-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s ease}.catalog-icon-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.catalog-stat-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid transparent}.catalog-stat-pill.flame-pill{background:#fff7ed;border-color:#ffedd5;color:#ea580c}.catalog-stat-pill.star-pill{background:#fefce8;border-color:#fef08a;color:#ca8a04}.catalog-user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#f43f5e,#e11d48);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(225,29,72,.25)}.catalog-part-selector-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.part-mode-pills{display:flex;gap:10px;flex-wrap:wrap}.part-pill-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;color:#475569;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.part-pill-btn:hover{border-color:#0e9384;color:#0e9384;transform:translateY(-1px)}.part-pill-btn.active{background:#0e9384;border-color:#0e9384;color:#fff;box-shadow:0 4px 12px rgba(14,147,132,.25)}.part-count-tag{font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.06)}.part-pill-btn.active .part-count-tag{background:hsla(0,0%,100%,.25);color:#fff}.catalog-info-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;background:#f1f5f9;color:#475569;font-size:12.5px;font-weight:500}.catalog-controls-container{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;padding:12px 18px;border-radius:14px;border:1px solid rgba(226,232,240,.9)}.catalog-tabs-scroll{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.catalog-tabs-scroll::-webkit-scrollbar{display:none}.catalog-tab-btn{padding:8px 16px;border-radius:999px;border:none;background:transparent;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.catalog-tab-btn:hover{background:#f1f5f9;color:#0f172a}.catalog-tab-btn.active{background:#0f172a;color:#fff}.catalog-search-wrapper{display:flex;align-items:center;gap:12px;flex-shrink:0}.catalog-search-box{position:relative;display:flex;align-items:center}.catalog-search-icon{position:absolute;left:12px;color:#94a3b8;pointer-events:none}.catalog-search-input{padding:8px 32px 8px 34px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-size:13px;width:210px;transition:all .2s ease}.catalog-search-input:focus{outline:none;border-color:#0e9384;background:#fff;width:250px;box-shadow:0 0 0 3px rgba(14,147,132,.12)}.catalog-search-clear{position:absolute;right:10px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:12px;padding:2px}.catalog-result-count{font-size:12.5px;font-weight:600;color:#94a3b8;white-space:nowrap}.catalog-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.catalog-card{position:relative;background:#fff;border-radius:16px;padding:22px;border:1px solid rgba(226,232,240,.95);box-shadow:0 2px 6px rgba(0,0,0,.02);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);min-height:190px}.catalog-card:hover{transform:translateY(-3px);border-color:#0e9384;box-shadow:0 8px 24px rgba(14,147,132,.1)}.catalog-card.completed{border-color:rgba(16,185,129,.35);background:linear-gradient(180deg,#fff,#f0fdf4)}.catalog-card-ribbon{position:absolute;top:14px;right:-28px;width:105px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:10px;font-weight:800;text-align:center;padding:3px 0;transform:rotate(45deg);box-shadow:0 2px 4px rgba(16,185,129,.3);letter-spacing:.05em;pointer-events:none}.catalog-card-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;padding-right:36px}.meta-tag{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;background:#f1f5f9;color:#475569}.meta-tag.tag-year{background:#e2e8f0;color:#1e293b;font-weight:700}.meta-tag.tag-count{background:#e0f2fe;color:#0369a1;font-weight:700}.meta-tag.tag-solution{background:#ecfdf5;color:#047857;display:inline-flex;align-items:center}.catalog-card-title{font-size:16.5px;font-weight:750;color:#0f172a;margin:0 0 6px;line-height:1.35}.catalog-card-desc{font-size:12.5px;color:#64748b;margin:0 0 16px;line-height:1.5}.catalog-card-footer{margin-top:auto}.btn-card-action{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;transition:all .2s ease}.btn-card-action:hover{background:#f8fafc;border-color:#0e9384;color:#0e9384}.btn-card-action.start-test,.btn-card-action.unseal{background:linear-gradient(135deg,#0e9384,#0b766a);color:#fff;border-color:#0e9384;font-weight:700;box-shadow:0 2px 4px rgba(14,147,132,.2)}.btn-card-action.start-test:hover,.btn-card-action.unseal:hover{background:linear-gradient(135deg,#0b766a,#095c53);border-color:#095c53;color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px rgba(14,147,132,.35)}.catalog-card-completed-box{display:flex;align-items:center;justify-content:space-between;width:100%}.completed-score-info{display:flex;align-items:center;gap:6px;font-size:12px;color:#047857}.completed-score-info strong{font-weight:750}.catalog-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#fff;border-radius:16px;border:1px dashed #cbd5e1;text-align:center;gap:10px}.catalog-empty-state h3{font-size:17px;font-weight:700;color:#1e293b;margin:0}.catalog-empty-state p{font-size:13px;color:#64748b;margin:0;max-width:360px}.catalog-btn-reset{margin-top:10px;padding:8px 18px;border-radius:8px;border:none;background:#0e9384;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.catalog-pagination-wrapper{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:32px;padding:16px 22px;background:#fff;border-radius:14px;border:1px solid rgba(226,232,240,.95);box-shadow:0 2px 8px rgba(0,0,0,.02)}.catalog-pagination-info{font-size:13.5px;color:#64748b;font-weight:500}.catalog-pagination-info strong{color:#0f172a;font-weight:700}.catalog-pagination-controls{display:flex;align-items:center;gap:8px}.pagination-nav-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.pagination-nav-btn:hover:not(:disabled){background:#f1f5f9;border-color:#0e9384;color:#0e9384}.pagination-nav-btn:disabled{opacity:.35;cursor:not-allowed;border-color:#e2e8f0}.pagination-pages-list{display:flex;align-items:center;gap:6px}.pagination-num-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#334155;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.pagination-num-btn:hover:not(.active){background:#f0fdfa;border-color:#99f6e4;color:#0d9488}.pagination-num-btn.active{background:linear-gradient(135deg,#0e9384,#0b7a6d);border-color:#0e9384;color:#fff;font-weight:700;box-shadow:0 2px 8px rgba(14,147,132,.25)}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:24px;font-size:14px;color:#94a3b8;font-weight:700}@media (max-width:768px){.catalog-pagination-wrapper{flex-direction:column;align-items:center;text-align:center}.catalog-pagination-controls{flex-wrap:wrap;justify-content:center}}.btn-back-catalog{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0e9384;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-back-catalog:hover{background:#f0fdfa;border-color:#0e9384}.test-active-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;font-size:13px;color:#1e293b}.pill-dot{width:7px;height:7px;border-radius:50%;background:#10b981}.pill-counter{color:#64748b;font-size:11.5px}.question-progress-chip{font-size:12px;font-weight:700;color:#0284c7;background:#e0f2fe;border:1px solid #bae6fd;padding:4px 10px;border-radius:999px}.test-nav-banner{gap:12px;flex-wrap:wrap;padding:12px 18px;border-radius:12px;border:1px solid #e2e8f0;margin-bottom:14px}.test-completion-card,.test-nav-banner{display:flex;align-items:center;background:#fff}.test-completion-card{flex-direction:column;text-align:center;padding:40px 24px;border-radius:20px;border:1px solid rgba(14,147,132,.2);box-shadow:0 10px 30px rgba(14,147,132,.08);gap:14px;animation:fadeIn .4s ease-out}.completion-icon-wrapper{width:80px;height:80px;border-radius:50%;background:#f0fdfa;border:2px dashed #0e9384;display:flex;align-items:center;justify-content:center;margin-bottom:6px}.test-completion-card h2{font-size:24px;font-weight:800;color:#0f172a;margin:0}.completion-subtitle{font-size:14px;color:#64748b;margin:0}.completion-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;width:100%;max-width:520px;margin:14px 0}.completion-stat-box{background:#f8fafc;padding:16px;border-radius:12px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:4px}.stat-label{color:#64748b;font-weight:600}.stat-value{font-size:22px;font-weight:800}.stat-value.correct{color:#10b981}.stat-value.rate{color:#0e9384}.stat-value.total{color:#3b82f6}.completion-actions-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:10px}.btn-action.btn-outline{background:transparent;border:1.5px solid #cbd5e1;color:#334155;padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-action.btn-outline:hover{border-color:#0e9384;color:#0e9384}@media (max-width:1100px){.catalog-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.catalog-cards-grid{grid-template-columns:1fr}.catalog-header-bar{flex-direction:column;padding:16px;gap:14px}.catalog-quick-actions{width:100%;justify-content:space-between}.catalog-controls-container{flex-direction:column;align-items:stretch}.catalog-search-input{width:100%!important}.catalog-search-box,.catalog-search-wrapper{width:100%}.completion-stats-grid{grid-template-columns:1fr}}.test-detail-page{display:flex;flex-direction:column;gap:20px;width:100%;animation:fadeIn .3s ease-out}.test-detail-header-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;padding:20px 24px;border-radius:16px;border:1px solid rgba(226,232,240,.9);box-shadow:0 2px 8px rgba(0,0,0,.02)}.detail-header-left{display:flex;align-items:center;gap:16px}.btn-detail-back{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-detail-back:hover{background:#f0fdfa;border-color:#0e9384;color:#0e9384;transform:translateX(-2px)}.detail-title-group{display:flex;flex-direction:column;gap:4px}.detail-title{font-size:22px;font-weight:800;color:#0f172a;margin:0;letter-spacing:-.02em}.detail-subtitle{font-size:13.5px;color:#64748b;margin:0}.detail-section-toggle-row{display:flex;align-items:center}.section-pill-container{padding:4px;background:rgba(226,232,240,.8);gap:4px}.section-pill,.section-pill-container{display:inline-flex;border-radius:999px}.section-pill{align-items:center;gap:8px;padding:8px 24px;border:none;background:transparent;color:#64748b;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.section-pill:hover{color:#0f172a}.section-pill.active{background:#fff;color:#0f172a;box-shadow:0 2px 8px rgba(0,0,0,.08)}.detail-action-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;padding:18px 24px;border-radius:16px;border:1px solid rgba(226,232,240,.9);box-shadow:0 2px 6px rgba(0,0,0,.02)}.action-bar-title{font-size:16px;font-weight:800;color:#0f172a;margin:0 0 4px}.action-bar-subtitle{font-size:13px;color:#64748b;margin:0}.detail-action-buttons{display:flex;align-items:center;gap:10px;flex-shrink:0}.btn-mode-outline{padding:9px 20px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-mode-outline:hover:not(:disabled){background:#f8fafc;border-color:#5ebd9f;color:#0e9384}.btn-mode-teal{padding:9px 22px;border-radius:10px;border:none;background:#5ebd9f;color:#fff;font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(94,189,159,.3);transition:all .2s ease}.btn-mode-teal:hover:not(:disabled){background:#4fae90;transform:translateY(-1px);box-shadow:0 4px 12px rgba(94,189,159,.4)}.btn-mode-dark{padding:9px 22px;border-radius:10px;border:none;background:#0f172a;color:#fff;font-size:13.5px;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-mode-dark:hover:not(:disabled){background:#1e293b;transform:translateY(-1px)}.detail-parts-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.detail-part-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:16px;padding:18px 20px;border:1.5px solid rgba(226,232,240,.95);box-shadow:0 2px 6px rgba(0,0,0,.02);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.detail-part-card:hover{border-color:#0e9384;transform:translateY(-2px);box-shadow:0 6px 18px rgba(14,147,132,.1)}.detail-part-card.selected{border-color:#0e9384;background:#f0fdfa;box-shadow:0 0 0 1px #0e9384,0 4px 14px rgba(14,147,132,.12)}.part-card-left{display:flex;align-items:flex-start;gap:14px;flex:1 1}.part-icon-box{width:44px;height:44px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;gap:2px}.p-tag{font-size:9.5px;font-weight:800;line-height:1;letter-spacing:.02em}.part-text-content{display:flex;flex-direction:column;gap:4px}.part-heading{font-size:15px;font-weight:750;color:#0f172a;margin:0;line-height:1.3}.part-summary{font-size:12px;color:#64748b;margin:0;line-height:1.4}.part-reward-pill{display:inline-flex;align-items:center;gap:5px;background:#fefce8;color:#a16207;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;margin-top:4px;width:-moz-fit-content;width:fit-content}.part-checkbox{width:22px;height:22px;border-radius:7px;border:1.5px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:14px;transition:all .2s ease}.detail-part-card:hover .part-checkbox{border-color:#0e9384}.part-checkbox.checked{background:#0e9384;border-color:#0e9384}.detail-history-section{display:flex;flex-direction:column;gap:14px;background:#fff;padding:22px 24px;border-radius:16px;border:1px solid rgba(226,232,240,.9);box-shadow:0 2px 6px rgba(0,0,0,.02)}.history-header{display:flex;align-items:center;gap:8px}.history-title{font-size:16px;font-weight:800;color:#0f172a;margin:0}.history-empty-card{display:flex;align-items:center;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.empty-indicator-bar{width:4px;height:100%;min-height:58px;background:#cbd5e1}.empty-content{padding:14px 18px;font-size:13px;color:#64748b}.empty-content strong{display:block;color:#1e293b;margin-bottom:2px}.history-list{display:flex;flex-direction:column;gap:10px}.history-item-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;border:1px solid #e2e8f0;cursor:pointer;overflow:hidden;transition:all .2s ease}.history-item-card:hover{border-color:#0e9384;background:#f0fdfa;transform:translateX(2px)}.history-item-left{display:flex;align-items:center;gap:14px}.history-teal-bar{width:4px;height:52px;background:#0e9384}.history-item-meta{display:flex;flex-direction:column;gap:2px}.history-part-name{font-size:14.5px;font-weight:750;color:#0f172a}.history-timestamp{font-size:12px;color:#64748b}.history-item-right{display:flex;align-items:center;gap:14px;padding-right:18px}.history-score-display{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.score-main{font-size:15px;font-weight:800;color:#0e9384}.score-sub{font-size:11.5px;color:#94a3b8}.history-arrow-icon{color:#94a3b8;transition:transform .2s ease}.history-item-card:hover .history-arrow-icon{color:#0e9384;transform:translateX(3px)}@media (max-width:1024px){.detail-parts-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.test-detail-header-bar{padding:16px}.detail-action-bar,.test-detail-header-bar{flex-direction:column;align-items:stretch;gap:14px}.detail-action-buttons{width:100%;justify-content:stretch}.detail-action-buttons button{flex:1 1;text-align:center;padding:8px 12px;font-size:12.5px}.detail-parts-grid{grid-template-columns:1fr}.catalog-quick-actions{width:100%;justify-content:space-between}}.coming-soon-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;animation:fadeIn .2s ease-out}.coming-soon-modal{background:#fff;border-radius:20px;max-width:480px;width:100%;padding:28px 24px;box-shadow:0 20px 40px rgba(0,0,0,.15);text-align:center;animation:scaleUp .25s cubic-bezier(.16,1,.3,1)}.coming-soon-badge{display:inline-block;padding:5px 12px;border-radius:999px;background:#fef3c7;color:#b45309;font-size:12px;font-weight:750;margin-bottom:12px}.coming-soon-title{font-size:18px;font-weight:800;color:#0f172a;margin:0 0 10px}.coming-soon-desc{font-size:13.5px;color:#64748b;line-height:1.5;margin:0 0 20px}.coming-soon-actions{display:flex;flex-direction:column;gap:8px}.btn-start-available{width:100%;padding:11px 16px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.btn-start-available.teal{background:#0e9384;color:#fff;box-shadow:0 3px 10px rgba(14,147,132,.25)}.btn-start-available.teal:hover{background:#0b7a6d;transform:translateY(-1px)}.btn-start-available.dark{background:#0f172a;color:#fff}.btn-start-available.dark:hover{background:#1e293b;transform:translateY(-1px)}.btn-start-available.outline{background:transparent;color:#64748b;border:1px solid #e2e8f0}.btn-start-available.outline:hover{background:#f8fafc;color:#0f172a}.dashboard-header-banner{background:linear-gradient(135deg,#fff,#f0fdf9 50%,#e6f8f5);border:1px solid rgba(14,147,132,.22);border-radius:var(--radius-lg);padding:24px 28px;margin-bottom:24px;box-shadow:0 4px 20px -2px rgba(14,147,132,.08);position:relative;overflow:hidden}.dashboard-header-banner:before{content:"";position:absolute;top:-50px;right:-50px;width:200px;height:200px;background:radial-gradient(circle,rgba(14,147,132,.12) 0,transparent 70%);pointer-events:none}.dashboard-header-main{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}.dashboard-welcome-col{flex:1 1;min-width:320px}.dashboard-user-greeting{display:flex;align-items:center;gap:16px;margin-bottom:8px}.user-avatar-badge{position:relative;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#0e9384,#06b6d4);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(14,147,132,.3);flex-shrink:0}.user-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #fff}.user-avatar-initials{font-size:22px;font-weight:800;color:#fff;font-family:Be Vietnam Pro,sans-serif}.user-status-dot{position:absolute;bottom:1px;right:1px;width:13px;height:13px;border-radius:50%;background:#10b981;border:2px solid #fff}.greeting-eyebrow{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#087a6e;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.badge-level{background:rgba(14,147,132,.12);color:#0e9384;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.greeting-title{font-size:24px;font-weight:800;color:var(--text-main);margin:0;line-height:1.2}.wave-hand{display:inline-block;animation:waveAnimation 2s infinite;transform-origin:70% 70%}@keyframes waveAnimation{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}to{transform:rotate(0deg)}}.greeting-sub{font-size:13.5px;color:var(--text-muted);margin:6px 0 14px;line-height:1.5}.dashboard-meta-chips{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.meta-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:500;background:#fff;border:1px solid rgba(22,50,63,.1);box-shadow:0 1px 3px rgba(0,0,0,.03)}.meta-chip strong{font-weight:700;color:var(--text-main)}.chip-icon.flame{color:#f97316}.chip-icon.target{color:#0e9384}.chip-icon.calendar{color:#0284c7}.chip-streak{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.dashboard-header-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.btn-dash-hero.primary{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#0e9384,#087a6e);color:#fff;border:none;border-radius:12px;padding:12px 20px;cursor:pointer;box-shadow:0 4px 14px rgba(14,147,132,.35);transition:all .2s ease;text-align:left}.btn-dash-hero.primary:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(14,147,132,.45);background:linear-gradient(135deg,#0b7a6d,#066258)}.btn-dash-text{display:flex;flex-direction:column}.btn-dash-main{font-weight:800;font-size:14px}.btn-dash-sub{font-size:11px;opacity:.88}.icon-pulse{animation:pulseGlow 1.8s infinite}@keyframes pulseGlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.15)}}.dashboard-quick-shortcuts{display:flex;align-items:center;gap:8px}.btn-dash-shortcut{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;border:1px solid rgba(14,147,132,.25);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#087a6e;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-dash-shortcut:hover{background:#e6f8f5;border-color:#0e9384;color:#055e54;transform:translateY(-1px)}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}@media (max-width:1024px){.dashboard-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.dashboard-kpi-grid{grid-template-columns:1fr}}.kpi-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.kpi-card:hover{border-color:#0e9384;transform:translateY(-2px);box-shadow:0 6px 16px rgba(14,147,132,.12)}.kpi-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.kpi-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.kpi-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700}.kpi-badge.positive{background:rgba(16,185,129,.12);color:#059669}.kpi-badge.neutral{background:rgba(14,147,132,.1);color:#087a6e}.kpi-badge.vocab{background:rgba(147,51,234,.1);color:#7e22ce}.kpi-badge.streak{background:#fff7ed;color:#ea580c}.kpi-main-val{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.kpi-number{font-family:Be Vietnam Pro,Outfit,sans-serif;font-size:28px;font-weight:800;color:var(--text-main);line-height:1}.kpi-unit{font-size:14px;font-weight:600;color:var(--text-muted)}.kpi-sub-breakdown{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);margin-top:4px}.kpi-sub-item{display:flex;align-items:center;gap:4px}.kpi-sub-divider{color:var(--border-subtle)}.kpi-progress-track{height:6px;background:#f1f5f9;border-radius:999px;overflow:hidden;margin:6px 0}.kpi-progress-bar{height:100%;border-radius:999px;transition:width .4s ease}.kpi-progress-bar.accuracy{background:linear-gradient(90deg,#0ea5e9,#0e9384)}.kpi-progress-bar.vocab{background:linear-gradient(90deg,#8b5cf6,#06b6d4)}.kpi-progress-bar.streak{background:linear-gradient(90deg,#f97316,#eab308)}.kpi-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:8px;border-top:1px solid rgba(0,0,0,.04);font-size:11.5px;color:var(--text-muted)}.kpi-arrow-link{color:#0e9384;font-weight:600;display:inline-flex;align-items:center;gap:2px}.kpi-tag-status{color:#059669;font-weight:600}.dashboard-secondary-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-bottom:28px}@media (max-width:900px){.dashboard-secondary-grid{grid-template-columns:1fr}}.weekly-activity-card{display:flex;flex-direction:column}.title-with-icon{display:flex;align-items:center;gap:8px}.badge-streak-fire{display:inline-flex;align-items:center;gap:4px;background:#fff7ed;color:#ea580c;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid #fed7aa}.card-sub-desc{font-size:12.5px;color:var(--text-muted);line-height:1.5;margin:0 0 16px}.weekly-days-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px;margin-bottom:16px}.week-day-col{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:10px;background:#f8fafc;border:1px solid transparent;transition:all .2s ease}.week-day-col.today{background:#e6f8f5;border-color:#0e9384}.week-day-name{font-size:11px;font-weight:700;color:var(--text-muted)}.week-day-col.today .week-day-name{color:#087a6e}.week-day-bubble{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e2e8f0;transition:all .2s}.week-day-col.completed .week-day-bubble{background:#10b981;color:#fff;box-shadow:0 2px 6px rgba(16,185,129,.3)}.pending-dot{width:6px;height:6px;border-radius:50%;background:#94a3b8}.week-day-date{font-size:10px;color:var(--text-subtle)}.week-day-mins{font-size:10.5px;font-weight:700;color:#087a6e}.week-day-mins.empty{color:#cbd5e1}.weekly-summary-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-muted);flex-wrap:wrap;gap:8px}.summary-stat-value{color:var(--text-main);margin-left:4px}.summary-stat.award{display:inline-flex;align-items:center;gap:5px;color:#b45309}.weakpoint-card{background:linear-gradient(145deg,#fff,#fffbf5);border:1px solid #fed7aa;flex-direction:column}.weakpoint-card,.weakpoint-header{display:flex;justify-content:space-between}.weakpoint-header{align-items:center;margin-bottom:12px}.weakpoint-tag-box{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#c2410c;text-transform:uppercase;letter-spacing:.5px}.weakpoint-priority-badge{background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.weakpoint-title-group{display:flex;align-items:center;gap:12px;margin-bottom:14px}.weakpoint-part-icon{width:44px;height:44px;border-radius:12px;background:#ffedd5;color:#c2410c;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex-shrink:0}.weakpoint-part-name{font-size:16px;font-weight:750;color:var(--text-main);margin:0 0 2px}.weakpoint-part-subtitle{font-size:12px;color:var(--text-muted);margin:0}.accuracy-low{color:#dc2626}.weakpoint-analysis-box{background:#fff;border:1px solid #ffedd5;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.analysis-tip-row{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--text-muted);line-height:1.45}.tip-alert-icon{color:#f59e0b;flex-shrink:0;margin-top:2px}.tip-zap-icon{color:#0e9384;flex-shrink:0;margin-top:2px}.weakpoint-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(0,0,0,.05);padding-top:12px;gap:12px;flex-wrap:wrap}.weakpoint-potential-gain{display:flex;align-items:center;gap:6px;font-size:12px;color:#087a6e}.btn-weakpoint-action{background:linear-gradient(135deg,#ea580c,#c2410c);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(234,88,12,.25)}.btn-weakpoint-action:hover{background:linear-gradient(135deg,#c2410c,#9a3412);transform:translateY(-1px);box-shadow:0 4px 10px rgba(234,88,12,.35)}.recent-activity-card{margin-bottom:28px}.btn-link-action{background:none;border:none;color:#0e9384;font-size:13px;font-weight:600;cursor:pointer;transition:color .15s}.btn-link-action:hover{color:#087a6e;text-decoration:underline}.recent-tests-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.recent-test-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f8fafc;border:1px solid rgba(22,50,63,.08);border-radius:10px;transition:all .15s ease}.recent-test-item:hover{background:#f0fdf9;border-color:rgba(14,147,132,.3)}.recent-test-left{display:flex;align-items:center;gap:12px}.recent-test-part-badge{width:34px;height:34px;border-radius:8px;background:#e6f8f5;color:#087a6e;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}.recent-test-name{font-size:13.5px;font-weight:700;color:var(--text-main);margin:0 0 2px}.recent-test-date{font-size:11.5px;color:var(--text-muted)}.recent-test-right{display:flex;align-items:center;gap:14px}.recent-test-score-box{display:flex;align-items:center;gap:6px;font-size:13px;color:#059669}.btn-recent-retest{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:6px;background:#fff;border:1px solid #cbd5e1;font-size:12px;font-weight:600;color:#475569;cursor:pointer;transition:all .15s}.btn-recent-retest:hover{border-color:#0e9384;color:#0e9384;background:#f0fdf9}.recommended-tests-sub{background:#f8fafc;border:1px dashed rgba(14,147,132,.3);border-radius:12px;padding:16px}.recommended-header{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#087a6e;margin-bottom:12px}.recommended-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}@media (max-width:680px){.recommended-cards-grid{grid-template-columns:1fr}}.recommended-card{background:#fff;border:1px solid var(--border-subtle);border-radius:10px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .2s ease}.recommended-card:hover{border-color:#0e9384;transform:translateY(-2px);box-shadow:0 4px 12px rgba(14,147,132,.12)}.recommended-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.rec-badge{background:#ecfdf5;color:#059669;font-size:10.5px;font-weight:750;padding:2px 7px;border-radius:4px}.rec-time{font-size:11.5px;color:var(--text-muted)}.rec-title{font-size:14px;font-weight:700;color:var(--text-main);margin:0 0 4px}.rec-desc{font-size:12px;color:var(--text-muted);line-height:1.4;margin:0 0 12px}.btn-rec-start{background:#0e9384;color:#fff;border:none;padding:8px 14px;border-radius:6px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s}.btn-rec-start:hover{background:#0b7a6d}.quick-vocab-card{margin-bottom:28px}.vocab-flashcard-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:16px}@media (max-width:900px){.vocab-flashcard-preview-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.vocab-flashcard-preview-grid{grid-template-columns:1fr}}.mini-vocab-card{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;padding:14px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between;min-height:140px}.mini-vocab-card:hover{border-color:#0e9384;transform:translateY(-2px);box-shadow:0 4px 12px rgba(14,147,132,.1)}.mini-vocab-card.revealed{background:#f0fdf9;border-color:#0e9384}.mini-vocab-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.mini-pos-badge{font-size:10px;font-weight:750;padding:2px 6px;border-radius:4px;background:#e2e8f0;color:#475569;text-transform:uppercase}.btn-mini-audio{background:none;border:none;color:#0e9384;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:4px}.btn-mini-audio:hover{background:rgba(14,147,132,.12)}.mini-vocab-word{font-size:16px;font-weight:800;color:var(--text-main);margin-bottom:2px}.mini-vocab-phonetic{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--text-subtle);margin-bottom:8px}.mini-vocab-tap-prompt{font-size:11px;color:#0e9384;display:flex;align-items:center;gap:4px;margin:6px 0}.mini-vocab-meaning-box{background:#fff;padding:8px;border-radius:6px;border:1px solid rgba(14,147,132,.2);margin:4px 0 8px}.mini-meaning{font-size:12px;font-weight:600;color:#065f46;margin-bottom:3px}.mini-collocation{font-size:11px;color:var(--text-muted)}.mini-vocab-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(0,0,0,.04);font-size:10.5px;color:var(--text-subtle)}.mini-mastery-tag.mastered{color:#059669;font-weight:700}.mini-mastery-tag.learning{color:#0284c7;font-weight:700}.vocab-action-footer{display:flex;justify-content:flex-end}.btn-vocab-full-review{background:#0e9384;color:#fff;border:none;padding:9px 18px;border-radius:8px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s}.btn-vocab-full-review:hover{background:#0b7a6d}.roadmap-container-section{margin-top:16px}.roadmap-subtitle{font-size:13px;color:var(--text-muted);margin:4px 0 0;font-weight:400}.roadmap-filter-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.roadmap-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.roadmap-tab-btn:hover{border-color:#0e9384;color:#0e9384}.roadmap-tab-btn.active{background:#0e9384;border-color:#0e9384;color:#fff;box-shadow:0 2px 6px rgba(14,147,132,.25)}.user-analytics-container{display:flex;flex-direction:column;gap:24px}.analytics-hero-strip{background:linear-gradient(135deg,#fff,#f0fdf9 50%,#e6f8f5);border:1px solid rgba(14,147,132,.25);border-radius:var(--radius-lg);padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 4px 18px rgba(14,147,132,.08);flex-wrap:wrap}.analytics-hero-col{min-width:260px}.analytics-hero-label{font-size:12px;font-weight:700;color:#087a6e;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.analytics-hero-score{display:flex;align-items:baseline;gap:6px;font-family:Be Vietnam Pro,sans-serif;font-size:38px;font-weight:850;color:var(--text-main);line-height:1.1}.analytics-hero-sub{font-size:16px;font-weight:600;color:var(--text-muted)}.analytics-hero-split{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);margin-top:6px}.analytics-target-gap{margin-top:8px;font-size:12.5px}.gap-need{color:#d97706;font-weight:600;background:#fffbeb;border-radius:999px;border:1px solid #fde68a}.gap-achieved,.gap-need{padding:3px 10px;display:inline-block}.gap-achieved{color:#059669;font-weight:700;background:#ecfdf5;border-radius:999px}.analytics-hero-metrics{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px;flex:1 1;max-width:580px}@media (max-width:640px){.analytics-hero-metrics{grid-template-columns:1fr;max-width:100%}}.analytics-mini-metric{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 4px rgba(0,0,0,.02)}.mini-metric-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mini-metric-icon.bg-emerald{background:#ecfdf5}.mini-metric-icon.bg-blue{background:#f0f9ff}.mini-metric-icon.bg-amber{background:#fffbeb}.mini-metric-icon.bg-purple{background:#f5f3ff}.mini-metric-val{font-family:Be Vietnam Pro,sans-serif;font-size:18px;font-weight:800;color:var(--text-main);line-height:1.1}.mini-metric-label{font-size:11.5px;color:var(--text-muted)}.analytics-bottlenecks-section{background:#fff;border:1px solid #fed7aa;border-radius:var(--radius-lg);padding:20px 24px}.bottlenecks-header{display:flex;align-items:center;gap:8px;margin-bottom:14px}.bottlenecks-header h3{font-size:15px;font-weight:750;color:var(--text-main);margin:0}.bottlenecks-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}@media (max-width:900px){.bottlenecks-grid{grid-template-columns:1fr}}.bottleneck-card{border-radius:10px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid transparent}.bottleneck-card.urgent{background:#fff5f5;border-color:#fecaca}.bottleneck-card.warning{background:#fffbf0;border-color:#fef08a}.bottleneck-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.bottleneck-badge{font-size:10.5px;font-weight:750;padding:2px 7px;border-radius:999px;text-transform:uppercase}.bottleneck-badge.urgent{background:#fee2e2;color:#dc2626}.bottleneck-badge.warning{background:#fef3c7;color:#d97706}.bottleneck-type-tag{font-size:11px;color:var(--text-subtle);font-weight:600}.bottleneck-title{font-size:13.5px;font-weight:750;color:var(--text-main);margin:0 0 6px}.bottleneck-desc{font-size:12px;color:var(--text-muted);line-height:1.45;margin:0 0 12px;flex:1 1}.btn-bottleneck-action{background:#0e9384;color:#fff;border:none;padding:7px 12px;border-radius:6px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all .15s ease}.btn-bottleneck-action:hover{background:#0b7a6d}.analytics-nav-tabs{display:flex;align-items:center;gap:8px;border-bottom:2px solid #e2e8f0;padding-bottom:2px;overflow-x:auto}.analytics-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:13.5px;font-weight:650;color:var(--text-muted);background:none;border:none;border-radius:8px 8px 0 0;cursor:pointer;transition:all .15s;white-space:nowrap;position:relative}.analytics-tab-btn:hover{color:#0e9384}.analytics-tab-btn.active{color:#0e9384;font-weight:750}.analytics-tab-btn.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:3px;background:#0e9384;border-radius:3px 3px 0 0}.analytics-pacing-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:24px;gap:24px}@media (max-width:1024px){.analytics-pacing-grid{grid-template-columns:1fr}}.pacing-unit-badge{font-size:12px;color:var(--text-muted)}.pacing-list-container{display:flex;flex-direction:column;gap:16px;margin-top:16px}.pacing-row-item{background:#f8fafc;border:1px solid rgba(22,50,63,.08);border-radius:10px;padding:12px 16px}.pacing-row-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pacing-part-name{font-size:13.5px;color:var(--text-main)}.pacing-time-indicators{display:flex;align-items:center;gap:10px}.pacing-status-pill{font-size:11px;font-weight:750;padding:2px 7px;border-radius:999px}.pacing-status-pill.optimal{background:#ecfdf5;color:#059669}.pacing-status-pill.acceptable{background:#f0f9ff;color:#0284c7}.pacing-status-pill.slow{background:#fef3c7;color:#d97706}.pacing-status-pill.critical{background:#fee2e2;color:#dc2626}.pacing-seconds-text{font-size:12.5px;color:var(--text-muted)}.pacing-track-wrapper{position:relative;height:10px;background:#e2e8f0;border-radius:999px;margin:6px 0 10px}.pacing-actual-fill{height:100%;border-radius:999px;transition:width .5s ease}.pacing-actual-fill.optimal{background:#10b981}.pacing-actual-fill.acceptable{background:#0ea5e9}.pacing-actual-fill.slow{background:#f59e0b}.pacing-actual-fill.critical{background:#ef4444}.pacing-target-line{position:absolute;top:-4px;bottom:-4px;width:2px;background:#0f172a;z-index:2}.target-label{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:9.5px;font-weight:700;color:#475569;white-space:nowrap}.pacing-advice-row{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted)}.pacing-simulator-card{display:flex;flex-direction:column;justify-content:space-between}.simulator-body{display:flex;flex-direction:column;gap:16px}.simulator-time-bars{display:flex;flex-direction:column;gap:12px}.sim-bar-item{display:flex;flex-direction:column;gap:4px}.sim-bar-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text-main)}.sim-bar-track{height:8px;background:#f1f5f9;border-radius:999px;overflow:hidden}.sim-bar-fill.p5{background:#0ea5e9}.sim-bar-fill.p6{background:#0e9384}.sim-bar-fill.p7{background:#f59e0b}.simulator-alert-box{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px}.sim-alert-title{font-size:13px;font-weight:750;color:#92400e;margin-bottom:6px}.sim-alert-text{font-size:12px;color:#78350f;line-height:1.45;margin:0 0 8px}.sim-formula{font-size:11.5px;color:#92400e}.btn-action-primary-full{background:#0e9384;color:#fff;border:none;padding:11px;border-radius:8px;font-size:13px;font-weight:750;cursor:pointer;transition:all .15s;text-align:center}.btn-action-primary-full:hover{background:#0b7a6d}.traps-filter-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.traps-filter-title h3{font-size:18px;font-weight:800;color:var(--text-main);margin:0 0 4px}.traps-filter-title p{font-size:13px;color:var(--text-muted);margin:0}.traps-filter-chips{display:flex;gap:8px}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;transition:all .15s}.filter-chip:hover{border-color:#0e9384;color:#0e9384}.filter-chip.active{background:#0e9384;border-color:#0e9384;color:#fff}.traps-cards-list{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:18px;gap:18px}@media (max-width:900px){.traps-cards-list{grid-template-columns:1fr}}.trap-detail-card{flex-direction:column}.trap-card-header,.trap-detail-card{display:flex;justify-content:space-between}.trap-card-header{align-items:center;margin-bottom:10px}.trap-header-left{display:flex;align-items:center;gap:8px}.trap-badge-severity{font-size:11px;font-weight:750;padding:2px 7px;border-radius:4px}.trap-badge-severity.high{background:#fee2e2;color:#dc2626}.trap-badge-severity.medium{background:#fef3c7;color:#d97706}.trap-badge-severity.low{background:#ecfdf5;color:#059669}.trap-section-tag{font-size:11.5px;color:var(--text-subtle);font-weight:600}.trap-attempts-count{font-size:11.5px;color:var(--text-muted)}.trap-card-title{font-size:15px;font-weight:750;color:var(--text-main);margin:0 0 12px}.trap-mechanism-box{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.trap-section-block{background:#f8fafc;border:1px solid rgba(22,50,63,.08);border-radius:8px;padding:10px 12px}.trap-section-block.tip{background:#f0fdf9;border-color:rgba(14,147,132,.2)}.trap-block-label{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--text-main);margin-bottom:4px}.trap-block-text{font-size:12px;color:var(--text-muted);line-height:1.45;margin:0}.trap-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(0,0,0,.04);padding-top:10px}.trap-code-name{font-size:11px;color:var(--text-subtle);font-family:JetBrains Mono,monospace}.btn-trap-practice{background:#fff;border:1px solid #0e9384;color:#0e9384;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:all .15s}.btn-trap-practice:hover{background:#0e9384;color:#fff}.roadmap-performance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:18px;gap:18px}.part-performance-card{flex-direction:column}.part-card-head,.part-performance-card{display:flex;justify-content:space-between}.part-card-head{align-items:center;margin-bottom:8px}.part-card-name{font-size:15px;font-weight:750;color:var(--text-main);margin:0 0 12px}.part-accuracy-display{margin-bottom:14px}.accuracy-number-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.acc-val.good{color:#059669}.acc-val.good,.acc-val.warn{font-weight:800;font-size:14px}.acc-val.warn{color:#dc2626}.part-stats-summary{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;padding:8px 12px;border-radius:8px;margin-bottom:14px;font-size:12px}.part-stat-item{display:flex;align-items:center;gap:5px}.stat-label{color:var(--text-muted);font-size:11.5px}.stat-val{color:var(--text-main);font-weight:700}.part-stat-divider{width:1px;height:16px;background:#cbd5e1}.btn-part-practice-full{background:#0e9384;color:#fff;border:none;padding:8px 14px;border-radius:6px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s}.btn-part-practice-full:hover{background:#0b7a6d}.history-count-badge{font-size:12px;font-weight:600;color:#087a6e;background:rgba(14,147,132,.1);padding:3px 10px;border-radius:999px}.history-empty-state{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:12px}.history-empty-state h4{font-size:16px;color:var(--text-main);margin:0}.history-empty-state p{font-size:13px;color:var(--text-muted);margin:0}.history-table-wrapper{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:13px}.history-table th{text-align:left;padding:12px 14px;border-bottom:2px solid #e2e8f0;color:var(--text-muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.history-table td{padding:12px 14px;border-bottom:1px solid #f1f5f9;color:var(--text-main)}.history-table tr:hover td{background:#f8fafc}.history-part-pill{background:#e6f8f5;color:#087a6e;font-weight:750;font-size:11.5px;padding:2px 8px;border-radius:4px}.history-percent{font-weight:750;font-size:12.5px}.history-percent.high{color:#059669}.history-percent.mid{color:#0284c7}.history-percent.low{color:#dc2626}.btn-history-retest{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:6px;background:#fff;border:1px solid #cbd5e1;font-size:11.5px;font-weight:600;color:#475569;cursor:pointer;transition:all .15s}.btn-history-retest:hover{border-color:#0e9384;color:#0e9384;background:#f0fdf9}@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.goal-setup-modal-container{animation:fadeIn .22s cubic-bezier(.16,1,.3,1)}@media (max-width:640px){.goal-setup-modal-container{max-height:96vh!important;border-radius:16px!important}.modal-overlay{padding:8px!important}}.grammar-page-wrapper{min-height:calc(100vh - 72px);background-color:var(--bg-canvas,#f8fafc);padding-bottom:60px}.grammar-container{max-width:1280px;margin:0 auto;padding:24px 20px}.grammar-hero{background:linear-gradient(135deg,#064e3b,#0e7490 60%,#0369a1);border-radius:20px;padding:36px 32px;color:#fff;box-shadow:0 10px 25px -5px rgba(14,116,144,.25);margin-bottom:28px;position:relative;overflow:hidden}.grammar-hero:after{content:"";position:absolute;top:-40%;right:-10%;width:380px;height:380px;background:radial-gradient(circle,hsla(0,0%,100%,.12) 0,transparent 70%);border-radius:50%;pointer-events:none}.grammar-badge-pill{display:inline-flex;align-items:center;background:hsla(0,0%,100%,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.25);padding:6px 14px;border-radius:9999px;font-size:13px;font-weight:600;color:#a7f3d0;margin-bottom:14px}.grammar-hero-title{font-size:32px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px;color:#fff}.grammar-hero-subtitle{font-size:15px;line-height:1.6;color:#e0f2fe;max-width:760px;margin-bottom:24px}.grammar-progress-box{background:hsla(0,0%,100%,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;padding:14px 18px;max-width:620px}.grammar-progress-header{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;margin-bottom:8px;color:#f0fdf4}.grammar-progress-track{width:100%;height:8px;background:rgba(0,0,0,.25);border-radius:999px;overflow:hidden}.grammar-progress-bar{height:100%;background:linear-gradient(90deg,#34d399,#10b981);border-radius:999px;transition:width .4s ease}.grammar-layout{display:grid;grid-template-columns:340px 1fr;grid-gap:28px;gap:28px;align-items:start}.grammar-sidebar{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px;box-shadow:0 2px 8px rgba(0,0,0,.04);position:-webkit-sticky;position:sticky;top:90px;max-height:calc(100vh - 110px);display:flex;flex-direction:column}.grammar-search-wrapper{position:relative;margin-bottom:12px}.grammar-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px;color:#94a3b8;pointer-events:none}.grammar-search-input{width:100%;padding:9px 34px 9px 36px;border:1px solid #cbd5e1;border-radius:10px;font-size:13.5px;outline:none;background:#f8fafc;transition:all .2s ease}.grammar-search-input:focus{border-color:#0e9384;background:#fff;box-shadow:0 0 0 3px rgba(14,147,132,.15)}.grammar-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:12px;padding:4px}.grammar-filters{display:flex;gap:6px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #f1f5f9;overflow-x:auto}.grammar-filter-btn{padding:5px 12px;border-radius:8px;font-size:12.5px;font-weight:600;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer;white-space:nowrap;transition:all .15s ease}.grammar-filter-btn:hover{background:#f1f5f9;color:#0f172a}.grammar-filter-btn.active{background:#0e9384;color:#fff;border-color:#0e9384}.grammar-topic-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px}.grammar-topic-list::-webkit-scrollbar{width:5px}.grammar-topic-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.grammar-topic-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;text-align:left;cursor:pointer;transition:all .18s ease;width:100%}.grammar-topic-card:hover{border-color:#0e9384;background:#f0fdf9;transform:translateY(-1px)}.grammar-topic-card.selected{border-color:#0e9384;background:#e6f7f5;box-shadow:0 2px 6px rgba(14,147,132,.12)}.grammar-topic-icon{font-size:24px;line-height:1;flex-shrink:0;margin-top:2px}.grammar-topic-info{flex:1 1;min-width:0}.grammar-topic-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.grammar-topic-order{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase}.grammar-level-tag{font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:4px}.grammar-level-tag.level-450{background:#dcfce7;color:#15803d}.grammar-level-tag.level-650{background:#e0f2fe;color:#0369a1}.grammar-level-tag.level-800{background:#fae8ff;color:#a21caf}.grammar-done-badge{margin-left:auto;width:18px;height:18px;border-radius:50%;background:#10b981;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.grammar-topic-title{font-size:13.5px;font-weight:600;color:#0f172a;line-height:1.4;margin-bottom:4px}.grammar-topic-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#64748b}.grammar-empty-state{padding:24px 12px;text-align:center;color:#94a3b8;font-size:13px}.grammar-main-content{min-width:0}.grammar-article{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:32px 36px;box-shadow:0 2px 10px rgba(0,0,0,.03)}.grammar-article-header{border-bottom:1px solid #e2e8f0;padding-bottom:24px;margin-bottom:28px}.grammar-article-tags{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.grammar-category-badge{background:#f1f5f9;color:#475569;font-weight:600}.grammar-category-badge,.grammar-level-badge{font-size:12px;padding:4px 10px;border-radius:6px}.grammar-level-badge{font-weight:700}.grammar-level-badge.level-450{background:#dcfce7;color:#166534}.grammar-level-badge.level-650{background:#e0f2fe;color:#075985}.grammar-level-badge.level-800{background:#fae8ff;color:#86198f}.grammar-readtime{font-size:12px;color:#64748b;font-weight:500}.grammar-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.grammar-article-title{font-size:26px;font-weight:800;color:#0f172a;letter-spacing:-.01em;line-height:1.3}.grammar-article-title-en{font-size:15px;color:#64748b;font-style:italic;margin-top:3px}.grammar-master-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;font-size:13.5px;font-weight:600;border:1px solid #cbd5e1;background:#fff;color:#475569;cursor:pointer;transition:all .18s ease;white-space:nowrap;flex-shrink:0}.grammar-master-btn:hover{border-color:#0e9384;color:#0e9384;background:#f0fdf9}.grammar-master-btn.mastered{background:#ecfdf5;border-color:#10b981;color:#047857}.master-icon{font-weight:700}.grammar-article-summary{font-size:15px;line-height:1.6;color:#334155}.grammar-golden-box{background:linear-gradient(135deg,#f0fdf4,#ecfeff);border:2px solid #a7f3d0;border-radius:14px;padding:22px 24px;margin-bottom:32px;box-shadow:0 4px 12px rgba(16,185,129,.08)}.golden-box-badge{display:inline-block;background:#059669;color:#fff;font-size:11.5px;font-weight:800;padding:4px 10px;border-radius:6px;letter-spacing:.03em;margin-bottom:12px}.golden-formula-content{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #6ee7b7;padding:14px 18px;border-radius:10px;margin-bottom:12px}.golden-formula-text{font-family:JetBrains Mono,Fira Code,monospace;font-size:16px;font-weight:700;color:#065f46;line-height:1.4}.copy-formula-btn{background:#f0fdf4;border:1px solid #34d399;color:#047857;padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.copy-formula-btn:hover{background:#059669;color:#fff}.golden-formula-desc{font-size:13.5px;color:#065f46;line-height:1.5;margin:0}.grammar-section-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:#0f172a;margin-bottom:18px}.grammar-rules-section{margin-bottom:34px}.grammar-rules-grid{display:flex;flex-direction:column;gap:20px}.grammar-rule-card{border:1px solid #e2e8f0;border-radius:12px;padding:20px;background:#fff;transition:border-color .2s ease}.grammar-rule-card:hover{border-color:#cbd5e1}.rule-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.rule-number{background:#0e9384;color:#fff;font-size:11px;font-weight:800;padding:3px 7px;border-radius:6px}.rule-name{font-size:16px;font-weight:700;color:#1e293b;margin:0}.rule-formula-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:10px 14px;margin-bottom:12px}.rule-formula-box code{font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:600;color:#0284c7;white-space:pre-wrap}.rule-explanation{font-size:14px;line-height:1.6;color:#334155;margin-bottom:14px}.rule-example-box{background:#f8fafc;border-left:3px solid #0e9384;border-radius:0 8px 8px 0;padding:12px 14px;margin-bottom:12px}.example-en-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}.grammar-audio-btn{background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:all .15s ease;flex-shrink:0}.grammar-audio-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.grammar-audio-btn.playing{background:#fef08a;border-color:#eab308}.example-en{font-size:14px;font-weight:600;color:#0f172a}.example-vi{font-size:13px;color:#64748b;padding-left:38px}.rule-exam-tip{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#b45309;background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;padding:8px 12px}.tip-icon{font-size:14px;line-height:1.2}.tip-text strong{color:#92400e}.grammar-traps-section{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:24px;margin-bottom:34px}.traps-title{color:#c2410c;margin-bottom:16px}.grammar-traps-grid{display:flex;flex-direction:column;gap:16px}.grammar-trap-card{background:#fff;border:1px solid #ffedd5;border-radius:10px;padding:16px}.trap-name{font-size:15px;font-weight:700;color:#9a3412;margin:0 0 6px}.trap-desc{font-size:13.5px;color:#431407;line-height:1.5;margin-bottom:12px}.trap-comparison{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:12px}.trap-bad,.trap-good{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border-radius:6px;font-size:13px}.trap-bad{background:#fef2f2;border:1px solid #fecaca}.trap-good{background:#f0fdf4;border:1px solid #bbf7d0}.bad-tag{color:#dc2626}.bad-tag,.good-tag{font-weight:700;font-size:11.5px}.good-tag{color:#16a34a}.compare-text{font-weight:500;color:#1f2937}.trap-bypass{font-size:13px;color:#0369a1;background:#f0f9ff;border:1px solid #e0f2fe;padding:8px 12px;border-radius:6px}.bypass-label{font-weight:700;color:#0284c7}.grammar-quiz-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:24px;margin-bottom:32px}.quiz-section-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px}.quiz-title{color:#0f172a;margin-bottom:4px}.quiz-subtitle{font-size:13.5px;color:#64748b;margin:0}.quiz-reset-btn{background:#fff;border:1px solid #cbd5e1;color:#475569;padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.quiz-reset-btn:hover{background:#f1f5f9;color:#0f172a}.grammar-quiz-list{display:flex;flex-direction:column;gap:22px}.grammar-quiz-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px}.quiz-item-header{margin-bottom:14px}.quiz-q-num{display:inline-block;font-size:11.5px;font-weight:700;color:#0e9384;background:#e6f7f5;padding:2px 8px;border-radius:4px;margin-bottom:6px}.quiz-q-text{font-size:15px;font-weight:600;color:#1e293b;line-height:1.5;margin:0}.quiz-options-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:12px}.quiz-opt-btn{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #cbd5e1;background:#fff;border-radius:8px;font-size:13.5px;color:#1e293b;cursor:pointer;transition:all .15s ease;text-align:left}.quiz-opt-btn:hover{border-color:#0e9384;background:#f0fdf9}.opt-letter{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#f1f5f9;border-radius:50%;font-size:11.5px;font-weight:700;color:#475569;flex-shrink:0}.opt-content{flex:1 1}.opt-icon{font-weight:800;font-size:13px}.quiz-opt-btn.opt-correct{border-color:#10b981;background:#ecfdf5;color:#065f46;font-weight:600}.quiz-opt-btn.opt-correct .opt-letter{background:#10b981;color:#fff}.quiz-opt-btn.opt-wrong{border-color:#ef4444;background:#fef2f2;color:#991b1b}.quiz-opt-btn.opt-wrong .opt-letter{background:#ef4444;color:#fff}.quiz-opt-btn.opt-muted{opacity:.55;cursor:default}.quiz-explanation-box{border-radius:8px;padding:12px 14px;font-size:13.5px;animation:fadeIn .2s ease}.quiz-explanation-box.box-correct{background:#f0fdf4;border:1px solid #bbf7d0}.quiz-explanation-box.box-wrong{background:#fffbeb;border:1px solid #fef3c7}.explanation-status{font-weight:700;margin-bottom:6px}.status-text.correct{color:#15803d}.status-text.wrong{color:#b45309}.explanation-body{color:#334155;line-height:1.5}.grammar-article-footer{border-top:1px solid #e2e8f0;padding-top:24px}.grammar-bottom-nav{display:flex;justify-content:space-between;gap:16px}.grammar-nav-arrow-btn{display:flex;flex-direction:column;padding:12px 16px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .18s ease;max-width:48%}.grammar-nav-arrow-btn.prev-btn{align-items:flex-start;text-align:left}.grammar-nav-arrow-btn.next-btn{align-items:flex-end;text-align:right;margin-left:auto}.grammar-nav-arrow-btn:hover{border-color:#0e9384;background:#f0fdf9;transform:translateY(-1px)}.arrow-dir{font-size:11.5px;font-weight:700;color:#0e9384;margin-bottom:2px}.arrow-title{font-size:13px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:1024px){.grammar-layout{grid-template-columns:280px 1fr;gap:20px}.grammar-article{padding:24px 20px}}@media (max-width:768px){.grammar-layout{grid-template-columns:1fr}.grammar-sidebar{position:static;max-height:380px}.grammar-hero{padding:24px 20px}.grammar-hero-title{font-size:24px}.quiz-options-grid,.trap-comparison{grid-template-columns:1fr}.golden-formula-content{flex-direction:column;align-items:flex-start}}.kids-page-wrapper{min-height:calc(100vh - 72px);background:radial-gradient(circle at top right,#fef9c3 0,#f0fdf4 35%,#eff6ff 100%);padding-bottom:70px}.kids-hub-container{max-width:1200px;margin:0 auto;padding:24px 20px}.kids-celebration-toast{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:9999;animation:bounceIn .35s cubic-bezier(.175,.885,.32,1.275)}.celebration-content{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:12px 24px;border-radius:999px;box-shadow:0 10px 25px -5px rgba(239,68,68,.4);display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800}.celebration-icon{font-size:22px;animation:spinStar 1s ease infinite alternate}@keyframes spinStar{0%{transform:scale(1) rotate(0deg)}to{transform:scale(1.3) rotate(25deg)}}@keyframes bounceIn{0%{opacity:0;transform:translate(-50%,-20px) scale(.8)}60%{opacity:1;transform:translate(-50%,6px) scale(1.05)}to{transform:translate(-50%) scale(1)}}.kids-hero-banner{background:linear-gradient(135deg,#fff7ed,#fef3c7 40%,#e0f2fe);border:2px solid #fed7aa;border-radius:24px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px;box-shadow:0 10px 30px -5px rgba(249,115,22,.12);position:relative;overflow:hidden}.kids-hero-badge{display:inline-flex;align-items:center;background:#fff;border:1px solid #f97316;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:700;color:#ea580c;margin-bottom:12px;box-shadow:0 2px 6px rgba(249,115,22,.1)}.kids-hero-title{font-size:32px;font-weight:900;color:#9a3412;letter-spacing:-.02em;margin-bottom:8px}.kids-hero-sub{font-size:15px;line-height:1.6;color:#7c2d12;max-width:640px;margin-bottom:20px}.kids-star-counter-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.star-counter-badge{display:inline-flex;align-items:center;gap:8px;background:#fef08a;border:2px solid #eab308;padding:8px 18px;border-radius:999px;font-size:14px;color:#854d0e;font-weight:700}.star-counter-badge .star-icon{font-size:18px}.learned-count-badge{display:inline-flex;align-items:center;gap:6px;background:#fee2e2;border:1.5px solid #fca5a5;padding:8px 16px;border-radius:999px;font-size:13.5px;color:#991b1b;font-weight:600}.kids-hero-mascots{display:flex;align-items:center;gap:12px}.mascot-card{width:58px;height:58px;background:#fff;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 6px 16px rgba(0,0,0,.08);border:2px solid #fff}.bounce-1{animation:kidBounce 2s ease-in-out infinite}.bounce-2{animation:kidBounce 2.2s ease-in-out .2s infinite}.bounce-3{animation:kidBounce 2.4s ease-in-out .4s infinite}.bounce-4{animation:kidBounce 2.1s ease-in-out .6s infinite}@keyframes kidBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.kids-topics-bar{margin-bottom:24px}.kids-section-subtitle{font-size:14px;font-weight:700;color:#475569;margin-bottom:12px}.kids-topics-scroll{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px}.kids-topic-tab{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #e2e8f0;border-radius:14px;padding:10px 14px;cursor:pointer;text-align:left;transition:all .2s ease}.kids-topic-tab:hover{transform:translateY(-2px)}.kids-topic-tab.active{background:#fff;border-width:2px}.topic-tab-icon{font-size:26px;flex-shrink:0}.topic-tab-info{display:flex;flex-direction:column;min-width:0}.topic-tab-name-vi{font-size:13.5px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-tab-name-en{font-size:11.5px;color:#64748b;font-style:italic}.kids-mode-switch{display:flex;justify-content:center;gap:12px;margin-bottom:28px}.kids-mode-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:999px;font-size:14px;font-weight:800;border:2px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;transition:all .2s ease}.kids-mode-btn:hover{background:#f8fafc}.kids-mode-btn.active{background:#f97316;border-color:#ea580c;color:#fff;box-shadow:0 4px 14px rgba(249,115,22,.3)}.mode-pill{font-size:11px;background:rgba(0,0,0,.08);padding:2px 8px;border-radius:999px}.kids-mode-btn.active .mode-pill{background:hsla(0,0%,100%,.25);color:#fff}.kids-big-card-wrapper{max-width:680px;margin:0 auto 32px}.kids-featured-card{border-radius:28px;padding:32px 36px;box-shadow:0 12px 30px -6px rgba(0,0,0,.08);border:3px solid #fff;position:relative;text-align:center;transition:background-color .3s ease}.card-top-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.word-order-badge{background:hsla(0,0%,100%,.85);padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;color:#475569}.favorite-star-btn{background:#fff;border:1.5px solid #cbd5e1;padding:6px 14px;border-radius:999px;font-size:12.5px;font-weight:700;color:#64748b;cursor:pointer;transition:all .15s ease}.favorite-star-btn.active{background:#fef08a;border-color:#eab308;color:#854d0e}.kids-emoji-stage{padding:16px 0}.kids-giant-emoji{font-size:96px;line-height:1;display:inline-block;transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.kids-giant-emoji:hover{transform:scale(1.15) rotate(4deg)}.kids-word-meta{margin-bottom:20px}.kids-en-row{display:inline-flex;align-items:center;gap:14px;margin-bottom:6px}.kids-en-word{font-size:40px;font-weight:900;color:#0f172a;letter-spacing:-.01em;margin:0}.kids-big-speaker-btn{width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid #cbd5e1;font-size:24px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.08);transition:all .2s ease}.kids-big-speaker-btn:hover{transform:scale(1.08);border-color:#f97316;background:#fff7ed}.kids-big-speaker-btn.pulsing{animation:kidSpeakerPulse .8s infinite alternate;background:#fef08a}@keyframes kidSpeakerPulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(245,158,11,.4)}to{transform:scale(1.15);box-shadow:0 0 0 10px rgba(245,158,11,0)}}.kids-phonetic{font-family:JetBrains Mono,monospace;font-size:16px;color:#475569;margin-bottom:6px}.kids-vi-meaning{font-size:20px;font-weight:800;color:#0284c7}.kids-example-card{background:hsla(0,0%,100%,.8);border-radius:16px;padding:14px 18px;margin-bottom:24px;border:1px solid hsla(0,0%,100%,.6)}.example-speech-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:4px}.kids-small-speaker-btn{background:#fff;border:1px solid #cbd5e1;border-radius:50%;width:26px;height:26px;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.kids-example-en{font-size:15px;font-weight:700;color:#1e293b}.kids-example-vi{font-size:13.5px;color:#64748b}.kids-card-arrows{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-arrow-btn{padding:10px 18px;border-radius:12px;border:1.5px solid #cbd5e1;background:#fff;font-size:13.5px;font-weight:700;color:#334155;cursor:pointer;transition:all .15s ease}.card-arrow-btn:disabled{opacity:.4;cursor:not-allowed}.card-arrow-btn.primary-next{background:#0e9384;color:#fff;border-color:#0e9384}.card-arrow-btn:hover:not(:disabled){transform:translateY(-1px)}.kids-audio-repeat-btn{background:hsla(0,0%,100%,.9);border:1.5px solid #cbd5e1;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:700;color:#0f172a;cursor:pointer}.kids-word-palette{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:20px 24px}.palette-title{font-size:15px;font-weight:800;color:#1e293b;margin-bottom:14px}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.palette-item-card{display:flex;flex-direction:column;align-items:center;padding:10px;border-radius:14px;background:#f8fafc;border:2px solid transparent;cursor:pointer;transition:all .15s ease;position:relative}.palette-item-card:hover{background:#f1f5f9;transform:translateY(-2px)}.palette-item-card.selected{background:#fff7ed;border-color:#f97316}.palette-emoji{font-size:32px;line-height:1;margin-bottom:4px}.palette-en{font-size:13.5px;font-weight:800;color:#0f172a}.palette-vi{font-size:11.5px;color:#64748b}.palette-star{position:absolute;top:4px;right:6px;font-size:12px}.kids-game-box{max-width:680px;margin:0 auto;background:#fff;border:2px solid #e2e8f0;border-radius:24px;padding:28px 32px;box-shadow:0 8px 24px rgba(0,0,0,.05)}.kids-game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.game-progress-tag{background:#e0f2fe;color:#0369a1;font-size:13px;font-weight:800;padding:4px 12px;border-radius:999px}.game-score-badge{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:#b45309}.kids-game-question-card{background:#fefce8;border:2px dashed #facc15;border-radius:18px;padding:20px;text-align:center;margin-bottom:24px}.game-mascot-hint{font-size:13.5px;font-weight:600;color:#854d0e;margin-bottom:10px}.game-target-word-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:6px}.game-target-word{font-size:34px;font-weight:900;color:#0f172a;margin:0}.game-speaker-btn{background:#fff;border:1.5px solid #cbd5e1;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer}.game-target-meaning{font-size:14px;color:#475569}.kids-game-choices-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-bottom:22px}.kids-choice-card{display:flex;flex-direction:column;align-items:center;padding:18px 14px;border:2px solid #cbd5e1;background:#fff;border-radius:16px;cursor:pointer;transition:all .18s ease;position:relative}.kids-choice-card:hover:not(:disabled){border-color:#f97316;background:#fff7ed;transform:translateY(-2px)}.choice-emoji{font-size:48px;line-height:1;margin-bottom:8px}.choice-name{font-size:16px;font-weight:800;color:#1e293b}.choice-vi{font-size:12px;color:#64748b}.choice-badge{position:absolute;top:8px;right:8px;font-size:11px;font-weight:800;color:#15803d;background:#dcfce7;padding:2px 6px;border-radius:4px}.choice-badge.wrong{color:#b91c1c;background:#fee2e2}.kids-choice-card.choice-correct{border-color:#10b981;background:#ecfdf5}.kids-choice-card.choice-wrong{border-color:#ef4444;background:#fef2f2}.kids-choice-card.choice-muted{opacity:.5}.kids-game-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:14px;border-top:1px solid #e2e8f0}.feedback-message{font-size:14px;font-weight:700}.msg-win{color:#15803d}.msg-try{color:#b45309}.kids-next-question-btn{padding:10px 22px;border-radius:999px;border:none;background:#f97316;color:#fff;font-size:14px;font-weight:800;cursor:pointer;transition:all .15s ease}.kids-next-question-btn:hover{background:#ea580c;transform:translateY(-1px)}.kids-game-result-box{max-width:540px;margin:0 auto;background:#fff;border-radius:24px;border:2px solid #e2e8f0;padding:40px 32px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.06)}.result-trophy{font-size:72px;line-height:1;margin-bottom:12px}.result-title{font-size:26px;font-weight:900;color:#0f172a;margin-bottom:6px}.result-sub{font-size:14px;color:#64748b;margin-bottom:24px}.result-stats{display:flex;justify-content:center;gap:18px;margin-bottom:28px}.result-stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px 20px}.result-stat-card .stat-val{display:block;font-size:20px;font-weight:800;color:#0f172a;margin-top:4px}.result-stat-card .stat-val.star{color:#f59e0b}.result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.result-btn{padding:10px 20px;border-radius:999px;font-size:13.5px;font-weight:700;cursor:pointer;border:none}.result-btn.restart{background:#f97316;color:#fff}.result-btn.switch-card{background:#f1f5f9;color:#475569}.mode-label-mobile{display:none}@media (max-width:640px){.mode-label-desktop{display:none!important}.mode-label-mobile{display:inline!important}}@media (max-width:768px){.kids-hub-container{padding:14px 12px 28px!important;max-width:100vw!important;overflow-x:hidden!important;box-sizing:border-box!important}.kids-celebration-toast{top:70px;max-width:90vw;width:auto}.celebration-content{padding:9px 18px;font-size:13px;gap:8px}.kids-hero-banner{flex-direction:column!important;align-items:flex-start!important;padding:20px 16px!important;border-radius:18px!important;gap:16px!important;margin-bottom:20px!important}.kids-hero-badge{font-size:11.5px!important;padding:4px 10px!important;max-width:100%!important;white-space:normal!important;line-height:1.4!important;margin-bottom:8px!important}.kids-hero-title{font-size:clamp(21px,5.5vw,26px)!important;line-height:1.25!important;margin-bottom:6px!important}.kids-hero-sub{font-size:13px!important;line-height:1.5!important;margin-bottom:14px!important}.kids-star-counter-box{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important}.learned-count-badge,.star-counter-badge{width:100%!important;box-sizing:border-box!important;justify-content:center!important;padding:7px 14px!important;font-size:13px!important}.kids-hero-mascots{width:100%!important;justify-content:center!important;gap:10px!important}.mascot-card{width:48px!important;height:48px!important;font-size:26px!important;border-radius:14px!important}.kids-topics-scroll{display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;gap:8px!important;padding-bottom:6px!important;grid-template-columns:none!important}.kids-topics-scroll::-webkit-scrollbar{display:none}.kids-topic-tab{flex:0 0 auto!important;width:145px!important;padding:9px 10px!important;border-radius:12px!important}.topic-tab-icon{font-size:22px!important}.topic-tab-name-vi{font-size:12.5px!important}.topic-tab-name-en{font-size:10.5px!important}.kids-mode-switch{display:flex!important;justify-content:stretch!important;gap:6px!important;margin-bottom:20px!important;width:100%!important;box-sizing:border-box!important}.kids-mode-btn{flex:1 1!important;min-width:0!important;padding:9px 8px!important;font-size:12.5px!important;font-weight:750!important;justify-content:center!important;gap:4px!important;border-radius:999px!important;box-sizing:border-box!important}.mode-pill{font-size:10px!important;padding:1px 6px!important;flex-shrink:0}.kids-featured-card{padding:22px 14px!important;border-radius:20px!important}.card-top-controls{margin-bottom:14px!important}.word-order-badge{font-size:11px!important;padding:3px 8px!important}.favorite-star-btn{font-size:11px!important;padding:4px 10px!important}.kids-giant-emoji{font-size:72px!important}.kids-en-row{gap:8px!important;justify-content:center!important}.kids-en-word{font-size:clamp(26px,8vw,36px)!important;word-break:break-word!important;overflow-wrap:break-word!important}.kids-big-speaker-btn{width:44px!important;height:44px!important;font-size:20px!important;flex-shrink:0}.kids-phonetic{font-size:14px!important}.kids-vi-meaning{font-size:18px!important}.kids-example-card{padding:11px 12px!important;margin-bottom:18px!important;border-radius:12px!important}.kids-example-en{font-size:13.5px!important;line-height:1.4!important;word-break:break-word!important}.kids-example-vi{font-size:12px!important}.kids-card-arrows{display:grid!important;grid-template-columns:1fr 1fr!important;grid-gap:8px!important;gap:8px!important;width:100%!important}.kids-audio-repeat-btn{grid-column:1/-1!important;order:-1!important;padding:9px 12px!important;font-size:13px!important}.card-arrow-btn,.kids-audio-repeat-btn{width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}.card-arrow-btn{padding:10px 8px!important;font-size:12.5px!important;text-align:center!important}.kids-word-palette{padding:16px 12px!important;border-radius:16px!important}.palette-title{font-size:13.5px!important;margin-bottom:10px!important}.palette-grid{grid-template-columns:repeat(3,1fr)!important;gap:6px!important}.palette-item-card{padding:8px 4px!important;border-radius:10px!important}.palette-emoji{font-size:24px!important;margin-bottom:2px!important}.palette-en{font-size:12px!important}.palette-en,.palette-vi{word-break:break-word!important}.palette-vi{font-size:10.5px!important}.kids-game-box{padding:18px 12px!important;border-radius:18px!important}.kids-game-top{margin-bottom:14px!important}.game-progress-tag{font-size:12px!important;padding:3px 10px!important}.game-score-badge{font-size:13px!important}.kids-game-question-card{padding:14px 10px!important;border-radius:14px!important;margin-bottom:18px!important}.game-target-word{font-size:clamp(24px,7vw,32px)!important}.kids-game-choices-grid{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-bottom:16px!important}.kids-choice-card{padding:14px 6px!important;border-radius:12px!important}.choice-emoji{font-size:38px!important;margin-bottom:4px!important}.choice-name{font-size:13.5px!important}.choice-vi{font-size:11px!important}.choice-badge{position:static!important;margin-top:4px!important;font-size:9.5px!important;padding:1px 4px!important}.kids-game-footer{flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding-top:12px!important;width:100%!important}.feedback-message{font-size:12.5px!important;text-align:center!important}.kids-next-question-btn{width:100%!important;justify-content:center!important;padding:11px 16px!important;font-size:13.5px!important}.kids-game-result-box{padding:28px 16px!important;border-radius:18px!important}.result-trophy{font-size:56px!important}.result-title{font-size:22px!important}.result-stats{gap:10px!important}.result-stat-card{padding:10px 14px!important}.result-actions{flex-direction:column!important;width:100%!important}.result-btn{width:100%!important;padding:11px 16px!important}.dashboard-spotlight-banner{padding:16px 14px!important;gap:14px!important;flex-direction:column!important;align-items:stretch!important;border-radius:16px!important}.dashboard-spotlight-banner>div:first-child{max-width:100%!important;gap:12px!important}.dashboard-spotlight-banner h3{font-size:16px!important}.dashboard-spotlight-banner p{font-size:12px!important}.dashboard-spotlight-banner button{width:100%!important;justify-content:center!important;padding:10px 16px!important}}.grammar-mobile-toggle-bar{display:none;margin-bottom:12px}@media (max-width:768px){.grammar-mobile-toggle-bar{display:block!important}.grammar-mobile-toggle-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:#fff;border:1.5px solid #0e9384;border-radius:14px;color:var(--text-main);cursor:pointer;box-shadow:0 2px 8px rgba(14,147,132,.1);font-family:inherit}.toggle-btn-left{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:#065f46;text-align:left;overflow:hidden}.toggle-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-chevron{font-size:11.5px;font-weight:700;color:#0e9384;flex-shrink:0;background:#e6f8f5;padding:4px 8px;border-radius:999px}.grammar-sidebar{display:none!important}.grammar-sidebar.mobile-open{display:flex!important;flex-direction:column!important;max-height:400px!important;overflow-y:auto!important;margin-bottom:16px!important;animation:fadeIn .2s ease-out}.grammar-title-row{flex-direction:column!important;align-items:stretch!important;gap:12px!important}.grammar-article-title{font-size:22px!important}.grammar-master-btn{width:100%!important;justify-content:center!important;padding:10px 16px!important}.grammar-article{padding:18px 14px!important;border-radius:14px!important}.grammar-hero{padding:20px 16px!important;border-radius:16px!important}.grammar-hero-title{font-size:22px!important}}