:root{--bg-primary: #080C14;--bg-secondary: #0F172A;--bg-card: rgba(18, 24, 38, .88);--bg-card-hover: rgba(28, 38, 58, .95);--border-subtle: rgba(255, 255, 255, .08);--border-focus: rgba(99, 102, 241, .5);--accent-cyan: #06B6D4;--accent-indigo: #6366F1;--accent-violet: #8B5CF6;--accent-emerald: #10B981;--accent-amber: #F59E0B;--accent-rose: #EF4444;--type-talk: #22D3EE;--type-talk-bg: rgba(6, 182, 212, .13);--type-slack: #A78BFA;--type-slack-bg: rgba(139, 92, 246, .15);--text-main: #F8FAFC;--text-muted: #94A3B8;--text-dim: #64748B;--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-glow-cyan: 0 0 25px rgba(6, 182, 212, .25);--shadow-glow-indigo: 0 0 30px rgba(99, 102, 241, .35);--shadow-glow-emerald: 0 0 25px rgba(16, 185, 129, .3);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-sans);min-height:100vh;min-height:-webkit-fill-available;overflow-x:clip;line-height:1.5;-webkit-font-smoothing:antialiased}.ambient-glow{position:fixed;top:0;left:50%;transform:translate(-50%);width:min(900px,100vw);height:450px;background:radial-gradient(circle,rgba(99,102,241,.12) 0%,rgba(6,182,212,.05) 50%,transparent 70%);pointer-events:none;z-index:0}.app-layout{display:flex;min-height:100vh;width:100%;position:relative;background-color:var(--bg-primary);overflow-x:clip}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:calc(14px + var(--safe-top)) 24px calc(110px + var(--safe-bottom));max-width:980px;margin:0 auto;width:100%;position:relative;z-index:1;transition:max-width .3s ease}.app-layout.zen-mode .app-main{max-width:820px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.studio-sidebar{width:250px;flex-shrink:0;height:100vh;position:sticky;top:0;background:#0b111ef2;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:100;transition:width .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1);box-shadow:4px 0 24px #00000040}.studio-sidebar.collapsed{width:72px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 14px;border-bottom:1px solid var(--border-subtle);min-height:64px}.sidebar-brand{display:flex;align-items:center;gap:10px;cursor:pointer;overflow:hidden;-webkit-user-select:none;user-select:none}.brand-logo-badge{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow-indigo);flex-shrink:0}.brand-info{display:flex;flex-direction:column;white-space:nowrap;overflow:hidden}.brand-title{font-size:.95rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(to right,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.brand-tagline{font-size:.68rem;color:var(--text-dim)}.sidebar-toggle-btn{background:#ffffff0d;border:1px solid var(--border-subtle);color:var(--text-muted);width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0}.sidebar-toggle-btn:hover{background:#ffffff1f;color:#fff;border-color:#fff3}.sidebar-streak-card{margin:12px 12px 6px;padding:10px 12px;background:linear-gradient(135deg,#ef44441f,#f9731614);border:1px solid rgba(239,68,68,.3);border-radius:12px;display:flex;align-items:center;gap:10px}.streak-flame{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ef44442e;flex-shrink:0}.streak-details{display:flex;flex-direction:column}.streak-value{font-size:.82rem;font-weight:800;color:#f87171}.streak-sub{font-size:.68rem;color:var(--text-dim)}.sidebar-nav-container{flex:1;overflow-y:auto;padding:12px 10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.sidebar-nav-container::-webkit-scrollbar{width:4px}.sidebar-nav-container::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.nav-group-title{font-size:.65rem;font-weight:800;letter-spacing:.06em;color:var(--text-dim);padding:4px 10px;margin-bottom:4px;text-transform:uppercase}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-muted);font-size:.84rem;font-weight:600;cursor:pointer;transition:all .15s ease;text-align:left;-webkit-user-select:none;user-select:none}.nav-item:hover{background:#ffffff0d;color:var(--text-main)}.nav-item.active{background:linear-gradient(135deg,#6366f138,#06b6d426);border-color:#6366f173;color:#fff;box-shadow:0 2px 12px #6366f133}.nav-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px 23px;padding-left:10px;border-left:1px solid var(--border-subtle)}.nav-sub-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.78rem;font-weight:600;text-align:left;cursor:pointer}.nav-sub-item:hover{background:#ffffff0d;color:var(--text-main)}.nav-sub-item.type-talk svg{color:var(--type-talk)}.nav-sub-item.type-slack svg{color:var(--type-slack)}.nav-sub-item.type-talk.active{color:var(--type-talk);background:var(--type-talk-bg);border-color:#22d3ee59}.nav-sub-item.type-slack.active{color:var(--type-slack);background:var(--type-slack-bg);border-color:#a78bfa59}.nav-sub-item .nav-sub-count{margin-left:auto;font-size:.68rem;color:var(--text-dim)}.nav-icon{display:flex;align-items:center;justify-content:center;width:22px;flex-shrink:0}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.nav-badge{font-size:.7rem;font-weight:800;padding:2px 7px;border-radius:100px;background:#6366f140;color:#a5b4fc;flex-shrink:0}.nav-badge.secondary{background:#ffffff14;color:var(--text-muted)}.nav-badge.danger{background:#ef444433;color:#f87171}.nav-badge.badge-dot{width:6px;height:6px;padding:0;border-radius:50%;margin:0 auto}.nav-pill-new{font-size:.62rem;font-weight:800;padding:1px 6px;border-radius:6px;background:#38bdf8;color:#080c14;letter-spacing:.02em}.sidebar-footer{padding:12px 12px calc(12px + var(--safe-bottom));border-top:1px solid var(--border-subtle);background:#080c1480}.studio-sidebar.collapsed .sidebar-header{justify-content:center;padding:16px 8px}.studio-sidebar.collapsed .sidebar-toggle-btn{display:none}.studio-sidebar.collapsed .sidebar-brand{justify-content:center}.studio-sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.studio-sidebar.collapsed .nav-group-title{text-align:center;padding:4px 0}.top-app-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:16px;margin-bottom:16px;min-height:52px;box-shadow:0 4px 20px #0003;gap:12px}.top-header-left{display:flex;align-items:center;gap:12px;min-width:0}.top-menu-btn{background:#ffffff0d;border:1px solid var(--border-subtle);color:var(--text-muted);width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0}.top-menu-btn:hover{background:#ffffff1a;color:#fff}.breadcrumb-container{display:flex;align-items:center;gap:8px;min-width:0;font-size:.85rem}.breadcrumb-main{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--text-main);white-space:nowrap}.breadcrumb-separator{color:var(--text-dim);flex-shrink:0}.breadcrumb-sub{color:var(--text-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.top-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.streak-badge-header{display:flex;align-items:center;gap:5px;padding:5px 10px;background:#ef444426;border:1px solid rgba(239,68,68,.35);border-radius:100px;font-size:.75rem;font-weight:800;color:#f87171}.zen-toggle-btn{width:34px;height:34px;border-radius:10px;background:#ffffff0d;border:1px solid var(--border-subtle);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.zen-toggle-btn:hover,.zen-toggle-btn.active{background:#6366f133;color:#fff;border-color:#6366f166}.desktop-only{display:flex}.mobile-only{display:none}.toast-notification{position:fixed;top:calc(16px + var(--safe-top));left:50%;transform:translate(-50%);background:#1e293bf2;color:#f8fafc;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 18px;border-radius:12px;font-size:.85rem;font-weight:600;z-index:999;box-shadow:0 10px 30px #00000080;max-width:90vw;text-align:center;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.import-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#6366f126,#06b6d426);border:1px solid rgba(99,102,241,.4);border-radius:14px;margin-bottom:14px;font-size:.85rem}.import-banner-text{display:flex;align-items:center;gap:10px;color:#e2e8f0}.import-btn{white-space:nowrap;background:var(--accent-indigo);color:#fff;border:none;padding:6px 14px;border-radius:8px;font-weight:700;font-size:.8rem;cursor:pointer}@media(max-width:840px){.desktop-only{display:none!important}.mobile-only{display:flex!important}.app-main{padding:calc(10px + var(--safe-top)) 12px calc(88px + var(--safe-bottom))}.studio-sidebar,.top-menu-btn{display:none!important}.breadcrumb-sub{max-width:150px}}.today-stats-bar{display:flex;align-items:center;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px;scrollbar-width:none}.today-stats-bar::-webkit-scrollbar{display:none}.stat-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:100px;font-size:.78rem;color:var(--text-muted);white-space:nowrap}.stat-pill strong{color:var(--text-main)}.streak-pill{border-color:#ef444459;background:#ef44441a;color:#fca5a5}.dot{width:7px;height:7px;border-radius:50%}.due-dot{background:var(--accent-amber)}.new-dot{background:var(--accent-cyan)}.stage-container{flex:1;display:flex;flex-direction:column}.flash-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:20px;padding:0 20px 18px;box-shadow:0 8px 30px #00000059;position:relative;transition:border-color .25s ease}.flash-card.recording{border-color:#06b6d499;box-shadow:0 0 35px #06b6d440}.card-meta{display:flex;justify-content:space-between;align-items:center;margin:14px 0;gap:8px}.meta-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.turn-badge{display:inline-flex;align-items:center;padding:3px 10px;background:#6366f124;border-radius:100px;font-size:.72rem;font-weight:700;color:#a5b4fc;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-overview{background:var(--bg-card);border:1px solid var(--border-subtle);border-top:3px solid var(--accent-indigo);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:10px}.lesson-overview.type-talk{border-top-color:var(--type-talk)}.lesson-overview.type-slack{border-top-color:var(--type-slack)}.lesson-overview-type{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.lesson-overview.type-talk .lesson-overview-type{color:var(--type-talk)}.lesson-overview.type-slack .lesson-overview-type{color:var(--type-slack)}.lesson-overview-title{margin:0;font-size:1.35rem;line-height:1.25;color:var(--text-main)}.lesson-overview-sub{margin:0;font-size:.86rem;color:var(--text-muted);line-height:1.4}.lesson-overview-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--text-muted)}.lesson-overview-stats strong{color:var(--text-main)}.lesson-overview-stats .stat-new strong{color:var(--type-talk)}.lesson-overview-actions{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 4px}.lesson-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff0f;color:var(--text-main);font-family:inherit;font-size:.88rem;font-weight:700;text-decoration:none;cursor:pointer}.lesson-action.primary{flex:1 1 200px;border:none;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));color:#fff}.lesson-action:disabled{opacity:.45;cursor:not-allowed}.lesson-turns{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.lesson-turn{width:100%;display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"label status go" "prompt prompt go";align-items:center;gap:4px 10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-main);font-family:inherit;text-align:left;cursor:pointer}.lesson-turn:hover{background:var(--bg-card-hover)}.lesson-turn-label{grid-area:label;font-size:.7rem;font-weight:700;color:#a5b4fc}.lesson-turn-prompt{grid-area:prompt;font-size:.86rem;line-height:1.4;color:var(--text-main)}.lesson-turn-status{grid-area:status;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:100px}.lesson-turn-status.is-new{color:#67e8f9;background:#06b6d424}.lesson-turn-status.is-learned{color:#6ee7b7;background:#10b98124}.lesson-turn-go{grid-area:go;color:var(--text-dim)}.lesson-practice-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-width:0}.lesson-back-btn{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.lesson-back-btn:hover{color:var(--text-main);background:#ffffff0d}.lesson-practice-bar .lesson-type-badge{min-width:0}.lesson-type-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-size:.72rem;font-weight:700;max-width:100%;min-width:0}.lesson-type-badge.type-talk{color:var(--type-talk);background:var(--type-talk-bg)}.lesson-type-badge.type-slack{color:var(--type-slack);background:var(--type-slack-bg)}.lesson-type-badge svg{flex-shrink:0}.lesson-type-badge-name{font-weight:600;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.new-card-badge{padding:3px 9px;background:#06b6d424;border-radius:100px;font-size:.7rem;font-weight:700;color:#67e8f9}.meta-right{display:flex;align-items:center;gap:8px}.session-badge{font-size:.78rem;color:var(--text-dim);font-weight:600;font-variant-numeric:tabular-nums}.speed-timer-container{height:4px;margin:0 -20px;background:#ffffff0f;border-radius:20px 20px 0 0;overflow:hidden}.speed-timer-bar{height:100%;background:var(--accent-emerald);transition:width .1s linear,background .3s ease}.speed-timer-bar.urgent{background:var(--accent-rose)}.speed-timer-badge{font-size:.8rem;font-weight:700;color:#34d399;font-variant-numeric:tabular-nums}.speed-timer-badge.urgent{color:#f87171}.card-progress{height:4px;margin:0 -20px;background:#ffffff0f;border-radius:20px 20px 0 0;overflow:hidden}.card-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-indigo),var(--accent-cyan));transition:width .3s ease}.ai-partner-box{display:flex;align-items:flex-start;gap:12px;background:#06b6d40f;border:1px solid rgba(6,182,212,.18);padding:10px 12px;border-radius:14px;margin-bottom:16px}.ai-partner-content{min-width:0}.ai-partner-label{font-size:.7rem;font-weight:700;color:#67e8f9;margin-bottom:2px}.ai-speech-text{font-size:.98rem;color:#e2e8f0;font-style:italic;line-height:1.4}.mission-box{margin-bottom:18px}.mission-label{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:6px}.mission-text{font-size:1.4rem;font-weight:700;color:#fff;line-height:1.4;letter-spacing:-.01em}.recording-bar{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 12px 14px;background:#ffffff06;border-radius:16px;border:1px solid var(--border-subtle);margin-bottom:14px;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.recording-bar.active{border-color:var(--accent-cyan);border-style:solid;background:#06b6d40d}.recording-bar.compact{flex-direction:row;justify-content:flex-start;gap:12px;padding:8px 12px;margin-bottom:14px}.recording-bar.compact .waveform-canvas{flex:1;margin-top:0;height:28px}.recording-hint{font-size:.82rem;color:var(--text-muted)}.recording-bar.compact .mic-pulse-btn{width:44px;height:44px;margin-bottom:0;flex-shrink:0}.recording-bar.compact .recording-instruction{text-align:left}.mic-pulse-btn{width:76px;height:76px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-violet));color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 25px #6366f159;margin-bottom:10px;transition:transform .15s ease,background .2s ease;touch-action:none;-webkit-touch-callout:none}.mic-pulse-btn:active{transform:scale(.95)}.mic-pulse-btn.listening{background:linear-gradient(135deg,var(--accent-cyan),var(--accent-emerald));box-shadow:0 0 35px #06b6d499;animation:pulseRing 1.5s infinite}.mic-pulse-btn.uploading{background:linear-gradient(135deg,#475569,#334155);box-shadow:none}@keyframes pulseRing{0%{transform:scale(1);box-shadow:0 0 #06b6d499}70%{transform:scale(1.06);box-shadow:0 0 0 14px #06b6d400}to{transform:scale(1);box-shadow:0 0 #06b6d400}}.recording-instruction{font-size:.85rem;color:var(--text-muted);font-weight:500;text-align:center;min-height:22px}.recording-status.listening{color:#38bdf8;font-weight:700}.recording-status.uploading{color:var(--accent-amber);display:inline-flex;align-items:center;gap:6px}.spin-inline,.spin-icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.waveform-canvas{width:100%;max-width:420px;height:36px;margin-top:8px;display:block}.diff-container{margin-bottom:18px}.answer-gate{margin-bottom:4px}.answer-gate-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.ghost-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--border-subtle);background:#ffffff0a;color:var(--text-muted);font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer}.ghost-btn:hover{color:var(--text-main);background:#ffffff14}.reveal-btn{color:#c7d2fe;border-color:#6366f159}.hint-list{justify-content:center;margin-top:10px}.collocation-meaning{color:var(--text-muted);font-family:var(--font-sans);font-size:.74rem}.result-panel{display:flex;flex-direction:column;gap:12px}.result-summary{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:#ffffff0a;border:1px solid var(--border-subtle)}.result-summary.mastered{background:#10b9811a;border-color:#10b9814d}.result-summary.good-reflex{background:#06b6d41a;border-color:#06b6d44d}.result-summary.needs-polish{background:#f59e0b14;border-color:#f59e0b47}.result-score{font-size:1.9rem;font-weight:800;line-height:1;color:var(--text-main);font-variant-numeric:tabular-nums}.result-score small{font-size:.9rem;font-weight:700;color:var(--text-muted);margin-left:1px}.result-summary-text{display:flex;flex-direction:column;min-width:0}.result-summary-text strong{font-size:.98rem;color:var(--text-main)}.result-summary-text span{font-size:.76rem;color:var(--text-muted)}.result-row{padding:12px 14px;border-radius:14px;background:#0f172a99;border:1px solid var(--border-subtle)}.result-row.target{background:#10b9810d;border-color:#10b98138}.result-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.result-label{font-size:.72rem;font-weight:700;color:var(--text-dim)}.result-row.target .result-label{color:#34d399}.play-btn{width:34px;height:34px;border-radius:50%}.play-btn.playing{color:#67e8f9;border-color:#06b6d499;background:#06b6d429}.trap-alert-title{display:flex;align-items:center;gap:8px;font-weight:700;color:#f87171;margin-bottom:4px}.trap-alert-text{font-size:.84rem;color:#fecaca}.result-details{border-radius:14px;border:1px solid var(--border-subtle);background:#ffffff05;padding:0 14px}.result-details summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;list-style:none;font-size:.84rem;font-weight:600;color:var(--text-muted)}.result-details summary::-webkit-details-marker{display:none}.result-details[open] summary{color:var(--text-main)}.details-chevron{transition:transform .2s ease}.result-details[open] .details-chevron{transform:rotate(180deg)}.result-details>:last-child{margin-bottom:14px}.trap-box-title{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:4px}.spoken-text{font-size:1.02rem;color:#f1f5f9;font-weight:500;line-height:1.45}.target-text{font-size:1.12rem;color:#fff;font-weight:500;line-height:1.7;word-break:break-word;overflow-wrap:anywhere}.target-word{display:inline-block;margin-right:5px;margin-bottom:4px;word-break:break-word}.score-badge{font-size:.75rem;font-weight:800;padding:3px 8px;border-radius:6px}.score-badge.mastered{background:#10b98133;color:#34d399}.score-badge.good-reflex{background:#06b6d433;color:#22d3ee}.score-badge.needs-polish{background:#f59e0b33;color:#fbbf24}.token-matched{color:#34d399;font-weight:700;background:#10b98138;padding:1px 7px;border-radius:6px;border:1px solid rgba(16,185,129,.35)}.token-missed{color:#e2e8f0;padding:1px 2px}.trap-box{background:#f59e0b14;border-left:3px solid var(--accent-amber);padding:10px 14px;border-radius:0 10px 10px 0;font-size:.82rem;color:#fde68a;margin-bottom:10px;line-height:1.45}.trap-alert-box{background:#ef44441a;border:1px solid rgba(239,68,68,.35);border-radius:14px;padding:12px 14px}.collocations-container{display:flex;flex-wrap:wrap;gap:6px}.collocation-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#ffffff0a;border:1px solid var(--border-subtle);border-radius:8px;font-family:var(--font-mono);font-size:.78rem;color:var(--accent-cyan);max-width:100%;word-break:break-word;white-space:normal}.collocation-pill.matched{background:#10b98126;border-color:#10b98166;color:var(--accent-emerald)}.grade-bar-wrapper{background:#0a0f19eb;border:1px solid var(--border-subtle);border-radius:16px;padding:12px;margin-top:14px;animation:slideUp .25s ease-out}@media(max-width:840px){.grade-bar-dock{position:sticky;bottom:calc(70px + var(--safe-bottom));z-index:20;margin:0 -8px}.zen-mode .grade-bar-dock{bottom:calc(8px + var(--safe-bottom))}.grade-bar-dock .grade-bar-wrapper{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 -8px 24px #00000073}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.grade-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.76rem;gap:8px}.grade-bar-title{font-weight:700;color:var(--text-main)}.grade-bar-hint{color:var(--text-muted);text-align:right}.grade-bar-hint strong{color:var(--text-main)}.grade-buttons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.grade-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 4px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff0a;font-family:inherit;cursor:pointer;position:relative;transition:background .15s ease,transform .1s ease;min-height:56px;min-width:0}.grade-btn:active{transform:scale(.97)}.grade-btn-main{display:flex;align-items:center;gap:5px;font-size:.84rem;font-weight:700;white-space:nowrap}.grade-shortcut{margin-top:3px}.grade-interval{font-size:.7rem;color:var(--text-muted)}.grade-again{color:#f87171;border-color:#ef444440}.grade-again:hover{background:#ef44441f}.grade-hard{color:#fbbf24;border-color:#f59e0b40}.grade-hard:hover{background:#f59e0b1f}.grade-good{color:#34d399;border-color:#10b98140}.grade-good:hover{background:#10b9811f}.grade-easy{color:#38bdf8;border-color:#06b6d440}.grade-easy:hover{background:#06b6d41f}.grade-btn.recommended{border-width:2px;border-color:currentColor;background:#ffffff12}@media(max-width:480px){.grade-icon{display:none}.grade-btn-main{font-size:.78rem}}.card-nav-bar{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:8px}.nav-btn{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff0a;color:var(--text-main);font-family:inherit;font-size:.84rem;font-weight:600;white-space:nowrap;cursor:pointer}.nav-btn:hover:not(:disabled){background:#ffffff17}.nav-btn:disabled{opacity:.35;cursor:default}.nav-btn-next{border-color:#6366f173;background:#6366f129}@media(max-width:480px){.nav-btn-label{display:none}}.kbd-hint{display:inline-block;font-family:var(--font-mono);font-size:.66rem;font-weight:600;line-height:1;padding:2px 5px;border-radius:4px;border:1px solid rgba(255,255,255,.14);color:var(--text-dim);margin-left:2px}.audio-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;background:#ffffff0f;border:1px solid var(--border-subtle);color:var(--text-main);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease;min-height:40px}.audio-action-btn:hover{background:#ffffff1f}.audio-action-btn.mini-btn{padding:3px 8px;font-size:.7rem;min-height:26px}.audio-action-btn.playing{border-color:#06b6d4b3;background:#06b6d42e;color:#38bdf8;animation:pulseButton 1.5s infinite}.voice-test-btn.playing{border-color:#06b6d4b3;background:#06b6d438;color:#38bdf8;animation:pulseButton 1.5s infinite}@keyframes pulseButton{0%{box-shadow:0 0 #06b6d466}70%{box-shadow:0 0 0 6px #06b6d400}to{box-shadow:0 0 #06b6d400}}.shadowing-intro{margin-bottom:16px;color:#94a3b8;font-size:.88rem;line-height:1.5}.shadowing-card{background:#0f172a99;border:1px solid var(--border-subtle);border-radius:16px;padding:16px;margin-bottom:12px}.shadowing-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.drill-tag{font-size:.72rem;font-weight:800;color:var(--accent-cyan);text-transform:uppercase}.drill-audio-group{display:flex;gap:6px}.shadowing-sentence{font-size:1.15rem;font-weight:700;color:#fff;margin-bottom:6px}.shadowing-tip{font-size:.8rem;color:#a5b4fc;background:#6366f11a;padding:6px 12px;border-radius:6px;display:inline-block}.finished-container{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:24px}.finished-badge{width:80px;height:80px;border-radius:50%;background:#10b98126;border:2px solid rgba(16,185,129,.4);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.finished-title{font-size:1.4rem;font-weight:800;color:#fff;margin-bottom:8px}.finished-subtitle{font-size:.9rem;color:var(--text-muted);max-width:480px;margin-bottom:24px}.finished-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:480px;margin-bottom:28px}.stat-card{background:#0f172ab3;border:1px solid var(--border-subtle);border-radius:14px;padding:12px 10px}.stat-label{font-size:.7rem;color:var(--text-dim);font-weight:600;display:block;margin-bottom:4px}.stat-val{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem;font-weight:800;color:var(--text-main)}.streak-val{color:#f87171}.finished-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.finished-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;border:none}.speed-btn{background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));color:#fff}.more-btn{background:#ffffff14;border:1px solid var(--border-subtle);color:#fff}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c14f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}.login-card{width:100%;max-width:420px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:24px;padding:32px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.login-badge{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:16px;box-shadow:var(--shadow-glow-indigo)}.login-title{font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:6px}.login-subtitle{font-size:.85rem;color:var(--text-muted);margin-bottom:20px}.login-error{display:flex;align-items:center;gap:6px;background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fca5a5;padding:8px 14px;border-radius:8px;font-size:.8rem;margin-bottom:16px;width:100%}.login-form{width:100%;display:flex;flex-direction:column;gap:14px}.input-group{position:relative;width:100%}.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-dim)}.password-input{width:100%;background:#0f172acc;border:1px solid var(--border-subtle);color:#fff;padding:12px 14px 12px 42px;border-radius:12px;font-size:16px;outline:none}.password-input:focus{border-color:var(--accent-indigo)}.login-submit-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));color:#fff;font-weight:700;font-size:.95rem;cursor:pointer}.login-footer{display:flex;align-items:center;gap:6px;margin-top:18px;font-size:.72rem;color:var(--text-dim)}.keyboard-dock{position:fixed;bottom:0;left:0;right:0;background:#080c14f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);padding:10px 20px;display:flex;justify-content:center;align-items:center;gap:20px;z-index:100}.keycap-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted)}.keycap{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;min-width:26px;height:26px;background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.15);border-bottom:2px solid rgba(0,0,0,.6);border-radius:6px;color:#f8fafc;font-family:var(--font-mono);font-size:.72rem;font-weight:700}.keycap.pressed{transform:translateY(2px);box-shadow:0 0 10px var(--accent-cyan);color:var(--accent-cyan)}@media(hover:none)and (pointer:coarse){.keyboard-dock{display:none!important}.app-container{padding-bottom:calc(20px + var(--safe-bottom))}}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1rem}.coach-container{display:flex;flex-direction:column;gap:16px;width:100%}.coach-intro-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:18px;padding:16px 20px}.coach-intro-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.coach-title-group{display:flex;align-items:center;gap:12px}.coach-icon-badge{width:42px;height:42px;border-radius:12px;background:#06b6d426;border:1px solid rgba(6,182,212,.35);display:flex;align-items:center;justify-content:center;flex-shrink:0}.coach-title{font-size:1.15rem;font-weight:800;color:#fff}.coach-subtitle{font-size:.8rem;color:var(--text-muted);margin-top:2px;line-height:1.4}.coach-key-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#ffffff0d;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap}.coach-key-toggle-btn:hover{color:#fff;border-color:#fff3}.coach-key-toggle-btn.active{background:#10b9811f;border-color:#10b98159}.coach-key-box{margin-top:14px;padding:12px 14px;background:#0f172acc;border:1px dashed rgba(6,182,212,.4);border-radius:12px;animation:slideDown .2s ease-out}.coach-key-desc{font-size:.8rem;color:#cbd5e1;line-height:1.45}.coach-key-input{flex:1;background:#080c14e6;border:1px solid var(--border-subtle);color:#fff;padding:8px 12px;border-radius:8px;font-size:.85rem;font-family:var(--font-mono);outline:none}.coach-key-input:focus{border-color:var(--accent-cyan)}.coach-key-save-btn{background:linear-gradient(135deg,var(--accent-cyan),var(--accent-indigo));color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:700;font-size:.8rem;cursor:pointer;white-space:nowrap}.coach-input-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:20px;padding:22px 20px;display:flex;flex-direction:column;align-items:center;box-shadow:0 8px 30px #00000059}.coach-voice-zone{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.coach-mic-btn{width:84px;height:84px;border-radius:50%;border:none;background:linear-gradient(135deg,#06b6d4,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 30px #06b6d466;margin-bottom:12px;transition:transform .15s ease,background .2s ease}.coach-mic-btn:active{transform:scale(.95)}.coach-mic-btn.recording{background:linear-gradient(135deg,#ef4444,#f59e0b);box-shadow:0 0 35px #ef444499;animation:pulseRing 1.5s infinite}.coach-mic-btn.loading{background:linear-gradient(135deg,#475569,#334155);box-shadow:none}.coach-mic-label{font-size:.88rem;color:var(--text-muted);text-align:center}.coach-text-zone{width:100%}.coach-input-wrapper{display:flex;gap:8px;width:100%}.coach-textarea{flex:1;background:#0f172ad9;border:1px solid var(--border-subtle);color:#fff;padding:10px 14px;border-radius:12px;font-family:var(--font-sans);font-size:.92rem;resize:none;outline:none;line-height:1.45}.coach-textarea:focus{border-color:var(--accent-cyan)}.coach-send-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0 18px;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-violet));border:none;border-radius:12px;color:#fff;font-weight:700;font-size:.8rem;cursor:pointer;transition:opacity .15s ease}.coach-send-btn:disabled{opacity:.45;cursor:not-allowed}.coach-suggestions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px}.suggestion-chip{background:#ffffff0a;border:1px solid var(--border-subtle);color:var(--text-muted);padding:4px 10px;border-radius:100px;font-size:.74rem;cursor:pointer;transition:all .15s ease}.suggestion-chip:hover{background:#06b6d426;border-color:#06b6d466;color:#38bdf8}.coach-result-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(16,185,129,.3);border-radius:20px;padding:22px 20px;box-shadow:0 0 35px #10b98126;animation:slideUp .3s ease-out}.coach-result-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.coach-save-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:.85rem;cursor:pointer;box-shadow:0 0 15px #10b98159;transition:all .2s ease}.coach-save-btn.saved{background:#10b98133;border:1px solid rgba(16,185,129,.5);color:#34d399;box-shadow:none;cursor:default}.coach-native-box{background:#10b98114;border:1px solid rgba(16,185,129,.3);border-radius:14px;padding:16px 18px;margin-bottom:14px}.coach-box-label{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:700;color:var(--accent-emerald);text-transform:uppercase;margin-bottom:8px}.coach-target-sentence{font-size:1.25rem;font-weight:700;color:#fff;line-height:1.5;word-break:break-word}.coach-casual-row{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.1);display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:.85rem}.mini-audio-btn{background:transparent;border:none;color:#38bdf8;cursor:pointer;padding:2px 4px;display:inline-flex;align-items:center}.coach-explanation-box{background:#0f172ab3;border-left:3px solid var(--accent-cyan);border-radius:0 12px 12px 0;padding:12px 14px;margin-bottom:14px}.coach-trap-alert{background:#ef44441a;border:1px solid rgba(239,68,68,.35);border-radius:12px;padding:12px 14px;margin-bottom:14px}.trap-item{display:flex;align-items:center;gap:8px;font-size:.88rem;flex-wrap:wrap}.coach-tip-box{background:#6366f11f;border:1px solid rgba(99,102,241,.3);border-radius:10px;padding:10px 14px;font-size:.82rem;color:#c7d2fe;margin-top:12px;line-height:1.45}.coach-history-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:18px;padding:18px 20px}.coach-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px;flex-wrap:wrap}.coach-history-list{display:flex;flex-direction:column;gap:10px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f172a99;border:1px solid var(--border-subtle);border-radius:12px;padding:12px 14px}.history-item-content{flex:1}.history-prompt{font-size:.78rem;color:var(--text-dim);margin-bottom:2px}.history-target{font-size:.95rem;font-weight:600;color:#fff}.history-trap{font-size:.75rem;color:#fbbf24;margin-top:4px}.history-actions{display:flex;align-items:center;gap:6px}.mini-btn-audio{width:32px;height:32px;border-radius:8px;border:1px solid rgba(16,185,129,.4);background:#10b98126;color:#34d399;display:flex;align-items:center;justify-content:center;cursor:pointer}.mini-btn-delete{width:32px;height:32px;border-radius:8px;border:1px solid rgba(239,68,68,.3);background:#ef44441a;color:#f87171;display:flex;align-items:center;justify-content:center;cursor:pointer}.mini-btn-delete:hover{background:#ef444440}.alternate-match-note{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:.8rem;color:#34d399}.judge-box{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:.82rem;line-height:1.45;background:#6366f114;border:1px solid rgba(99,102,241,.25);color:#c7d2fe}.judge-box.loading,.judge-box.error{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.judge-box.verdict-correct{background:#10b98114;border-color:#10b9814d;color:#a7f3d0}.judge-box.verdict-partial{background:#f59e0b14;border-color:#f59e0b4d;color:#fde68a}.judge-box.verdict-wrong{background:#ef444414;border-color:#ef44444d;color:#fecaca}.judge-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.judge-feedback{color:#e2e8f0}.judge-suggestion{margin-top:6px;color:var(--text-muted)}.judge-suggestion em{color:#f1f5f9}.accept-answer-btn{margin-top:10px}.pg-root{--pg-empty: rgba(255, 255, 255, .06);--pg-series: #3987e5;--pg-surface: #121826;position:relative;display:flex;flex-direction:column;gap:16px}.pg-loading{padding:40px 0;text-align:center;color:var(--text-muted)}.pg-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.pg-tile,.pg-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:14px 16px;min-width:0}.pg-tile-label{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--text-muted)}.pg-tile-value{font-size:1.6rem;font-weight:700;color:var(--text-main);margin:4px 0 2px}.pg-tile-sub{font-size:.72rem;color:var(--text-dim)}.pg-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;border:1px dashed var(--border-subtle);color:var(--text-muted);font-size:.88rem}.pg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pg-wide{grid-column:1 / -1}.pg-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}.pg-card-head h3{font-size:.9rem;font-weight:700;color:var(--text-main)}.pg-svg{width:100%;height:auto;display:block;overflow:visible}.pg-axis-text{font-size:10px;fill:var(--text-dim)}.pg-value-text{font-size:11px;font-weight:600;fill:var(--text-muted)}.pg-end-label{font-size:12px;font-weight:700;fill:var(--text-main)}.pg-grid-line{stroke:#ffffff12;stroke-width:1}.pg-crosshair{stroke:#ffffff40;stroke-width:1}.pg-line{fill:none;stroke:var(--pg-series);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.pg-dot{fill:var(--pg-series);stroke:var(--pg-surface);stroke-width:2}.pg-bar{fill:var(--pg-series)}.pg-heat-legend{display:flex;align-items:center;gap:3px;font-size:.7rem;color:var(--text-dim)}.pg-heat-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.pg-heat-legend span{margin:0 3px}.pg-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:var(--text-muted);margin-bottom:12px}.pg-legend span{display:inline-flex;align-items:center;gap:6px}.pg-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.pg-source-row+.pg-source-row{margin-top:12px}.pg-source-head{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--text-main);margin-bottom:6px}.pg-stack{display:flex;gap:2px;height:14px}.pg-stack-seg{min-width:4px}.pg-stack-seg:first-child{border-radius:4px 0 0 4px}.pg-stack-seg:last-child{border-radius:0 4px 4px 0}.pg-stack-seg:only-child{border-radius:4px}.pg-muted{color:var(--text-muted);font-size:.8rem}.pg-export-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.pg-hard-list{list-style:none;display:flex;flex-direction:column;gap:10px}.pg-hard-list li{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.pg-hard-list li:last-child{border-bottom:none;padding-bottom:0}.pg-hard-text{min-width:0}.pg-hard-prompt{font-size:.78rem;color:var(--text-muted)}.pg-hard-target{font-size:.9rem;color:var(--text-main);margin-top:2px}.pg-hard-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.72rem;color:var(--text-muted);white-space:nowrap}.pg-table-toggle{align-self:flex-start}.pg-table-wrap{overflow-x:auto}.pg-table{width:100%;border-collapse:collapse;font-size:.8rem;color:var(--text-main)}.pg-table th,.pg-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border-subtle);font-variant-numeric:tabular-nums}.pg-table th{color:var(--text-muted);font-weight:600}.pg-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 12px));pointer-events:none;background:#0b1220;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:6px 10px;font-size:.75rem;color:var(--text-muted);white-space:nowrap;z-index:20;box-shadow:0 6px 20px #0006}.pg-tooltip-title{color:var(--text-main);font-weight:600}@media(max-width:720px){.pg-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-grid{grid-template-columns:minmax(0,1fr)}.pg-hard-list li{flex-direction:column}.pg-hard-meta{flex-direction:row;align-items:flex-start;gap:10px}}.handsfree-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:8px 10px;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-card)}.handsfree-bar.active{position:sticky;top:calc(8px + var(--safe-top));z-index:30;border-color:#06b6d473;background:#082f49eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.handsfree-start-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;border:none;font-weight:700;font-size:.85rem;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan))}.handsfree-start-btn:disabled{opacity:.4;cursor:not-allowed}.handsfree-hint{font-size:.78rem;color:var(--text-muted);flex:1;min-width:180px}.handsfree-dot{width:10px;height:10px;border-radius:50%;background:var(--accent-cyan);animation:handsfree-pulse 1.2s ease-in-out infinite}.handsfree-bar.status-listening .handsfree-dot{background:#ef4444}.handsfree-status{flex:1;font-size:.88rem;font-weight:600;color:#e0f2fe}.handsfree-stop-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid rgba(239,68,68,.5);background:#ef44442e;color:#fecaca;font-weight:700;font-size:.9rem;cursor:pointer}@keyframes handsfree-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@media(prefers-reduced-motion:reduce){.handsfree-dot{animation:none}}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border-subtle);background:#ffffff0d;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.icon-btn:hover{color:var(--text-main);background:#ffffff1a}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:none;border-radius:12px;font-family:inherit;font-size:.9rem;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan))}.header-settings-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--border-subtle);background:#ffffff0d;color:var(--text-muted);font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.header-settings-btn:hover{color:var(--text-main);border-color:#6366f166}.sidebar-settings-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff0a;color:var(--text-muted);font-family:inherit;cursor:pointer;text-align:left}.sidebar-settings-btn:hover{color:var(--text-main);background:#ffffff14}.sidebar-settings-text{flex:1;display:flex;flex-direction:column;font-size:.7rem;line-height:1.3}.sidebar-settings-text strong{font-size:.85rem;color:var(--text-main)}.bottom-tabbar{display:none}@media(max-width:840px){.bottom-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:900;padding:6px 4px calc(6px + var(--safe-bottom));background:#080c14f0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle)}.keyboard-dock,.kbd-hint{display:none!important}}.bottom-tab{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:48px;padding:4px 0;border:none;background:none;color:var(--text-dim);font-family:inherit;font-size:.66rem;font-weight:600;cursor:pointer}.bottom-tab.active{color:var(--text-main)}.bottom-tab.active .bottom-tab-icon{background:#6366f138;color:#a5b4fc}.bottom-tab-icon{position:relative;width:44px;height:28px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.bottom-tab-badge{position:absolute;top:-4px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent-indigo);color:#fff;font-size:.62rem;font-weight:800;line-height:17px;text-align:center;border:2px solid #080C14}.bottom-tab-dot{position:absolute;top:2px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--accent-rose);border:2px solid #080C14}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#02060ea6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-fade .18s ease-out}.sheet-panel{position:relative;width:100%;max-width:520px;max-height:85vh;overflow-y:auto;background:#101726;border:1px solid var(--border-subtle);border-bottom:none;border-radius:22px 22px 0 0;padding:8px 18px calc(18px + var(--safe-bottom));outline:none;animation:sheet-up .22s ease-out}.sheet-handle{width:40px;height:4px;border-radius:2px;background:#ffffff2e;margin:4px auto 10px}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sheet-head h2{font-size:1.05rem;font-weight:700}@media(min-width:841px){.sheet-root{align-items:center}.sheet-panel{border-radius:20px;border-bottom:1px solid var(--border-subtle);padding-bottom:20px}.sheet-handle{display:none}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.settings-section-label{font-size:.72rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:6px 0 8px}.voice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.voice-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-main);font-family:inherit;text-align:left;cursor:pointer;min-width:0}.voice-option.selected{border-color:#6366f199;background:#6366f124}.voice-tag{font-size:.62rem;font-weight:800;padding:2px 5px;border-radius:5px;background:#ffffff14;color:var(--text-muted)}.voice-text{flex:1;min-width:0;display:flex;flex-direction:column}.voice-name{font-size:.88rem;font-weight:700}.voice-desc{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-check{color:#a5b4fc;flex-shrink:0}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:12px;background:#ffffff0a;border:1px solid var(--border-subtle);margin-bottom:18px}.segmented button{min-height:38px;border:none;border-radius:9px;background:none;color:var(--text-muted);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.segmented button.active{background:#6366f140;color:var(--text-main)}.segmented-sub{font-size:.72rem;opacity:.7}.settings-test-btn{width:100%}.more-list{display:flex;flex-direction:column;gap:8px}.more-item{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 14px;border-radius:14px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-muted);font-family:inherit;text-align:left;cursor:pointer}.more-item.active{border-color:#6366f180;background:#6366f11f}.more-item-text{flex:1;display:flex;flex-direction:column;font-size:.75rem}.more-item-text strong{font-size:.92rem;color:var(--text-main)}.lesson-tabs{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto;scrollbar-width:none}.lesson-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.lesson-tab-count{font-size:.7rem;padding:1px 7px;border-radius:999px;background:#ffffff14}.lesson-tab.active{color:var(--text-main);border-color:#6366f199;background:#6366f124}.lesson-tab.type-talk.active{color:var(--type-talk);border-color:var(--type-talk);background:var(--type-talk-bg)}.lesson-tab.type-slack.active{color:var(--type-slack);border-color:var(--type-slack);background:var(--type-slack-bg)}.lesson-picker{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 10px;margin-bottom:8px;scrollbar-width:thin}.lesson-chip{flex:0 0 210px;scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-main);font-family:inherit;text-align:left;cursor:pointer}.lesson-chip.type-talk{border-left:3px solid var(--type-talk)}.lesson-chip.type-slack{border-left:3px solid var(--type-slack)}.lesson-chip.selected{border-color:#6366f199;background:#6366f11f}.lesson-chip.type-talk.selected{border-color:var(--type-talk);background:var(--type-talk-bg)}.lesson-chip.type-slack.selected{border-color:var(--type-slack);background:var(--type-slack-bg)}.lesson-chip-top{display:flex;justify-content:space-between;align-items:center}.lesson-type{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.lesson-chip.type-talk .lesson-type{color:var(--type-talk)}.lesson-chip.type-slack .lesson-type{color:var(--type-slack)}.lesson-sub{font-size:.72rem;line-height:1.3;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.lesson-done{color:#34d399}.lesson-title{font-size:.86rem;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.lesson-progress{height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}.lesson-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-indigo),var(--accent-cyan))}.lesson-count{font-size:.7rem;color:var(--text-muted)}:focus-visible{outline:2px solid #818CF8;outline-offset:2px}button:focus:not(:focus-visible){outline:none}.error-badge{background:#ef44441f;border-color:#ef444466}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.lm-root,.lm-editor{display:flex;flex-direction:column;gap:14px;width:100%;max-width:860px;margin:0 auto}.lm-toolbar{display:flex;gap:10px;flex-wrap:wrap}.lm-search{flex:1 1 220px;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-dim)}.lm-search:focus-within{border-color:var(--border-focus)}.lm-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text-main);font-family:inherit;font-size:.9rem}.lm-add{flex:0 0 auto}.lm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lm-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--border-subtle);border-left:3px solid var(--type-talk);background:var(--bg-card)}.lm-row.type-slack{border-left-color:var(--type-slack)}.lm-row.is-deleted{opacity:.7;border-left-color:var(--text-dim)}.lm-row-main{flex:1;min-width:0}.lm-row-title{color:var(--text-main);font-weight:700;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lm-row-num{color:var(--text-dim);font-weight:600}.lm-row-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;color:var(--text-muted);font-size:.76rem}.lm-track{font-weight:700;color:var(--type-talk)}.lm-track.type-slack{color:var(--type-slack)}.lm-tag{padding:1px 8px;border-radius:999px;background:#ffffff12;color:var(--text-muted);font-size:.7rem;font-weight:600}.lm-row-actions,.lm-item-controls{display:flex;gap:4px;flex-shrink:0}.lm-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;min-height:40px;padding:0 10px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.8rem;font-weight:600;text-decoration:none;cursor:pointer}.lm-icon-btn:hover:not(:disabled){background:#ffffff12;color:var(--text-main)}.lm-icon-btn.danger:hover:not(:disabled){color:var(--accent-rose)}.lm-icon-btn:disabled{opacity:.3;cursor:not-allowed}.lm-empty{padding:18px 16px;border-radius:14px;border:1px dashed var(--border-subtle);color:var(--text-muted);font-size:.88rem;text-align:center}.lm-error{padding:10px 12px;border-radius:10px;background:#ef44441f;color:#fca5a5;font-size:.85rem}.lm-link{display:inline-flex;align-items:center;gap:6px;padding:0;border:none;background:none;color:var(--accent-cyan);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.lm-gap{margin-top:12px}.lm-editor-head{display:flex;flex-direction:column;gap:6px}.lm-editor-head h2{font-size:1.15rem;color:var(--text-main)}.lm-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lm-span-2{grid-column:1 / -1}.lm-field{display:flex;flex-direction:column;gap:6px;min-width:0}.lm-field>span{color:var(--text-muted);font-size:.76rem;font-weight:600}.lm-field input,.lm-field select,.lm-field textarea,.lm-turn-label{width:100%;min-height:42px;padding:9px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:#ffffff0a;color:var(--text-main);font-family:inherit;font-size:.9rem;line-height:1.45}.lm-field textarea{resize:vertical}.lm-field select option{background:var(--bg-secondary)}.lm-field input:focus,.lm-field select:focus,.lm-field textarea:focus,.lm-turn-label:focus{outline:none;border-color:var(--border-focus)}.lm-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:6px}.lm-section-head h3{font-size:.95rem;color:var(--text-main)}.lm-turn{display:flex;flex-direction:column;gap:12px}.lm-turn-head{display:flex;align-items:center;gap:8px}.lm-turn-label{flex:1;min-width:0;min-height:36px;padding:6px 10px;font-weight:700}span.lm-turn-label{border-color:transparent;background:none;color:var(--text-muted)}.lm-add-item{align-self:flex-start}.lm-savebar{position:sticky;bottom:calc(12px + var(--safe-bottom));display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:0 10px 30px #00000073;z-index:5}.lm-savebar-actions{display:flex;justify-content:flex-end;gap:10px}.lm-backup .pg-card-head h3{display:inline-flex;align-items:center;gap:8px}.lm-preview{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--border-focus);background:#6366f112}.lm-preview-title{display:flex;flex-direction:column;gap:2px;color:var(--text-main);font-size:.88rem}.lm-preview-table{width:100%;border-collapse:collapse;font-size:.82rem}.lm-preview-table th,.lm-preview-table td{padding:6px 8px;border-bottom:1px solid var(--border-subtle);text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.lm-preview-table th:first-child,.lm-preview-table td:first-child{text-align:left;color:var(--text-main)}.lm-preview-table th{font-weight:600;color:var(--text-dim)}.lm-preview-table td.is-added{color:var(--accent-emerald);font-weight:700}@media(max-width:600px){.lm-fields{grid-template-columns:minmax(0,1fr)}.lm-row{align-items:flex-start}.lm-row-title{white-space:normal}.lm-savebar{bottom:calc(76px + var(--safe-bottom))}}.rp-root{display:flex;flex-direction:column;gap:14px;width:100%;max-width:760px;margin:0 auto}.rp-start{display:flex;flex-direction:column;gap:14px}.rp-start-head{display:flex;gap:12px;align-items:flex-start;color:var(--type-talk)}.rp-start-head h2{font-size:1.15rem;color:var(--text-main);margin-bottom:4px}.rp-tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rp-track{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-muted);font-family:inherit;text-align:left;cursor:pointer}.rp-track-name{color:var(--text-main);font-weight:700;font-size:.92rem}.rp-track-count{font-size:.76rem}.rp-track.type-talk.active{border-color:var(--type-talk);background:var(--type-talk-bg);color:var(--type-talk)}.rp-track.type-slack.active{border-color:var(--type-slack);background:var(--type-slack-bg);color:var(--type-slack)}.rp-start-btn{align-self:stretch}.rp-session-head{display:flex;flex-direction:column;gap:6px}.rp-title{font-size:1.05rem;color:var(--text-main);line-height:1.35}.rp-meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--text-muted);font-size:.8rem}.rp-chips{display:flex;flex-wrap:wrap;gap:6px}.rp-thread{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.rp-turn{display:flex;flex-direction:column;gap:10px}.rp-bubble{max-width:92%;padding:12px 14px;border-radius:16px;font-size:.95rem;line-height:1.5}.rp-bubble.ai{align-self:flex-start;background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--type-talk);border-top-left-radius:4px;color:var(--text-main)}.rp-bubble.ai.type-slack{border-left-color:var(--type-slack)}.rp-bubble.user{align-self:flex-end;display:flex;gap:8px;align-items:baseline;background:#6366f12e;border:1px solid rgba(99,102,241,.35);border-top-right-radius:4px;color:var(--text-main)}.rp-mode{color:var(--text-muted);flex-shrink:0}.rp-bubble-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.rp-stage{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.rp-direction{font-style:italic;color:var(--text-muted);font-size:.82rem;margin-bottom:4px}.rp-line{white-space:pre-wrap}.rp-speak{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:999px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);cursor:pointer}.rp-speak:hover,.rp-speak.playing{color:var(--accent-cyan);border-color:var(--accent-cyan)}.rp-challenge{padding:12px 14px;border-radius:14px;border:1px dashed rgba(245,158,11,.45);background:#f59e0b12;color:var(--text-main);font-size:.88rem}.rp-challenge strong{display:block;margin-bottom:6px;color:#fcd34d;font-size:.82rem}.rp-challenge ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.rp-challenge li span{color:var(--text-muted);font-weight:600}.rp-polish{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid rgba(239,68,68,.3);background:#ef44440d;font-size:.88rem;color:var(--text-main)}.rp-polish.is-ok{border-color:#10b98159;background:#10b9810f}.rp-polish-verdict{display:flex;align-items:center;gap:6px;font-weight:700;color:#fca5a5}.rp-polish.is-ok .rp-polish-verdict{color:#6ee7b7}.rp-explain{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:0}.rp-explain dt{color:var(--text-muted);font-size:.78rem;font-weight:700;white-space:nowrap}.rp-explain dd{margin:0;line-height:1.5}.rp-contrast summary{cursor:pointer;color:var(--accent-cyan);font-weight:600;font-size:.82rem}.rp-contrast p{margin:6px 0 0;line-height:1.5;color:var(--text-muted)}.rp-weak{color:#fca5a5;font-weight:700}.rp-strong{color:#6ee7b7;font-weight:700}.rp-upgrades{display:flex;flex-direction:column;gap:6px}.rp-upgrade{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.rp-upgrade span{grid-column:1 / -1;color:var(--text-dim);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.rp-target{padding:10px 12px;border-radius:12px;background:#06b6d414;border:1px solid rgba(6,182,212,.3)}.rp-target-label{display:inline-flex;align-items:center;gap:4px;color:var(--type-talk);font-size:.74rem;font-weight:700}.rp-target-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;font-weight:700;font-size:.95rem}.rp-trap{margin-top:6px;color:var(--text-muted);font-size:.82rem}.rp-echo{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rp-echo-score{font-size:.82rem;font-weight:700}.rp-echo-score.good{color:#6ee7b7}.rp-echo-score.mid{color:#fcd34d}.rp-echo-score.low{color:#fca5a5}.rp-typing{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:.85rem}.rp-composer{position:sticky;bottom:calc(12px + var(--safe-bottom));display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;border:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:0 10px 30px #00000073;z-index:5}.rp-composer:focus-within{border-color:var(--border-focus)}.rp-composer.is-recording{border-color:#ef44448c}.rp-composer-label{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.rp-composer-label .lm-tag{text-transform:none;letter-spacing:0}.rp-composer textarea{width:100%;min-height:60px;max-height:220px;padding:10px 14px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff0a;color:var(--text-main);font-family:inherit;font-size:1rem;line-height:1.5;resize:none}.rp-composer textarea:focus{outline:none;border-color:var(--border-focus);background:#ffffff0f}.rp-composer textarea:disabled{opacity:.6}.rp-composer-bar{display:flex;align-items:center;gap:10px}.rp-mic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:999px;border:1px solid rgba(139,92,246,.5);background:#8b5cf62e;color:#c4b5fd;cursor:pointer}.rp-mic:hover:not(:disabled){background:#8b5cf64d}.rp-mic.recording{border-color:var(--accent-rose);background:var(--accent-rose);color:#fff;box-shadow:0 0 #ef444499;animation:rp-mic-pulse 1.4s ease-out infinite}.rp-mic:disabled{opacity:.5;cursor:not-allowed}@keyframes rp-mic-pulse{0%{box-shadow:0 0 #ef44448c}to{box-shadow:0 0 0 12px #ef444400}}@media(prefers-reduced-motion:reduce){.rp-mic.recording{animation:none}}.rp-composer-hint{flex:1;min-width:0;color:var(--text-muted);font-size:.78rem}.rp-composer-hint kbd{padding:1px 5px;border-radius:4px;border:1px solid var(--border-subtle);background:#ffffff0d;font-family:inherit;font-size:.7rem}.rp-composer .rp-send{flex:0 0 auto;min-height:44px;padding:0 22px}.rp-hint-touch{display:none}@media(hover:none){.rp-hint-keys{display:none}.rp-hint-touch{display:inline}}.rp-summary{display:flex;flex-direction:column;gap:12px;border-color:#10b98159}.rp-summary-text{color:var(--text-main);line-height:1.55;font-size:.92rem}.rp-scorecard{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rp-scorecard li{display:grid;grid-template-columns:minmax(120px,auto) auto 1fr;gap:4px 12px;align-items:center;font-size:.85rem}.rp-score-label{color:var(--text-main);font-weight:600}.rp-score-bar{display:inline-flex;gap:3px}.rp-score-bar span{width:16px;height:8px;border-radius:3px;background:#ffffff1a}.rp-score-bar span.on{background:var(--accent-emerald)}.rp-score-note{color:var(--text-muted);font-size:.8rem}.rp-sub{font-size:.85rem;color:var(--text-main)}.rp-top{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;color:var(--text-main);font-size:.9rem}@media(max-width:600px){.rp-composer{bottom:calc(76px + var(--safe-bottom));padding:10px}.rp-composer textarea{min-height:56px;font-size:16px}.rp-composer-hint{font-size:.74rem}.rp-composer-hint.idle{display:none}.rp-composer .rp-send{flex:1 1 auto}.rp-bubble{max-width:100%}.rp-scorecard li{grid-template-columns:1fr auto}.rp-score-note{grid-column:1 / -1}.rp-explain{grid-template-columns:1fr}}.usage-chip{display:inline-flex;align-items:center;gap:10px;height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--border-subtle);background:#ffffff0d;color:var(--text-muted);font-family:inherit;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer}.usage-chip:hover{color:var(--text-main);border-color:#ffffff2e}.usage-chip-label{color:var(--text-dim);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.usage-chip-part{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px}.usage-chip-part strong{color:var(--text-main);font-weight:700}.usage-chip-part.gemini svg{color:#a78bfa}.usage-chip-part.groq svg{color:var(--type-talk)}.usage-chip-name,.usage-chip-unit{color:var(--text-muted);font-weight:600}.usage-chip-short{display:none}.usage-chip.is-warn{border-color:#f59e0b8c;background:#f59e0b14}.usage-chip.is-over{border-color:#ef444499;background:#ef444414}.usage-chip.is-warn .usage-chip-alert{color:#fcd34d}.usage-chip.is-over .usage-chip-alert{color:#fca5a5}.usage-panel{display:flex;flex-direction:column;gap:16px}.usage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.usage-alerts{list-style:none;margin:0;padding:10px 12px;border-radius:10px;background:#f59e0b1a;color:#fcd34d;font-size:.82rem;display:flex;flex-direction:column;gap:4px}.usage-alerts li{display:flex;align-items:center;gap:6px}.usage-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.usage-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid var(--border-subtle);border-top:3px solid #A78BFA;background:#ffffff08;min-width:0}.usage-card.groq{border-top-color:var(--type-talk)}.usage-card h3{display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--text-main)}.usage-big{font-size:1.5rem;font-weight:800;color:var(--text-main);font-variant-numeric:tabular-nums}.usage-big small{font-size:.75rem;font-weight:600;color:var(--text-muted)}.usage-sub{color:var(--text-muted);font-size:.76rem}.usage-stats{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:4px 0 0;font-size:.8rem}.usage-stats dt{color:var(--text-dim)}.usage-stats dd{margin:0;color:var(--text-main);text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.usage-panel .bad{color:#fca5a5!important;font-weight:700}.usage-budget-bar{height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.usage-budget-bar span{display:block;height:100%;background:var(--accent-emerald)}.usage-budget-bar span.warn{background:var(--accent-amber)}.usage-budget-bar span.over{background:var(--accent-rose)}.usage-models{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid var(--border-subtle)}.usage-h{font-size:.82rem;color:var(--text-main);margin-bottom:8px}.usage-table td:first-child{white-space:nowrap}.usage-chart{display:flex;align-items:flex-end;gap:4px;height:96px}.usage-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}.usage-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}.usage-bars .bar{width:40%;max-width:8px;min-height:1px;border-radius:2px 2px 0 0}.usage-bars .bar.gemini,.usage-legend .dot.gemini{background:#a78bfa}.usage-bars .bar.groq,.usage-legend .dot.groq{background:var(--type-talk)}.usage-day-label{font-size:.62rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.usage-legend{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:.72rem;color:var(--text-muted)}.usage-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-left:8px}.usage-legend .dot:first-child{margin-left:0}.usage-errors{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.78rem;color:var(--text-muted)}.usage-errors li{display:flex;flex-wrap:wrap;gap:4px 10px}.usage-errors code{color:#fca5a5}.usage-muted{color:var(--text-dim)}.usage-note{color:var(--text-dim);font-size:.72rem;line-height:1.5}.usage-note a{color:var(--accent-cyan);text-decoration:none;display:inline-flex;align-items:center;gap:2px}@media(max-width:1100px){.usage-chip-label,.usage-chip-unit{display:none}}@media(max-width:840px){.usage-chip{padding:0 8px;gap:4px}.usage-chip-name,.usage-chip-long{display:none}.usage-chip-short{display:inline}.usage-chip-part{padding:2px 4px}}@media(max-width:600px){.usage-cards{grid-template-columns:minmax(0,1fr)}}@media(max-width:380px){.usage-chip-part.groq{display:none}}.home-root{gap:16px}.home-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:18px 20px;background:radial-gradient(120% 140% at 0% 0%,rgba(99,102,241,.16),transparent 55%),var(--bg-card)}.home-hero-main{display:flex;flex-direction:column;gap:6px;min-width:0}.home-hello{font-size:1.2rem;font-weight:800;color:var(--text-main)}.home-hero-sub{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.88rem}.home-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.home-cta{display:flex;flex-direction:column;gap:8px;min-width:230px}.home-cta .lesson-action{flex:0 0 auto}.home-start{min-height:52px;font-size:.95rem}.home-done{color:#6ee7b7;font-weight:700;font-size:.92rem;text-align:center}.home-ring-wrap{position:relative}.home-ring{position:relative;display:grid;place-items:center;width:80px;height:80px;padding:0;border:none;background:none;cursor:pointer}.home-ring svg{position:absolute;top:0;right:0;bottom:0;left:0}.home-ring-bg{fill:none;stroke:#ffffff14;stroke-width:8}.home-ring-fg{fill:none;stroke:var(--accent-cyan);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.home-ring-fg.reached{stroke:var(--accent-emerald)}.home-ring-text{position:relative;display:flex;align-items:baseline;color:var(--text-main);font-variant-numeric:tabular-nums}.home-ring-text strong{font-size:1.35rem;font-weight:800}.home-ring-text small{font-size:.78rem;color:var(--text-muted)}.home-goal-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:10;display:flex;gap:4px;padding:6px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:0 10px 30px #00000073}.home-habit-row{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);align-items:center;gap:24px}.home-habit-row .pg-heatmap{width:100%}.home-habit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.home-habit-stat{display:flex;flex-direction:column;gap:2px;min-width:0}.home-habit-stat strong{color:var(--text-main);font-size:1.05rem;font-variant-numeric:tabular-nums}.home-hours{margin-top:14px}.home-hours-bars{display:flex;align-items:flex-end;gap:2px;height:44px}.home-hour{flex:1;min-width:0;border-radius:2px 2px 0 0;background:#3987e573}.home-hour.peak{background:#6da7ec}.home-hours-axis{display:flex;justify-content:space-between;margin-top:4px;font-size:.66rem;color:var(--text-dim)}.home-week{display:flex;align-items:flex-end;gap:8px;height:130px}.home-week-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}.home-week-count{font-size:.7rem;color:var(--text-muted);min-height:1em;font-variant-numeric:tabular-nums}.home-week-bar{flex:1;width:100%;max-width:30px;display:flex;align-items:flex-end;border-radius:6px;background:#ffffff0a;overflow:hidden}.home-week-bar span{width:100%;background:#3987e5;border-radius:6px 6px 0 0}.home-week-day.today .home-week-bar{box-shadow:inset 0 0 0 1px var(--accent-cyan)}.home-week-day.today .home-week-bar span{background:var(--accent-cyan)}.home-week-day.future{opacity:.4}.home-week-label{display:flex;flex-direction:column;align-items:center;font-size:.72rem;color:var(--text-dim);font-weight:600;line-height:1.25}.home-week-label small{font-size:.64rem;font-weight:500;font-variant-numeric:tabular-nums}.home-week-day.today .home-week-label{color:var(--accent-cyan)}.home-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.home-compare-item{display:flex;flex-direction:column;gap:2px}.home-compare-item strong{color:var(--text-main);font-size:1.05rem;font-variant-numeric:tabular-nums}.home-delta{display:inline-flex;align-items:center;gap:3px;font-size:.74rem;color:var(--text-muted)}.home-delta.up{color:#6ee7b7}.home-delta.down{color:#fca5a5}.home-delta small{color:var(--text-dim)}.home-suggest{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.home-suggest-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-main);font-family:inherit;text-align:left}button.home-suggest-item{cursor:pointer}button.home-suggest-item:hover{background:var(--bg-card-hover)}.home-suggest-icon{flex-shrink:0;color:var(--accent-cyan)}.home-suggest-icon.t-mistake-tag,.home-suggest-icon.t-mistakes{color:#f87171}.home-suggest-icon.t-hard{color:#fbbf24}.home-suggest-icon.t-new-lesson,.home-suggest-icon.t-resume{color:#a78bfa}.home-suggest-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.home-suggest-text strong{font-size:.86rem}.home-suggest-text span{font-size:.78rem;color:var(--text-muted)}.home-suggest-go{color:var(--text-dim);flex-shrink:0}.home-root .pg-card-head h3{display:inline-flex;align-items:center;gap:6px}.home-back-pill{cursor:pointer;font-family:inherit;color:var(--text-main)}.home-back-pill:hover{border-color:var(--border-focus)}@media(max-width:840px){.home-hero{grid-template-columns:auto 1fr}.home-cta{grid-column:1 / -1;min-width:0}}@media(max-width:1100px){.home-habit-row{grid-template-columns:minmax(0,1fr);gap:14px}}@media(max-width:480px){.home-hero{padding:14px;gap:12px}.home-hello{font-size:1.05rem}}.pg-range{margin-left:6px;color:var(--text-dim);font-size:.76rem;font-weight:500;font-variant-numeric:tabular-nums}.pg-axis-sub{font-size:9px;opacity:.8}@media(max-width:600px){.top-app-header{gap:8px;padding:8px 10px}.top-header-left{flex:1 1 auto;overflow:hidden}.top-header-right{gap:6px}.breadcrumb-sub,.breadcrumb-separator,.usage-chip-part.groq{display:none}}.rp-bubble.user,#rp-summary{scroll-margin-top:96px}.rp-polish-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rp-polish-head .rp-polish-verdict{display:inline-flex;align-items:center;gap:6px}.rp-polish code,.rp-polish-mini code{padding:1px 6px;border-radius:5px;background:#06b6d41f;color:#a5f3fc;font-family:inherit;font-size:.92em;font-weight:600}.rp-target-line q{font-size:1.02rem}.rp-echo{margin-top:8px}.rp-echo-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(139,92,246,.45);background:#8b5cf624;color:#c4b5fd;font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.rp-echo-btn:hover:not(:disabled){background:#8b5cf642}.rp-echo-btn:disabled{opacity:.5}.rp-more summary{cursor:pointer;color:var(--accent-cyan);font-weight:600;font-size:.82rem}.rp-more[open] summary{margin-bottom:10px}.rp-more p{margin:8px 0 0;line-height:1.5;color:var(--text-muted)}.rp-polish-mini{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:12px;border:1px solid rgba(239,68,68,.25);background:#ef44440a;color:#fca5a5;font-family:inherit;font-size:.85rem;text-align:left;cursor:pointer}.rp-polish-mini.is-ok{border-color:#10b9814d;background:#10b9810d;color:#6ee7b7}.rp-polish-mini:hover{background:#ffffff0d}.rp-polish-mini-text{flex:1;min-width:0;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-polish-mini>svg:last-child{color:var(--text-dim);flex-shrink:0}.rp-steps{display:inline-flex;align-items:center;gap:4px}.rp-steps>span{margin-left:6px}.rp-step{width:18px;height:6px;border-radius:3px;background:#ffffff1a}.rp-step.ok{background:var(--accent-emerald)}.rp-step.fix{background:var(--accent-amber)}.rp-step.current{background:transparent;box-shadow:inset 0 0 0 1.5px var(--accent-cyan)}.pg-skills{display:flex;flex-direction:column;gap:16px}.pg-skill-track{display:flex;flex-direction:column;gap:8px}.pg-skill-track-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:.85rem;color:var(--text-main)}.pg-skill-row{display:grid;grid-template-columns:170px minmax(0,1fr) 64px;align-items:center;gap:10px}.pg-skill-label{font-size:.8rem;color:var(--text-muted)}.pg-skill-cells{display:flex;gap:4px;flex-wrap:wrap}.pg-skill-cell{display:inline-grid;place-items:center;width:26px;height:22px;border-radius:5px;font-style:normal;font-size:.72rem;font-weight:700;color:#0b1220;background:#ffffff14}.pg-skill-cell.s1{background:#f87171}.pg-skill-cell.s2{background:#fb923c}.pg-skill-cell.s3{background:#facc15}.pg-skill-cell.s4{background:#86efac}.pg-skill-cell.s5{background:#34d399}.pg-skill-avg{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:4px;font-variant-numeric:tabular-nums;color:var(--text-main)}.pg-skill-avg span{font-size:.72rem;color:var(--text-muted)}.pg-skill-avg span.up{color:#6ee7b7}.pg-skill-avg span.down{color:#fca5a5}.pg-skill-rubric summary{cursor:pointer;color:var(--accent-cyan);font-size:.8rem;font-weight:600}.pg-skill-rubric>div{margin-top:8px;font-size:.78rem;color:var(--text-muted)}.pg-skill-rubric ul{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}@media(max-width:600px){.pg-skill-row{grid-template-columns:minmax(0,1fr) 56px}.pg-skill-cells{grid-column:1 / -1;grid-row:2}}
