:root{color-scheme:light;--bg-canvas: #f8fafc;--bg-surface: #ffffff;--bg-surface-2: #f1f5f9;--bg-elevated: #ffffff;--bg-subtle: #f1f5f9;--bg-muted: #e2e8f0;--bg-input: #f1f5f9;--bg-input-focus: #ffffff;--bg-pill: #f1f5f9;--bg-pill-hover: #e2e8f0;--bg-track: rgba(15, 23, 42, .08);--bg-hover: rgba(15, 23, 42, .04);--bg-backdrop: rgba(15, 23, 42, .45);--bg-media-stage: #0f172a;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #526071;--text-inverse: #ffffff;--border-subtle: #e2e8f0;--border-strong: #cbd5e1;--border-focus: #4f46e5;--accent-primary: #4f46e5;--accent-primary-hover: #4338ca;--accent-primary-text: #4338ca;--accent-primary-soft: #eef2ff;--accent-primary-border: #c7d2fe;--accent-success: #059669;--accent-success-hover: #047857;--accent-success-text: #047857;--accent-success-soft: #ecfdf5;--accent-success-border: #a7f3d0;--accent-warning: #d97706;--accent-warning-hover: #b45309;--accent-warning-text: #b45309;--accent-warning-soft: #fffbeb;--accent-warning-border: #fde68a;--accent-danger: #e11d48;--accent-danger-hover: #be123c;--accent-danger-text: #be123c;--accent-danger-soft: #fff1f2;--accent-danger-border: #fecdd3;--accent-info: #0284c7;--accent-info-hover: #0369a1;--accent-info-text: #0369a1;--accent-info-soft: #f0f9ff;--accent-info-border: #bae6fd;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 28px rgba(15, 23, 42, .1), 0 2px 6px rgba(15, 23, 42, .05);--shadow-focus: 0 0 0 3px rgba(79, 70, 229, .22);--z-sticky: 20;--z-header: 100;--z-sidebar: 200;--z-dropdown: 300;--z-player: 400;--z-studio: 500;--z-modal: 600;--z-drawer: 700;--z-toast: 900;--z-splash: 950;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--header-height: 60px;--sidebar-width: 280px;--player-bar-height: 74px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-smooth: .25s cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{color-scheme:dark;--bg-canvas: #111827;--bg-surface: #1e293b;--bg-surface-2: #172030;--bg-elevated: #263347;--bg-subtle: #172030;--bg-muted: #263347;--bg-input: #172030;--bg-input-focus: #1e293b;--bg-pill: #263347;--bg-pill-hover: #334155;--bg-track: rgba(148, 163, 184, .16);--bg-hover: rgba(248, 250, 252, .06);--bg-backdrop: rgba(15, 23, 42, .72);--bg-media-stage: #0f172a;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--text-inverse: #ffffff;--border-subtle: #334155;--border-strong: #475569;--border-focus: #818cf8;--accent-primary: #6366f1;--accent-primary-hover: #4f46e5;--accent-primary-text: #a5b4fc;--accent-primary-soft: rgba(99, 102, 241, .16);--accent-primary-border: rgba(129, 140, 248, .35);--accent-success: #10b981;--accent-success-hover: #059669;--accent-success-text: #34d399;--accent-success-soft: rgba(16, 185, 129, .16);--accent-success-border: rgba(52, 211, 153, .32);--accent-warning: #f59e0b;--accent-warning-hover: #d97706;--accent-warning-text: #fbbf24;--accent-warning-soft: rgba(245, 158, 11, .15);--accent-warning-border: rgba(251, 191, 36, .32);--accent-danger: #f43f5e;--accent-danger-hover: #e11d48;--accent-danger-text: #fda4af;--accent-danger-soft: rgba(244, 63, 94, .16);--accent-danger-border: rgba(251, 113, 133, .32);--accent-info: #0ea5e9;--accent-info-hover: #0284c7;--accent-info-text: #7dd3fc;--accent-info-soft: rgba(14, 165, 233, .15);--accent-info-border: rgba(56, 189, 248, .32);--shadow-xs: 0 1px 2px rgba(15, 23, 42, .24);--shadow-sm: 0 2px 6px rgba(15, 23, 42, .28);--shadow-md: 0 6px 16px rgba(15, 23, 42, .32);--shadow-lg: 0 14px 32px rgba(15, 23, 42, .42);--shadow-focus: 0 0 0 3px rgba(129, 140, 248, .32)}:root{--bg-primary: var(--bg-canvas);--bg-secondary: var(--bg-surface);--bg-card: var(--bg-surface);--bg-card-hover: var(--bg-subtle);--card-bg: var(--bg-surface);--bg-glass: var(--bg-surface);--bg-glass-border: var(--border-subtle);--border-color: var(--border-subtle);--accent-indigo: var(--accent-primary);--accent-indigo-hover: var(--accent-primary-hover);--accent-indigo-glow: var(--accent-primary-soft);--accent-cyan: var(--accent-info);--accent-purple: var(--accent-primary);--accent-emerald: var(--accent-success);--accent-emerald-glow: var(--accent-success-soft);--accent-amber: var(--accent-warning);--accent-rose: var(--accent-danger);--accent-accent: var(--accent-primary);--shadow-glow: var(--shadow-sm)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);background-color:var(--bg-canvas);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;box-shadow:var(--shadow-focus)}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--bg-canvas)}.app-header{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:var(--z-header);flex-shrink:0;gap:12px}.brand-area{display:flex;align-items:center;gap:10px;flex-shrink:0}.sidebar-toggle-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.sidebar-toggle-btn:hover{background:var(--bg-pill);color:var(--text-primary);border-color:var(--border-strong)}.sidebar-toggle-btn i,.sidebar-toggle-btn svg{width:17px;height:17px}.brand-logo{display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.brand-logo:hover{background:var(--bg-hover)}.brand-title{font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);display:flex;align-items:center;gap:6px;white-space:nowrap}.brand-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);text-transform:uppercase;letter-spacing:.04em}.module-nav{display:flex;align-items:center;gap:4px;background:var(--bg-subtle);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.nav-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.nav-tab-btn:hover{color:var(--text-primary);background:var(--bg-pill-hover)}.nav-tab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.nav-tab-btn i,.nav-tab-btn svg{width:15px;height:15px;flex-shrink:0}.nav-badge-ai{font-size:10px;font-weight:700;padding:1px 5px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border)}.nav-dropdown-wrapper{position:relative}.nav-dropdown-trigger{display:inline-flex;align-items:center;gap:6px}.dropdown-chevron-icon{width:14px;height:14px;transition:transform var(--transition-fast)}.nav-dropdown-wrapper.open .dropdown-chevron-icon{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;z-index:var(--z-dropdown);display:none}.nav-dropdown-wrapper.open .nav-dropdown-menu{display:block;animation:fadeSlideDown .16s ease-out}.dropdown-section-header{padding:6px 10px 4px;display:flex;align-items:center;justify-content:space-between}.dropdown-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.nav-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.nav-dropdown-item:hover{background:var(--bg-subtle)}.nav-dropdown-item.active{background:var(--accent-primary-soft)}.dropdown-item-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-pill);color:var(--text-secondary);flex-shrink:0}.dropdown-item-icon i,.dropdown-item-icon svg{width:16px;height:16px}.dropdown-item-icon.accent-purple{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.dropdown-item-icon.accent-emerald{background:var(--accent-success-soft);color:var(--accent-success-text)}.dropdown-item-icon.accent-blue,.dropdown-item-icon.accent-cyan{background:var(--accent-info-soft);color:var(--accent-info-text)}.dropdown-item-icon.accent-amber{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.dropdown-item-content{display:flex;flex-direction:column;min-width:0;flex:1}.dropdown-item-title{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.dropdown-item-desc{font-size:11.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.user-streak-widget{display:flex;align-items:center;gap:6px}.streak-pill,.xp-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary)}.streak-pill strong{color:var(--accent-warning-text)}.xp-pill strong{color:var(--accent-primary-text)}.xp-pulse{animation:xpPop .35s ease}.xp-floating-popup{position:fixed;top:64px;right:28px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--accent-primary);color:var(--text-inverse);font-size:12px;font-weight:700;z-index:var(--z-toast);pointer-events:none;animation:floatUpFade 1s ease forwards}.admin-header-badge-btn,.studio-hub-trigger-btn,.media-source-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.admin-header-badge-btn:hover,.studio-hub-trigger-btn:hover,.media-source-btn:hover,#studio-hub-wrapper.open .studio-hub-trigger-btn{background:var(--bg-pill);color:var(--text-primary);border-color:var(--border-strong)}.admin-header-badge-btn i,.admin-header-badge-btn svg,.studio-hub-trigger-btn i,.studio-hub-trigger-btn svg{width:15px;height:15px}.admin-header-badge-btn kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:var(--radius-xs);background:var(--bg-subtle);border:1px solid var(--border-subtle);color:var(--text-muted)}.studio-dropdown-menu{min-width:300px}.admin-cms-divider{height:1px;background:var(--border-subtle);margin:6px 4px}.icon-button{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.icon-button:hover{background:var(--bg-pill);color:var(--text-primary);border-color:var(--border-strong)}.icon-button i,.icon-button svg{width:17px;height:17px}.app-body{display:flex;flex:1;overflow:hidden;position:relative}.app-sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width var(--transition-smooth),margin-left var(--transition-smooth)}.app-sidebar.collapsed{width:0;border-right:none}.sidebar-header{padding:12px 14px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.sidebar-search-box{position:relative;display:flex;align-items:center}.sidebar-search-icon{position:absolute;left:10px;width:15px;height:15px;color:var(--text-muted);pointer-events:none}.sidebar-search-input{width:100%;height:36px;padding:0 38px 0 32px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:background var(--transition-fast),border-color var(--transition-fast)}.sidebar-search-input::placeholder{color:var(--text-muted)}.sidebar-search-input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.sidebar-search-kbd{position:absolute;right:8px;font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted);pointer-events:none}.course-switcher-wrapper{position:relative}.course-switcher-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast)}.course-switcher-btn:hover{background:var(--bg-pill-hover);border-color:var(--border-strong)}.course-switcher-left{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.course-active-icon-box{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.course-active-icon-box i,.course-active-icon-box svg{width:16px;height:16px}.course-switcher-text{display:flex;flex-direction:column;min-width:0}.course-active-eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.course-active-name{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-switcher-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.course-units-badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle)}.course-switcher-chevron{width:14px;height:14px;color:var(--text-muted);transition:transform var(--transition-fast)}.course-switcher-wrapper.open .course-switcher-chevron{transform:rotate(180deg)}.course-selector-popover{position:absolute;top:calc(100% + 6px);left:0;width:310px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:none;overflow:hidden}.course-switcher-wrapper.open .course-selector-popover{display:block;animation:fadeSlideDown .16s ease-out}.course-selector-popover .popover-header{padding:12px 14px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.course-selector-popover .popover-title{font-size:13.5px;font-weight:700;color:var(--text-primary)}.course-selector-popover .popover-subtitle{font-size:12px;color:var(--text-muted)}.course-filter-chips{display:flex;flex-wrap:wrap;gap:4px}.course-chip-btn{padding:4px 9px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:11.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.course-chip-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.course-chip-btn.active{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.course-popover-list{max-height:260px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.course-popover-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.course-popover-item:hover{background:var(--bg-subtle)}.course-popover-item.active{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.course-item-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.course-item-icon{width:30px;height:30px;border-radius:var(--radius-sm);background:var(--bg-pill);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.course-item-icon i,.course-item-icon svg{width:15px;height:15px}.course-item-info{min-width:0;flex:1}.course-item-title{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-item-sub{font-size:11.5px;color:var(--text-muted)}.course-item-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-secondary)}.course-selector-popover .popover-footer{padding:10px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-subtle);display:flex;justify-content:space-between;align-items:center}.sidebar-progress-card{display:flex;flex-direction:column;gap:5px}.sidebar-progress-label{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--text-secondary)}.sidebar-progress-label strong{color:var(--accent-primary-text)}.sidebar-progress-track{width:100%;height:6px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.sidebar-progress-bar{height:100%;width:0%;border-radius:var(--radius-pill);background:var(--accent-primary);transition:width .35s ease}.sidebar-progress-sub{font-size:11.5px;color:var(--text-muted)}.unit-list{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.unit-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.unit-item:hover{background:var(--bg-subtle);border-color:var(--border-subtle)}.unit-item.active{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.unit-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:var(--radius-pill);background:var(--accent-primary)}.unit-index-pill{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--bg-pill);color:var(--text-secondary);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.unit-item:hover .unit-index-pill{background:var(--bg-pill-hover);color:var(--text-primary)}.unit-item.active .unit-index-pill{background:var(--accent-primary);color:var(--text-inverse)}.unit-card-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.unit-card-title{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.unit-card-sub{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;color:var(--text-muted)}.unit-topic-tag{padding:1px 6px;border-radius:var(--radius-xs);background:var(--bg-pill);color:var(--text-secondary);font-weight:600}.unit-level-chip{padding:1px 6px;border-radius:var(--radius-xs);background:var(--accent-info-soft);color:var(--accent-info-text);font-weight:700}.unit-progress-indicator{display:flex;align-items:center;gap:4px;margin-top:2px}.unit-item.active .unit-progress-indicator{color:var(--accent-primary-text)}.unit-prog-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--radius-pill);font-size:10.5px;font-weight:600}.unit-prog-chip.completed{background:var(--accent-success-soft);color:var(--accent-success-text)}.unit-prog-chip.completed i{width:12px;height:12px}.unit-prog-chip.in-progress{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.unit-prog-chip.not-started{background:var(--bg-pill);color:var(--text-muted)}.unit-item:hover .unit-prog-chip.not-started,.unit-item.active .unit-prog-chip.not-started{background:var(--bg-surface);color:var(--text-secondary)}.unit-dual-progress-box{margin-top:4px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.unit-item:hover .unit-dual-progress-box,.unit-item.active .unit-dual-progress-box{background:var(--bg-surface)}.dual-prog-line{display:flex;align-items:center;gap:6px;font-size:10.5px}.dual-prog-label{width:34px;font-weight:600;color:var(--text-muted)}.dual-prog-line.done .dual-prog-label{color:var(--accent-success-text)}.dual-prog-bar-bg{flex:1;height:4px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.dual-prog-bar-fill{height:100%;border-radius:var(--radius-pill);transition:width .3s ease}.dual-prog-bar-fill.dict{background:var(--accent-primary)}.dual-prog-bar-fill.shad{background:var(--accent-info)}.dual-prog-line.done .dual-prog-bar-fill{background:var(--accent-success)}.dual-prog-text{min-width:28px;text-align:right;font-family:var(--font-mono);font-weight:600;color:var(--text-secondary)}.dual-prog-line.done .dual-prog-text{color:var(--accent-success-text)}.app-content{flex:1;overflow-y:auto;padding:24px 28px 116px;display:flex;flex-direction:column;align-items:center;background-color:var(--bg-canvas)}.module-container{width:100%;max-width:980px;display:flex;flex-direction:column;gap:20px}.module-header,.module-toolbar{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px}.module-title-area h2{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);display:flex;align-items:center;flex-wrap:wrap;gap:10px}.module-subtitle{font-size:13.5px;color:var(--text-muted);margin-top:4px}.header-status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12.5px;font-weight:600}.badge-accent{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:11px;font-weight:700;letter-spacing:.02em}.glass-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.glass-panel:hover{border-color:var(--border-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.btn i,.btn svg{width:15px;height:15px;flex-shrink:0}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.btn-success{background:var(--accent-success);color:var(--text-inverse);border-color:var(--accent-success)}.btn-success:hover:not(:disabled){background:var(--accent-success-hover);border-color:var(--accent-success-hover)}.btn-danger{background:var(--accent-danger);color:var(--text-inverse);border-color:var(--accent-danger)}.btn-danger:hover:not(:disabled){background:var(--accent-danger-hover);border-color:var(--accent-danger-hover)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:var(--radius-sm)}.clickable-word,.hover-listen-word,.interactive-word{display:inline;border-radius:3px;padding:0 2px;cursor:pointer;border-bottom:1px dashed transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.clickable-word:hover,.hover-listen-word:hover,.interactive-word:hover,.clickable-word:focus-visible,.interactive-word:focus-visible{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-bottom-color:var(--accent-primary)}.clickable-word.speaking,.interactive-word.speaking{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-bottom-color:var(--accent-primary);font-weight:700}.sentence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:8px}.sentence-grid-item{height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:3px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.sentence-grid-item:hover{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-primary)}.sentence-grid-item.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.sentence-grid-item.completed:not(.active){background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.sentence-grid-item.locked{background:var(--bg-subtle);border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.modal-overlay{position:fixed;inset:0;background:var(--bg-backdrop);display:flex;align-items:center;justify-content:center;padding:20px;z-index:var(--z-modal);opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-dialog{width:92%;max-width:560px;max-height:90vh;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;transform:scale(.97) translateY(8px);transition:transform var(--transition-smooth)}.modal-overlay.active .modal-dialog{transform:scale(1) translateY(0)}.modal-dialog--sm{max-width:400px}.modal-dialog--md{max-width:560px}.modal-dialog--lg{max-width:760px}.modal-dialog--xl{max-width:960px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.modal-title{font-size:16.5px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}.modal-close-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.modal-close-btn:hover{background:var(--bg-subtle);color:var(--text-primary);border-color:var(--border-subtle)}.modal-close-btn i,.modal-close-btn svg{width:17px;height:17px}.modal-body{padding:18px 20px;overflow-y:auto;color:var(--text-secondary);font-size:14px;line-height:1.55}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-subtle);background:var(--bg-subtle)}.confirm-dialog-message{font-size:14px;color:var(--text-secondary);line-height:1.6;white-space:pre-line}.confirm-dialog-input{width:100%;margin-top:12px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px}.confirm-dialog-input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.confirm-dialog-error{margin-top:6px;font-size:12.5px;color:var(--accent-danger-text);font-weight:600}.toast-container{position:fixed;top:72px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:var(--z-toast);pointer-events:none;max-width:360px}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-left:4px solid var(--accent-primary);box-shadow:var(--shadow-md);font-size:13.5px;font-weight:500;animation:fadeSlideDown .2s ease-out}.toast.success{border-left-color:var(--accent-success)}.toast.warning{border-left-color:var(--accent-warning)}.toast.error{border-left-color:var(--accent-danger)}.sidebar-backdrop{position:fixed;inset:0;background:var(--bg-backdrop);z-index:calc(var(--z-sidebar) - 1);display:none}.sidebar-backdrop.active{display:block}.lazy-module-loader{width:100%;min-height:280px;display:flex;align-items:center;justify-content:center}.lazy-loader-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 36px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.lazy-spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .75s linear infinite}.lazy-loader-text{font-size:13.5px;font-weight:600;color:var(--text-secondary)}.app-splash-loader{position:fixed;inset:0;background:var(--bg-canvas);z-index:var(--z-splash);display:flex;align-items:center;justify-content:center;padding:24px;transition:opacity .35s ease,visibility .35s ease}.app-splash-loader.fade-out{opacity:0;visibility:hidden;pointer-events:none}.splash-card{width:100%;max-width:420px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:32px 26px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.splash-logo-container{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center}.splash-pulse-ring{position:absolute;inset:0;border-radius:var(--radius-lg);border:2px solid var(--accent-primary-border);animation:pulseRing 2s ease-out infinite}.splash-pulse-delay{animation-delay:.7s}.splash-logo-core{width:56px;height:56px;border-radius:var(--radius-md);background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.splash-logo-text{font-size:20px;font-weight:800;letter-spacing:-.02em}.splash-brand-title{font-size:21px;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:8px}.splash-brand-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border)}.splash-soundwave-wrap{display:flex;align-items:center;justify-content:center;gap:5px;height:40px}.soundwave-bar{width:4px;border-radius:var(--radius-pill);background:var(--accent-primary);animation:eqWave 1.1s ease-in-out infinite alternate}.soundwave-bar.bar-1{height:12px;animation-delay:.05s}.soundwave-bar.bar-2{height:26px;animation-delay:.25s}.soundwave-bar.bar-3{height:36px;animation-delay:.15s}.soundwave-bar.bar-4{height:18px;animation-delay:.4s}.soundwave-bar.bar-5{height:32px;animation-delay:.3s}.soundwave-bar.bar-6{height:22px;animation-delay:.18s}.soundwave-bar.bar-7{height:14px;animation-delay:.45s}.splash-status-text{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-secondary)}.splash-status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-success)}.splash-quote-card{width:100%;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;align-items:flex-start;gap:10px;text-align:left}.splash-quote-icon{color:var(--accent-primary-text);flex-shrink:0;margin-top:2px}.splash-quote-text{font-size:12.5px;color:var(--text-secondary);line-height:1.5}.splash-skip-btn{padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.splash-skip-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.ai-explanation-drawer-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-drawer);display:flex;justify-content:flex-end;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.ai-explanation-drawer-overlay.active{opacity:1;pointer-events:auto}.ai-drawer-panel{width:100%;max-width:470px;height:100%;background:var(--bg-surface);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--transition-smooth)}.ai-explanation-drawer-overlay.active .ai-drawer-panel{transform:translate(0)}.ai-drawer-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-drawer-title-area{display:flex;align-items:center;gap:10px}.ai-drawer-glow-badge{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);display:flex;align-items:center;justify-content:center}.ai-drawer-title{font-size:15.5px;font-weight:700;color:var(--text-primary)}.ai-drawer-subtitle{font-size:12px;color:var(--text-muted)}.ai-drawer-top-actions{display:flex;align-items:center;gap:8px}.ai-drawer-top-actions .icon-button,#btn-close-ai-drawer{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.ai-drawer-top-actions .icon-button:hover,#btn-close-ai-drawer:hover{background:var(--bg-subtle);color:var(--text-primary)}.ai-badge-cache{font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);background:var(--accent-success-soft);color:var(--accent-success-text)}.ai-badge-deepseek{font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text)}.ai-badge-loading{font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);background:var(--accent-warning-soft);color:var(--accent-warning-text)}.ai-sentence-ref-card{margin:14px 20px 0;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.ai-sentence-en{font-size:14.5px;font-weight:600;color:var(--text-primary)}.ai-sentence-vi{font-size:13px;color:var(--text-muted)}.ai-sentence-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.ai-drawer-nav-tabs{display:flex;gap:6px;padding:12px 20px 0;border-bottom:1px solid var(--border-subtle)}.ai-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.ai-tab-btn:hover{color:var(--text-primary)}.ai-tab-btn.active{color:var(--accent-primary-text);border-bottom-color:var(--accent-primary)}.ai-tab-btn i{width:14px;height:14px}.ai-drawer-body{flex:1;overflow-y:auto;padding:16px 20px 24px;display:flex;flex-direction:column;gap:14px}.ai-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px;gap:12px;color:var(--text-muted)}.ai-section-title{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ai-cards-list{display:flex;flex-direction:column;gap:10px}.ai-detail-card,.ai-context-card,.ai-colloc-item,.ai-paraphrase-item{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.ai-card-label{font-size:12px;font-weight:700;color:var(--accent-primary-text);margin-bottom:4px}.ai-card-text,.ai-context-desc{font-size:13.5px;color:var(--text-secondary);line-height:1.55}.ai-colloc-grid{display:grid;grid-template-columns:1fr;gap:10px}.ai-colloc-term{font-size:14px;font-weight:700;color:var(--text-primary)}.ai-colloc-ipa{font-family:var(--font-mono);font-size:12px;color:var(--accent-info-text);margin:2px 0}.ai-colloc-meaning{font-size:13px;color:var(--text-secondary)}.ai-colloc-usage{font-size:12px;color:var(--text-muted);margin-top:4px}.ai-para-en{font-size:13.5px;font-weight:600;color:var(--text-primary)}.ai-para-vi{font-size:12.5px;color:var(--text-muted);margin-top:3px}.btn-sentence-ai-explain{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-sentence-ai-explain:hover{background:var(--bg-pill-hover);border-color:var(--accent-primary)}.app-mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:62px;background:var(--bg-surface);border-top:1px solid var(--border-subtle);padding:4px 8px calc(4px + env(safe-area-inset-bottom));z-index:var(--z-player);align-items:center;justify-content:space-around}.mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;border:none;background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.mobile-nav-item i,.mobile-nav-item svg{width:19px;height:19px}.mobile-nav-item:hover,.mobile-nav-item.active{color:var(--accent-primary-text);background:var(--accent-primary-soft)}.mobile-nav-center-halo{width:34px;height:34px;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center}.mobile-more-sheet-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-drawer);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.mobile-more-sheet-overlay.active{opacity:1;pointer-events:auto}.mobile-more-sheet-panel{width:100%;background:var(--bg-surface);border-top:1px solid var(--border-subtle);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:12px 16px 24px;transform:translateY(100%);transition:transform var(--transition-smooth)}.mobile-more-sheet-overlay.active .mobile-more-sheet-panel{transform:translateY(0)}.sheet-pull-bar{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--border-strong);margin:0 auto 14px}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:15px;font-weight:700;color:var(--text-primary)}.mobile-more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mobile-more-card{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);text-align:left;cursor:pointer}.mobile-more-card:active{background:var(--bg-pill-hover)}.more-card-icon{width:34px;height:34px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.more-card-icon.exam{background:var(--accent-info-soft);color:var(--accent-info-text)}.more-card-icon.roleplay{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.more-card-icon.writing{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.more-card-icon.grammar{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.more-card-icon.minigame{background:var(--accent-success-soft);color:var(--accent-success-text)}.more-card-icon.analytics{background:var(--accent-danger-soft);color:var(--accent-danger-text)}.more-card-title{font-size:13px;font-weight:700;color:var(--text-primary)}.more-card-desc{font-size:11px;color:var(--text-muted)}.today-routine-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.today-routine-overlay.active{opacity:1;pointer-events:auto}.today-routine-card{position:relative;width:100%;max-width:460px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:24px;display:flex;flex-direction:column;gap:18px}.today-modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.today-modal-close:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.today-card-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.today-streak-badge{display:inline-flex;align-items:baseline;gap:5px;padding:4px 12px;border-radius:var(--radius-pill);background:var(--accent-warning-soft);color:var(--accent-warning-text);border:1px solid var(--accent-warning-border)}.today-streak-badge .streak-num{font-size:16px;font-weight:800}.today-streak-badge .streak-lbl{font-size:11.5px;font-weight:600}.today-title{font-size:19px;font-weight:800;color:var(--text-primary)}.today-sub{font-size:13px;color:var(--text-muted)}.today-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.today-stat-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.stat-icon-wrap{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{display:flex;flex-direction:column}.today-stat-item .stat-val{font-size:17px;font-weight:800;color:var(--text-primary)}.stat-label{font-size:11.5px;color:var(--text-muted)}.today-actions-list{display:flex;flex-direction:column;gap:8px}.today-action-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.today-action-btn:hover{background:var(--bg-pill-hover);border-color:var(--border-strong)}.today-action-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.today-action-btn.primary:hover{background:var(--accent-primary-hover)}.today-action-btn.secondary{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.today-action-btn.secondary:hover{border-color:var(--accent-success)}.today-action-btn.pwa-install{background:var(--accent-info-soft);border-color:var(--accent-info-border);color:var(--accent-info-text)}.today-action-btn .btn-text-wrap{display:flex;flex-direction:column}.today-action-btn .btn-text-wrap strong{font-size:13.5px;font-weight:700}.today-action-btn .btn-text-wrap span{font-size:11.5px;opacity:.85}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes eqWave{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}@keyframes pulseRing{0%{transform:scale(.95);opacity:.85}to{transform:scale(1.25);opacity:0}}@keyframes xpPop{0%{transform:scale(1)}50%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes floatUpFade{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-22px)}}@media(max-width:1024px){:root{--sidebar-width: 256px}.app-header{padding:0 14px;gap:8px}.nav-tab-btn{padding:6px 10px;font-size:12.5px}.app-sidebar{width:var(--sidebar-width)}.app-content{padding:20px 20px 116px}}@media(max-width:768px){.app-header{padding:0 12px;height:54px}.module-nav,.brand-badge,.admin-header-badge-btn span,.admin-header-badge-btn kbd,.media-source-btn span{display:none}.app-sidebar{position:fixed;top:54px;left:0;bottom:0;width:85vw;max-width:310px;z-index:var(--z-sidebar);transform:translate(-100%);transition:transform var(--transition-smooth);box-shadow:var(--shadow-lg)}.app-sidebar.collapsed{width:85vw;border-right:1px solid var(--border-subtle)}.app-sidebar.mobile-open{transform:translate(0)}.app-content{padding:14px 14px 156px}.module-header,.module-toolbar{flex-direction:column;align-items:stretch}.module-title-area h2{font-size:18.5px}.glass-panel{padding:15px;border-radius:var(--radius-md)}.modal-dialog{width:96%;max-height:88vh}.ai-drawer-panel{max-width:100%}.app-mobile-bottom-nav{display:flex}}@media(max-width:480px){.brand-title{font-size:14.5px}.user-streak-widget{gap:4px}.streak-pill,.xp-pill{padding:4px 8px;font-size:11.5px}.course-selector-popover{width:calc(100vw - 28px)}.mobile-more-grid,.today-stats-grid{grid-template-columns:1fr}}.app-player-bar{position:fixed;bottom:14px;left:calc(var(--sidebar-width) + 20px);right:20px;height:var(--player-bar-height);background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:18px;z-index:var(--z-player);transition:left var(--transition-smooth),border-color var(--transition-fast),box-shadow var(--transition-fast),width var(--transition-smooth)}.app-body:has(.app-sidebar.collapsed)~.app-player-bar{left:20px}.app-player-bar:hover{border-color:var(--border-strong)}.player-track-info{display:flex;align-items:center;gap:12px;width:clamp(160px,18vw,220px);flex-shrink:0;min-width:0}.track-artwork{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.app-player-bar.playing .track-artwork{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.track-artwork i,.track-artwork svg{width:20px;height:20px}.track-details{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.track-title{font-size:13.5px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-sentence-hint{font-size:11.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-center-controls{flex:1;max-width:580px;min-width:0;display:flex;flex-direction:column;gap:5px}.player-buttons{display:flex;align-items:center;justify-content:center;gap:10px}.ctrl-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.ctrl-btn:hover{background:var(--bg-pill);color:var(--text-primary)}.ctrl-btn.active{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.ctrl-btn i,.ctrl-btn svg{width:17px;height:17px}.ctrl-btn-play{width:38px;height:38px;border-radius:50%;border:none;background:var(--accent-primary);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--transition-fast),transform var(--transition-fast)}.ctrl-btn-play:hover{background:var(--accent-primary-hover);transform:scale(1.04)}.ctrl-btn-play i,.ctrl-btn-play svg{width:18px;height:18px}.ctrl-btn-ab{height:24px;padding:0 7px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.ctrl-btn-ab:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.ctrl-btn-ab.active{background:var(--accent-info);border-color:var(--accent-info);color:var(--text-inverse)}.progress-waveform-area{display:flex;align-items:center;gap:10px;width:100%}.time-stamp{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-muted);min-width:36px;text-align:center;user-select:none}.waveform-container{position:relative;flex:1;height:22px;border-radius:var(--radius-xs);background:var(--bg-subtle);border:1px solid var(--border-subtle);cursor:pointer;overflow:hidden;display:flex;align-items:center}.waveform-container:hover{border-color:var(--border-strong)}.waveform-canvas{width:100%;height:100%;display:block}.progress-playhead{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--accent-primary);pointer-events:none}.segment-markers-overlay{position:absolute;inset:0;pointer-events:none}.segment-marker{position:absolute;top:0;bottom:0;width:1px;background:var(--border-strong)}.ab-loop-range{position:absolute;top:0;bottom:0;background:var(--accent-info-soft);border-left:2px solid var(--accent-info);border-right:2px solid var(--accent-info);pointer-events:none;display:none}.ab-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--accent-info);pointer-events:none;display:none}.ab-marker-label{position:absolute;top:1px;left:3px;font-size:9px;font-weight:800;color:var(--accent-info-text)}.player-right-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.loop-setting-pill{height:28px;padding:0 9px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.loop-setting-pill:hover{background:var(--bg-pill-hover);color:var(--text-primary);border-color:var(--border-strong)}.loop-setting-pill i,.loop-setting-pill svg{width:13px;height:13px}.speed-selector-dropdown{position:relative}.speed-pill-btn{height:28px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-primary);font-family:var(--font-mono);font-size:11.5px;font-weight:700;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.speed-pill-btn:hover{background:var(--bg-pill-hover);border-color:var(--border-strong)}.speed-options-menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:96px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;display:none;flex-direction:column;gap:2px;z-index:var(--z-dropdown)}.speed-options-menu.open{display:flex}.speed-option-item{width:100%;padding:6px 10px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;font-weight:600;text-align:left;cursor:pointer}.speed-option-item:hover,.speed-option-item.active{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.volume-control{display:flex;align-items:center;gap:6px;color:var(--text-muted)}.volume-control i,.volume-control svg{width:16px;height:16px}.volume-slider{width:68px;height:4px;accent-color:var(--accent-primary);cursor:pointer}.player-minimize-toggle-btn{width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.player-minimize-toggle-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.player-mini-progress-bar{display:none;position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.player-mini-progress-fill{height:100%;width:0%;background:var(--accent-primary)}.app-player-bar.minimized{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width)) / 2);right:auto;transform:translate(-50%);width:auto;max-width:calc(100vw - var(--sidebar-width) - 40px);height:52px;padding:0 14px;border-radius:var(--radius-pill);gap:12px}.app-body:has(.app-sidebar.collapsed)~.app-player-bar.minimized{left:50%;max-width:calc(100vw - 32px)}.app-player-bar.minimized .player-track-info{width:auto;max-width:170px}.app-player-bar.minimized .track-artwork{width:32px;height:32px;border-radius:50%}.app-player-bar.minimized .track-artwork i,.app-player-bar.minimized .track-artwork svg{width:15px;height:15px}.app-player-bar.minimized .track-sentence-hint,.app-player-bar.minimized .progress-waveform-area,.app-player-bar.minimized .player-right-controls>*:not(.player-minimize-toggle-btn),.app-player-bar.minimized .player-buttons>*:not(#player-btn-play):not(#player-btn-next-sent){display:none}.app-player-bar.minimized .track-title{font-size:12.5px}.app-player-bar.minimized .player-center-controls{flex:0 0 auto}.app-player-bar.minimized .ctrl-btn-play{width:34px;height:34px}.app-player-bar.minimized .player-mini-progress-bar{display:block}@media(max-width:1024px){.app-player-bar{left:calc(var(--sidebar-width) + 14px);right:14px;padding:0 12px;gap:10px}.app-body:has(.app-sidebar.collapsed)~.app-player-bar{left:14px}.player-track-info{width:150px}.volume-control{display:none}}@media(max-width:768px){.app-player-bar,.app-body:has(.app-sidebar.collapsed)~.app-player-bar{left:10px;right:10px;bottom:68px;height:auto;min-height:62px;padding:8px 12px;border-radius:var(--radius-md);flex-wrap:wrap;gap:6px 10px}.player-track-info{width:auto;flex:1;min-width:0;gap:8px}.track-artwork{width:34px;height:34px}.player-center-controls{order:3;width:100%;max-width:100%;flex:1 0 100%}.player-buttons{gap:6px}.player-right-controls{order:2;gap:6px}.loop-setting-pill{display:none}.app-player-bar.minimized,.app-body:has(.app-sidebar.collapsed)~.app-player-bar.minimized{bottom:70px;left:50%;right:auto;width:auto;max-width:calc(100vw - 24px);min-height:46px;height:46px;padding:0 12px;flex-wrap:nowrap}.app-player-bar.minimized .player-center-controls{order:0;width:auto;flex:0 0 auto}}@media(max-width:480px){.ctrl-btn-ab{display:none}.speed-pill-btn{padding:0 8px;font-size:11px}}.dictation-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.dictation-card{display:flex;flex-direction:column;gap:16px}.dictation-mode-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);align-self:flex-start}.mode-tab-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background var(--transition-fast),color var(--transition-fast)}.mode-tab-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.mode-tab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.sentence-audio-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.sentence-step-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:12px;font-weight:700}.sentence-play-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.sentence-play-btn:hover{background:var(--accent-primary-hover)}.hotkey-hint{font-size:11.5px;color:var(--text-muted);display:inline-flex;align-items:center;gap:5px}.dictation-input-area{display:flex;flex-direction:column;gap:10px}.dictation-textarea{width:100%;min-height:112px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:16px;line-height:1.6;resize:vertical;transition:background var(--transition-fast),border-color var(--transition-fast)}.dictation-textarea::placeholder{color:var(--text-muted)}.dictation-textarea:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.dictation-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.hint-buttons-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.hint-buttons-group .btn,.dictation-actions>.btn{min-height:36px}.diff-result-panel{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}.diff-title{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.diff-words-container{display:flex;flex-wrap:wrap;gap:6px;align-items:center;line-height:1.7}.diff-word{position:relative;display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--radius-xs);font-size:15px;font-weight:600;border:1px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast)}.diff-word:hover{border-color:var(--border-strong)}.diff-word.correct{background:var(--accent-success-soft);color:var(--accent-success-text);border-color:var(--accent-success-border)}.diff-word.typo{background:var(--accent-warning-soft);color:var(--accent-warning-text);border-color:var(--accent-warning-border)}.diff-word.missing{background:var(--accent-danger-soft);color:var(--accent-danger-text);border-color:var(--accent-danger-border);text-decoration:underline dashed}.diff-word.extra{background:var(--bg-pill);color:var(--text-muted);text-decoration:line-through}.target-script-area{padding-top:12px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.target-script-en{font-size:15.5px;font-weight:600;color:var(--text-primary);line-height:1.65}.target-script-vi{font-size:13.5px;color:var(--text-secondary)}.interactive-wrong-word{position:relative;display:inline-flex;align-items:center;cursor:pointer}.interactive-wrong-word:hover,.interactive-wrong-word.speaking{border-color:var(--accent-primary)}.wrong-word-popover{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);width:240px;padding:12px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:none;flex-direction:column;gap:6px;text-align:left;font-weight:400}.wrong-word-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--bg-surface)}.interactive-wrong-word:hover .wrong-word-popover{display:flex}.wrong-word-popover .popover-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.popover-speak-icon{color:var(--accent-primary-text);display:inline-flex}.popover-target{font-size:14px;font-weight:700;color:var(--text-primary)}.popover-meaning{font-size:12.5px;color:var(--text-secondary)}.popover-user-feedback{font-size:11.5px;color:var(--accent-danger-text)}.popover-hint{font-size:11px;color:var(--text-muted)}.wrong-words-review-panel{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}.wrong-words-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.wrong-words-title{font-size:14px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:6px}.wrong-words-tip{font-size:12px;color:var(--text-muted)}.wrong-words-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.wrong-word-card{position:relative;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-danger);display:flex;flex-direction:column;gap:6px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.wrong-word-card:hover,.wrong-word-card.speaking{border-color:var(--accent-primary-border);border-left-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.wrong-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.wrong-card-word-wrap{display:flex;flex-direction:column}.wrong-card-target{font-size:15px;font-weight:700;color:var(--text-primary)}.wrong-card-ipa{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-info-text)}.wrong-card-speak-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--accent-primary-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.wrong-card-speak-btn:hover{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.wrong-card-meaning{font-size:12.5px;color:var(--text-secondary)}.wrong-card-feedback{font-size:11.5px;color:var(--text-muted)}.feedback-user-ans{color:var(--accent-danger-text);font-weight:600}.wrong-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:2px}.wrong-card-lookup-btn{padding:4px 9px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:11.5px;font-weight:600;cursor:pointer}.wrong-card-lookup-btn:hover{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.cloze-container{padding:18px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.cloze-sentence-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px;line-height:2.1;font-size:16.5px}.cloze-word-static{color:var(--text-primary);font-weight:500}.cloze-blank-wrapper{display:inline-flex;align-items:center;gap:4px}.cloze-sentence-flow .cloze-inline-input{height:32px;min-width:72px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);border-bottom:2px solid var(--accent-primary);background:var(--bg-input-focus);color:var(--text-primary);font-family:var(--font-mono);font-size:14.5px;font-weight:600;text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.cloze-sentence-flow .cloze-inline-input:focus{border-color:var(--border-focus)}.cloze-sentence-flow .cloze-inline-input.correct{background:var(--accent-success-soft);border-color:var(--accent-success);color:var(--accent-success-text)}.cloze-sentence-flow .cloze-inline-input.typo{background:var(--accent-warning-soft);border-color:var(--accent-warning);color:var(--accent-warning-text)}.cloze-sentence-flow .cloze-inline-input.wrong{background:var(--accent-danger-soft);border-color:var(--accent-danger);color:var(--accent-danger-text)}.cloze-reveal-hint{font-size:12px;font-weight:600;color:var(--accent-info-text);background:var(--accent-info-soft);padding:1px 6px;border-radius:var(--radius-xs)}.flow-container{display:flex;flex-direction:column;gap:12px}.flow-top-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.flow-sentence-box{position:relative;padding:20px 18px;border-radius:var(--radius-md);background:var(--bg-subtle);border:2px solid var(--border-subtle);cursor:text;transition:border-color var(--transition-fast),background var(--transition-fast)}.flow-sentence-box:focus-within,.flow-sentence-box.is-focused{background:var(--bg-surface);border-color:var(--accent-primary)}.flow-words-display{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 8px;line-height:1.9}.flow-hidden-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.flow-word-wrapper{display:inline-flex;align-items:baseline;gap:2px}.flow-punct-static{font-size:17px;font-weight:600;color:var(--text-secondary)}.flow-word-slot{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);font-family:var(--font-mono);font-size:15.5px;font-weight:600;letter-spacing:.04em;transition:border-color var(--transition-fast),background var(--transition-fast)}.flow-word-slot:hover{border-color:var(--border-strong)}.flow-word-slot.active-word{border-color:var(--accent-primary);background:var(--accent-primary-soft)}.flow-word-slot.completed-correct{border-color:var(--accent-success-border);background:var(--accent-success-soft)}.flow-word-slot.completed-skipped{border-color:var(--accent-danger-border);background:var(--accent-danger-soft)}.flow-word-slot.completed-hinted{border-color:var(--accent-warning-border);background:var(--accent-warning-soft)}.flow-word-slot.shake-error{animation:slotShake .25s ease;border-color:var(--accent-danger)}.flow-char{display:inline-block;min-width:9px;text-align:center}.flow-char.char-pending{color:var(--text-muted)}.flow-char.char-cursor{color:var(--accent-primary-text);border-bottom:2px solid var(--accent-primary)}.flow-char.char-correct{color:var(--accent-success-text)}.flow-char.char-hinted{color:var(--accent-warning-text)}.flow-char.char-wrong{color:var(--accent-danger-text)}.sfx-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.sfx-toggle-btn:hover{background:var(--bg-pill);color:var(--text-primary)}.sfx-toggle-btn.active{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.flow-hotkey-guide{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-muted)}.flow-hotkey-guide kbd{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-primary)}.auto-advance-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:var(--accent-success-soft);border:1px solid var(--accent-success-border);color:var(--accent-success-text);font-size:13px;font-weight:600}.auto-advance-info{display:flex;align-items:center;gap:8px}.dictation-sidebar-card{display:flex;flex-direction:column;gap:16px}.accuracy-meter{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.accuracy-circle{width:82px;height:82px;border-radius:50%;border:4px solid var(--accent-primary);background:var(--bg-surface);display:flex;align-items:center;justify-content:center}.accuracy-val{font-size:20px;font-weight:800;color:var(--accent-primary-text)}.accuracy-lbl{font-size:12px;font-weight:600;color:var(--text-muted)}@keyframes slotShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media(max-width:1024px){.dictation-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}}@media(max-width:768px){.dictation-layout{grid-template-columns:1fr}.dictation-sidebar-card{order:-1}.wrong-words-grid{grid-template-columns:1fr}}@media(max-width:480px){.dictation-textarea{font-size:15px;min-height:96px}.cloze-sentence-flow{font-size:15px}}.shadowing-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.shadowing-card{display:flex;flex-direction:column;gap:16px}.shadowing-target-box{position:relative;padding:20px 22px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);border-left:4px solid var(--accent-primary);display:flex;flex-direction:column;gap:10px}.target-box-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.hover-listen-hint{font-size:12px;color:var(--text-muted);display:inline-flex;align-items:center;gap:5px}.hover-listen-hint.small{font-size:11px}.hover-listen-word.speaking{background:var(--accent-primary);color:var(--text-inverse);border-bottom-color:transparent}.target-en-text{font-size:19px;font-weight:600;color:var(--text-primary);line-height:1.6}.target-vi-text{font-size:13.5px;color:var(--text-secondary)}.comparison-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.track-box{padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:10px}.track-box-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--text-primary)}.track-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:13.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.track-action-btn:hover{background:var(--bg-pill);border-color:var(--accent-primary-border)}.track-action-btn.active-playing{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.track-action-btn.recording{background:var(--accent-danger);border-color:var(--accent-danger);color:var(--text-inverse)}.mic-meter-bar{width:100%;height:6px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.mic-meter-fill{height:100%;width:0%;background:var(--accent-success);transition:width .08s linear}.ab-compare-container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.btn-compare-ab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--accent-primary-border);background:var(--accent-primary-soft);color:var(--accent-primary-text);font-size:13px;font-weight:600;cursor:pointer}.btn-compare-ab:hover:not(:disabled){background:var(--accent-primary);color:var(--text-inverse)}.btn-compare-ab:disabled{opacity:.5;cursor:not-allowed}.btn-compare-ab.active-ab{background:var(--accent-primary);color:var(--text-inverse)}.ab-phase-indicator{font-size:12px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-secondary)}.ab-phase-indicator.playing-model{background:var(--accent-info-soft);color:var(--accent-info-text)}.ab-phase-indicator.playing-user{background:var(--accent-success-soft);color:var(--accent-success-text)}.speech-result-box{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}.speech-result-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.score-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--radius-pill);font-size:13px;font-weight:700}.score-badge.high{background:var(--accent-success-soft);color:var(--accent-success-text);border:1px solid var(--accent-success-border)}.score-badge.medium{background:var(--accent-warning-soft);color:var(--accent-warning-text);border:1px solid var(--accent-warning-border)}.score-badge.low{background:var(--accent-danger-soft);color:var(--accent-danger-text);border:1px solid var(--accent-danger-border)}.speech-words-heatmap{display:flex;flex-wrap:wrap;gap:8px}.shadow-token{display:inline-flex;flex-direction:column;align-items:center;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.shadow-token:hover{border-color:var(--accent-primary)}.shadow-token.matched{background:var(--accent-success-soft);border-color:var(--accent-success-border)}.shadow-token.missed{background:var(--accent-danger-soft);border-color:var(--accent-danger-border)}.shadow-token .token-word{font-size:14px;font-weight:700;color:var(--text-primary)}.shadow-token .ipa-subtext{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.shadow-token.missed .ipa-subtext{color:var(--accent-danger-text)}.attempts-history-box{padding-top:10px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.attempts-list{display:flex;flex-wrap:wrap;gap:6px}.attempt-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.attempt-pill:hover{background:var(--bg-pill);color:var(--text-primary)}.attempt-pill.active{background:var(--accent-primary-soft);border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.attempt-pill .attempt-score{font-family:var(--font-mono);font-weight:700}.shadowing-guide-card{display:flex;flex-direction:column;gap:14px}.guide-step-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text-secondary)}.step-num{width:24px;height:24px;border-radius:50%;background:var(--accent-primary-soft);color:var(--accent-primary-text);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.score-badge-circle{width:68px;height:68px;border-radius:50%;background:var(--accent-primary-soft);border:3px solid var(--accent-primary);color:var(--accent-primary-text);font-size:18px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:4px auto}.shadowing-export-modal-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:20px}.shadowing-export-modal-overlay.active{display:flex}.shadowing-export-dialog{width:100%;max-width:820px;max-height:90vh;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.shadowing-export-dialog .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border-subtle)}.modal-title-wrap .modal-title{font-size:16.5px;font-weight:700;color:var(--text-primary)}.modal-title-wrap .modal-subtitle{font-size:12.5px;color:var(--text-muted);margin-top:2px}#close-export-modal-btn{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}#close-export-modal-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.export-modal-tabs{display:flex;gap:8px;padding:10px 22px 0;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.export-tab-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.export-tab-btn:hover{color:var(--text-primary)}.export-tab-btn.active{color:var(--accent-primary-text);border-bottom-color:var(--accent-primary)}.export-tab-btn i{width:15px;height:15px}.shadowing-export-body{flex:1;overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}.export-tab-pane{display:none;flex-direction:column;gap:14px}.export-tab-pane.active{display:flex}.export-section-desc{font-size:13.5px;color:var(--text-secondary);line-height:1.5}.export-section-desc strong{color:var(--text-primary)}.export-stats-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-item{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.stat-item i{width:16px;height:16px;color:var(--text-muted)}.stat-item.highlight i{color:var(--accent-primary-text)}.stat-item.warning i{color:var(--accent-warning-text)}.stat-item.success i{color:var(--accent-success-text)}.export-stats-bar .stat-val{font-size:18px;font-weight:800;color:var(--text-primary)}.stat-lbl{font-size:12px;color:var(--text-muted)}.export-option-box{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.export-toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer}.export-toggle-label input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-switch-visual{position:relative;width:40px;height:22px;border-radius:var(--radius-pill);background:var(--border-strong);flex-shrink:0;transition:background var(--transition-fast)}.toggle-switch-visual:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--bg-surface);box-shadow:var(--shadow-xs);transition:transform var(--transition-fast)}.export-toggle-label input:checked+.toggle-switch-visual{background:var(--accent-primary)}.export-toggle-label input:checked+.toggle-switch-visual:after{transform:translate(18px)}.toggle-text-group{display:flex;flex-direction:column}.toggle-text-group strong{font-size:13.5px;color:var(--text-primary)}.toggle-subtext{font-size:12px;color:var(--text-muted)}.export-sentence-checklist-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.checklist-header{padding:10px 14px;background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle);font-size:12.5px;font-weight:700;color:var(--text-secondary)}.export-sentence-checklist{max-height:220px;overflow-y:auto}.chk-sentence-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.chk-sentence-item:last-child{border-bottom:none}.chk-sentence-item:hover{background:var(--bg-subtle)}.chk-col-num{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-muted);min-width:26px}.chk-col-text{flex:1;min-width:0}.chk-text-en{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chk-text-vi{font-size:11.5px;color:var(--text-muted)}.chk-col-status{display:flex;align-items:center;gap:6px}.chk-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:700}.chk-status-badge i{width:12px;height:12px}.chk-status-badge.user{background:var(--accent-success-soft);color:var(--accent-success-text)}.chk-status-badge.model{background:var(--accent-info-soft);color:var(--accent-info-text)}.chk-status-badge.skip{background:var(--bg-pill);color:var(--text-muted)}.chk-btn-preview-audio,.chk-btn-delete-sentence{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.chk-btn-preview-audio:hover,.chk-btn-preview-audio.playing{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.chk-btn-delete-sentence:hover{background:var(--accent-danger-soft);color:var(--accent-danger-text);border-color:var(--accent-danger-border)}.chk-btn-preview-audio i,.chk-btn-delete-sentence i{width:13px;height:13px}.stitch-action-controls{display:flex;flex-direction:column;gap:10px}.stitch-action-controls .btn-primary{width:100%;justify-content:center}.stitch-progress-wrap{display:flex;flex-direction:column;gap:6px}.stitch-progress-bar{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.stitch-progress-fill{height:100%;width:0%;background:var(--accent-primary);transition:width .25s ease}.stitch-progress-text{font-size:12px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.spin-anim{animation:spin 1s linear infinite}.export-limit-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--accent-info-soft);border:1px solid var(--accent-info-border)}.limit-banner-icon i{width:18px;height:18px;color:var(--accent-info-text)}.limit-banner-content{font-size:12.5px;color:var(--text-secondary)}.limit-banner-content strong{color:var(--text-primary)}.full-record-mode-selector{display:flex;flex-direction:column;gap:8px}.mode-select-label{font-size:12.5px;font-weight:700;color:var(--text-secondary)}.mode-pills{display:flex;flex-wrap:wrap;gap:8px}.mode-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer}.mode-pill:hover:not(:disabled){background:var(--bg-pill-hover);color:var(--text-primary)}.mode-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.mode-pill i{width:14px;height:14px}.teleprompter-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle);overflow:hidden;display:flex;flex-direction:column}.teleprompter-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.teleprompter-title{font-size:13px;font-weight:700;color:var(--text-primary)}.teleprompter-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.prompter-scroll-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}.prompter-speed-selector{display:inline-flex;gap:4px}.speed-pill{padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer}.speed-pill:hover{background:var(--bg-pill-hover)}.speed-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.teleprompter-nav-tools,.teleprompter-zoom-tools{display:inline-flex;align-items:center;gap:4px}.teleprompter-nav-tools .btn-xs,.zoom-btn{padding:4px 8px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:11.5px;font-weight:600;cursor:pointer}.zoom-btn:hover,.teleprompter-nav-tools .btn-xs:hover{background:var(--bg-pill);color:var(--text-primary)}.teleprompter-scroll-box{max-height:230px;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.teleprompter-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer}.teleprompter-item:hover{border-color:var(--border-strong)}.teleprompter-item.active-prompter{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.teleprompter-item.passed-prompter{opacity:.65}.prompter-idx{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-muted)}.teleprompter-item.active-prompter .prompter-idx{color:var(--accent-primary-text)}.prompter-content{flex:1}.prompter-en{font-size:14.5px;font-weight:600;color:var(--text-primary)}.teleprompter-item.active-prompter .prompter-en{color:var(--accent-primary-text)}.prompter-vi{font-size:12.5px;color:var(--text-muted);margin-top:2px}.teleprompter-item.active-prompter .prompter-vi{color:var(--text-secondary)}.full-record-dock{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}.full-meter-wrap{display:flex;flex-direction:column;gap:5px}.meter-lbl{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary)}.meter-lbl i{width:14px;height:14px}.full-meter-bar{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.full-meter-fill{height:100%;width:0%;background:var(--accent-success)}.full-record-btn-row{display:flex;justify-content:center}.btn-full-record{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:var(--radius-pill);border:1px solid var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse);font-size:13.5px;font-weight:700;cursor:pointer}.btn-full-record:hover{background:var(--accent-primary-hover)}.btn-full-record.is-recording{background:var(--accent-danger);border-color:var(--accent-danger)}.record-indicator-pulse{width:9px;height:9px;border-radius:50%;background:currentColor}.btn-full-record.is-recording .record-indicator-pulse{animation:spin 1.2s ease infinite}.full-timer-dashboard{display:flex;align-items:center;gap:16px}.timer-stat{display:flex;flex-direction:column}.timer-stat .timer-lbl{font-size:11px;color:var(--text-muted)}.timer-stat .timer-val{font-family:var(--font-mono);font-size:16px;font-weight:800;color:var(--text-primary)}.timer-progress-col{flex:1;display:flex;flex-direction:column;gap:4px}.timer-progress-track{width:100%;height:6px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.timer-progress-bar{height:100%;width:0%;background:var(--accent-primary)}.timer-limit-subtext{font-size:11.5px;color:var(--text-muted)}.timer-limit-subtext strong{color:var(--text-primary)}.export-result-card{display:none;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius-md);background:var(--accent-success-soft);border:1px solid var(--accent-success-border)}.export-result-card.visible{display:flex}.result-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.result-card-title{font-size:14px;font-weight:700;color:var(--accent-success-text)}.expiration-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);font-size:11.5px;color:var(--text-secondary)}.expiration-pill .exp-icon{color:var(--accent-warning-text)}.exp-timer-text{font-family:var(--font-mono);font-weight:700}.result-audio-meta{font-size:12.5px;color:var(--text-secondary)}.result-audio-meta strong{color:var(--text-primary)}.result-audio-player-wrap,.result-audio-element{width:100%}.result-actions-row{display:flex;gap:10px;flex-wrap:wrap}.btn-download-audio,.btn-delete-audio{padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent}.btn-download-audio{background:var(--accent-success);color:var(--text-inverse)}.btn-download-audio:hover{background:var(--accent-success-hover)}.btn-delete-audio{background:var(--bg-surface);border-color:var(--accent-danger-border);color:var(--accent-danger-text)}.btn-delete-audio:hover{background:var(--accent-danger-soft)}.shadowing-export-footer{padding:12px 22px;border-top:1px solid var(--border-subtle);background:var(--bg-subtle)}.export-footer-note{font-size:12px;color:var(--text-muted)}@media(max-width:1024px){.shadowing-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}}@media(max-width:768px){.shadowing-layout,.comparison-controls,.export-stats-bar{grid-template-columns:1fr}.shadowing-export-dialog{max-height:94vh}}@media(max-width:480px){.target-en-text{font-size:16.5px}.full-timer-dashboard{flex-direction:column;align-items:stretch}}.shadowing-voice-cmd-btn.active{box-shadow:0 0 0 2px var(--accent-primary-soft, rgba(79, 70, 229, .2))}.voice-cmd-status-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;margin-bottom:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);font-size:12.5px;color:var(--text-secondary)}.voice-cmd-status-bar.is-hidden{display:none}.voice-cmd-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-weight:600;font-size:12px;background:var(--bg-elevated, #fff);border:1px solid var(--border-subtle);color:var(--text-primary)}.voice-cmd-pill.listening{color:var(--accent-success-text, #15803d);border-color:var(--accent-success-border, rgba(34, 197, 94, .35));background:var(--accent-success-soft, rgba(34, 197, 94, .1))}.voice-cmd-pill.paused{color:var(--accent-warning-text, #b45309);border-color:var(--accent-warning-border, rgba(245, 158, 11, .35));background:var(--accent-warning-soft, rgba(245, 158, 11, .1))}.voice-cmd-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.voice-cmd-pill.listening .voice-cmd-dot{animation:voiceCmdPulse 1.4s ease-in-out infinite}@keyframes voiceCmdPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.voice-cmd-hints code{padding:1px 6px;border-radius:4px;background:var(--bg-elevated, #fff);border:1px solid var(--border-subtle);font-size:11.5px;color:var(--text-primary)}.voice-cmd-heard{margin-left:auto;font-size:12px;color:var(--text-muted)}.voice-cmd-right{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.voice-cmd-heard-toggle{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-elevated, #fff);color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.voice-cmd-heard-toggle:hover{color:var(--text-primary);border-color:var(--border-strong, rgba(100, 116, 139, .35))}.voice-cmd-heard-toggle.active{color:var(--accent-primary);border-color:var(--accent-primary-border, rgba(79, 70, 229, .35))}.voice-cmd-heard-toggle svg{width:12px;height:12px}.transcript-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.transcript-panel-card{display:flex;flex-direction:column;gap:14px}.transcript-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.subtitle-mode-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.sub-mode-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.sub-mode-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.sub-mode-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.transcript-scroll-area{max-height:62vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.transcript-row{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.transcript-row:hover{background:var(--bg-pill);border-color:var(--border-strong)}.transcript-row.active-karaoke{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.transcript-row.active-karaoke:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:var(--radius-pill);background:var(--accent-primary)}.transcript-timestamp{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--text-muted);padding-top:4px;min-width:44px;flex-shrink:0}.transcript-row.active-karaoke .transcript-timestamp{color:var(--accent-primary-text)}.transcript-play-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-top:2px;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.transcript-play-btn i,.transcript-play-btn svg{width:14px;height:14px}.transcript-row:hover .transcript-play-btn{border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.transcript-play-btn.playing{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.transcript-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.transcript-speaker{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-primary-text)}.transcript-en-text{font-size:15.5px;font-weight:600;color:var(--text-primary);line-height:1.6}.transcript-row.active-karaoke .transcript-en-text{color:var(--accent-primary-text)}.transcript-vi-text{font-size:13.5px;color:var(--text-secondary);line-height:1.5}.blind-mode .transcript-en-text{filter:blur(5px);user-select:none;transition:filter var(--transition-fast)}.blind-mode .transcript-row:hover .transcript-en-text,.blind-mode .transcript-row.active-karaoke .transcript-en-text{filter:blur(0);user-select:text}.hide-vi .transcript-vi-text,.hide-en .transcript-en-text{display:none}.transcript-row-actions{display:flex;align-items:center;gap:6px;opacity:.65;transition:opacity var(--transition-fast)}.transcript-row:hover .transcript-row-actions,.transcript-row.active-karaoke .transcript-row-actions{opacity:1}.row-action-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.row-action-btn i,.row-action-btn svg{width:14px;height:14px}.row-action-btn:hover{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.transcript-sidebar{display:flex;flex-direction:column;gap:16px}@media(max-width:1024px){.transcript-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}}@media(max-width:768px){.transcript-layout{grid-template-columns:1fr}.transcript-scroll-area{max-height:none}.transcript-row-actions{opacity:1}}@media(max-width:480px){.transcript-row{padding:10px 12px;gap:8px}.transcript-en-text{font-size:14.5px}.subtitle-mode-tabs{flex-wrap:wrap;width:100%}}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.exam-main-panel{display:flex;flex-direction:column;gap:16px}.exam-subtab-switcher{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);align-self:flex-start}.exam-subtab-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.exam-subtab-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.exam-subtab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.exam-audio-deck{padding:18px 20px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);border-top:3px solid var(--accent-primary);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:14px}.audio-deck-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.audio-deck-title{font-size:15px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}.audio-deck-track-info{font-size:12.5px;color:var(--text-muted)}.audio-deck-controls-row{display:flex;align-items:center;gap:14px}.deck-play-btn{width:42px;height:42px;border-radius:50%;border:none;background:var(--accent-primary);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:var(--shadow-xs)}.deck-play-btn:hover{background:var(--accent-primary-hover)}.deck-play-btn i,.deck-play-btn svg{width:18px;height:18px}.deck-scrubber-area{flex:1;display:flex;flex-direction:column;gap:6px}.deck-time-row{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted)}.deck-timeline-container{position:relative;width:100%;display:flex;align-items:center}.deck-scrub-slider{width:100%;height:6px;border-radius:var(--radius-pill);accent-color:var(--accent-primary);cursor:pointer}.deck-q-markers{position:absolute;inset:0;pointer-events:none}.deck-q-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--accent-warning)}.audio-deck-action-buttons{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.deck-sections-group{display:flex;flex-wrap:wrap;gap:6px}.deck-chip-btn,.deck-sec-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.deck-chip-btn:hover,.deck-sec-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.deck-chip-btn.active,.deck-sec-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.deck-chip-btn i,.deck-chip-btn svg{width:14px;height:14px}.exam-header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.exam-timer{font-family:var(--font-mono);font-size:14px;font-weight:700;padding:6px 12px;border-radius:var(--radius-pill);background:var(--accent-warning-soft);color:var(--accent-warning-text);border:1px solid var(--accent-warning-border)}.part1-photo-sheet-card,.reading-passage-card{padding:18px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px}.part1-sheet-header,.reading-passage-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.reading-passage-title{font-size:15px;font-weight:700;color:var(--text-primary)}.part1-image-preview-container{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-subtle);overflow:hidden;cursor:zoom-in;display:flex;justify-content:center}.part1-image-preview-container:hover{border-color:var(--accent-primary-border)}.part1-image-preview-container img{max-width:100%;max-height:360px;object-fit:contain;display:block}.reading-passage-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reading-passage-body{font-size:14.5px;color:var(--text-secondary);line-height:1.7;max-height:520px;overflow-y:auto}.reading-clue-highlight{background:var(--accent-warning-soft);color:var(--text-primary);padding:1px 4px;border-radius:var(--radius-xs)}.reading-clue-highlight.focused-clue{background:var(--accent-primary-soft);border-bottom:2px solid var(--accent-primary)}.question-card{padding:18px 20px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:14px;transition:border-color var(--transition-fast)}.question-card:hover{border-color:var(--border-strong)}.question-card.active-question,.question-card.active-playing{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.question-title-area{display:flex;flex-direction:column;gap:8px}.question-header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.question-num-badge{padding:3px 10px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:12px;font-weight:700}.question-timestamp-pill{padding:3px 9px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-family:var(--font-mono);font-size:11.5px;font-weight:600;cursor:pointer}.question-timestamp-pill:hover{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.playing-now-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--accent-success-soft);color:var(--accent-success-text);font-size:11.5px;font-weight:700}.soundwave-anim{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.soundwave-anim span{width:2px;height:100%;background:currentColor;animation:eqWave .6s ease-in-out infinite alternate}.soundwave-anim span:nth-child(2){animation-delay:.2s}.soundwave-anim span:nth-child(3){animation-delay:.4s}.question-text{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.55}.question-audio-snippet-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;align-self:flex-start}.question-audio-snippet-btn:hover{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.question-audio-snippet-btn i,.question-audio-snippet-btn svg{width:14px;height:14px}.options-list{display:flex;flex-direction:column;gap:8px}.option-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.option-item:hover{background:var(--bg-pill-hover);border-color:var(--border-strong)}.option-item.selected{background:var(--accent-primary-soft);border-color:var(--accent-primary)}.option-key-badge{width:26px;height:26px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-secondary);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-item:hover .option-key-badge,.option-item.selected .option-key-badge{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.option-radio-circle{position:relative;width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0}.option-item.selected .option-radio-circle{border-color:var(--accent-primary)}.option-item.selected .option-radio-circle:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent-primary)}.option-item.correct-opt{background:var(--accent-success-soft);border-color:var(--accent-success)}.option-item.correct-opt .option-key-badge{background:var(--accent-success);border-color:var(--accent-success);color:var(--text-inverse)}.option-item.incorrect-opt{background:var(--accent-danger-soft);border-color:var(--accent-danger)}.option-item.incorrect-opt .option-key-badge{background:var(--accent-danger);border-color:var(--accent-danger);color:var(--text-inverse)}.explanation-box{padding:12px 14px;border-radius:var(--radius-md);background:var(--accent-info-soft);border:1px solid var(--accent-info-border);font-size:13.5px;color:var(--text-secondary);display:flex;flex-direction:column;gap:8px}.explanation-title{font-size:12.5px;font-weight:700;color:var(--accent-info-text)}.explanation-clue-quote,.clue-quote-box{padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-surface);border-left:3px solid var(--accent-info);font-size:13px;color:var(--text-primary)}.replay-clue-btn,.btn-listen-clue{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--accent-info-border);background:var(--bg-surface);color:var(--accent-info-text);font-size:12px;font-weight:600;cursor:pointer;align-self:flex-start}.replay-clue-btn:hover,.btn-listen-clue:hover{background:var(--accent-info);color:var(--text-inverse)}.transcript-review-toggle{font-size:12.5px;font-weight:600;color:var(--accent-primary-text);cursor:pointer}.transcript-review-box{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.transcript-review-line{padding:5px 8px;border-radius:var(--radius-xs);font-size:13px;color:var(--text-secondary);cursor:pointer}.transcript-review-line:hover{background:var(--bg-surface);color:var(--text-primary)}.transcript-review-line.is-clue{background:var(--accent-warning-soft);color:var(--text-primary);font-weight:600}.exam-sidebar-card{display:flex;flex-direction:column;gap:16px}.question-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px}.q-grid-btn{height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer}.q-grid-btn:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.q-grid-btn.answered{background:var(--accent-primary-soft);border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.q-grid-btn.playing{border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.q-grid-btn.correct{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.q-grid-btn.incorrect{background:var(--accent-danger-soft);border-color:var(--accent-danger-border);color:var(--accent-danger-text)}.exam-score-panel{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);text-align:center}.score-display-number{font-size:28px;font-weight:800;color:var(--accent-primary-text)}.exam-mode-toggle,.review-filters-bar{display:flex;flex-wrap:wrap;gap:6px}.exam-mode-btn,.review-filter-btn{padding:6px 11px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.exam-mode-btn:hover,.review-filter-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.exam-mode-btn.active,.review-filter-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.dual-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dual-score-card{padding:14px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.dual-score-card:hover{border-color:var(--border-strong)}.dual-score-card.highlight{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.dual-score-icon{color:var(--text-muted)}.dual-score-card.highlight .dual-score-icon{color:var(--accent-primary-text)}.dual-score-label{font-size:12px;color:var(--text-muted)}.dual-score-val{font-size:22px;font-weight:800;color:var(--text-primary)}.dual-score-band{font-size:11.5px;font-weight:600;color:var(--accent-primary-text)}.vol2-lightbox-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px}.vol2-lightbox-modal{position:relative;max-width:900px;max-height:90vh;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-lg)}.vol2-lightbox-img{max-width:100%;max-height:82vh;display:block;border-radius:var(--radius-sm)}.vol2-lightbox-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer}.vol2-lightbox-close:hover{background:var(--bg-subtle)}@media(max-width:1024px){.exam-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.reading-passage-layout{grid-template-columns:1fr}}@media(max-width:768px){.exam-layout,.dual-score-grid{grid-template-columns:1fr}}@media(max-width:480px){.question-card{padding:14px}.audio-deck-controls-row{gap:10px}}.vocab-layout{display:flex;flex-direction:column;gap:20px}.vocab-main-nav-tabs{display:inline-flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);align-self:flex-start}.vocab-main-tab-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.vocab-main-tab-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.vocab-main-tab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.vocab-tab-count-badge{padding:1px 7px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-muted);font-size:11px;font-weight:700}.vocab-main-tab-btn.active .vocab-tab-count-badge{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.flashcard-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.flashcard-filter-tabs{display:flex;flex-wrap:wrap;gap:6px}.flashcard-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer}.flashcard-tab-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.flashcard-tab-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.flashcard-tab-badge{font-size:11px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-secondary)}.flashcard-tab-btn.active .flashcard-tab-badge{background:var(--bg-surface);color:var(--accent-primary-text)}.flashcard-nav-controls{display:flex;align-items:center;gap:8px}.flashcard-progress-wrap{display:flex;flex-direction:column;gap:6px}.flashcard-progress-meta{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--text-muted)}.flashcard-progress-track{width:100%;height:6px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.flashcard-progress-fill{height:100%;background:var(--accent-primary);border-radius:var(--radius-pill);transition:width .3s ease}.flashcard-stage{perspective:1100px;width:100%;max-width:620px;margin:0 auto}.flashcard-card-3d{position:relative;width:100%;min-height:310px;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.16,1,.3,1);cursor:pointer}.flashcard-card-3d.flipped{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius-xl);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);padding:24px 28px;display:flex;flex-direction:column;justify-content:space-between;gap:14px}.card-front:hover{border-color:var(--border-strong)}.card-back{transform:rotateY(180deg);background:var(--bg-surface);border-top:3px solid var(--accent-primary);overflow-y:auto}.card-header-badge-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.card-front-type,.card-colloc-tag{padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border)}.card-parent-breadcrumb{font-size:12px;color:var(--text-muted)}.card-front-word{font-size:32px;font-weight:800;color:var(--text-primary);text-align:center;letter-spacing:-.02em}.card-front-ipa{font-family:var(--font-mono);font-size:15px;color:var(--accent-info-text);text-align:center}.card-audio-action-row{display:flex;justify-content:center;gap:10px}.card-flip-prompt{font-size:12px;color:var(--text-muted);text-align:center}.card-back-meaning{font-size:20px;font-weight:700;color:var(--text-primary)}.card-back-example{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border-left:3px solid var(--accent-primary);font-size:13.5px;color:var(--text-secondary);line-height:1.55}.card-collocations-panel{border-top:1px solid var(--border-subtle);padding-top:10px;display:flex;flex-direction:column;gap:8px}.card-collocations-header{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.card-collocations-list{display:flex;flex-direction:column;gap:6px}.colloc-mini-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-subtle)}.colloc-mini-row:hover{background:var(--bg-pill-hover)}.colloc-mini-text{display:flex;flex-direction:column}.colloc-mini-phrase{font-size:13px;font-weight:600;color:var(--text-primary)}.colloc-mini-vi{font-size:12px;color:var(--text-muted)}.colloc-mini-speak-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--accent-primary-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.colloc-mini-speak-btn:hover{background:var(--accent-primary-soft)}.srs-controls-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:620px;width:100%;margin:0 auto}.srs-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.srs-btn-again{color:var(--accent-danger-text);border-color:var(--accent-danger-border)}.srs-btn-again:hover{background:var(--accent-danger-soft)}.srs-btn-hard{color:var(--accent-warning-text);border-color:var(--accent-warning-border)}.srs-btn-hard:hover{background:var(--accent-warning-soft)}.srs-btn-good{color:var(--accent-info-text);border-color:var(--accent-info-border)}.srs-btn-good:hover{background:var(--accent-info-soft)}.srs-btn-easy{color:var(--accent-success-text);border-color:var(--accent-success-border)}.srs-btn-easy:hover{background:var(--accent-success-soft)}.srs-lbl{font-size:13px;font-weight:700}.srs-sub{font-size:11px;color:var(--text-muted)}.flashcard-key-hints{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.key-hint-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-muted)}.key-hint-kbd{font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-primary)}.word-bank-card{display:flex;flex-direction:column;gap:16px}.word-bank-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.search-input,.wordbook-search-input{height:36px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13.5px;min-width:220px}.search-input:focus,.wordbook-search-input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.word-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.word-item-card{padding:16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.word-item-card:hover{border-color:var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-xs)}.word-header-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.word-term{font-size:16px;font-weight:700;color:var(--text-primary)}.word-ipa-tag{font-family:var(--font-mono);font-size:12px;color:var(--accent-info-text)}.word-meaning-text{font-size:13.5px;font-weight:600;color:var(--text-secondary)}.word-example-text{font-size:12.5px;color:var(--text-muted);line-height:1.5}.word-collocations-tray{padding-top:8px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.word-colloc-title{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.word-colloc-chips{display:flex;flex-wrap:wrap;gap:5px}.word-colloc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);font-size:11.5px;color:var(--text-secondary)}.word-colloc-chip button{border:none;background:transparent;color:var(--accent-primary-text);cursor:pointer;display:inline-flex}.word-colloc-chip button:hover{color:var(--accent-primary-hover)}.word-study-btn{margin-top:auto;align-self:flex-start;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--accent-primary-border);background:var(--accent-primary-soft);color:var(--accent-primary-text);font-size:12px;font-weight:600;cursor:pointer}.word-study-btn:hover{background:var(--accent-primary);color:var(--text-inverse)}.word-lookup-popover{position:absolute;width:320px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 16px;z-index:var(--z-drawer);display:none;flex-direction:column;gap:10px}.word-lookup-popover.visible{display:flex;animation:fadeSlideDown .16s ease-out}.popover-loading{display:flex;align-items:center;gap:10px;padding:12px 0}.popover-spinner{width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .7s linear infinite}.popover-loading-text{font-size:13px;color:var(--text-muted)}.word-lookup-popover .popover-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.popover-term-area{display:flex;flex-direction:column;gap:2px}.popover-word{font-size:17px;font-weight:800;color:var(--text-primary)}.popover-ipa{font-family:var(--font-mono);font-size:12px;color:var(--accent-info-text)}.popover-badge-type{display:inline-block;align-self:flex-start;padding:1px 6px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);font-size:10.5px;font-weight:700;margin-top:2px}.popover-top-actions{display:flex;align-items:center;gap:4px}.popover-icon-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.popover-icon-btn:hover,.popover-close-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.popover-body{display:flex;flex-direction:column;gap:8px}.popover-meaning-text{font-size:14px;font-weight:600;color:var(--text-primary)}.popover-example-box{padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.popover-example-en{font-size:12.5px;color:var(--text-primary)}.popover-example-vi{font-size:12px;color:var(--text-muted);margin-top:2px}.popover-hl{background:var(--accent-warning-soft);color:var(--accent-warning-text);font-weight:700;padding:0 3px;border-radius:3px}.word-lookup-popover .popover-footer{display:flex;align-items:center;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-subtle)}.btn-saved-active{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.btn-saved-active:hover{background:var(--accent-success-soft)}.wordbook-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wordbook-stat-card{padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);display:flex;align-items:center;gap:12px}.wordbook-stat-icon{width:38px;height:38px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.wordbook-stat-icon.total{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.wordbook-stat-icon.due{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.wordbook-stat-icon.mastered{background:var(--accent-success-soft);color:var(--accent-success-text)}.wordbook-stat-icon.learning{background:var(--accent-info-soft);color:var(--accent-info-text)}.wordbook-stat-info{display:flex;flex-direction:column}.wordbook-stat-val{font-size:20px;font-weight:800;color:var(--text-primary)}.wordbook-stat-lbl{font-size:12px;color:var(--text-muted)}.wordbook-controls-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.wordbook-left-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.user-word-card{padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.user-word-card:hover{border-color:var(--border-strong)}.user-word-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.user-word-term-group{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.user-word-term{font-size:16px;font-weight:700;color:var(--text-primary)}.user-word-meta{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.user-word-source-tag{font-size:11px;font-weight:600;padding:2px 7px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-secondary)}.user-word-meaning{font-size:13.5px;color:var(--text-secondary)}.user-word-example{font-size:12.5px;color:var(--text-muted)}.user-word-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.user-word-btn-group{display:flex;gap:6px}.user-word-btn-delete{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.user-word-btn-delete:hover{background:var(--accent-danger-soft);border-color:var(--accent-danger-border);color:var(--accent-danger-text)}.vocab-form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.vocab-form-label{font-size:12.5px;font-weight:700;color:var(--text-secondary)}.vocab-form-input,.vocab-form-select,.vocab-form-textarea{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13.5px}.vocab-form-input:focus,.vocab-form-select:focus,.vocab-form-textarea:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.vocab-auto-lookup-hint{font-size:12px;color:var(--accent-info-text)}.anki-logo-badge{padding:2px 8px;border-radius:var(--radius-xs);background:var(--accent-info-soft);color:var(--accent-info-text);font-size:11px;font-weight:700}.anki-info-banner{padding:10px 14px;border-radius:var(--radius-md);background:var(--accent-info-soft);border:1px solid var(--accent-info-border);font-size:13px;color:var(--text-secondary);margin-bottom:14px}.anki-filter-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.anki-filter-pill{padding:5px 11px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.anki-filter-pill input{display:none}.anki-filter-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.anki-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.anki-option-card{padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:10px}.anki-option-card:hover{border-color:var(--accent-primary-border)}.anki-opt-top{display:flex;align-items:center;gap:10px}.anki-opt-icon{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center}.anki-opt-icon.print-icon{background:var(--accent-success-soft);color:var(--accent-success-text)}.anki-opt-title{font-size:14px;font-weight:700;color:var(--text-primary)}.anki-opt-desc{font-size:12.5px;color:var(--text-secondary)}.anki-opt-desc code{font-family:var(--font-mono);background:var(--bg-surface);padding:1px 5px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle)}.anki-action-btn{width:100%;justify-content:center}.anki-import-guide{font-size:12.5px;color:var(--text-secondary)}.anki-import-guide summary{cursor:pointer;font-weight:600;color:var(--accent-primary-text)}.anki-guide-content{padding-top:8px}.anki-guide-content ol{padding-left:18px}.anki-guide-content li{margin-bottom:4px}@media(max-width:1024px){.wordbook-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.srs-controls-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.anki-options-grid{grid-template-columns:1fr}.card-front-word{font-size:26px}}@media(max-width:480px){.wordbook-stats-grid{grid-template-columns:1fr}.word-lookup-popover{position:fixed;left:0;right:0;bottom:0;width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg)}}.analytics-layout{display:flex;flex-direction:column;gap:20px}.metrics-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{padding:18px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:8px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.metric-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.metric-icon-box{width:38px;height:38px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center}.metric-val{font-size:26px;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.metric-lbl{font-size:12.5px;font-weight:600;color:var(--text-muted)}.units-progress-table{width:100%;border-collapse:collapse}.units-progress-table th,.units-progress-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border-subtle);font-size:13.5px}.units-progress-table th{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle)}.progress-bar-bg{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent-primary);border-radius:var(--radius-pill);transition:width .35s ease}.study-sheet-container{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px}.study-sheet-header{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px}@media print{.study-sheet-container,.study-sheet-container *{color:#0f172a;background:#fff}.study-sheet-container{border:none;padding:0}}@media(max-width:1024px){.metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.units-progress-table{display:block;overflow-x:auto}}@media(max-width:480px){.metrics-row{grid-template-columns:1fr}}.media-source-tabs{display:inline-flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);margin-bottom:14px}.source-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.source-tab-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.source-tab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.source-panel-content{display:flex;flex-direction:column;gap:14px}.dropzone-area{padding:28px 20px;border-radius:var(--radius-lg);border:2px dashed var(--border-strong);background:var(--bg-subtle);text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone-area:hover,.dropzone-area.dragover{border-color:var(--accent-primary);background:var(--accent-primary-soft)}.dropzone-icon{width:44px;height:44px;border-radius:50%;background:var(--bg-surface);color:var(--accent-primary-text);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center}.youtube-input-group{display:flex;flex-direction:column;gap:8px}.youtube-input-row{display:flex;gap:10px;align-items:center}.youtube-url-field{flex:1;height:40px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13.5px}.youtube-url-field:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.preset-card{padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);cursor:pointer;display:flex;flex-direction:column;gap:6px;text-align:left;transition:border-color var(--transition-fast),background var(--transition-fast)}.preset-card:hover{border-color:var(--accent-primary);background:var(--accent-primary-soft)}.preset-title{font-size:13.5px;font-weight:700;color:var(--text-primary)}.preset-meta{font-size:12px;color:var(--text-muted)}.media-screen-overlay{display:none;width:100%;max-width:980px;margin-bottom:20px}.media-screen-overlay.visible{display:block}.media-screen-card{border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);overflow:hidden}.media-screen-header{padding:10px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px}.media-screen-title-group{display:flex;align-items:center;gap:10px;min-width:0}.video-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:11px;font-weight:700;flex-shrink:0}.video-badge i,.video-badge svg{width:13px;height:13px}.media-screen-title{font-size:13.5px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-screen-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}.screen-btn-pill{height:28px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-pill);color:var(--text-secondary);font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px;cursor:pointer}.screen-btn-pill:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.screen-btn-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.screen-btn-pill i,.screen-btn-pill svg{width:14px;height:14px}.media-screen-viewport{position:relative;width:100%;aspect-ratio:16 / 9;max-height:440px;background:var(--bg-media-stage)}.media-screen-viewport #youtube-player-container,.media-screen-viewport #custom-video-player,.media-screen-viewport iframe{width:100%;height:100%;display:block;border:none}.media-screen-overlay.pip-mode{position:fixed;right:20px;bottom:100px;width:340px;max-width:calc(100vw - 32px);margin-bottom:0;z-index:calc(var(--z-player) + 20)}.media-screen-overlay.pip-mode .media-screen-card{box-shadow:var(--shadow-lg)}.media-screen-overlay.pip-mode .media-screen-viewport{max-height:200px}.media-screen-overlay.collapsed .media-screen-viewport{display:none}@media(max-width:1024px){.media-screen-viewport{max-height:360px}}@media(max-width:768px){.youtube-input-row{flex-direction:column;align-items:stretch}.media-screen-overlay.pip-mode{right:12px;bottom:140px;width:280px}}@media(max-width:480px){.preset-grid{grid-template-columns:1fr}.media-screen-header{padding:8px 12px}}.admin-studio-overlay{position:fixed;inset:0;background:var(--bg-canvas);color:var(--text-primary);z-index:var(--z-studio);display:none;flex-direction:column}.admin-studio-overlay.active{display:flex}.admin-auth-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px}.admin-workspace-container{display:flex;flex:1;width:100%;height:100%;overflow:hidden;background:var(--bg-canvas)}.admin-sidebar{width:268px;background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width var(--transition-smooth)}.admin-sidebar.collapsed{width:68px}.admin-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.admin-sidebar.collapsed .admin-sidebar-header{justify-content:center;padding:14px 8px}.admin-brand-tag{display:flex;align-items:center;gap:10px;min-width:0}.admin-sidebar.collapsed .admin-brand-tag{display:none}.admin-brand-logo{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-brand-logo i,.admin-brand-logo svg{width:18px;height:18px}.admin-brand-text{display:flex;flex-direction:column;min-width:0}.admin-brand-name{font-size:13.5px;font-weight:800;color:var(--text-primary)}.admin-badge-pill{font-size:10px;font-weight:700;color:var(--accent-primary-text);text-transform:uppercase;letter-spacing:.04em}.admin-sidebar-collapse-btn{width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.admin-sidebar-collapse-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.admin-sidebar-collapse-btn i,.admin-sidebar-collapse-btn svg{width:15px;height:15px}.admin-sidebar-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column}.admin-sidebar-scroll::-webkit-scrollbar,.admin-nav-list::-webkit-scrollbar{width:5px}.admin-sidebar-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}.admin-nav-list{padding:10px 10px 6px;display:flex;flex-direction:column;gap:2px}.admin-nav-group-label{padding:10px 10px 4px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.admin-nav-group-label:first-child{padding-top:2px}.admin-sidebar.collapsed .admin-nav-group-label,.admin-sidebar.collapsed .nav-item-text,.admin-sidebar.collapsed .admin-nav-count-badge,.admin-sidebar.collapsed .section-title-text,.admin-sidebar.collapsed .admin-sidebar-section-header .section-actions,.admin-sidebar.collapsed .sidebar-folder-search-wrap,.admin-sidebar.collapsed .folder-tree-title,.admin-sidebar.collapsed .folder-count-pill,.admin-sidebar.collapsed .folder-lock-indicator,.admin-sidebar.collapsed .folder-tree-item-badges,.admin-sidebar.collapsed .admin-footer-util-btn span,.admin-sidebar.collapsed .admin-exit-btn span{display:none}.admin-nav-item{position:relative;width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.admin-sidebar.collapsed .admin-nav-item,.admin-sidebar.collapsed .folder-tree-item,.admin-sidebar.collapsed .folder-tree-item-left,.admin-sidebar.collapsed .admin-exit-btn,.admin-sidebar.collapsed .admin-footer-quick-row{justify-content:center}.admin-nav-item i,.admin-nav-item svg{width:16px;height:16px;flex-shrink:0}.admin-nav-item .nav-item-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-nav-count-badge{font-size:11px;font-weight:700;padding:1px 7px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-muted)}.admin-nav-item:hover{background:var(--bg-subtle);color:var(--text-primary)}.admin-nav-item.active{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.admin-nav-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:var(--radius-pill);background:var(--accent-primary)}.admin-nav-item.active i,.admin-nav-item.active svg{color:var(--accent-primary-text)}.admin-sidebar-section{padding:10px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.admin-sidebar.collapsed .admin-sidebar-section{padding:8px 6px}.admin-sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.admin-sidebar.collapsed .admin-sidebar-section-header{justify-content:center}.admin-sidebar-section-header .section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:flex;align-items:center;gap:6px}.admin-sidebar-section-header .section-actions{display:flex;gap:4px}.sidebar-folder-search-wrap{position:relative;display:flex;align-items:center}.sidebar-folder-search-icon{position:absolute;left:9px;width:14px;height:14px;color:var(--text-muted)}.sidebar-folder-search-input{width:100%;height:32px;padding:0 10px 0 28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-primary);font-size:12.5px}.sidebar-folder-search-input::placeholder{color:var(--text-muted)}.sidebar-folder-search-input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.admin-folder-tree-list{display:flex;flex-direction:column;gap:3px}.folder-tree-empty{padding:12px 8px;font-size:12px;color:var(--text-muted);text-align:center}.folder-tree-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 9px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:12.5px;cursor:pointer}.folder-tree-item:hover{background:var(--bg-subtle);color:var(--text-primary)}.folder-tree-item.active{background:var(--accent-primary-soft);border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.folder-tree-item-left{display:flex;align-items:center;gap:7px;min-width:0;flex:1}.folder-tree-item-left i,.folder-tree-item-left svg{width:15px;height:15px;flex-shrink:0}.folder-tree-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-tree-item.active .folder-tree-title{font-weight:700;color:var(--accent-primary-text)}.folder-tree-item-badges{display:flex;align-items:center;gap:4px;flex-shrink:0}.folder-status-dot{width:7px;height:7px;border-radius:50%}.folder-status-dot.published{background:var(--accent-success)}.folder-status-dot.draft{background:var(--accent-warning)}.folder-lock-indicator{color:var(--accent-warning-text);display:inline-flex}.folder-count-pill{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:var(--radius-pill);background:var(--bg-pill);color:var(--text-muted)}.folder-del-action-btn,.folder-assign-btn{opacity:0;width:22px;height:22px;border-radius:var(--radius-xs);border:1px solid transparent;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.folder-tree-item:hover .folder-del-action-btn,.folder-tree-item:hover .folder-assign-btn{opacity:1}.folder-del-action-btn:hover{background:var(--accent-danger-soft);color:var(--accent-danger-text)}.folder-assign-btn:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}.admin-sidebar-footer{padding:10px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;background:var(--bg-surface);flex-shrink:0}.admin-sidebar.collapsed .admin-sidebar-footer{padding:8px 6px}.admin-footer-quick-row{display:flex;gap:6px}.admin-footer-util-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.admin-footer-util-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.admin-footer-util-btn i,.admin-footer-util-btn svg,.admin-exit-btn i,.admin-exit-btn svg{width:15px;height:15px}.admin-exit-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--accent-danger-border);background:var(--accent-danger-soft);color:var(--accent-danger-text);font-size:13px;font-weight:700;cursor:pointer}.admin-exit-btn:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:var(--text-inverse)}.admin-main-area{flex:1;overflow-y:auto;padding:24px 28px;display:flex;flex-direction:column;gap:20px;background:var(--bg-canvas)}.admin-main-area::-webkit-scrollbar{width:6px}.admin-main-area::-webkit-scrollbar-track{background:transparent}.admin-main-area::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}.admin-main-area::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.admin-breadcrumb-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--text-muted)}.admin-breadcrumb-bar span.active{color:var(--text-primary);font-weight:700}.admin-top-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.admin-page-title,.admin-title-area h2{font-size:21px;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.admin-page-subtitle,.admin-title-area p{font-size:13px;color:var(--text-muted);margin-top:2px}.admin-action-group,.admin-actions-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.folder-active-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle)}.folder-active-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.folder-active-actions{display:flex;align-items:center;gap:8px}.admin-stats-grid,.analytics-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.admin-stat-card{position:relative;padding:16px 18px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:8px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.admin-stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.admin-stat-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-stat-label{font-size:12.5px;font-weight:600;color:var(--text-muted)}.admin-stat-icon-wrapper,.admin-stat-icon{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center}.admin-stat-icon-wrapper i,.admin-stat-icon-wrapper svg{width:17px;height:17px}.admin-stat-value,.admin-stat-number{font-size:24px;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.admin-stat-sub{font-size:12px;color:var(--text-muted)}.folder-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.folder-card{padding:16px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:12px}.folder-card:hover{border-color:var(--accent-primary-border);box-shadow:var(--shadow-sm)}.folder-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.folder-card-title-group{display:flex;align-items:center;gap:10px;min-width:0}.folder-card-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-primary-soft);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.folder-card-name{font-size:14.5px;font-weight:700;color:var(--text-primary)}.folder-card-desc{font-size:12.5px;color:var(--text-muted)}.folder-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.folder-stat-mini{padding:8px;border-radius:var(--radius-sm);background:var(--bg-subtle);text-align:center}.folder-stat-mini-num{font-size:15px;font-weight:800;color:var(--text-primary)}.folder-stat-mini-label{font-size:11px;color:var(--text-muted)}.folder-card-progress{display:flex;flex-direction:column;gap:5px}.folder-progress-label{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-muted)}.folder-progress-bar{width:100%;height:6px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.folder-progress-fill{height:100%;background:var(--accent-primary)}.folder-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.folder-status-pill,.status-badge,.folder-access-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700}.folder-status-pill.published,.status-badge.success,.folder-access-pill.public{background:var(--accent-success-soft);color:var(--accent-success-text);border:1px solid var(--accent-success-border)}.folder-status-pill.draft,.status-badge.warning,.folder-access-pill.restricted{background:var(--accent-warning-soft);color:var(--accent-warning-text);border:1px solid var(--accent-warning-border)}.status-badge.info{background:var(--accent-info-soft);color:var(--accent-info-text);border:1px solid var(--accent-info-border)}.folder-access-pill{cursor:pointer}.folder-access-pill:hover{filter:brightness(.97)}.status-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);font-size:12px;font-weight:700;cursor:pointer}.status-toggle-btn.published{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.status-toggle-btn.draft{background:var(--accent-warning-soft);border-color:var(--accent-warning-border);color:var(--accent-warning-text)}.status-toggle-btn .toggle-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.admin-table-card,.admin-table-container{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.admin-table-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.admin-table-title{font-size:14.5px;font-weight:700;color:var(--text-primary)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper .search-icon{position:absolute;left:10px;width:15px;height:15px;color:var(--text-muted);pointer-events:none}.admin-search-input{height:36px;min-width:220px;padding:0 12px 0 32px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input-focus);color:var(--text-primary);font-size:13px}.admin-search-input:focus{border-color:var(--border-focus)}.admin-table,.admin-data-table{width:100%;border-collapse:collapse}.admin-table th,.admin-data-table th{padding:11px 14px;text-align:left;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle)}.admin-table td,.admin-data-table td{padding:11px 14px;font-size:13.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.admin-table tr:hover td,.admin-data-table tr:hover td{background:var(--bg-subtle)}.admin-table tr:last-child td,.admin-data-table tr:last-child td{border-bottom:none}.action-btn-group{display:inline-flex;align-items:center;gap:6px}.admin-icon-btn,.action-icon-btn{width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.admin-icon-btn:hover,.action-icon-btn:hover{background:var(--bg-pill);color:var(--text-primary);border-color:var(--border-strong)}.admin-icon-btn.danger:hover,.action-icon-btn.delete:hover{background:var(--accent-danger-soft);color:var(--accent-danger-text);border-color:var(--accent-danger-border)}.action-icon-btn i,.action-icon-btn svg{width:14px;height:14px}.filter-chip{padding:5px 11px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.filter-chip:hover{background:var(--bg-pill);color:var(--text-primary)}.filter-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer}.admin-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.admin-btn.primary:hover{background:var(--accent-primary-hover)}.admin-btn.secondary{background:var(--bg-subtle)}.admin-btn.secondary:hover{background:var(--bg-pill-hover)}.admin-btn.small{padding:5px 10px;font-size:12px}.admin-modal-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:20px}.admin-modal-overlay.active{display:flex}.admin-modal-box,.admin-modal-card{width:100%;max-width:660px;max-height:90vh;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.admin-modal-title,.admin-modal-header h3{font-size:16px;font-weight:700;color:var(--text-primary)}.admin-modal-close{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.admin-modal-close:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.admin-modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.admin-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-subtle);background:var(--bg-subtle)}.form-group,.admin-form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.form-row,.admin-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-label,.admin-form-label,.admin-label{font-size:12.5px;font-weight:700;color:var(--text-secondary)}.form-input,.form-select,.admin-form-input,.admin-form-select,.admin-form-textarea,.admin-input,.admin-select{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13.5px}.admin-form-textarea{min-height:86px;resize:vertical;line-height:1.5}.form-input:focus,.form-select:focus,.admin-form-input:focus,.admin-form-select:focus,.admin-form-textarea:focus,.admin-input:focus,.admin-select:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.subtitle-studio-layout{display:flex;flex-direction:column;gap:16px}.subtitle-waveform-card{padding:16px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}.subtitle-player-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.slicer-transcribe-banner,.live-transcribe-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:var(--accent-info-soft);border:1px solid var(--accent-info-border);color:var(--accent-info-text);font-size:13px;font-weight:600}.sentence-editor-table{width:100%;border-collapse:collapse}.sentence-editor-table th{padding:10px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle)}.sentence-editor-table td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);vertical-align:top}.sentence-editor-table td:nth-child(7),.sentence-editor-table td:nth-child(8){white-space:nowrap}.sentence-editor-table input,.sentence-editor-table textarea{padding:6px 8px;border-radius:var(--radius-xs);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13px}.sentence-editor-table input:focus,.sentence-editor-table textarea:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.sentence-editor-table .sent-start-input,.sentence-editor-table .sent-end-input{width:74px;text-align:center;font-family:var(--font-mono);font-size:12.5px}.sentence-editor-table .sent-speaker-input{width:96px;font-size:12.5px}.sentence-editor-table .sent-start-input::-webkit-inner-spin-button,.sentence-editor-table .sent-end-input::-webkit-inner-spin-button{display:none}.sent-en-wrap{display:flex;align-items:flex-start;gap:6px}.sent-en-input,.sent-vi-input{width:100%;min-width:180px}.sent-en-input.expanded{min-height:72px}.expand-text-btn,.expand-modal-btn{width:26px;height:26px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.expand-text-btn:hover,.expand-modal-btn:hover,.expand-text-btn.active{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.sent-actions-col{display:flex;align-items:center;gap:4px}.action-icon-btn.insert-row-btn{color:var(--accent-success-text)}.action-icon-btn.insert-row-btn:hover{background:var(--accent-success-soft);border-color:var(--accent-success-border)}.action-icon-btn.translate-single-sent-btn:hover,.row-transcribe-btn:hover{background:var(--accent-info-soft);color:var(--accent-info-text);border-color:var(--accent-info-border)}.row-transcribe-btn,.inline-audio-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.inline-audio-btn:hover,.inline-audio-btn.playing{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.admin-btn.translate-all-btn{background:var(--accent-info-soft);border-color:var(--accent-info-border);color:var(--accent-info-text)}.admin-btn.translate-all-btn:hover{background:var(--accent-info);color:var(--text-inverse)}.row-translated-highlight{background:var(--accent-success-soft)}.playing-wave,.playing-spectrum-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.playing-wave span,.playing-spectrum-bars span{width:2px;background:currentColor;animation:eqWave .65s ease-in-out infinite alternate}.playing-wave span:nth-child(1){height:6px;animation-delay:.1s}.playing-wave span:nth-child(2){height:12px;animation-delay:.25s}.playing-wave span:nth-child(3){height:8px;animation-delay:.4s}.playing-spectrum-bars span:nth-child(2){animation-delay:.15s}.playing-spectrum-bars span:nth-child(3){animation-delay:.3s}.playing-spectrum-bars span:nth-child(4){animation-delay:.45s}.spin{animation:spin 1s linear infinite}.sent-practice-toggle-wrap{display:inline-flex;align-items:center;gap:6px}.sent-toggle-switch{position:relative;display:inline-block;width:36px;height:20px}.sent-toggle-switch input{opacity:0;width:0;height:0}.sent-toggle-slider{position:absolute;inset:0;border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;transition:background var(--transition-fast)}.sent-toggle-slider:before{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--bg-surface);box-shadow:var(--shadow-xs);transition:transform var(--transition-fast)}.sent-toggle-switch input:checked+.sent-toggle-slider{background:var(--accent-success)}.sent-toggle-switch input:checked+.sent-toggle-slider:before{transform:translate(16px)}.badge-practice-tag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-xs);font-size:10px;font-weight:700;text-transform:uppercase;user-select:none}.badge-practice-tag.active{background:var(--accent-success-soft);color:var(--accent-success-text);border:1px solid var(--accent-success-border)}.badge-practice-tag.excluded{background:var(--accent-danger-soft);color:var(--accent-danger-text);border:1px solid var(--accent-danger-border)}.sentence-editor-table tr.row-practice-excluded{opacity:.65;background:var(--accent-danger-soft)}.sentence-editor-table tr.row-practice-excluded:hover{opacity:.95;background:var(--accent-danger-soft)}.sentence-editor-table tr.row-practice-excluded .sent-en-input,.sentence-editor-table tr.row-practice-excluded .sent-vi-input{border-color:var(--accent-danger-border);color:var(--text-muted)}.analytics-chart-card{padding:18px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:12px}.analytics-chart-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.analytics-chart-title{font-size:14.5px;font-weight:700;color:var(--text-primary)}.analytics-badge-live{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-success-soft);color:var(--accent-success-text);font-size:11px;font-weight:700}.analytics-pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-success)}.analytics-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.device-bar-row{display:flex;align-items:center;gap:10px;font-size:12.5px}.device-bar-track{flex:1;height:7px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.device-bar-fill{height:100%;background:var(--accent-primary)}.grammar-example-item{padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.grammar-example-item:hover{border-color:var(--border-strong)}.grammar-example-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.question-audio-row{display:flex;align-items:center;gap:8px}.question-audio-row input{flex:1}.exam-preview-container{display:flex;flex-direction:column;gap:12px}.preview-question-card{padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.preview-option-btn{width:100%;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);text-align:left;cursor:pointer}.preview-option-btn:hover{background:var(--bg-pill)}.preview-option-btn.correct{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.preview-option-btn.wrong{background:var(--accent-danger-soft);border-color:var(--accent-danger-border);color:var(--accent-danger-text)}.assignment-modal-search{width:100%;height:36px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary)}.assignment-modal-search:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.assignment-modal-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.assignment-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);cursor:pointer}.assignment-item:hover{background:var(--bg-pill)}.assignment-item.selected{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.assignment-item-left{display:flex;align-items:center;gap:10px}.assignment-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}@media(max-width:1024px){.admin-sidebar{width:230px}.admin-main-area{padding:18px 20px}.analytics-two-col{grid-template-columns:1fr}}@media(max-width:768px){.admin-workspace-container{flex-direction:column}.admin-sidebar{width:100%;height:auto;max-height:220px;border-right:none;border-bottom:1px solid var(--border-subtle)}.admin-main-area{padding:14px}.form-row,.admin-form-row{grid-template-columns:1fr}.admin-table,.admin-data-table,.sentence-editor-table{display:block;overflow-x:auto}}@media(max-width:480px){.admin-stats-grid,.analytics-stats-grid,.folder-card-grid{grid-template-columns:1fr}.admin-search-input{min-width:0;width:100%}}.audio-source-header-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer}.audio-source-header-btn:hover{background:var(--bg-pill);color:var(--text-primary)}.audio-source-header-btn i{width:15px;height:15px}.audio-source-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--accent-warning);color:var(--text-inverse);font-size:10.5px;font-weight:800}.audio-source-dialog{max-width:920px;width:95%}.audio-source-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.audio-source-title-group{display:flex;align-items:center;gap:12px}.audio-source-icon-wrap{width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);display:flex;align-items:center;justify-content:center}.audio-source-icon-wrap i{width:20px;height:20px}.audio-source-title-group h3{font-size:16px;font-weight:700;color:var(--text-primary)}.audio-source-title-group p{font-size:12.5px;color:var(--text-muted)}.audio-source-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);margin-bottom:14px}.audio-source-stats{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.stat-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);font-size:12px;font-weight:600;color:var(--text-secondary)}.stat-chip.live-watcher{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.stat-chip.live-watcher .pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-success)}.stat-chip.pending-chip{background:var(--accent-warning-soft);border-color:var(--accent-warning-border);color:var(--accent-warning-text)}.audio-source-actions,.audio-source-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.filter-btn-group{display:inline-flex;gap:4px;padding:3px;border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.filter-btn{padding:5px 11px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.filter-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);box-shadow:var(--shadow-xs)}.search-input-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:200px}.search-input-wrap i{position:absolute;left:10px;width:15px;height:15px;color:var(--text-muted)}.search-input-wrap input{width:100%;height:36px;padding:0 12px 0 32px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13px}.search-input-wrap input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.audio-source-body{overflow-x:auto;max-height:55vh;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.audio-source-table{width:100%;border-collapse:collapse}.audio-source-table th{position:sticky;top:0;z-index:1;padding:10px 12px;text-align:left;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-subtle);color:var(--text-muted);border-bottom:1px solid var(--border-subtle)}.audio-source-table tr.source-row td{padding:10px 12px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.audio-source-table tr.source-row:hover{background:var(--bg-subtle)}.audio-source-table tr.source-row td:first-child{font-weight:600;color:var(--text-primary)}.audio-source-table tr.source-row td:last-child{white-space:nowrap}.course-tag{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-info-soft);color:var(--accent-info-text);font-size:11px;font-weight:600}.status-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700}.status-tag.transcribed{background:var(--accent-success-soft);color:var(--accent-success-text)}.status-tag.pending{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.transcribe-progress-card{margin-top:12px;padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.transcribe-progress-bar-wrap{width:100%;height:8px;border-radius:var(--radius-pill);background:var(--bg-track);overflow:hidden}.transcribe-progress-bar-fill{height:100%;background:var(--accent-primary);transition:width .25s ease}.transcribe-live-box{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.transcribe-live-item{padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle)}.transcribe-live-en{font-size:13px;font-weight:600;color:var(--text-primary)}.transcribe-live-vi{font-size:12px;color:var(--text-muted)}.untranscribed-lesson-banner{width:100%;max-width:980px;margin-bottom:16px;padding:12px 16px;border-radius:var(--radius-md);background:var(--accent-warning-soft);border:1px solid var(--accent-warning-border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.untranscribed-lesson-banner .banner-text{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--accent-warning-text)}.untranscribed-lesson-banner .banner-text i{width:18px;height:18px;flex-shrink:0}@media(max-width:1024px){.audio-source-dialog{width:96%}}@media(max-width:768px){.audio-source-toolbar,.audio-source-filters{flex-direction:column;align-items:stretch}.search-input-wrap{min-width:0}}@media(max-width:480px){.audio-source-header{flex-direction:column;align-items:flex-start}.untranscribed-lesson-banner{padding:10px 12px}}.auth-modal-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px}.auth-modal-card{width:100%;max-width:430px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.auth-card-header{position:relative;padding:24px 24px 16px;border-bottom:1px solid var(--border-subtle);text-align:center}.auth-close-btn{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.auth-close-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.auth-brand-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:11.5px;font-weight:700;margin-bottom:10px}.auth-title{font-size:20px;font-weight:800;color:var(--text-primary)}.auth-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px}.auth-tabs-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;margin:16px 24px 0;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.auth-tab-btn{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.auth-tab-btn:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.auth-tab-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.auth-card-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px}.auth-social-group{display:flex;flex-direction:column;gap:8px}.google-auth-btn{width:100%;height:40px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:13.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer}.google-auth-btn:hover{background:var(--bg-subtle)}.google-auth-btn svg{width:18px;height:18px}.auth-divider{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-input-group{display:flex;flex-direction:column;gap:5px}.auth-input-label{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--text-secondary)}.auth-input-label a{color:var(--accent-primary-text);text-decoration:none}.auth-input-label a:hover{text-decoration:underline}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:11px;width:16px;height:16px;color:var(--text-muted);pointer-events:none}.auth-input{width:100%;height:40px;padding:0 12px 0 36px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:13.5px}.auth-input:focus{background:var(--bg-input-focus);border-color:var(--border-focus)}.auth-submit-btn{width:100%;height:42px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--text-inverse);font-size:14px;font-weight:700;cursor:pointer}.auth-submit-btn:hover{background:var(--accent-primary-hover)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error-banner{padding:9px 12px;border-radius:var(--radius-sm);background:var(--accent-danger-soft);border:1px solid var(--accent-danger-border);color:var(--accent-danger-text);font-size:12.5px;font-weight:600}.auth-success-banner{padding:9px 12px;border-radius:var(--radius-sm);background:var(--accent-success-soft);border:1px solid var(--accent-success-border);color:var(--accent-success-text);font-size:12.5px;font-weight:600}.sidebar-user-footer{padding:12px;border-top:1px solid var(--border-subtle);background:var(--bg-surface);flex-shrink:0}.sidebar-login-card-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--accent-primary-border);background:var(--accent-primary-soft);cursor:pointer;text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast)}.sidebar-login-card-btn:hover{background:var(--bg-pill-hover);border-color:var(--accent-primary)}.sidebar-login-icon{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-login-icon i{width:17px;height:17px}.sidebar-login-text{display:flex;flex-direction:column;min-width:0}.sidebar-login-title{font-size:13px;font-weight:700;color:var(--text-primary)}.sidebar-login-sub{font-size:11.5px;color:var(--text-muted)}.sidebar-user-card-wrapper{position:relative}.sidebar-user-card-btn{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-subtle);cursor:pointer;text-align:left}.sidebar-user-card-btn:hover{background:var(--bg-pill-hover)}.sidebar-user-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.sidebar-user-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-user-meta{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar-user-name{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;font-weight:600;color:var(--text-muted)}.sidebar-user-role.admin-role{color:var(--accent-primary-text)}.sidebar-user-action-icon{color:var(--text-muted);transition:transform var(--transition-fast)}.sidebar-user-card-wrapper.open .sidebar-user-action-icon{transform:rotate(180deg)}.sidebar-user-dropup-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;display:none;flex-direction:column;gap:2px;z-index:var(--z-dropdown)}.sidebar-user-dropup-menu.open{display:flex}.user-menu-header{padding:8px 10px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.user-menu-email{font-size:12px;color:var(--text-muted);word-break:break-all}.user-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;text-align:left;cursor:pointer}.user-menu-item:hover{background:var(--bg-subtle);color:var(--text-primary)}.user-menu-item i{width:15px;height:15px}.user-menu-item.admin-action:hover{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.user-menu-item.logout-action{color:var(--accent-danger-text)}.user-menu-item.logout-action:hover{background:var(--accent-danger-soft)}@media(max-width:1024px){.auth-modal-card{max-width:410px}}@media(max-width:768px){.auth-modal-overlay{padding:14px}.auth-card-header{padding:20px 18px 14px}.auth-card-body{padding:16px 18px 20px}.auth-tabs-nav{margin:12px 18px 0}}@media(max-width:480px){.auth-title{font-size:18px}.auth-input,.auth-submit-btn,.google-auth-btn{height:42px}}.tier-badge-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;cursor:pointer}.tier-badge-free{background:var(--bg-pill);color:var(--text-secondary);border:1px solid var(--border-subtle)}.tier-badge-pro{background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border)}.tier-badge-pro:hover{background:var(--accent-primary);color:var(--text-inverse)}.tier-badge-premium{background:var(--accent-warning-soft);color:var(--accent-warning-text);border:1px solid var(--accent-warning-border)}.tier-badge-premium:hover{background:var(--accent-warning);color:var(--text-inverse)}.upgrade-modal-overlay{position:fixed;inset:0;background:var(--bg-backdrop);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:20px}.upgrade-modal-overlay.active{display:flex}.upgrade-modal-card{position:relative;width:100%;max-width:880px;max-height:92vh;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.upgrade-modal-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.upgrade-modal-close:hover{background:var(--bg-pill-hover);color:var(--text-primary)}.upgrade-modal-header{padding:24px 28px 16px;border-bottom:1px solid var(--border-subtle);text-align:center}.upgrade-badge-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:11.5px;font-weight:700;margin-bottom:8px}.upgrade-modal-title{font-size:22px;font-weight:800;color:var(--text-primary)}.upgrade-modal-subtitle{font-size:13.5px;color:var(--text-muted);margin-top:4px}.upgrade-tabs-nav{display:flex;justify-content:center;gap:8px;padding:12px 24px 0;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.upgrade-tab-btn{padding:9px 16px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.upgrade-tab-btn:hover{color:var(--text-primary)}.upgrade-tab-btn.active{color:var(--accent-primary-text);border-bottom-color:var(--accent-primary)}.upgrade-modal-body{flex:1;overflow-y:auto;padding:22px 28px;display:flex;flex-direction:column;gap:18px}.upgrade-billing-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-pill);background:var(--bg-subtle);border:1px solid var(--border-subtle);align-self:center}.billing-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-pill);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer}.billing-btn.active{background:var(--bg-surface);color:var(--accent-primary-text);box-shadow:var(--shadow-xs)}.discount-pill{padding:2px 7px;border-radius:var(--radius-pill);background:var(--accent-success-soft);color:var(--accent-success-text);font-size:11px;font-weight:700}.upgrade-pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pricing-card{position:relative;padding:20px;border-radius:var(--radius-lg);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:14px}.pricing-card:hover{border-color:var(--border-strong)}.pricing-card.featured.pro-card{background:var(--bg-surface);border:2px solid var(--accent-primary);box-shadow:var(--shadow-md)}.pricing-card.featured.premium-card{background:var(--bg-surface);border:2px solid var(--accent-warning);box-shadow:var(--shadow-md)}.plan-tag{align-self:flex-start;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700}.plan-tag.recommended{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.plan-tag.diamond{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.plan-tag.current{background:var(--accent-success-soft);color:var(--accent-success-text)}.plan-title{font-size:17px;font-weight:800;color:var(--text-primary)}.plan-desc{font-size:12.5px;color:var(--text-muted)}.plan-price{font-size:26px;font-weight:800;color:var(--text-primary)}.plan-price span{font-size:13px;font-weight:600;color:var(--text-muted)}.plan-features{list-style:none;display:flex;flex-direction:column;gap:8px;flex:1}.plan-features li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-secondary)}.plan-features li i{width:15px;height:15px;color:var(--accent-success-text);margin-top:2px;flex-shrink:0}.plan-features li.disabled{color:var(--text-muted);opacity:.7}.plan-features li.disabled i{color:var(--text-muted)}.plan-action-btn{width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:13.5px;font-weight:700;cursor:pointer}.plan-action-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.plan-action-btn.primary:hover{background:var(--accent-primary-hover)}.plan-action-btn.premium{background:var(--accent-warning);border-color:var(--accent-warning);color:var(--text-inverse)}.plan-action-btn.premium:hover{background:var(--accent-warning-hover)}.plan-action-btn.disabled{opacity:.55;cursor:not-allowed}.payment-two-col{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.payment-qr-col{padding:18px;border-radius:var(--radius-lg);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.payment-plan-summary{display:flex;flex-direction:column;align-items:center;gap:6px}.summary-badge{padding:3px 10px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700}.summary-badge.pro{background:var(--accent-primary-soft);color:var(--accent-primary-text)}.summary-badge.premium{background:var(--accent-warning-soft);color:var(--accent-warning-text)}.summary-amount{font-size:22px;font-weight:800;color:var(--text-primary)}.qr-image-wrapper{padding:10px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--border-subtle)}.vietqr-img{width:210px;height:210px;object-fit:contain;display:block}.qr-hint{font-size:12px;color:var(--text-muted)}.payment-info-col{display:flex;flex-direction:column;gap:10px}.payment-info-title{font-size:15px;font-weight:700;color:var(--text-primary)}.bank-detail-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.bank-detail-item.syntax-box{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.detail-label{font-size:12.5px;color:var(--text-muted)}.detail-val{font-size:14px;font-weight:700;color:var(--text-primary)}.detail-val.highlight,.detail-val.price-accent,.detail-val.price-highlight{color:var(--accent-primary-text);font-weight:800}.detail-val.syntax-highlight{font-family:var(--font-mono);color:var(--accent-primary-text);background:var(--bg-surface);padding:2px 8px;border-radius:var(--radius-xs);border:1px solid var(--accent-primary-border)}.detail-copy-group{display:flex;align-items:center;gap:8px}.syntax-code{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--accent-primary-text)}.syntax-help{font-size:12px;color:var(--text-muted)}.copy-btn{padding:4px 10px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:11.5px;font-weight:600;cursor:pointer}.copy-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.payment-note-box{padding:12px 14px;border-radius:var(--radius-md);background:var(--accent-warning-soft);border:1px solid var(--accent-warning-border);color:var(--accent-warning-text);font-size:12.5px;line-height:1.5}.payment-actions-group{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.btn-confirm-transferred{background:var(--accent-success);border-color:var(--accent-success);color:var(--text-inverse);font-weight:700}.btn-confirm-transferred:hover:not(:disabled){background:var(--accent-success-hover);border-color:var(--accent-success-hover)}.payment-support-box{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--text-secondary)}.support-action-row{display:flex;gap:8px;flex-wrap:wrap}.support-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);font-size:12.5px;font-weight:600;text-decoration:none}.support-btn.zalo:hover{background:var(--accent-info-soft);border-color:var(--accent-info-border);color:var(--accent-info-text)}.support-btn.phone:hover{background:var(--accent-success-soft);border-color:var(--accent-success-border);color:var(--accent-success-text)}.upgrade-modal-footer{padding:14px 28px;border-top:1px solid var(--border-subtle);background:var(--bg-subtle)}.footer-guarantee{font-size:12px;color:var(--text-muted);text-align:center}.unit-item.locked{opacity:.85}.unit-item.locked:hover{background:var(--accent-primary-soft)}.unit-lock-tag{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);font-size:10px;font-weight:700}.preview-audio-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:10px 16px;border-radius:var(--radius-md);background:var(--accent-primary-soft);border:1px solid var(--accent-primary-border);margin-bottom:14px}.preview-audio-banner-left{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary)}.preview-countdown-badge{font-family:var(--font-mono);padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-primary);color:var(--text-inverse);font-size:12px;font-weight:700}.preview-upgrade-btn{padding:6px 14px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--text-inverse);font-size:12.5px;font-weight:700;cursor:pointer}.preview-upgrade-btn:hover{background:var(--accent-primary-hover)}.locked-view-fullscreen{display:flex;align-items:center;justify-content:center;padding:32px 16px;width:100%}.locked-view-card{width:100%;max-width:540px;padding:32px 26px;border-radius:var(--radius-xl);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.locked-view-icon-halo,.teaser-locked-icon-halo{width:56px;height:56px;border-radius:50%;background:var(--accent-primary-soft);border:1px solid var(--accent-primary-border);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center}.locked-view-pill,.teaser-locked-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--accent-primary-soft);border:1px solid var(--accent-primary-border);color:var(--accent-primary-text);font-size:11px;font-weight:800;text-transform:uppercase}.locked-view-title,.teaser-locked-title{font-size:19px;font-weight:800;color:var(--text-primary)}.locked-view-desc,.teaser-locked-desc{font-size:13.5px;color:var(--text-muted);max-width:460px;line-height:1.55}.locked-view-actions,.teaser-locked-actions{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.locked-view-upgrade-btn,.teaser-banner-upgrade-btn{padding:9px 18px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--text-inverse);font-size:13px;font-weight:700;cursor:pointer}.locked-view-upgrade-btn:hover,.teaser-banner-upgrade-btn:hover{background:var(--accent-primary-hover)}.locked-view-preview-btn{padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer}.locked-view-preview-btn:hover{background:var(--bg-subtle)}.locked-unit-notice-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius-md);background:var(--accent-primary-soft);border:1px solid var(--accent-primary-border);max-width:680px;margin:0 auto 14px;text-align:left}.locked-unit-notice-box.warning{background:var(--accent-warning-soft);border-color:var(--accent-warning-border)}.notice-icon-box{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--accent-primary-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notice-text-content{flex:1}.notice-title{font-size:13.5px;font-weight:700;color:var(--text-primary)}.notice-sub{font-size:12px;color:var(--text-muted)}.notice-preview-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.notice-preview-btn:hover{background:var(--bg-subtle)}.teaser-alert-banner,.global-unit-teaser-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;margin-bottom:16px;border-radius:var(--radius-md);background:var(--accent-primary-soft);border:1px solid var(--accent-primary-border)}.teaser-alert-content,.teaser-banner-inner{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary)}.locked-transcript-row{background:var(--bg-subtle);border-left:3px solid var(--accent-primary)}.locked-transcript-row:hover{background:var(--accent-primary-soft)}.locked-row-btn{background:var(--accent-primary-soft);color:var(--accent-primary-text);border-color:var(--accent-primary-border)}.locked-row-btn:hover{background:var(--accent-primary);color:var(--text-inverse)}.masked-stars,.teaser-masked-en{color:var(--accent-primary-text);font-style:italic;font-weight:600}.masked-dots{letter-spacing:.25em;color:var(--text-muted);font-weight:700}.masked-vi,.teaser-masked-vi{color:var(--text-muted);font-style:italic;font-size:12px}.locked-pro-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--radius-xs);background:var(--accent-primary-soft);color:var(--accent-primary-text);border:1px solid var(--accent-primary-border);font-size:10px;font-weight:800;text-transform:uppercase}.teaser-locked-card{width:100%;padding:28px 22px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px dashed var(--accent-primary-border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin:14px 0}.teaser-masked-preview{width:100%;max-width:500px;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.q-grid-btn.locked{background:var(--bg-subtle);border-color:var(--accent-primary-border);color:var(--accent-primary-text)}.q-grid-btn.locked:hover{background:var(--accent-primary-soft)}.locked-exam-card{border:1px dashed var(--accent-primary-border);background:var(--bg-subtle)}.locked-exam-cta{margin-top:12px;display:flex;align-items:center}.option-item.locked-option{opacity:.72}.option-item.locked-option:hover{background:var(--accent-primary-soft);border-color:var(--accent-primary-border)}.transcript-review-line.locked-line{opacity:.8;border-left:2px solid var(--accent-primary-border);padding-left:8px}@media(max-width:1024px){.upgrade-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.upgrade-pricing-grid,.payment-two-col{grid-template-columns:1fr}.upgrade-modal-header{padding:20px 18px 14px}.upgrade-modal-body{padding:16px 18px}.locked-unit-notice-box,.teaser-alert-banner,.global-unit-teaser-banner{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.upgrade-modal-title{font-size:19px}.vietqr-img{width:180px;height:180px}}
