:root{--green: #58cc02;--green-dark: #58a700;--green-shadow: #4caf00;--green-light: color-mix(in srgb, var(--green) 85%, #fff);--blue: #1cb0f6;--blue-dark: #1899d6;--blue-shadow: #1899d6;--purple: #ce82ff;--purple-shadow: #a568cc;--gold: #ffc800;--gold-dark: #e6a500;--gold-shadow: #e6a500;--orange: #ff9600;--orange-shadow: #cc7800;--red: #ff4b4b;--red-shadow: #cc3a3a;--teal: #2b9348;--teal-shadow: #22753a;--unit-4: var(--orange);--unit-5: var(--red);--unit-6: var(--teal);--ink: #1c1f3a;--ink-soft: #6b7083;--bg: #f6f8fb;--bg-soft: #eef1f6;--safe-bottom: calc(env(safe-area-inset-bottom, 0px)/2) ;--dock-clearance: calc(60px + max(14px, env(safe-area-inset-bottom, 0px))) ;--card: #ffffff;--line: #e6e9f0;--locked: #e9ecf1;--locked-ink: #a3a8b5;--font: "Nunito", "Noto Sans JP", system-ui, sans-serif;--font-display: "Bricolage Grotesque", var(--font);--radius: 16px;--shadow-card: 0 2px 10px rgba(28, 31, 58, .06), 0 1px 2px rgba(28, 31, 58, .04);--shadow-press: 0 1px 3px rgba(28, 31, 58, .08)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;background:var(--bg)}body{margin:0;font-family:var(--font);color:var(--ink);overscroll-behavior-y:none}h1:not(.md h1){font-family:var(--font-display)}button{font-family:inherit;cursor:pointer;color:inherit}.app-shell{max-width:480px;margin:0 auto;min-height:100%;background:var(--bg);position:relative;display:flex;flex-direction:column}.btn{border:none;border-radius:var(--radius);padding:14px 18px;font-weight:800;font-size:16px;letter-spacing:.4px;color:#fff;background:linear-gradient(135deg,var(--green-light),var(--green-dark));box-shadow:0 4px 14px color-mix(in srgb,var(--green-dark) 28%,transparent);transition:transform .08s ease,box-shadow .08s ease;width:100%}.btn:active{transform:scale(.98);box-shadow:0 2px 6px color-mix(in srgb,var(--green-dark) 22%,transparent)}.btn.blue{background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 80%,#fff),var(--blue-dark));box-shadow:0 4px 14px #1899d647}.btn.blue:active{box-shadow:0 2px 6px #1899d638}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-card)}.btn.ghost:active{box-shadow:var(--shadow-press)}.btn.gold{background:linear-gradient(135deg,#ffd43b,var(--gold-dark));box-shadow:0 4px 14px #e6a50047;color:#5a4100}.btn:disabled{opacity:.5;box-shadow:none}.topbar{display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top,0px)) 16px 16px;position:sticky;top:0;z-index:10;background:linear-gradient(to bottom,var(--bg) calc(100% - 20px),color-mix(in srgb,var(--bg) 0%,transparent))}.topbar.topbar-border{background:var(--bg);border-bottom:1px solid var(--line)}.topbar .back{background:#fff;border:1px solid var(--line);color:var(--ink);width:46px;height:46px;border-radius:14px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-card);transition:transform .05s ease,box-shadow .05s ease}.topbar .back:active{transform:scale(.96);box-shadow:var(--shadow-press)}.topbar h1{font-size:20px;margin:0;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .spacer{flex:1}.title-block{display:flex;flex-direction:column;line-height:1.1;gap:4px;min-width:0;flex:1}.logo-badge{width:76px;height:76px;border-radius:22px;background:var(--green);box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent);display:flex;align-items:center;justify-content:center;margin:8px auto 0;overflow:hidden}.logo-badge img{width:78%;height:78%;object-fit:contain}.center-col{padding:calc(24px + env(safe-area-inset-top,0px)) 24px max(24px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:16px}.hero-title{font-size:26px;font-weight:900;margin:8px 0 0}.hero-sub{color:var(--ink-soft);margin:0 0 8px;font-weight:600}.lang-card{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-card);text-align:left;width:100%}.lang-card:active{transform:scale(.97);box-shadow:var(--shadow-press)}.lang-card.locked{opacity:.55}.lang-card .flag{box-shadow:0 0 0 1px #1c1f3a14}.lang-card .names{flex:1}.lang-card .name{font-weight:800;font-size:18px}.lang-card .native{color:var(--ink-soft);font-weight:600}.friends-select{padding-top:calc(40px + env(safe-area-inset-top,0px));box-sizing:border-box;min-height:100vh;min-height:100dvh}.friends-title{font-size:34px;font-weight:900;line-height:1.05;letter-spacing:-.02em;margin:0}.friends-sub{color:var(--ink-soft);font-size:16px;line-height:1.5;margin:0 0 8px}.friends-back{align-self:flex-start;background:none;border:0;padding:0;color:var(--ink-soft);font-weight:700}.friend-card{display:flex;align-items:center;gap:14px;padding:14px;border:0;border-radius:22px;background:#fff;box-shadow:var(--shadow-card);text-align:left;width:100%}.friend-card:active:not(:disabled){transform:scale(.97);box-shadow:var(--shadow-press)}.friend-card.locked{opacity:.55}.friends-sheet-list{display:flex;flex-direction:column;gap:12px}.friend-card.sel{box-shadow:0 0 0 2px var(--green-dark),var(--shadow-card)}.friend-avatar.friend-avatar-add{background:var(--line);color:var(--ink-soft)}.friend-avatar{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--avatar-color, var(--green));color:#fff;font-weight:800;font-size:20px}.friend-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.friend-name{font-weight:800;font-size:16px}.friend-lang{color:var(--ink-soft);font-weight:700}.friend-greeting{color:var(--ink-soft);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-card{padding:18px}.level-card .friend-name{font-size:18px}.level-card .friend-greeting{font-size:15px;white-space:normal}.friends-perks{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}.friends-perks li{display:flex;align-items:center;gap:10px;font-size:15px}.friends-signin{margin-top:auto;padding:24px 0 8px;background:none;border:0;color:var(--accent, var(--green));font-weight:800;font-size:15px}.lang-card .lock{color:var(--locked-ink);font-size:20px}.prof-card{padding:18px 20px 16px;border-radius:20px;background:var(--card);box-shadow:var(--shadow-card)}.prof-title{margin-bottom:16px;font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--ink)}.prof-level{color:var(--green-shadow)}.prof-card.calibrating .prof-level{color:var(--ink-soft)}.prof-track{position:relative;height:10px;border-radius:999px;background:var(--line)}.prof-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--green)}.prof-band{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:color-mix(in srgb,var(--green) 35%,#fff)}.prof-knob{position:absolute;top:50%;width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--green-shadow);box-shadow:0 1px 4px #1c1f3a40;transform:translate(-50%,-50%)}.prof-scale{position:relative;height:18px;margin-top:10px;font-size:14px;font-weight:800;color:var(--ink-soft)}.prof-scale span{position:absolute;top:0}button.prof-card{display:block;width:100%;border:none;font:inherit;text-align:left;cursor:pointer}button.prof-card>span{display:block}button.prof-card:active:not(:disabled){transform:scale(.99)}button.prof-card:disabled{cursor:default}.pf-sheet{max-height:88vh;overflow-y:auto;padding-top:12px;animation:rise .28s ease}.pf-sheet.out{animation:sink .22s ease forwards}.pf-sheet .pf-head{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:6px;text-align:left}.sheet .pf-title{margin:0;text-align:left;font-family:var(--font-display);font-size:26px;font-weight:800;line-height:1.15;color:var(--ink)}.pf-sub{margin:6px 0 0;font-size:15px;font-weight:600;color:var(--ink-soft)}.pf-sub b{color:var(--ink)}.pf-section{margin-top:22px}.sheet .pf-section-title{margin:0;font-size:17px;font-weight:900;color:var(--ink)}.pf-note{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 12px;font-size:13px;font-weight:600;color:var(--ink-soft)}.pf-swatch{width:10px;height:10px;border-radius:3px}.pf-pos.s2{background:var(--green)}.pf-pos.s1{background:color-mix(in srgb,var(--green) 60%,#fff)}.pf-pos.s0{background:color-mix(in srgb,var(--green) 30%,#fff)}.pf-neg.s2{background:var(--red)}.pf-neg.s1{background:color-mix(in srgb,var(--red) 60%,#fff)}.pf-neg.s0{background:color-mix(in srgb,var(--red) 30%,#fff)}.pf-scale-key{margin-top:4px}.pf-scale-bar{display:block;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--green),color-mix(in srgb,var(--green) 30%,#fff) 45%,color-mix(in srgb,var(--red) 30%,#fff) 55%,var(--red))}.pf-scale-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:12px;font-weight:700;color:var(--ink-soft)}.pf-chart{position:relative;padding-bottom:22px}.pf-chart-top{position:absolute;top:-16px;right:0;font-size:11px;font-weight:800;color:var(--ink-soft)}.pf-bars{display:flex;gap:1px;height:96px;border-bottom:2px solid var(--line)}.pf-col{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}.pf-col.first:after{content:"";position:absolute;left:0;bottom:-12px;height:10px;border-left:2px solid var(--line)}.pf-stack{display:flex;flex-direction:column;border-radius:3px 3px 0 0;overflow:hidden}.pf-stack>span{flex-basis:0}.pf-fill{background:var(--line)}.pf-col.in-range .pf-fill{background:color-mix(in srgb,var(--green) 45%,#fff)}.pf-col.peak .pf-fill{background:var(--green)}.pf-col.in-range,.pf-col.peak{background:color-mix(in srgb,var(--green) 8%,transparent)}.pf-mastery{background:var(--green)}.pf-basis .pf-bars{height:120px;border-bottom:none}.pf-basis .pf-col{justify-content:stretch}.pf-half{flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end}.pf-half.up{border-bottom:2px solid var(--line)}.pf-half.down{justify-content:flex-start}.pf-stack.down{flex-direction:column-reverse;border-radius:0 0 3px 3px}.pf-x{position:absolute;left:5px;top:calc(100% + 4px);white-space:nowrap;font-size:12px;font-weight:800;color:var(--ink-soft)}.pf-empty{margin:0;padding:18px 0;font-size:14px;font-weight:600;text-align:center;color:var(--ink-soft)}.pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}.pf-stats>div{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:14px;background:var(--bg-soft)}.pf-stats b{font-size:20px;font-weight:900;color:var(--ink)}.pf-stats span{font-size:12px;font-weight:700;line-height:1.25;color:var(--ink-soft)}.learn-kind-tabs{margin:22px 16px 18px}.learn-diff-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 16px;margin:-4px 0 6px}.learn-diff-tabs::-webkit-scrollbar{display:none}.learn-diff-tab{flex-shrink:0;min-width:46px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);font:inherit;font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;cursor:pointer}.learn-diff-tab:active:not(:disabled){transform:scale(.96)}.learn-diff-tab.sel{border-color:var(--green);background:var(--green);color:#fff}.learn-diff-tab:disabled{color:var(--locked-ink);background:transparent;cursor:default}.learn-units{padding:4px 16px 24px}.learn-unit{border-bottom:1px solid var(--line)}.learn-unit-head{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:12px 0;border:0;background:none;font:inherit;text-align:left;color:var(--ink);cursor:pointer}.learn-unit-name{flex:1;min-width:0;font-size:16px;font-weight:900;line-height:1.3}.learn-unit-chevron{display:flex;transform:rotate(-90deg);transition:transform .2s ease}.learn-unit.open .learn-unit-chevron{transform:rotate(0)}.learn-unit-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.learn-unit.open .learn-unit-body{grid-template-rows:1fr}.learn-unit-inner{min-height:0;overflow:hidden}.learn-unit.open .learn-unit-inner{padding-bottom:8px}.learn-level{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:8px 0 8px 30px;border:0;border-radius:12px;background:none;font:inherit;text-align:left;color:var(--ink);cursor:pointer}.learn-level:active{background:var(--bg-soft)}.learn-level-name{flex:1;min-width:0;font-size:15px;font-weight:700;line-height:1.3}.mastery-ring{flex-shrink:0;transform:rotate(-90deg)}.mastery-ring circle{fill:none}.mastery-ring-track{stroke:var(--line)}.mastery-ring-estimated{stroke:color-mix(in srgb,var(--green) 35%,#fff)}.mastery-ring-observed{stroke:var(--green)}.diff-sheet-overlay{animation:fadeIn .22s ease}.diff-sheet-overlay.out{animation:fadeOut .2s ease forwards}.diff-sheet{display:flex;flex-direction:column;gap:4px;padding-top:12px;animation:rise .28s ease}.diff-sheet.out{animation:sink .22s ease forwards}.diff-sheet-handle{width:36px;height:4px;border-radius:999px;background:var(--line);margin:0 auto 10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes sink{0%{transform:translateY(0)}to{transform:translateY(100%)}}.unit-card{display:flex;flex-direction:column;gap:10px;text-align:left;width:calc(100% - 32px);margin:20px 16px 8px;padding:14px 18px;border:none;border-radius:var(--radius);color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--unit-shadow, rgba(0, 0, 0, .12)) 35%,transparent);transition:transform .06s ease,box-shadow .06s ease}.unit-card:active:not(:disabled){transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--unit-shadow, rgba(0, 0, 0, .12)) 25%,transparent)}.unit-card:disabled{cursor:default}.unit-card.locked{background:var(--locked);color:var(--locked-ink);box-shadow:0 4px 14px color-mix(in srgb,#e2e2e2 35%,transparent)}.unit-card.locked .unit-progress-bar{background:#0000000f}.unit-card.locked .unit-progress-fill{background:var(--locked-ink)}.usage-heatmap{margin:0 16px 24px;padding:16px;background:var(--card);border-radius:18px;box-shadow:var(--shadow-card)}.usage-heatmap-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.usage-heatmap-title{margin:0;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink)}.usage-heatmap-meta{font-size:13px;font-weight:600;color:var(--ink-soft);white-space:nowrap}.usage-heatmap-body{display:flex;gap:8px}.usage-heatmap-labels{display:grid;grid-template-rows:repeat(7,1fr);gap:4px;font-size:11px;font-weight:700;color:var(--ink-soft)}.usage-heatmap-labels span{display:flex;align-items:center}.usage-heatmap-grid{position:relative;flex:1;display:grid;grid-template-rows:repeat(7,auto);grid-auto-flow:column;gap:4px}.usage-cell{aspect-ratio:1;border-radius:4px;background:var(--bg-soft);cursor:pointer}.usage-cell[data-level="1"]{background:color-mix(in srgb,var(--green-dark) 20%,#fff)}.usage-cell[data-level="2"]{background:color-mix(in srgb,var(--green-dark) 40%,#fff)}.usage-cell[data-level="3"]{background:color-mix(in srgb,var(--green-dark) 65%,#fff)}.usage-cell[data-level="4"]{background:var(--green-dark)}.usage-cell[data-level="5"]{background:color-mix(in srgb,var(--green-dark) 70%,var(--ink))}.usage-cell.today{box-shadow:0 0 0 2px var(--ink)}.usage-cell.future{visibility:hidden}.usage-tip{position:absolute;z-index:5;width:160px;transform:translate(-50%,calc(-100% - 8px));pointer-events:none;background:var(--ink);color:#fff;font-size:12.5px;line-height:1.5;padding:8px 10px;border-radius:10px;box-shadow:0 4px 12px #0003}.usage-tip-day{font-weight:800;margin-bottom:2px}.usage-tip-row{display:flex;justify-content:space-between;gap:8px;font-weight:600;opacity:.9}.unit-hero{margin:16px 16px 24px;padding:22px 22px 24px;border-radius:20px;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 75%,#fff),var(--tint) 55%,color-mix(in srgb,var(--tint) 85%,#000));box-shadow:0 8px 22px color-mix(in srgb,var(--tint) 30%,transparent)}.unit-hero-k{font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;opacity:.9}.unit-hero-t{font-size:30px;font-weight:900;line-height:1.15;margin:6px 0 18px}.unit-hero-progress{display:flex;align-items:center;gap:16px;font-weight:800;font-size:15px}.unit-hero-progress .unit-progress-bar{flex:1}.unit-header-text{flex:1;min-width:0}.unit-card .k{font-size:12px;font-weight:800;opacity:.9;text-transform:uppercase;letter-spacing:1px}.unit-card .t{font-size:20px;font-weight:900}.unit-card svg{display:block;opacity:.9}.unit-progress{display:flex;flex-direction:column;gap:4px}.unit-progress-bar{width:100%;height:10px;border-radius:999px;background:#ffffff59;overflow:hidden}.unit-progress-fill{height:100%;background:#fff;border-radius:999px;transition:width .3s ease}.unit-progress-labels{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;letter-spacing:.3px;opacity:.95}.unit-section{padding:4px 16px 20px}.unit-section-title{margin:0 0 12px 2px;font-size:20px;font-weight:900;color:var(--ink)}.unit-section-toggle{display:flex;align-items:center;gap:4px;margin-left:-6px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}.unit-section-chevron{display:flex;transform:rotate(-90deg);transition:transform .2s ease}.unit-section.open .unit-section-chevron{transform:rotate(0)}.unit-section-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.unit-section.open .unit-section-body{grid-template-rows:1fr}.unit-section-inner{min-height:0;overflow:hidden;padding:0 16px;margin:0 -16px;transition:padding .25s ease,margin .25s ease}.unit-section.open .unit-section-inner{padding:4px 16px 20px;margin:-4px -16px -20px}.unit-section:not(.open){padding-bottom:8px}.vocab-scroll{flex:1;overflow-y:auto;padding:16px 16px var(--dock-clearance)}.vocab-stats{display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:14px;padding:18px 0;background:var(--card);border-radius:20px;box-shadow:var(--shadow-card)}.vocab-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 8px}.vocab-stat+.vocab-stat{border-left:1px solid var(--line)}.vocab-stat-n{font-size:30px;font-weight:900;line-height:1.1;color:var(--ink)}.vocab-stat-k{font-size:15px;font-weight:600;color:var(--ink-soft)}.vocab-list{display:flex;flex-direction:column;gap:10px}.vocab-card{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px}.vocab-item-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:0;background:none;border:none}.vocab-jp .vocab-word,.vocab-jp .vocab-kana,.vocab-jp .vocab-en{transition:color .15s ease}.vocab-jp.playing .vocab-word,.vocab-jp.playing .vocab-kana,.vocab-jp.playing .vocab-en{color:var(--green)}.vocab-jp.loading .vocab-word,.vocab-jp.loading .vocab-kana,.vocab-jp.loading .vocab-en{animation:vocabTermLoading .9s ease-in-out infinite}@keyframes vocabTermLoading{0%,to{color:var(--green-dark)}50%{color:color-mix(in srgb,var(--green) 55%,#fff)}}.vocab-word{font-family:"Noto Sans JP",var(--font);font-size:22px;font-weight:900;line-height:1.2}.vocab-kana{font-family:"Noto Sans JP",var(--font);font-size:13px;font-weight:500;color:#9a9eae;margin-top:4px}.vocab-en{font-weight:700;font-size:15px;color:var(--ink);margin-top:6px}.vocab-card-progress{flex-shrink:0;display:flex;align-items:center;gap:8px}.vocab-mastery{margin-bottom:14px;padding:18px 20px;background:var(--card);border-radius:20px;box-shadow:var(--shadow-card)}.vocab-mastery-head{display:flex;align-items:center;gap:16px}.vocab-mastery-ring{position:relative;flex-shrink:0;display:flex}.vocab-mastery-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:var(--ink)}.vocab-mastery-title{font-size:17px;font-weight:900;color:var(--ink)}.vocab-mastery-sub{margin:4px 0 0;font-size:14px;font-weight:600;line-height:1.4;color:var(--ink-soft)}.vocab-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px}.vocab-empty-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--ink-soft);background:var(--bg-soft)}.vocab-empty-title{font-size:18px;font-weight:900;color:var(--ink)}.vocab-empty-body{max-width:280px;margin:6px 0 0;font-size:15px;font-weight:600;line-height:1.45;color:var(--ink-soft)}.practice-sheet{display:flex;flex-direction:column;padding-top:12px;padding-bottom:max(20px,env(safe-area-inset-bottom,0px));animation:rise .28s ease}.practice-sheet.out{animation:sink .22s ease forwards}.practice-sheet h2{text-align:center}.practice-sheet p.sub{text-align:center;margin-bottom:16px}.dir-chip{display:flex;align-items:center;gap:10px;align-self:center;margin-bottom:20px;padding:9px 14px;background:var(--bg-soft);border:none;border-radius:999px;font-size:13px;font-weight:900;letter-spacing:.6px;transition:transform .06s ease,background .15s ease}.dir-chip:active{transform:scale(.96);background:var(--line)}.dir-chip svg{display:block;flex-shrink:0}.dir-chip-label{display:flex;align-items:center;gap:8px;min-width:0;animation:dirSwap .25s ease}.dir-side{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes dirSwap{0%{opacity:.2;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.pr-games{display:flex;flex-direction:column;gap:12px}.pr-game{width:100%;padding:14px 18px;border:none;border-radius:var(--radius);background:var(--tint);box-shadow:0 4px 14px color-mix(in srgb,var(--tint-shadow) 35%,transparent);color:#fff;text-align:center;font-size:16px;font-weight:800;letter-spacing:.4px;transition:transform .05s ease,box-shadow .05s ease}.pr-game:active{transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--tint-shadow) 25%,transparent)}.pr-scroll{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:16px}.pr-scroll.docked{padding-bottom:var(--dock-clearance)}.pr-center{flex:1;display:flex;flex-direction:column;justify-content:center}.pr-progress{display:flex;align-items:center;gap:10px;margin-bottom:16px}.pr-bar{flex:1;height:12px;border-radius:999px;background:var(--line);overflow:hidden}.pr-bar-fill{height:100%;border-radius:999px;background:var(--green);transition:width .25s ease}.pr-count{font-size:13px;font-weight:800;color:var(--ink-soft)}.pr-done{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 18px;text-align:center}.pr-done-badge{display:grid;place-items:center;margin-bottom:4px;animation:prPop .4s ease}.pr-done-title{font-size:22px;font-weight:900}.pr-done-line{font-weight:700;color:var(--ink-soft)}@keyframes prPop{0%{transform:scale(.5)}60%{transform:scale(1.12)}to{transform:scale(1)}}.flip-card{display:block;width:100%;height:280px;padding:0;background:none;border:none;perspective:1200px}.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s ease}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.flip-back{transform:rotateY(180deg);background:color-mix(in srgb,var(--green) 9%,#fff);border-color:var(--green);box-shadow:0 4px 14px color-mix(in srgb,var(--green) 35%,transparent)}.fc-term{font-family:"Noto Sans JP",var(--font);font-size:32px;font-weight:900;line-height:1.2}.fc-reading{font-family:"Noto Sans JP",var(--font);font-size:16px;font-weight:700;color:var(--ink-soft)}.fc-def-front{font-size:26px;font-weight:900;line-height:1.25}.fc-def{font-size:19px;font-weight:800;color:var(--green-dark);line-height:1.3}.fc-rule{width:46px;height:3px;border-radius:999px;background:var(--green);opacity:.35;margin:2px 0}.fc-tap{position:absolute;bottom:14px;font-size:11px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.8px;opacity:.7}.fc-audio{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px auto 0;padding:10px 18px;font-weight:800;font-size:14px;color:var(--blue);background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-card);transition:transform .06s ease,box-shadow .06s ease,color .15s ease}.fc-audio:active{transform:scale(.97);box-shadow:var(--shadow-press)}.fc-audio.playing{color:var(--blue-dark)}.fc-audio.loading{animation:fcAudioLoading .9s ease-in-out infinite}.fc-audio.off{color:var(--ink-soft)}@keyframes fcAudioLoading{0%,to{color:var(--blue-dark)}50%{color:color-mix(in srgb,var(--blue) 55%,#fff)}}.fc-grade{display:flex;gap:10px}.fc-grade .btn{flex:1}.match-heads{display:flex;gap:10px;margin-bottom:8px}.match-heads span{flex:1;font-size:11px;font-weight:900;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.6px;text-align:center}.match-grid{display:flex;gap:10px;animation:matchIn .3s ease}.match-grid.leaving{animation:matchOut .45s ease forwards}.match-col{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.match-tile{display:flex;align-items:center;justify-content:center;min-height:56px;padding:8px 10px;text-align:center;line-height:1.2;font-size:13px;font-weight:800;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 14px color-mix(in srgb,var(--line) 35%,transparent);transition:transform .08s ease,box-shadow .08s ease,background .15s ease,border-color .15s ease,color .15s ease,opacity .3s ease}.match-term{font-family:"Noto Sans JP",var(--font);font-size:15px}.match-tile:active:not(:disabled){transform:scale(.97);box-shadow:0 0 0 var(--line)}.match-tile.sel{background:color-mix(in srgb,var(--blue) 9%,#fff);border-color:var(--blue);color:var(--blue-dark);box-shadow:0 4px 14px color-mix(in srgb,var(--blue-dark) 35%,transparent);transform:translateY(-2px)}.match-tile.ok{background:color-mix(in srgb,var(--green) 9%,#fff);border-color:var(--green);color:var(--green-dark);box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent);animation:prNudge .36s ease}.match-tile.bad{background:#ffecec;border-color:var(--red);color:var(--red);box-shadow:0 4px 14px color-mix(in srgb,var(--red-shadow) 35%,transparent);animation:prShake .36s ease}.match-tile.matched{opacity:.4;pointer-events:none;background:#fff;border-color:var(--line);color:var(--ink);box-shadow:0 4px 14px color-mix(in srgb,var(--line) 35%,transparent)}@keyframes prNudge{0%,to{transform:scale(1)}45%{transform:scale(1.03)}}@keyframes prShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes matchIn{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes matchOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-26px)}}.quiz-prompt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 8px 28px;text-align:center}.quiz-prompt .fc-audio{margin-top:10px}.quiz-k{font-size:11px;font-weight:900;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.8px}.quiz-ask{font-family:"Noto Sans JP",var(--font);font-size:32px;font-weight:900;line-height:1.2}.quiz-ask-def{font-size:25px;font-weight:900;line-height:1.25}.quiz-options{display:flex;flex-direction:column;gap:10px}.quiz-option{padding:15px 16px;text-align:left;font-size:15px;font-weight:800;line-height:1.3;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:transform .08s ease,box-shadow .08s ease,background .15s ease,border-color .15s ease,color .15s ease}.quiz-option-term{font-family:"Noto Sans JP",var(--font);font-size:18px}.quiz-option:active:not(:disabled){transform:scale(.97);box-shadow:var(--shadow-press)}.quiz-option:disabled{opacity:.55}.quiz-option.ok,.quiz-option.reveal{opacity:1;background:color-mix(in srgb,var(--green) 9%,#fff);border-color:var(--green);color:var(--green-dark);box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent)}.quiz-option.ok{animation:prNudge .36s ease}.quiz-option.bad{opacity:1;background:#ffecec;border-color:var(--red);color:var(--red);box-shadow:0 4px 14px color-mix(in srgb,var(--red-shadow) 35%,transparent);animation:prShake .36s ease}.quiz-lives{display:flex;align-items:center;gap:3px}.quiz-lives svg{transition:transform .2s ease,opacity .2s ease}.quiz-result{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.quiz-result-badge{display:grid;place-items:center;animation:prPop .4s ease}.result-capy-img{width:140px;height:140px;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18))}.result-capy-img.sm{width:110px;height:110px}.quiz-result-title{font-size:26px;font-weight:900}.quiz-result-line{font-weight:700;color:var(--ink-soft);font-size:15px;max-width:300px;line-height:1.4}.quiz-result .btn{width:100%;max-width:280px;margin-top:6px}.quiz-explain{margin:14px 2px 0;padding:12px 14px;border-radius:var(--radius);font-size:14px;font-weight:700;line-height:1.45;background:var(--bg-soft);color:var(--ink-soft);animation:ref-swap .2s ease}.quiz-explain.ok{background:color-mix(in srgb,var(--green) 9%,#fff);color:var(--green-dark)}.quiz-explain.bad{background:#ffecec;color:var(--red)}.level-rows{display:flex;flex-direction:column;gap:10px}.level-row{display:flex;align-items:center;gap:14px;width:100%;background:#fff;border:1px solid transparent;border-radius:var(--radius);padding:12px 14px 12px 16px;box-shadow:var(--shadow-card);text-align:left;transition:transform .08s ease,box-shadow .08s ease}.level-row:active:not(:disabled){transform:scale(.985);box-shadow:var(--shadow-press)}.level-row.pressed{animation:levelPop .24s ease}.level-row.pressed .coin{animation:coinPop .24s ease}@keyframes levelPop{0%{transform:scale(1)}40%{transform:scale(.96)}70%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes coinPop{0%{transform:scale(1)}40%{transform:scale(.92)}70%{transform:scale(1.03)}to{transform:scale(1)}}.level-row.current{border:2px solid var(--coin, var(--green));padding:11px 13px 11px 15px}.level-row .coin{width:52px;height:52px;border-radius:50%;flex-shrink:0;background:var(--coin, var(--green));color:#fff;display:flex;align-items:center;justify-content:center}.level-row.done .coin{background:color-mix(in srgb,var(--coin, var(--green)) 15%,#fff);color:var(--coin, var(--green))}.level-row.upcoming .coin{background:var(--locked);color:var(--ink-soft)}.level-row .coin-num{font-weight:900;font-size:22px}.level-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.level-title{font-weight:900;font-size:17px;line-height:1.3;color:var(--ink)}.start-pill{background:var(--coin, var(--green));color:#fff;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;letter-spacing:.5px;flex-shrink:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;z-index:100}.sheet{background:#fff;width:100%;max-width:480px;border-radius:24px 24px 0 0;padding:24px 20px max(24px,env(safe-area-inset-bottom,0px));animation:rise .25s ease}@keyframes rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet h2{margin:0 0 4px;font-size:22px;font-weight:900}.prompt-sheet h2{font-size:26px;margin-bottom:12px}.sheet p.sub{margin:0 0 16px;color:var(--ink-soft);font-weight:600}.sheet-check{display:flex;align-items:center;gap:10px;margin:-4px 0 16px;font-weight:800;font-size:15px;color:var(--ink);cursor:pointer}.sheet-check input{width:22px;height:22px;accent-color:var(--green);flex-shrink:0}.choice{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;box-shadow:var(--shadow-card);text-align:left}.choice:active{transform:scale(.97);box-shadow:var(--shadow-press)}.choice.sel{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,#fff)}.choice-icon{width:46px;height:46px;border-radius:14px;background:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 -3px #00000026}.choice:nth-child(3) .choice-icon{background:var(--green)}.choice:nth-child(4) .choice-icon{background:var(--blue)}.choice:nth-child(5) .choice-icon{background:var(--purple)}.choice:nth-child(6) .choice-icon{background:var(--gold)}.choice .txt .t{font-weight:800}.choice .txt .d{color:var(--ink-soft);font-weight:600;font-size:13px}.level-scroll{flex:1;overflow-y:auto;padding:16px 16px var(--dock-clearance)}.level-scroll--preface{padding-top:16px}.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.badge{background:color-mix(in srgb,var(--green) 9%,#fff);color:var(--green-dark);border-radius:999px;padding:6px 12px;font-weight:800;font-size:12px}.badge.blue{background:color-mix(in srgb,var(--blue) 9%,#fff);color:var(--blue-dark)}.badge.gold{background:#fff6da;color:var(--gold-dark)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:4px 18px 18px;margin-bottom:16px;box-shadow:var(--shadow-card)}.level-intro{padding:0 4px}.level-intro-title{margin:0;font-size:24px;line-height:1.6;font-weight:900;letter-spacing:-.01em;color:var(--green-dark)}.vocab-intro+.vocab-mastery,.vocab-intro+.vocab-empty{margin-top:20px}.level-intro-desc{margin:10px 0 0;font-size:16px;line-height:1.45;font-weight:600;color:var(--ink-soft)}.info-card{padding:16px 18px;margin-top:12px}.info-card .k{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--ink);font-size:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.info-card .k svg{display:block}.cast-row{display:flex;flex-direction:column;gap:14px;margin-top:12px}.overview-scroll{padding-top:16px;padding-bottom:var(--dock-clearance);overflow-x:hidden}.overview-cast{margin-top:14px;padding-top:14px;border-top:1px solid #ffe9b0}.cast-person{display:flex;align-items:center;gap:12px}.cast-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#fff;text-transform:uppercase}.cast-avatar.you{background:var(--green)}.cast-avatar.them{background:var(--blue-dark)}.cast-info{min-width:0}.cast-label{font-weight:800;font-size:15px;color:var(--ink)}.cast-desc{font-weight:600;font-size:13px;color:var(--ink-soft);margin-top:1px}.md{line-height:1.6;font-size:16px}.md h1{font-size:24px;font-weight:900;margin:4px 0 10px;color:var(--green-dark)}.md h2{font-size:22px;font-weight:900;margin:16px 0 8px;color:var(--green-dark)}.md h3{font-size:17px;font-weight:800;margin:14px 0 6px;color:var(--green-dark)}.md p{margin:10px 0}.md strong{color:var(--green-dark);font-weight:800}.md code{background:color-mix(in srgb,var(--green) 9%,#fff);border-radius:6px;padding:2px 6px;font-size:.92em;font-family:Noto Sans JP,monospace;color:var(--green-dark);font-weight:700}.md ul{padding-left:20px;margin:10px 0}.md li{margin:6px 0}.md table{border-collapse:separate;border-spacing:0;width:100%;margin:14px 0;font-size:15px;display:table;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-card)}.md thead{background:color-mix(in srgb,var(--green) 9%,#fff)}.md th,.md td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 12px;text-align:left}.md th:last-child,.md td:last-child{border-right:none}.md tr:last-child td{border-bottom:none}.md th{font-weight:800;color:var(--green-dark)}.md-speak{display:inline;cursor:pointer;color:var(--green-dark);font-weight:700;border-bottom:2px dotted var(--green);border-radius:2px;padding:0 2px;transition:color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.md-speak:hover{background:color-mix(in srgb,var(--green) 9%,#fff)}.md-speak:active{background:color-mix(in srgb,var(--green) 20%,#fff)}.md-speak.playing{color:var(--green);border-bottom-style:solid}.md-speak.loading{animation:vocabTermLoading .9s ease-in-out infinite}.speak-card{position:fixed;z-index:200;max-width:min(320px,calc(100vw - 20px));background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 18px;text-align:center;pointer-events:none;transition:opacity .12s ease;animation:speakCardIn .14s ease}@keyframes speakCardIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.speak-card-text{font-size:20px;font-weight:900;color:var(--ink);line-height:1.25}.speak-card-reading{margin-top:4px;font-size:14px;font-weight:600;color:var(--ink-soft)}.speak-card-translation{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:15px;font-weight:700;color:var(--green-dark)}.convo-dock{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);padding:14px 16px max(14px,env(safe-area-inset-bottom,0px));z-index:40}.convo-dock.fade{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 0%,transparent),var(--bg) 55%);border-top:none;padding-top:40px;pointer-events:none}.convo-dock.fade>*{pointer-events:auto}.start-error{margin-bottom:10px;text-align:center;color:var(--red);font-weight:700;font-size:14px}.convo-dock.floating{background:transparent;border-top:none}.mic-row{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:999px;padding:8px 8px 8px 10px;box-shadow:0 6px 24px #1c1f3a14,0 1px 3px #1c1f3a0d}.mic-btn{width:44px;height:44px;border-radius:50%;border:none;color:var(--ink-soft);background:var(--bg-soft);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.mic-btn.live{color:var(--red);background:color-mix(in srgb,var(--red) 14%,#fff);animation:pulse 1.4s infinite}.mic-btn:active{transform:scale(.95)}.mic-end{border:none;border-radius:999px;background:var(--bg-soft);color:var(--ink);font:inherit;font-weight:800;font-size:15px;padding:12px 20px;cursor:pointer;flex-shrink:0}.mic-end:active{transform:scale(.97)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.convo-status{flex:1}.convo-status{min-width:0}.convo-status .st{font-weight:800;font-size:15px;line-height:1.2}.convo-status .hint{color:var(--ink-soft);font-size:12px;font-weight:600}.transcript{max-height:34vh;overflow-y:auto;margin-bottom:10px}.bubble{padding:10px 14px;border-radius:16px;margin:6px 0;max-width:85%;font-weight:600;line-height:1.5}.bubble.ai{background:var(--bg-soft);border-bottom-left-radius:4px}.bubble.user{background:color-mix(in srgb,var(--blue) 9%,#fff);margin-left:auto;border-bottom-right-radius:4px}.bubble .who{font-size:11px;font-weight:800;opacity:.6;text-transform:uppercase}.ai-empty{display:flex;flex-direction:column;align-items:center;gap:14px;animation:deck-in .4s ease}.ai-empty-text{text-align:center;color:var(--ink-soft);font-weight:600;font-size:15px;line-height:1.5}.ai-message-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:22vh;padding:24px 8px;text-align:center}.ai-message{font-size:28px;font-weight:900;line-height:1.4;color:var(--ink)}.ai-message-fade-in{animation:aiMessageFadeIn .5s ease forwards}@keyframes aiMessageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.call{position:fixed;top:0;right:0;bottom:0;left:0;max-width:480px;margin:0 auto;z-index:1500;display:flex;flex-direction:column;background:var(--bg);padding:0 16px max(16px,env(safe-area-inset-bottom,0px));animation:callSheetIn .38s cubic-bezier(.22,1,.36,1)}.call.closing{animation:callSheetOut .3s cubic-bezier(.4,0,1,1) forwards;pointer-events:none}.call.summary{padding-top:calc(20px + env(safe-area-inset-top,0px))}@keyframes callSheetIn{0%{transform:translateY(100%);border-radius:28px 28px 0 0}}@keyframes callSheetOut{to{transform:translateY(100%);border-radius:28px 28px 0 0}}.call-header{display:flex;align-items:center;gap:12px;flex-shrink:0;margin:0 -16px;padding:calc(20px + env(safe-area-inset-top,0px)) 16px 10px;background:var(--bg);border-bottom:1px solid var(--line)}.call-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.call-icon-btn{width:48px;height:48px;border-radius:50%;border:none;background:var(--card);color:var(--ink);box-shadow:var(--shadow-card);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease,transform .05s ease}.call-icon-btn:active{transform:scale(.95)}.call-timer{font-size:14px;font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums}.call-body{position:relative;flex:1;min-height:0}.call-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain}.call-transcript{display:flex;flex-direction:column}.call-msgs{margin-top:auto;padding-top:16px}.call-msgs.empty{margin-bottom:auto;padding-top:0}.call-empty{padding:24px 0}.empty-chat-dots circle{transform-box:fill-box;transform-origin:center;animation:emptyChatTyping 1.2s infinite ease-in-out}.empty-chat-dots circle:nth-child(2){animation-delay:.15s}.empty-chat-dots circle:nth-child(3){animation-delay:.3s}@keyframes emptyChatTyping{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-14%);opacity:1}}.call-waiting-text,.call-timer-waiting{animation:fadeIn .3s ease}@media (prefers-reduced-motion: reduce){.empty-chat-dots circle{animation-duration:2.4s}}.call-row{display:grid;grid-template-rows:1fr;animation:callRowIn .4s ease}.call-section.earlier .call-row,.call-section.earlier .call-row-inner{animation:none}.call-thread-top{height:1px;flex-shrink:0}.call-row-inner{min-height:0;overflow:hidden;padding:0 4px 12px;display:flex;flex-direction:column;gap:4px;animation:aiMessageFadeIn .4s ease}@keyframes callRowIn{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.call-bubble{max-width:86%;padding:14px 18px;border-radius:18px;background:var(--card);box-shadow:var(--shadow-card);margin:2px 0}.call-bubble.ai,.tc-bubble.ai{border-top-left-radius:6px}.call-bubble.user,.tc-bubble.user{border-top-right-radius:6px}.call-bubble.user{align-self:flex-end;background:var(--green);box-shadow:none;color:#fff}.call-bubble-text{font-weight:700;font-size:15px;line-height:1.4;color:var(--ink)}.call-bubble.user .call-bubble-text{color:#fff}.call-bubble-trans{margin-top:4px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink-soft);animation:aiMessageFadeIn .35s ease}.call-bubble.user .call-bubble-trans{color:color-mix(in srgb,#fff 78%,transparent)}.call-correction{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;border:1.5px dashed color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 9%,#fff);font-size:15px;font-weight:600;line-height:1.45;color:var(--ink);animation:aiMessageFadeIn .35s ease}.call-correction strong{font-weight:900}.call-correction-icon{flex-shrink:0;margin-top:1px;color:var(--gold-dark)}.call-note-section{margin-top:8px}.call-banner{flex-shrink:0;margin:8px 0 0}.call-banner .btn{margin-top:12px}.call-after{flex-shrink:0;margin-top:10px}.call-error{flex-shrink:0;color:var(--red);margin-top:8px;text-align:center}.call-controls{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding-top:16px}.call-ctrl{border:none;background:none;padding:0;font:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:var(--ink-soft)}.call-ctrl-icon{width:52px;height:52px;border-radius:50%;background:var(--card);box-shadow:var(--shadow-card);display:grid;place-items:center;transition:transform .05s ease}.call-ctrl:active:not(:disabled) .call-ctrl-icon{transform:scale(.94)}.call-ctrl-label{font-size:13px;font-weight:700}.call-ctrl.danger .call-ctrl-icon{background:color-mix(in srgb,var(--red) 12%,#fff);color:var(--red)}.call-ctrl.active{color:var(--green)}.call-ctrl.active .call-ctrl-icon{background:color-mix(in srgb,var(--green) 16%,#fff);color:var(--green)}.call-ctrl.busy .call-ctrl-icon{background:color-mix(in srgb,var(--green) 16%,#fff);color:var(--green);animation:call-ctrl-pulse 1.2s ease-out infinite}.call-ctrl.busy.spin .call-ctrl-icon svg{animation:call-ctrl-spin 1.2s linear infinite reverse}@keyframes call-ctrl-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--green) 45%,transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--green) 0%,transparent)}}@keyframes call-ctrl-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.call-ctrl.busy .call-ctrl-icon,.call-ctrl.busy .call-ctrl-icon svg{animation:none}}.call-ctrl:disabled{opacity:.45;cursor:default}.call-ctrl.busy:disabled{opacity:1}.call-mic{width:80px;height:80px;border-radius:50%;border:none;background:var(--green);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 18%,transparent),0 8px 22px color-mix(in srgb,var(--green-shadow) 35%,transparent);transition:background .2s ease,box-shadow .2s ease,transform .05s ease}.call-mic:active:not(:disabled){transform:scale(.96)}.call-mic.muted{background:var(--locked);color:var(--ink-soft);box-shadow:0 0 0 6px var(--bg-soft)}.tutor-help-btn{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));right:max(16px,calc(50% - 224px));z-index:30;width:42px;height:42px;border-radius:50%;border:none;padding:0;background:var(--green);color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease,box-shadow .2s ease,transform .05s ease}.tutor-help-btn:active{transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--green-shadow) 25%,transparent)}.tutor-help-btn.active{background:var(--red);box-shadow:0 4px 14px color-mix(in srgb,var(--red-shadow) 35%,transparent);animation:pulse 1.4s infinite}.tutor-intro{position:relative;padding-top:28px;padding-bottom:max(20px,env(safe-area-inset-bottom,0px));text-align:center;font-family:var(--font);animation:rise .28s ease}.tutor-intro.out{animation:sink .22s ease forwards}.tutor-intro-close{position:absolute;top:12px;right:12px;border:none;background:none;padding:4px;cursor:pointer;display:flex}.tutor-intro-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--green) 15%,transparent)}.tutor-intro h2{margin:0 0 8px;color:var(--ink)}.tutor-intro-copy{margin:0 0 16px;font-size:14px;color:var(--ink-soft)}.tutor-intro-notes{list-style:none;margin:0 0 14px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--green) 10%,transparent);text-align:left;font-size:14px;color:var(--ink)}.tutor-intro-notes li{display:flex;align-items:center;gap:8px;padding:5px 0}.tutor-intro-start{width:100%;padding:14px;border:none;border-radius:10px;background:var(--green);color:#fff;font-family:var(--font);font-size:16px;font-weight:700;cursor:pointer}.tutor-intro-skip{justify-content:center;font-size:14px;color:var(--ink-soft);margin:16px 0 0 -3px}.tutor-intro-skip input{width:16px;height:16px}.convo-fill{height:100vh;height:100dvh;overflow:hidden}.convo-scroll{display:flex;flex-direction:column;min-height:0;padding-bottom:0}.convo-scroll .ai-message-stage{flex:1 0 auto}@keyframes deck-in{0%{opacity:0}}.completed-banner{position:relative;background:var(--green);color:#fff;border-radius:var(--radius);padding:18px;text-align:center;margin-bottom:16px;box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent)}.completed-head{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;font-size:19px}.completed-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:#fff;cursor:pointer}.completed-close:active{background:#fff3}.completed-sub{margin:6px 0 0;font-weight:700;opacity:.95;font-size:14px}.btn.btn-on-green{background:#fff;color:var(--green-dark);box-shadow:0 4px 14px color-mix(in srgb,rgba(0,0,0,.15) 35%,transparent)}.btn.btn-on-green:active{box-shadow:0 1px 4px color-mix(in srgb,rgba(0,0,0,.15) 25%,transparent)}.history{margin-bottom:16px}.history-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-weight:800;color:var(--ink-soft)}.history .transcript{margin-top:10px}.auth-screen{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:calc(32px + env(safe-area-inset-top,0px)) 20px max(40px,env(safe-area-inset-bottom,0px));gap:6px;min-height:100dvh}.auth-screen .native-auth,.auth-screen .kaiwa-clerk-root{width:100%}.auth-screen .hero-title{margin:10px 0 0}.auth-screen .hero-sub{margin:0 0 18px}.auth-screen .logo-badge{margin-bottom:6px}.auth-switch{margin:18px 0 0;text-align:center;font-weight:700;color:var(--ink-soft)}.auth-switch-link{background:none;border:none;padding:0;color:var(--blue);font-weight:800;font-size:inherit;font-family:inherit;cursor:pointer}.auth-sso-error{margin:10px 0 0;text-align:center;color:var(--red);font-weight:700;font-size:14px}.kaiwa-clerk-footer-action{display:none!important}.kaiwa-clerk-root{width:100%!important;max-width:none!important;position:relative!important;inset:auto!important;height:auto!important}.kaiwa-clerk-root,.kaiwa-clerk-cardbox{width:100%!important;max-width:none!important;box-shadow:none!important;border:none!important;border-radius:0!important;overflow:visible!important;background:transparent!important;margin-inline:0!important;padding-inline:0!important}.kaiwa-clerk-cardbox{gap:4px}.kaiwa-clerk-card{width:100%;box-shadow:none!important;border:none!important;border-radius:0!important;background:transparent!important;padding:0!important;gap:0!important}.kaiwa-clerk-card>*{width:100%}.auth-screen .cl-main,.auth-screen .cl-scrollBox{width:100%!important;max-width:none!important;padding-inline:0!important;margin-inline:0!important}.kaiwa-clerk-header{text-align:center;gap:4px;margin-bottom:32px!important}.kaiwa-clerk-form>div{gap:12px!important}.kaiwa-clerk-fieldrow{gap:16px!important}.kaiwa-clerk-dividerrow{display:none!important}.kaiwa-clerk-primary{background:var(--green)!important;box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent)!important;border:none!important;border-radius:var(--radius)!important;font-weight:800!important;font-size:17px!important;letter-spacing:.3px;text-transform:capitalize!important;color:#fff!important;padding:16px 18px!important;transition:transform .05s ease,box-shadow .05s ease}.kaiwa-clerk-primary:active{transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--green-shadow) 25%,transparent)!important}.kaiwa-clerk-primary:hover{background:var(--green)!important}.kaiwa-clerk-primary .cl-buttonArrowIcon,.auth-screen .cl-buttonArrowIcon{display:none!important}.kaiwa-clerk-social{border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-card)!important;font-weight:800!important;font-size:16px!important;color:var(--ink)!important;background:#fff!important;padding:15px 18px!important;transition:transform .05s ease,box-shadow .05s ease}.kaiwa-clerk-social img,.kaiwa-clerk-social svg{width:22px!important;height:22px!important}.kaiwa-clerk-social-text{font-size:16px!important;font-family:var(--font)!important;font-weight:800!important;text-transform:capitalize!important;letter-spacing:.3px!important}.kaiwa-clerk-social:active{transform:scale(.97);box-shadow:var(--shadow-press)!important}.kaiwa-clerk-altmethods{gap:24px!important}.kaiwa-clerk-input:not([type=checkbox],[type=radio]){background:var(--card)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;color:var(--ink)!important;font-weight:700!important;font-size:16px!important;padding:18px 16px!important;min-height:56px!important;box-shadow:none!important}.kaiwa-clerk-input:not([type=checkbox],[type=radio]):focus{border-color:var(--blue)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)!important}.kaiwa-clerk-label{font-weight:800!important;font-size:15px!important;color:var(--ink)!important}.kaiwa-clerk-otp{width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px!important;padding:0!important;border:1px solid var(--line)!important;border-radius:8px!important;text-align:center!important;font-weight:800!important}.kaiwa-clerk-resend,.kaiwa-clerk-resend *,.kaiwa-clerk-edit{color:#777!important}.kaiwa-clerk-edit svg{color:#777!important;stroke:#777!important}.kaiwa-clerk-otp:focus{border-color:var(--blue)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)!important}.kaiwa-clerk-link{color:var(--blue)!important;font-weight:800!important;font-size:15px!important;text-decoration:none!important}.kaiwa-clerk-backlink{color:var(--blue)!important;font-weight:800!important;font-size:17px!important;text-decoration:none!important}.kaiwa-clerk-fieldaction{color:var(--blue)!important;font-weight:800!important;font-size:14px!important;text-decoration:none!important}.kaiwa-clerk-divider{background:var(--line)!important}.kaiwa-clerk-divider-text{color:var(--ink-soft)!important;font-weight:700!important}.kaiwa-clerk-header h1,.kaiwa-clerk-header p{text-align:center!important}.kaiwa-clerk-header h1{font-weight:900!important;font-size:26px!important;color:var(--ink)!important}.kaiwa-clerk-header p{font-size:15px!important}.kaiwa-clerk-footer,.kaiwa-clerk-footer *{font-size:15px!important;background:transparent!important;background-image:none!important;border:none!important}.route-body{flex:1;display:flex;flex-direction:column;min-height:0}.route-body.has-bottom-nav{padding-bottom:calc(88px + var(--safe-bottom))}.bottom-nav-fade{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:480px;height:calc(110px + var(--safe-bottom));background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 0%,transparent),var(--bg) 70%);pointer-events:none;z-index:19}.bottom-nav{position:fixed;left:50%;transform:translate(-50%);bottom:max(6px,calc(var(--safe-bottom) - 4px));width:calc(100% - 24px);max-width:456px;display:flex;gap:6px;padding:6px;background:#ffffffd1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.9);border-radius:999px;box-shadow:0 8px 28px #1c1f3a1f,0 1px 3px #1c1f3a0f;z-index:20}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;border-radius:999px;padding:8px 4px;font-size:13px;font-weight:700;color:var(--ink-soft);transition:background .15s ease,color .15s ease}.bottom-nav-item.active{color:var(--green-dark)}.talk{padding:20px 16px 16px;display:flex;flex-direction:column;gap:14px}.talk-title{font-size:34px;font-weight:800;color:var(--ink);margin:0}.talk-sub{margin:-8px 0 4px;font-size:17px;color:var(--ink-soft)}.talk-mode{position:relative;overflow:hidden;border:none;border-radius:24px;padding:18px;text-align:left;display:flex;color:var(--ink);background:#fff;box-shadow:0 2px 14px #1c1f3a0f;transition:transform .12s ease}.talk-mode:active{transform:scale(.98)}.talk-mode-icon{width:48px;height:48px;border-radius:15px;background:var(--tint, var(--green));box-shadow:0 6px 14px color-mix(in srgb,var(--tint, var(--green)) 35%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.talk-mode-title{display:block;font-size:18px;font-weight:800}.talk-mode-sub{display:block;margin-top:3px;font-size:14px;color:var(--ink-soft)}.talk-mode-free{align-items:center;gap:16px;padding:20px;color:#fff;background:linear-gradient(135deg,var(--green-light),var(--green-dark));box-shadow:0 2px 24px color-mix(in srgb,var(--green) 35%,transparent)}.talk-mode-free .talk-mode-icon{width:56px;height:56px;border-radius:17px;background:#ffffff38;box-shadow:none}.talk-mode-free .talk-mode-title{font-size:21px}.talk-mode-free .talk-mode-sub{color:#ffffffe0}.talk-mode-body{flex:1;min-width:0}.talk-mode-tinted{background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 85%,#fff),color-mix(in srgb,var(--tint) 85%,#000));box-shadow:0 2px 24px color-mix(in srgb,var(--tint) 32%,transparent)}.talk-section-head{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.talk-section-title{font-size:20px;font-weight:800;color:var(--ink);margin:8px 0 0}.talk-section-head .talk-section-title{margin:0}.talk-see-all{display:flex;align-items:center;gap:2px;background:none;border:none;padding:0;font-size:16px;font-weight:800;color:var(--green-dark)}.talk-see-all:disabled{opacity:.35}.talk-list{background:#fff;border-radius:22px;box-shadow:0 2px 14px #1c1f3a0f;overflow:hidden}.talk-row{width:100%;display:flex;align-items:center;gap:14px;padding:16px 18px;background:none;border:none;text-align:left;color:var(--ink)}.talk-row+.talk-row{border-top:1px solid var(--line)}.talk-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.talk-row-body{flex:1;min-width:0}.talk-row-head{display:flex;align-items:center;gap:10px}.talk-row-title{flex:1;min-width:0;font-size:17px;font-weight:800}.talk-row-meta{display:block;margin-top:2px;font-size:14px;color:var(--ink-soft)}.talk-row-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.talk-row-when{flex-shrink:0;white-space:nowrap;font-size:13px;color:var(--ink-soft)}.talk-avatar{width:52px;height:52px;border-radius:50%;background:var(--green-light);color:#fff;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tc{display:flex;flex-direction:column;min-height:calc(100dvh - 88px - var(--safe-bottom))}.tc-top{position:sticky;top:0;z-index:10;padding:calc(20px + env(safe-area-inset-top,0px)) 16px 10px;background:var(--bg);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:14px}.tc-head{display:flex;align-items:center;gap:12px}.tc-call{width:46px;height:46px;flex-shrink:0;margin-left:auto;border:none;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.tc-call:active{transform:scale(.94)}.tc-avatar{position:relative;padding:0;border:none;width:52px;height:52px;border-radius:50%;background:var(--green-light);color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tc-avatar .home-avatar-dot{right:-1px;bottom:-1px;width:15px;height:15px;border-width:2.5px;border-color:var(--bg)}.tc-head-text{flex:1;min-width:0}.tc-name-btn{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;padding:0;border:none;background:none;color:var(--ink)}.tc-name{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1.15;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tc-name-chevron{flex-shrink:0}.tc-status{font-size:14px;font-weight:600;color:var(--ink-soft)}.tc-msgs{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:8px 16px calc(12px + var(--tc-composer-h, 72px))}.tc-end{scroll-margin-bottom:calc(100px + var(--tc-composer-h, 72px) + var(--safe-bottom))}.kb-open .tc-end{scroll-margin-bottom:calc(12px + var(--tc-composer-h, 72px) + var(--kb-h, 0px))}.tc-empty{margin:auto}.tc-row-wrap{display:flex;flex-direction:column;gap:4px;animation:aiMessageFadeIn .3s ease}.tc-call-card{display:flex;align-items:center;gap:12px;width:100%;padding:14px 14px 14px 12px;border:none;border-radius:20px;background:var(--card);box-shadow:var(--shadow-card);text-align:left;color:inherit;cursor:pointer}.tc-call-card-icon{width:46px;height:46px;flex-shrink:0;border-radius:50%;background:color-mix(in srgb,var(--green) 16%,#fff);color:var(--green-dark);display:flex;align-items:center;justify-content:center}.tc-call-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tc-call-card-title{font-size:16px;font-weight:800;color:var(--ink)}.tc-call-card-meta{font-size:14px;font-weight:600;color:var(--ink-soft)}.tc-call-card-chevron{flex-shrink:0;color:var(--ink-soft)}.tc-day{margin:14px 0 6px;text-align:center;font-size:13px;font-weight:700;color:var(--ink-soft)}.tc-row{display:flex}.tc-row.user{justify-content:flex-end}.tc-bubble{position:relative;max-width:80%;padding:10px 16px;border-radius:20px;background:var(--card);box-shadow:var(--shadow-card)}.tc-bubble.user{background:var(--green);box-shadow:none;color:#fff}.tc-bubble.user .tc-text{color:#fff}.tc-bubble.user .tc-trans{color:color-mix(in srgb,#fff 78%,transparent)}.tc-bubble.reactable{cursor:pointer;-webkit-tap-highlight-color:transparent}.tc-bubble.has-image{padding:6px}.tc-bubble.has-image .tc-text,.tc-bubble.has-image .tc-trans{padding:0 10px}.tc-bubble.has-image .tc-text{margin-top:8px}.tc-bubble.has-image>:last-child:not(.tc-reaction):not(.tc-picker){margin-bottom:6px}.tc-image{display:block;width:100%;max-width:280px;max-height:320px;object-fit:cover;border-radius:15px;background:var(--bg-soft)}.tc-text{font-size:15px;font-weight:700;line-height:1.4;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.tc-text-fold{display:grid;transition:grid-template-rows .3s cubic-bezier(.22,1,.36,1),opacity .25s ease}.tc-text-fold>*{min-height:0;overflow:hidden}.tc-text-fold.on{grid-template-rows:1fr;opacity:1}.tc-text-fold.off{grid-template-rows:0fr;opacity:0}.tc-bubble.user .tc-corrected,.call-bubble.user .tc-corrected{color:color-mix(in srgb,#fff 80%,transparent)}.tc-bubble.user .tc-corrected strong,.call-bubble.user .tc-corrected strong{font-weight:800;color:#fff}.tc-trans{margin-top:2px;font-size:14px;font-weight:600;line-height:1.4;color:var(--ink-soft)}.tc-reaction{position:absolute;top:-12px;right:-8px;min-width:28px;height:28px;padding:0 5px;border-radius:999px;background:#fff;border:2px solid var(--bg);box-shadow:0 2px 6px #1c1f3a1f;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1}.tc-reaction.user{right:auto;left:-8px}.tc-picker{position:absolute;bottom:calc(100% + 8px);left:0;z-index:5;display:flex;gap:2px;padding:6px;border-radius:999px;background:#fff;box-shadow:0 8px 24px #1c1f3a2e;animation:aiMessageFadeIn .18s ease}.tc-picker-btn{width:38px;height:38px;border:none;border-radius:50%;background:none;font-size:20px;line-height:1;transition:transform .12s ease,background-color .12s ease}.tc-picker-btn.active{background:color-mix(in srgb,var(--green) 18%,#fff)}.tc-picker-btn:active{transform:scale(.85)}.corr{align-self:flex-end;display:flex;align-items:flex-start;gap:6px;max-width:86%;padding:2px 4px;border:none;background:none;text-align:right;font:inherit;font-size:15px;font-weight:700;line-height:1.4;color:var(--ink-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;animation:aiMessageFadeIn .35s ease}.corr-icon{display:block;flex-shrink:0;margin-top:2px;color:var(--green)}.corr-label{display:flex;align-items:center;justify-content:flex-end;gap:5px;font-size:13px}.tc-typing{display:flex;gap:5px;padding:14px 16px}.tc-typing span{width:8px;height:8px;border-radius:50%;background:var(--ink-soft);opacity:.4;animation:tcTyping 1.2s infinite ease-in-out}.tc-typing span:nth-child(2){animation-delay:.15s}.tc-typing span:nth-child(3){animation-delay:.3s}@keyframes tcTyping{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:.9}}.tc-composer{position:fixed;left:50%;transform:translate(-50%);width:100%;max-width:480px;box-sizing:border-box;bottom:calc(84px + var(--safe-bottom));z-index:19;padding:4px 16px 6px;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 0%,transparent),var(--bg) 50%);display:flex;flex-direction:column;gap:8px;transition:bottom .25s ease}.kb-open .tc-composer{bottom:var(--kb-h, 0px);z-index:21}.kb-web .tc-composer{transition:none}.kb-open .tc-msgs{padding-bottom:calc(12px + var(--tc-composer-h, 72px) + var(--kb-h, 0px) - 84px - var(--safe-bottom))}.tc-composer:after{content:"";position:absolute;left:0;right:0;pointer-events:none;top:100%;height:calc(94px + var(--safe-bottom));background:var(--bg);z-index:-1}.tc-error{font-size:14px;font-weight:700;color:var(--red, #e5484d)}.tc-attachment{position:relative;align-self:flex-start;margin-left:6px}.tc-attachment img{display:block;width:72px;height:72px;object-fit:cover;border-radius:14px}.tc-attachment button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border:2px solid var(--bg);border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;padding:0}.tc-composer-row{display:flex;align-items:center;gap:10px}.tc-plus{width:38px;height:38px;margin:0;align-self:flex-end;flex-shrink:0;border:none;border-radius:50%;background:var(--bg-soft);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;transition:transform .12s ease}.tc-plus:active{transform:scale(.92)}.tc-input-wrap{flex:1;min-width:0;display:flex;align-items:flex-end;gap:6px;padding:9px 6px;min-height:56px;border-radius:28px;background:#fff;border:none;box-shadow:0 2px 12px #1c1f3a1a,0 1px 3px #1c1f3a0f;transition:box-shadow .15s ease}.tc-input-wrap:focus-within{box-shadow:0 3px 16px #1c1f3a24,0 1px 3px #1c1f3a0f}.tc-input{flex:1;min-width:0;min-height:38px;max-height:140px;padding:8px 8px 8px 6px;border:none;outline:none;background:none;resize:none;overflow-y:auto;display:block;font:inherit;font-size:16px;font-weight:500;letter-spacing:-.005em;line-height:22px;color:var(--ink)}.tc-input::placeholder{color:color-mix(in srgb,var(--ink) 72%,transparent);font-weight:500;opacity:1}.tc-send{width:38px;height:38px;margin:0;align-self:flex-end;flex-shrink:0;border:none;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center}.tc-send:disabled{opacity:.4}.profile-scroll,.chat-history{padding:8px 16px 32px}.chat-history-loading{opacity:.6}.chat-history-note{text-align:center;color:var(--ink-soft)}.chat-history-pager{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.chat-history-page{font-size:14px;color:var(--ink-soft)}.profile-head{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0 20px}.avatar{width:84px;height:84px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:900;box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent);border:none;padding:0;flex-shrink:0}.avatar-sm{width:42px;height:42px;font-size:18px;box-shadow:0 4px 14px color-mix(in srgb,var(--green-shadow) 35%,transparent)}.avatar-sm:active{transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--green-shadow) 25%,transparent)}.profile-name{font-size:22px;font-weight:900}@media (max-width: 720px){.kaiwa-profile-backdrop{align-items:stretch!important;justify-content:stretch!important;padding:0!important;overflow:hidden!important}.kaiwa-profile-modal{margin:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:#fff;animation:none!important}.kaiwa-profile-root,.kaiwa-profile-cardbox{width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;border-radius:0!important;box-shadow:none!important}}.account-info-card{padding-top:16px;padding-bottom:12px}.account-info-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.account-info-head .card-label{margin-bottom:0}.account-edit-btn{background:none;border:none;padding:4px 0;font:inherit;font-size:14px;font-weight:800;color:var(--green);cursor:pointer}.account-info-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.account-info-head+.account-info-row{border-top:none}.account-info-key{color:var(--ink-soft);font-weight:700}.account-info-value{font-weight:800;text-align:right;overflow-wrap:anywhere}.section-label{font-size:12px;font-weight:900;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;margin:18px 4px 8px}.profile-card{padding:6px 16px;margin-bottom:4px}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.stat-row:last-child{border-bottom:none}.stat-lang{font-weight:800}.stat-count{font-weight:900;color:var(--green-dark)}.stat-unit{color:var(--ink-soft);font-weight:700;font-size:13px}.voice-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.voice-row:last-child{border-bottom:none}.voice-pick{flex:1;display:flex;align-items:center;gap:11px;background:none;border:none;text-align:left;padding:0}.radio{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}.radio.on{border-color:var(--green)}.radio-dot{width:10px;height:10px;border-radius:50%;background:var(--green)}.voice-label{font-weight:800;font-size:16px}.voice-row.sel .voice-label{color:var(--green-dark)}.sample-btn{width:38px;height:38px;border-radius:11px;border:none;background:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 14px color-mix(in srgb,var(--blue-dark) 35%,transparent);transition:transform .05s,box-shadow .05s}.sample-btn:active{transform:scale(.97);box-shadow:0 1px 4px color-mix(in srgb,var(--blue-dark) 25%,transparent)}.sample-btn.playing{background:var(--red);box-shadow:0 4px 14px color-mix(in srgb,#cc3a3a 35%,transparent)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0}.switch{width:46px;height:28px;border-radius:999px;border:none;background:var(--line);padding:3px;flex-shrink:0;display:flex;align-items:center;cursor:pointer;transition:background .15s}.switch.on{background:var(--green)}.switch-knob{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .15s}.switch.on .switch-knob{transform:translate(18px)}.account-card,.labeled-card{padding-top:16px;padding-bottom:16px;margin-top:16px}.labeled-card{padding-bottom:6px}.card-label{font-size:12px;font-weight:900;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.usage-label .card-label{margin-bottom:0}.card-divider{height:1px;background:var(--line);margin:16px 0}.usage-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.usage-label{display:flex;align-items:center;gap:4px}.usage-count{font-size:20px;transition:color .2s}.usage-count.low{color:var(--red)}.usage-bar{height:10px;border-radius:999px;background:var(--bg-soft);overflow:hidden;margin:4px 0 12px;box-shadow:inset 0 1px 2px #0000000f}.usage-bar-fill{height:100%;background:var(--green);border-radius:999px;transition:width .2s}.usage-bar-fill.low{background:var(--red)}.usage-meta{display:flex;align-items:center;justify-content:space-between;color:var(--ink-soft);font-weight:700;font-size:12.5px}.account-card .btn{padding-top:10px;padding-bottom:10px}.subscription-plan-name{font-size:19px;font-weight:900;margin-bottom:14px}.subscription-price{font-size:14px;font-weight:700;color:var(--ink-soft)}.subscription-notice{margin:-6px 0 14px;color:var(--ink-soft);font-weight:700;font-size:13px;text-align:left}.upgrade-title{font-size:19px;font-weight:900}.upgrade-desc{color:var(--ink-soft);font-weight:600;font-size:14px;line-height:1.4;margin:12px 0 14px}.subscription-perks{display:flex;flex-direction:column;gap:6px;margin:12px 0 4px}.subscription-perk{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink-soft)}.info-tooltip{position:relative;display:inline-flex}.info-tooltip-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:none;padding:0}.info-tooltip-bubble{position:absolute;top:24px;left:0;z-index:5;width:220px;background:var(--ink);color:#fff;font-size:12.5px;font-weight:600;line-height:1.4;padding:10px 12px;border-radius:10px;box-shadow:0 4px 12px #0003}.info-tooltip-bubble:before{content:"";position:absolute;top:-5px;left:8px;width:10px;height:10px;background:var(--ink);transform:rotate(45deg)}.plan-save{position:absolute;top:-9px;right:10px;background:var(--yellow, #ffcd3c);color:#533b00;font-size:10px;font-weight:900;letter-spacing:.3px;padding:2px 7px;border-radius:999px}.pricing-page{padding-bottom:24px}.pricing-hero{text-align:center;margin:12px 0 18px}.pricing-title{font-size:30px;font-weight:900;margin:4px 0}.pricing-perks{background:var(--card, #fff);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:18px;box-shadow:0 1px 4px color-mix(in srgb,var(--line) 25%,transparent)}.pricing-plans{display:flex;flex-direction:column;gap:12px}.pricing-plan-card{position:relative;text-align:left;border:1px solid var(--line);background:var(--card, #fff);border-radius:16px;padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .05s}.pricing-plan-card:active{transform:translateY(1px)}.pricing-plan-card.featured{border-color:var(--green);background:linear-gradient(135deg,color-mix(in srgb,var(--green) 10%,#fff),var(--card, #fff))}.pricing-plan-label{font-size:13px;font-weight:900;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px}.pricing-plan-price{font-size:26px;font-weight:900;margin:4px 0}.pricing-plan-cadence{font-size:14px;font-weight:700;color:var(--ink-soft);margin-left:4px}.pricing-plan-note{color:var(--green-dark);font-weight:800;font-size:13px;margin-bottom:10px}.pricing-plan-cta{width:100%;text-align:center;margin-top:8px;pointer-events:none}.pricing-current{margin-top:4px}.pricing-fineprint{color:var(--ink-soft);font-size:12px;font-weight:600;text-align:center;margin-top:18px}.advanced-toggle{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);margin:16px 0;padding:16px 18px;color:var(--ink);font-weight:800;font-size:15px;text-align:left;cursor:pointer}.advanced-chevron{display:flex;transform:rotate(-90deg);transition:transform .15s ease}.btn.ghost.signout-btn,.signout-btn{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--red);margin-top:20px}.spinner{width:28px;height:28px;border:4px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.text-line-note{color:var(--ink-soft);font-weight:600;font-size:14px;margin:8px 0 10px}.text-line-form,.text-line-verify{display:flex;flex-direction:column;gap:10px;margin:12px 0}.text-line-input{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font-weight:700;font-size:16px;padding:14px 16px}.text-line-input:focus{outline:none;border-color:var(--blue)}.text-line-partners{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin:4px 0 12px}.text-line-partner{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px 10px;background:var(--card);border:2px solid var(--line);border-radius:var(--radius);color:var(--ink);transition:border-color .15s,background .15s}.text-line-partner.sel{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--card))}.text-line-partner-name{font-weight:800;font-size:15px;margin-top:2px}.text-line-partner.sel .text-line-partner-name{color:var(--green-dark)}.text-line-partner-lang{font-size:12px;font-weight:700;color:var(--ink-soft)}.text-line-panel{background:var(--bg-soft);border-radius:var(--radius);padding:14px 16px;margin:4px 0 10px}.text-line-verify{text-align:center}.text-line-verify p{margin:0;font-weight:600;font-size:14px;color:var(--ink-soft)}.text-line-verify .nowrap{white-space:nowrap;font-weight:800;color:var(--ink)}.text-line-code{font-size:34px;font-weight:900;letter-spacing:8px;text-align:center;-webkit-user-select:all;user-select:all;padding:6px 0}.text-line-waiting{display:flex;align-items:center;justify-content:center;gap:8px}.text-line-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:text-line-pulse 1.2s ease-in-out infinite}@keyframes text-line-pulse{50%{opacity:.25}}.text-line-verify>a.btn{text-align:center;text-decoration:none}.text-line-connected{display:flex;flex-direction:column;gap:8px}.text-line-status{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;padding:3px 10px 3px 7px;border-radius:999px;background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green-dark);font-weight:800;font-size:13px}.text-line-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px}.text-line-row>span{color:var(--ink-soft);font-weight:600}.text-line-row>b,.text-line-row>a{white-space:nowrap;font-weight:800;color:var(--ink);text-decoration:none}.text-line-remove{display:block;width:100%;background:none;border:none;padding:8px 0 12px;color:var(--red, #d33);font-weight:800;font-size:14px}.text-line-remove:disabled{opacity:.5}.text-line-error{color:var(--red, #d33);font-weight:700;font-size:14px}.muted{color:var(--ink-soft);font-weight:600;text-align:center;padding:20px}.skeleton{display:block;background:linear-gradient(90deg,var(--bg-soft) 25%,var(--bg) 37%,var(--bg-soft) 63%);background-size:400% 100%;animation:skeletonShimmer 1.4s ease infinite;border-radius:6px}@keyframes skeletonShimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton-lang-list{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:8px}.skeleton-lang-card{box-shadow:none;pointer-events:none}.skeleton-unit-hero{background:#fff;box-shadow:var(--shadow-card)}.skeleton-level-row{box-shadow:none;pointer-events:none}.skeleton-coin{flex-shrink:0}.skeleton-vocab-list{box-shadow:none}.skeleton-vocab-list .vocab-card{pointer-events:none}.debug-logs-btn{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:100000;background:none;border:none;padding:6px 10px;font:700 13px/1.2 ui-sans-serif,system-ui,sans-serif;color:#1a73e8;text-decoration:underline;text-underline-offset:2px;width:auto;box-shadow:none;text-transform:none;letter-spacing:0}.debug-logs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100001;display:flex;flex-direction:column;background:#202124;color:#e8eaed;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.debug-logs-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #3c4043;background:#292a2d}.debug-logs-title{font:700 13px/1.2 ui-sans-serif,system-ui,sans-serif;color:#e8eaed;margin-right:4px}.debug-logs-filters{display:flex;flex-wrap:wrap;gap:4px}.debug-logs-filter,.debug-logs-tool{width:auto;box-shadow:none;text-transform:none;letter-spacing:0;border:1px solid #5f6368;background:transparent;color:#e8eaed;border-radius:12px;padding:4px 10px;font:600 12px/1.2 ui-sans-serif,system-ui,sans-serif}.debug-logs-filter.on{background:#3c4043;border-color:#8ab4f8;color:#8ab4f8}.debug-logs-search{flex:1;min-width:120px;background:#202124;border:1px solid #5f6368;border-radius:8px;color:#e8eaed;padding:6px 8px;font:13px/1.3 ui-sans-serif,system-ui,sans-serif}.debug-logs-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0;text-align:left}.debug-logs-body *{text-align:left}.debug-logs-empty{margin:24px 16px;color:#9aa0a6;font:13px/1.4 ui-sans-serif,system-ui,sans-serif;text-align:center}.debug-logs-fallback{padding:8px 0}.debug-logs-line{display:flex;gap:8px;padding:6px 12px;border-bottom:1px solid #3c4043;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.debug-logs-line pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#e8eaed}.debug-logs-method{flex:0 0 auto;color:#9aa0a6;text-transform:uppercase;font-size:10px;padding-top:2px}.debug-logs-line.is-error pre{color:#f28b82}.debug-logs-line.is-warn pre{color:#fdd663}.debug-logs-line.is-info pre{color:#8ab4f8}.bottom-nav-mic-slot{flex:0 0 72px;position:relative}.bottom-nav-mic{position:absolute;left:50%;top:-24px;transform:translate(-50%);width:64px;height:64px;border-radius:50%;border:none;background:var(--green);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px color-mix(in srgb,var(--green) 40%,transparent)}.bottom-nav-mic:active{transform:translate(-50%) scale(.95)}.home{padding:8px 16px 16px;display:flex;flex-direction:column;gap:16px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.page-header-flush{margin-top:0}.learn-header{margin:0;padding:20px 16px 14px}.learn-header .talk-title{font-size:30px}.home-greeting{font-size:30px;font-weight:800;color:var(--ink);margin:0;min-height:1.2em}.home-lang-select{display:flex;align-items:center;gap:6px;padding:0;background:none;border:none;flex-shrink:0}.lang-select-flag{display:flex;border-radius:50%;box-shadow:0 2px 8px #1c1f3a26}.friend-stack{display:flex;align-items:center;padding:4px;border-radius:999px;background:#fff;box-shadow:0 2px 8px #1c1f3a26;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease;-webkit-tap-highlight-color:transparent}.friend-avatar.friend-stack-avatar{width:30px;height:30px;font-size:13px;box-shadow:0 0 0 2px #fff}.friend-stack-avatar+.friend-stack-avatar{margin-left:-9px}@media (hover: hover){.home-lang-select:hover .friend-stack{transform:scale(1.05);box-shadow:0 4px 12px #1c1f3a38}}.home-lang-select:active .friend-stack{transform:scale(.94);transition-duration:.08s}.home-lang-select:focus-visible .friend-stack{outline:3px solid color-mix(in srgb,var(--green) 55%,transparent);outline-offset:2px}.lang-sheet-option{justify-content:flex-start;gap:12px}.lang-sheet-name{flex:1}.lang-sheet-add{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--line);color:var(--ink-soft)}.home-card{background:#fff;border-radius:24px;padding:20px;box-shadow:0 2px 14px #1c1f3a0f;border:none;text-align:left;width:100%}.home-partner-head{display:flex;align-items:center;gap:16px}.home-avatar{position:relative;width:56px;height:56px;border-radius:50%;background:var(--green-light);color:#fff;font-size:26px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-avatar-dot{position:absolute;right:-1px;bottom:-1px;width:16px;height:16px;border-radius:50%;background:var(--green);border:3px solid #fff}.home-partner-name{font-size:19px;font-weight:800;color:var(--ink)}.home-partner-reading{margin-left:8px;font-size:14px;font-weight:500;color:var(--ink-soft)}.home-partner-status{font-size:15px;font-weight:600;color:var(--ink-soft)}.home-bubble{margin-top:16px;background:var(--bg-soft);border:none;border-radius:6px 20px 20px;padding:16px 20px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.home-bubble-text{font-size:16px;font-weight:700;color:var(--ink);line-height:1.35}.home-bubble-trans{margin-top:6px;font-size:15px;color:var(--ink-soft)}.home-partner-actions{margin-top:16px;display:flex;align-items:center;gap:12px}.home-call-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;height:56px;border:none;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--green-dark));color:#fff;font-size:19px;font-weight:800;box-shadow:0 6px 16px color-mix(in srgb,var(--green) 35%,transparent)}.home-chat-btn{width:56px;height:56px;flex-shrink:0;border:none;border-radius:50%;background:var(--bg-soft);color:var(--ink);display:flex;align-items:center;justify-content:center}.home-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-stat{display:flex;align-items:center;gap:10px;padding:14px;border-radius:20px;min-width:0;background:#fff;box-shadow:0 2px 14px #1c1f3a0f}.home-stat-icon{width:40px;height:40px;border-radius:50%;background:#fde8e1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-stat-icon-unlit{background:#ececec}.home-stat-value{font-size:22px;line-height:1.15;font-weight:800;color:var(--ink)}.home-stat>div{min-width:0}.home-stat-label{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}.home-section-title{font-size:18px;font-weight:800;color:var(--ink);margin:8px 0 0}.home-scenes{display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none}.home-scenes::-webkit-scrollbar{display:none}.home-scene{flex-shrink:0;padding:14px 22px;border:none;border-radius:999px;font-size:16px;font-weight:800;color:var(--ink)}.home-scene-0{background:color-mix(in srgb,var(--green) 16%,#fff)}.home-scene-1{background:color-mix(in srgb,var(--blue) 16%,#fff)}.home-scene-2{background:color-mix(in srgb,var(--purple) 16%,#fff)}.home-scene-3{background:color-mix(in srgb,var(--unit-4) 16%,#fff)}.home-scene-4{background:color-mix(in srgb,var(--unit-5) 16%,#fff)}.home-scene-5{background:color-mix(in srgb,var(--unit-6) 16%,#fff)}.home-call-btn,.home-chat-btn,.home-scene,.home-lang-select .lang-select-flag{transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,filter .18s ease,background-color .18s ease;-webkit-tap-highlight-color:transparent}.home-call-btn svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}@media (hover: hover){.home-call-btn:hover{box-shadow:0 10px 22px color-mix(in srgb,var(--green) 45%,transparent);filter:brightness(1.05)}.home-call-btn:hover svg{animation:home-ring .6s ease-in-out}.home-chat-btn:hover{background:color-mix(in srgb,var(--ink) 8%,var(--bg-soft))}.home-scene:hover{filter:brightness(.97) saturate(1.2)}.home-lang-select:hover .lang-select-flag{transform:scale(1.08) rotate(-6deg);box-shadow:0 4px 12px #1c1f3a38}}.home-call-btn:active,.home-chat-btn:active,.home-scene:active{transform:scale(.94);transition-duration:.08s}.home-lang-select:active .lang-select-flag{transform:scale(.9);transition-duration:.08s}.home-call-btn:focus-visible,.home-chat-btn:focus-visible,.home-scene:focus-visible,.home-lang-select:focus-visible .lang-select-flag{outline:3px solid color-mix(in srgb,var(--green) 55%,transparent);outline-offset:2px}@keyframes home-ring{0%,to{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}@media (prefers-reduced-motion: reduce){.home-call-btn,.home-chat-btn,.home-scene,.home-lang-select .lang-select-flag,.home-call-btn svg{transition:none;animation:none!important;transform:none!important}}.pf{padding:20px 16px 16px;display:flex;flex-direction:column;gap:16px}.pf-head{display:flex;flex-direction:row;align-items:center;gap:14px;width:100%;padding:0;border:none;background:none;text-align:left;font-family:inherit;color:var(--ink);cursor:pointer}.pf-avatar{width:52px;height:52px;border-radius:32px;object-fit:cover;flex-shrink:0}.pf-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--green);color:#fff;font-size:26px;font-weight:800}.pf-head-text{flex:1;min-width:0;display:flex;flex-direction:column}.pf-name{font-family:var(--font-display);font-size:24px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-email{font-size:14px;font-weight:700;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-credits{background:var(--card);color:var(--ink);box-shadow:var(--shadow-card);border-radius:24px;padding:18px;display:flex;flex-direction:column;gap:12px}.pf-credits-top{display:flex;justify-content:space-between;align-items:center}.pf-credits-label{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dark)}.pf-credits-reset{font-size:13px;color:var(--ink-soft)}.pf-credits-num{font-family:var(--font-display);font-size:40px;font-weight:800;line-height:1}.pf-credits-num.low{color:var(--red)}.pf-credits-of{font-size:15px;color:var(--ink-soft)}.pf-credits-bar{height:8px;border-radius:999px;background:var(--bg-soft);overflow:hidden}.pf-credits-bar-fill{height:100%;border-radius:inherit;background:var(--green)}.pf-credits-bar-fill.low{background:var(--red)}.pf-credits-notice{font-size:13px;color:var(--ink-soft)}.pf-credits-plan{align-self:flex-start;border-radius:999px;padding:6px 12px;background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green-dark);font-size:13px;font-weight:800}.pf-credits-btn{border:none;border-radius:999px;padding:15px;margin-top:8px;background:linear-gradient(135deg,var(--green-light),var(--green-dark));box-shadow:0 4px 14px color-mix(in srgb,var(--green) 35%,transparent);color:#fff;font-family:inherit;font-size:16px;font-weight:800}.pf-credits-btn:disabled{opacity:.7}.pf-friends-title{margin:0 0 12px;font-size:17px;font-weight:800;color:var(--ink)}.pf-friends-row{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none}.pf-friends-row::-webkit-scrollbar{display:none}.pf-friend{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer}.pf-friend .friend-avatar{width:64px;height:64px;font-size:22px;box-sizing:border-box;border:3px solid transparent;padding:3px;background-clip:content-box}.pf-friend.sel .friend-avatar{border-color:var(--avatar-color)}.pf-friend-name{font-size:13px;font-weight:700;color:var(--ink);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-avatar.pf-friend-add{background:var(--line);background-clip:content-box;color:var(--ink-soft)}.pf-toggles{background:var(--card);border-radius:20px;padding:4px 16px;box-shadow:var(--shadow-card)}.pf-toggle{display:flex;align-items:center;gap:12px;padding:14px 0}.pf-toggle+.pf-toggle{border-top:1px solid var(--line)}.pf-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column}.pf-toggle-title{font-size:16px;font-weight:800;color:var(--ink)}.pf-toggle-sub{font-size:13px;color:var(--ink-soft)}.pf-footer{display:flex;justify-content:space-between;padding:4px 2px}.pf-link{border:none;background:none;padding:0;font-family:inherit;font-size:15px;font-weight:800;color:var(--ink-soft)}.pf-signout{color:var(--red)}.pf-card{background:var(--card);border-radius:20px;padding:16px;box-shadow:var(--shadow-card)}.pf-card-title{font-size:16px;font-weight:800;color:var(--ink)}.theme-group-label{margin:14px 0 8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.theme-row{display:flex;gap:12px;overflow-x:auto;margin:-6px -16px 0;padding:8px 16px 4px;scrollbar-width:none}.theme-row::-webkit-scrollbar{display:none}.theme-option{position:relative;flex-shrink:0;width:64px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:none;background:none;font-family:inherit}.theme-swatch{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);transition:border-color .15s ease}.theme-option.sel .theme-swatch{border-color:var(--ink)}.theme-swatch-dot{width:30px;height:30px;border-radius:50%}.theme-swatch-custom{border-style:dashed;background:var(--bg-soft)}.theme-check{position:absolute;top:-4px;right:2px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center}.theme-name{font-size:12px;font-weight:700;color:var(--ink-soft);text-align:center;line-height:1.2}.theme-option.sel .theme-name{color:var(--ink)}.theme-custom{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.theme-custom-field{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink-soft)}.theme-custom-field input{width:44px;height:44px;padding:0;border:2px solid var(--line);border-radius:50%;background:none;cursor:pointer;overflow:hidden}.theme-custom-field input::-webkit-color-swatch-wrapper{padding:0}.theme-custom-field input::-webkit-color-swatch{border:none;border-radius:50%}.theme-custom-field input::-moz-color-swatch{border:none;border-radius:50%}.summary-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;margin:0 -16px;padding:0 16px 72px}.summary-tabbar{position:sticky;top:0;z-index:2;flex-shrink:0;margin:0 -16px;padding:14px 16px 0;background:linear-gradient(var(--bg),var(--bg)) top / 100% 14px no-repeat,linear-gradient(to top,color-mix(in srgb,var(--bg) 0%,transparent),var(--bg) 50%) bottom / 100% calc(100% - 14px) no-repeat}.summary-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.summary-partner{flex-shrink:0;margin-top:14px}.summary-sub{color:var(--ink-soft);font-weight:700;flex-shrink:0}.summary-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--radius);background:var(--bg-soft)}.summary-tab{padding:9px 0;border:none;border-radius:12px;background:none;font:inherit;font-weight:800;color:var(--ink-soft);cursor:pointer}.summary-tab.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-press)}.summary-convo .call-msgs{margin-top:0;padding-top:0}.summary-convo .call-row{animation:none}.vocab-stats.summary-stats{grid-template-columns:1fr 1fr;flex-shrink:0;margin-bottom:0}.summary-card{--summary-card-bg: var(--card);position:relative;background:var(--summary-card-bg);border-radius:20px;box-shadow:var(--shadow-card);padding:18px 20px}.summary-clip{max-height:160px;overflow:hidden}.summary-clip.open{max-height:none}.summary-clip.faded{-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}.summary-more{margin-top:6px;padding:0;border:none;background:none;font:inherit;font-size:15px;font-weight:800;color:var(--ink-soft);cursor:pointer}.summary-note-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}.summary-note-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--green-light);color:#fff;font-family:var(--font-display);font-size:17px;font-weight:800}.summary-note-title{font-size:18px;font-weight:900;color:var(--ink)}.summary-note-text{font-size:16px;font-weight:600;line-height:1.4;color:var(--ink)}.summary-card-title{font-size:18px;font-weight:900;color:var(--ink);margin-bottom:10px}.summary-fix{font-size:15px;font-weight:700;line-height:1.4;color:var(--ink-soft)}.summary-fix+.summary-fix{margin-top:12px}.summary-fix strong{font-weight:800;color:var(--green)}.lex-card{flex-shrink:0}.lex-pending{font-size:15px;font-weight:600;color:var(--ink-soft)}.lex-chart{margin-top:6px;padding-bottom:22px}.lex-chart-bars{display:flex;gap:1px;height:110px;border-bottom:2px solid var(--line)}.lex-chart-col{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}.lex-chart-stack{display:flex;flex-direction:column;border-radius:3px 3px 0 0;overflow:hidden}.lex-bar-used,.lex-bar-heard{flex-basis:0}.lex-bar-used,.lex-swatch.used{background:var(--green)}.lex-bar-heard,.lex-swatch.heard{background:color-mix(in srgb,var(--blue) 55%,#fff)}.lex-chart-col.first:after{content:"";position:absolute;left:0;bottom:-12px;height:10px;border-left:2px solid var(--line)}.lex-chart-x{position:absolute;left:5px;top:calc(100% + 4px);white-space:nowrap;font-size:12px;font-weight:800;color:var(--ink-soft)}.lex-legend{display:flex;gap:16px;margin-top:18px;font-size:13px;font-weight:700;color:var(--ink-soft)}.lex-legend span{display:inline-flex;align-items:center;gap:6px}.lex-swatch{width:10px;height:10px;border-radius:3px}.lex-new-title{margin-bottom:2px}.lex-new-sub{margin-bottom:14px;font-size:14px;font-weight:600;color:var(--ink-soft)}.lex-review-btn{width:100%;margin-top:16px;padding:15px 16px;border:none;border-radius:16px;background:color-mix(in srgb,var(--orange) 18%,#fff);font:inherit;font-size:16px;font-weight:800;color:color-mix(in srgb,var(--orange-shadow) 70%,#000);cursor:pointer}.lex-review-btn:active{transform:translateY(1px)}.call.lex-review{z-index:1600}.lex-review .pr-scroll{padding-inline:0}.lex-list{display:flex;flex-direction:column;gap:8px}.lex-item{display:flex;flex-direction:column;gap:1px;line-height:1.3}.lex-item-label{font-size:16px;font-weight:800;color:var(--ink)}.lex-term{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}.lex-link{align-items:center;text-decoration:none}.lex-link-arrow{flex-shrink:0;color:var(--ink-soft)}.lex-term .lex-item-gloss{text-align:right}.lex-item-gloss{font-size:14px;font-weight:600;color:var(--ink-soft)}.summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex-shrink:0;padding-top:8px}.calib-start{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 16px;padding:12px 16px;font-weight:800;color:var(--blue-dark);background:color-mix(in srgb,var(--blue) 8%,var(--card));border:1px dashed var(--blue);border-radius:var(--radius)}.calib-start:active{transform:scale(.98)}.calib-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);animation:rise .25s ease;padding:env(safe-area-inset-top,0px) 0 max(16px,env(safe-area-inset-bottom,0px))}.calib-header{display:flex;align-items:center;gap:12px;width:100%;max-width:560px;margin:0 auto;padding:14px 16px}.calib-icon-btn{display:grid;place-items:center;width:38px;height:38px;background:none;border:0;border-radius:50%}.calib-stats{flex:1;display:flex;gap:12px;font-size:13px;font-weight:800;color:var(--ink-soft)}.calib-toggle{padding:8px 14px;font-size:13px;font-weight:900;color:var(--blue-dark);background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-card)}.calib-body{flex:1;overflow-y:auto;width:100%;max-width:560px;margin:0 auto;padding:16px}.calib-footer{width:100%;max-width:560px;margin:0 auto;padding:12px 16px 0}.calib-best{margin-bottom:10px;font-size:13px;color:var(--ink-soft);text-align:center}.calib-best b{color:var(--ink)}.calib-actions{display:flex;gap:10px}.calib-actions .btn{flex:1}.calib-chart-wrap{display:flex;flex-direction:column;gap:14px;height:100%;min-height:320px}.calib-tip{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:62px;padding:10px 14px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.calib-tip-name{font-weight:900}.calib-tip-meta{font-size:12px;font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums}.calib-chart{position:relative;flex:1;display:flex;align-items:flex-end;gap:3px;padding:18px 8px 0;border-bottom:2px solid var(--line);background:repeating-linear-gradient(to top,transparent 0 calc(25% - 1px),var(--line) calc(25% - 1px) 25%);background-size:100% calc(100% - 18px);background-position:bottom;background-repeat:no-repeat}.calib-ymax{position:absolute;top:0;left:8px;font-size:10px;font-weight:900;color:var(--ink-soft)}.calib-col{flex:1;display:flex;align-items:flex-end;height:100%;min-width:0;padding:0;background:none;border:0;cursor:pointer}.calib-col-fill{display:block;width:100%;min-height:2px;background:var(--blue);border-radius:6px 6px 0 0;transition:height .35s ease,background .15s ease,opacity .15s ease;opacity:.8}.calib-col.top .calib-col-fill{background:var(--green)}.calib-col.asking .calib-col-fill{box-shadow:inset 0 0 0 2px var(--blue-dark)}.calib-col.hover .calib-col-fill{opacity:1;filter:brightness(1.08)}.call-sheet{display:flex;flex-direction:column;gap:12px;padding-top:12px;max-height:min(88dvh,720px);animation:rise .28s ease}.call-sheet.out{animation:sink .22s ease forwards}.call-sheet.picking{height:min(88dvh,720px)}.call-sheet h2{margin-bottom:2px}.cs-option{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--shadow-card);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform .08s ease}.cs-option:active{transform:scale(.98)}.cs-option-icon{flex-shrink:0;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--green-light),var(--green-dark))}.cs-practice .cs-option-icon{background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 80%,#fff),var(--blue-dark))}.cs-option-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.cs-option-title{font-size:18px;font-weight:900}.cs-option-sub{font-size:14px;font-weight:700;color:var(--ink-soft)}.cs-option-chevron{flex-shrink:0;color:var(--ink-soft)}.cs-head{display:flex;align-items:center;gap:10px}.cs-head .call-icon-btn{width:40px;height:40px;flex-shrink:0}.call-sheet .cs-head h2{margin:0;flex:1}.cs-head:not(:has(.call-icon-btn)){min-height:40px}.cs-edit{flex-shrink:0;padding:8px 4px 8px 10px;border:none;background:none;color:var(--blue-dark);font:inherit;font-size:16px;font-weight:900;cursor:pointer}.cs-edit:disabled{opacity:.4;cursor:default}.cs-sub{margin:0;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink-soft)}.cs-list{display:flex;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto}.cs-row,.cs-list .pp-row{display:flex;align-items:center;flex-shrink:0;gap:12px;padding:11px 2px;border:none}.cs-row.skeleton{height:44px;margin:11px 0;padding:0;border-radius:12px}.cs-row-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.cs-row-label{font-size:17px;font-weight:800;color:var(--ink)}.cs-row-sub{font-size:14px;font-weight:600;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-remove{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;margin:-6px 0;border:none;border-radius:50%;background:none;color:var(--ink-soft);cursor:pointer}.cs-remove:active{background:var(--line)}.cs-add{display:flex;align-items:center;gap:12px;flex-shrink:0;width:100%;padding:10px 2px;border:none;border-radius:12px;background:none;color:var(--ink-soft);font:inherit;font-size:16px;font-weight:800;text-align:left;cursor:pointer}.cs-add-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bg-soft)}.cs-add:active{background:var(--bg-soft)}.cs-current{flex-shrink:0;color:var(--blue)}.cs-empty{padding:16px 2px}.cs-tools{display:flex;justify-content:center;gap:16px}.cs-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:none;background:none;color:var(--ink-soft);font:inherit;font-size:15px;font-weight:800;cursor:pointer}.cs-link:disabled{opacity:.45;cursor:default}.pp{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.pp-head{display:flex;align-items:center;gap:10px}.pp-head .call-icon-btn{width:40px;height:40px;flex-shrink:0}.pp-head h2{margin:0;flex:1;font-size:20px}.pp-count{font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums}.pp-scroll{flex:1;min-height:0;overflow-y:auto;margin:0 -20px;padding:0 20px 8px;border-top:1px solid var(--line)}.pp-scroll[hidden]{display:none}.pp-kinds{margin:14px 0 12px}.pp-row{display:flex;align-items:center;gap:10px;width:100%;padding:12px 2px;border:none;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.pp-row:disabled{opacity:.5;cursor:default}.pp-row-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pp-row-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800}.pp-row-sub{font-size:14px;font-weight:600;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-here{flex-shrink:0;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,#fff);color:var(--green-dark);font-size:12px;font-weight:900}.pp-diffs{margin:0 -20px 4px;padding:4px 20px}.pp-unit{border-bottom:1px solid var(--line)}.pp-unit-head,.pp-list-head{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.pp-unit-head{min-height:52px;padding:12px 0}.pp-unit-name{flex:1;min-width:0;font-size:16px;font-weight:900;line-height:1.3}.pp-chevron{flex-shrink:0;color:var(--ink-soft);transform:rotate(-90deg);transition:transform .2s ease}.pp-unit.open>.pp-unit-head .pp-chevron{transform:rotate(0)}.pp-items{padding:0 0 10px}.pp-list-head{padding:10px 0 10px 34px}.pp-list-name{flex:1;min-width:0;font-size:15px;font-weight:800}.pp-list-chevron{flex-shrink:0;color:var(--ink-soft)}.pp-loading{padding:10px 0;font-weight:700;color:var(--ink-soft)}.pp-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 2px;border:none;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.pp-item:disabled{opacity:.4;cursor:default}.pp-check{flex-shrink:0;width:22px;height:22px;border-radius:7px;border:2px solid var(--line);display:grid;place-items:center;color:#fff;transition:background .15s ease,border-color .15s ease}.pp-item.on .pp-check{background:var(--blue);border-color:var(--blue)}.pp-item-text{display:flex;flex-direction:column;flex:1;min-width:0}.pp-item-label{font-size:16px;font-weight:800}.pp-item-reading{margin-left:6px;font-size:13px;font-weight:700;color:var(--ink-soft)}.pp-item-sub{font-size:13px;font-weight:600;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-tag{--chip: var(--ink-soft);flex-shrink:0;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--chip) 12%,#fff);color:color-mix(in srgb,var(--chip) 70%,var(--ink));font-size:12px;font-weight:800}.pp-tag.new{--chip: var(--blue)}.pp-tag.activate{--chip: var(--green)}.pp-tag.review{--chip: var(--purple)}.pp-tag.fix{--chip: var(--orange)}.pp-foot{padding-top:4px}.btn.cs-start,.pp-foot .btn{background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 80%,#fff),var(--blue-dark));box-shadow:0 4px 14px #1899d647}.ps{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding:10px 0 6px}.ps-dots{display:flex;justify-content:center;gap:6px}.ps-dot{width:16px;height:16px;border-radius:50%;background:var(--locked);display:grid;place-items:center;color:#fff;transition:background .25s ease,transform .25s ease}.ps-dot.current{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--blue)}.ps-dot.tried{background:color-mix(in srgb,var(--blue) 40%,#fff)}.ps-dot.done{background:var(--green);animation:prPop .3s ease}.ps-dot.missed{background:color-mix(in srgb,var(--ink-soft) 35%,#fff)}.ps-card{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:10px 14px;border:none;border-radius:16px;background:var(--card);box-shadow:var(--shadow-card);color:var(--ink);font:inherit;text-align:center;cursor:pointer}.ps-finished{cursor:default}.ps-kicker{font-size:12px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;color:var(--blue-dark)}.ps-label{font-size:20px;font-weight:900}.ps-reading{margin-left:8px;font-size:14px;font-weight:700;color:var(--ink-soft)}.ps-detail{font-size:14px;font-weight:700;color:var(--ink-soft)}.ps-more{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding-top:8px;border-top:1px solid var(--line);width:100%}.ps-gloss{font-size:14px;font-weight:700;color:var(--ink)}.ps-example{font-size:16px;font-weight:700;color:var(--ink)}.summary-practice{flex-shrink:0}.summary-practice .summary-card-title{margin-bottom:2px}.summary-practice-sub{margin-bottom:12px;font-size:14px;font-weight:700;color:var(--ink-soft)}.summary-practice-row{display:flex;align-items:center;gap:10px;padding:6px 0}.summary-practice-icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--locked)}.summary-practice-row.done .summary-practice-icon{background:var(--green)}.summary-practice-row.tried .summary-practice-icon{background:var(--blue)}.summary-practice-label{flex:1;min-width:0;font-size:16px;font-weight:800;color:var(--ink)}.summary-practice-outcome{flex-shrink:0;font-size:13px;font-weight:800;color:var(--ink-soft)}.summary-practice-row.missed .summary-practice-label{color:var(--ink-soft)}
