:root{--ul-blue: #5b23ff;--ul-blue-dark: #362f4f;--ul-green: #008bff;--ul-yellow: #e4ff30;--ul-pink: #5b23ff;--ul-ink: #362f4f;--ul-muted: #625c78;--ul-line: #e7e3f2;--ul-surface: #f8f7fc;--ul-card: #ffffff;--ul-chart-bar: #5b23ff;--ion-color-primary: #5b23ff;--ion-color-primary-rgb: 91, 35, 255;--ion-font-family: "Avenir Next", "Nunito Sans", Inter, system-ui, sans-serif;color:var(--ul-ink)}:root.ion-palette-dark{--ul-blue: #b19eff;--ul-blue-dark: #5b23ff;--ul-green: #4db4ff;--ul-yellow: #e4ff30;--ul-pink: #9b82ff;--ul-ink: #f8f7ff;--ul-muted: #bdb6d2;--ul-line: #4b4265;--ul-surface: #181424;--ul-card: #27203a;--ul-chart-bar: #8a6bff;--ion-background-color: var(--ul-surface);--ion-text-color: var(--ul-ink);--ion-toolbar-background: #211a31;--ion-tab-bar-background: #211a31;color:var(--ul-ink)}*{box-sizing:border-box}body{background:var(--ul-surface);color:var(--ul-ink)}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}ion-content{--background: var(--ul-surface)}.ul-header ion-toolbar{--background: rgba(255, 255, 255, .94);--border-color: var(--ul-line);--color: var(--ul-ink);--min-height: 60px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ul-header ion-title{font-size:1.05rem;font-weight:850}.page-shell{width:min(100%,780px);margin:0 auto;padding:20px 18px calc(104px + env(safe-area-inset-bottom))}.eyebrow{margin:0 0 7px;color:var(--ul-blue);font-size:.7rem;font-weight:900;letter-spacing:.12em}.ul-pressable{transition:transform .16s ease,box-shadow .16s ease}.ul-pressable:active:not(:disabled){transform:scale(.975)}.ul-button{min-height:52px;width:100%;border:0;border-radius:17px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 22px;font-size:.98rem;font-weight:850;cursor:pointer}.ul-button--primary{background:linear-gradient(135deg,#5b23ff,#362f4f);color:#fff;box-shadow:0 12px 28px #5b23ff4d}.ul-button--primary:disabled{background:#d8dde6;color:#465166;box-shadow:none}.ul-button--ghost{margin-top:8px;background:transparent;color:var(--ul-muted)}.header-brand{color:var(--ul-ink);font-size:.94rem;font-weight:950;letter-spacing:-.035em;display:inline-flex;align-items:center;gap:8px}.header-brand img{width:30px;height:30px;border-radius:8px;object-fit:cover;box-shadow:0 4px 12px #362f4f33}.header-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eeeaff;color:#4815c5;font-size:.85rem;font-weight:900;border:2px solid white;box-shadow:0 0 0 2px #c5b8ff}.ul-tabs{--background: rgba(255, 255, 255, .94);--border: 0;align-self:center;width:calc(100% - 38px);max-width:606px;height:82px;min-height:82px;margin:0 auto max(6px,calc(env(safe-area-inset-bottom) - 14px));padding:7px 6px 2px;overflow:visible;contain:none;border:1px solid var(--ul-line);border-radius:31px;background:var(--background);box-shadow:0 18px 38px #362f4f29,0 5px 14px #362f4f1a;-webkit-backdrop-filter:saturate(160%) blur(22px);backdrop-filter:saturate(160%) blur(22px)}.ul-tabs ion-tab-button{--background: transparent;--background-focused: transparent;--background-hover: transparent;--color: rgba(54, 47, 79, .62);--color-selected: #4815c5;--color-focused: rgba(54, 47, 79, .62);--ripple-color: transparent;position:relative;z-index:1;min-width:0;overflow:visible;font-size:.67rem;font-weight:800}.ul-tabs ion-tab-button::part(native){margin:0 2px;padding:6px 3px;overflow:visible;border:1px solid transparent;border-radius:24px;background:transparent;transition:transform .22s ease,background .22s ease,box-shadow .22s ease,border-color .22s ease}.ul-tabs ion-icon{font-size:1.28rem;transition:transform .22s ease,color .22s ease}.tab-icon-wrap{position:relative;width:32px;height:32px;border-radius:13px;display:grid;place-items:center;background:conic-gradient(var(--tab-accent) var(--tab-progress),#e8edf5 0);transition:transform .22s ease,background .22s ease,box-shadow .22s ease}.tab-icon-wrap:after{content:"";position:absolute;inset:3px;border-radius:10px;background:#fffffff5}.tab-icon-wrap ion-icon{position:relative;z-index:1}.ul-tabs ion-tab-button.has-attention:not(.tab-selected) .tab-icon-wrap{box-shadow:0 0 0 3px color-mix(in srgb,var(--tab-accent) 13%,transparent)}.ul-tabs ion-label{width:100%;max-width:62px;margin-top:2px;display:grid;gap:1px;justify-items:center;font-size:.64rem;line-height:1;white-space:nowrap}.ul-tabs ion-label>span,.ul-tabs ion-label small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ul-tabs ion-label small{color:#362f4f8a;font-size:.48rem;font-weight:850}.ul-tabs ion-tab-button.tab-selected::part(native){transform:translateY(-10px);border-color:#008bffb8;background:linear-gradient(145deg,#5b23ff,#362f4f);box-shadow:0 14px 28px #008bff4d,0 8px 18px #5b23ff6b,inset 0 1px #ffffff4d}.ul-tabs .tab-selected ion-icon{transform:scale(1.12);filter:drop-shadow(0 4px 8px rgba(54,47,79,.34))}.ul-tabs ion-tab-button.tab-selected .tab-icon-wrap{background:#ffffff26}.ul-tabs ion-tab-button.tab-selected .tab-icon-wrap:after{background:transparent}.ul-tabs ion-tab-button.tab-selected ion-icon,.ul-tabs ion-tab-button.tab-selected ion-label,.ul-tabs ion-tab-button.tab-selected ion-label small{color:#e4ff30}.ul-tabs ion-tab-button:active::part(native){transform:scale(.95)}.ul-tabs ion-tab-button.tab-selected:active::part(native){transform:translateY(-9px) scale(.96)}.tab-dot{position:absolute;top:-2px;left:calc(50% + 7px);z-index:2;min-width:18px;height:18px;padding:0 5px;border:2px solid white;border-radius:10px;background:#e4ff30;color:#362f4f;display:grid;place-items:center;font-size:.62rem;font-weight:900}@media(max-width:379px){.ul-tabs{width:calc(100% - 24px)}.tab-icon-wrap{width:30px;height:30px;border-radius:12px}.tab-icon-wrap:after{border-radius:9px}.ul-tabs ion-label{max-width:54px}.ul-tabs ion-label small{display:none}}@media(prefers-reduced-motion:reduce){.ul-tabs ion-tab-button::part(native),.ul-tabs ion-icon,.tab-icon-wrap{transition:none}}.onboarding-page ion-content{--background: radial-gradient(circle at 12% 8%, rgba(228, 255, 48, .28), transparent 27%), radial-gradient(circle at 88% 18%, rgba(0, 139, 255, .16), transparent 26%), #faf9ff}.onboarding-shell{width:min(100%,520px);min-height:100%;margin:auto;padding:max(28px,env(safe-area-inset-top)) 24px 36px;display:flex;flex-direction:column}.onboarding-brand{display:flex;align-items:center;gap:10px;color:var(--ul-ink);font-size:.9rem;font-weight:950;letter-spacing:-.03em}.brand-mark{width:42px;height:42px;border-radius:11px;object-fit:cover;box-shadow:0 8px 22px #362f4f3d}.onboarding-progress{display:flex;gap:7px;margin:25px 0 12px}.onboarding-progress i{width:26px;height:5px;border-radius:4px;background:#e7e3f2;transition:background .22s ease,width .22s ease}.onboarding-progress i.active{width:40px;background:var(--ul-blue)}.onboarding-panel{flex:1;display:flex;flex-direction:column;justify-content:center;animation:slide-in .32s ease both}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.onboarding-panel h1{max-width:460px;margin:0;font-size:clamp(2.3rem,10vw,4rem);line-height:.98;letter-spacing:-.055em;font-weight:950}.onboarding-panel .lead{max-width:450px;margin:18px 0 30px;color:var(--ul-muted);font-size:1.04rem;line-height:1.55}.welcome-visual{width:210px;height:150px;margin:5px 0 35px;border-radius:48% 52% 44% 56%/52% 38% 62% 48%;display:flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(145deg,#5b23ff,#362f4f);color:#fff;box-shadow:0 24px 60px #5b23ff47;transform:rotate(-4deg)}.welcome-visual strong{font-size:2.25rem;font-weight:950;letter-spacing:-.06em}.welcome-visual span{color:var(--ul-yellow);font-size:2.5rem;font-weight:950}.onboarding-feature-grid{margin:-8px 0 28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.onboarding-feature-grid>div{min-width:0;border:1px solid var(--ul-line);border-radius:16px;padding:11px 9px;display:grid;justify-items:start;gap:3px;background:#ffffffc7;box-shadow:0 8px 22px #362f4f0f}.onboarding-feature-grid span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#efeaff;color:var(--ul-blue);font-size:1.05rem}.onboarding-feature-grid strong{overflow:hidden;max-width:100%;font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.onboarding-feature-grid small{overflow:hidden;max-width:100%;color:var(--ul-muted);font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}.text-back{align-self:flex-start;margin:0 0 26px;border:0;background:transparent;color:var(--ul-muted);display:flex;gap:6px;align-items:center;font-weight:800}.language-card{width:100%;min-height:85px;margin-bottom:12px;padding:14px 16px;border:2px solid var(--ul-line);border-radius:20px;display:flex;align-items:center;gap:14px;text-align:left;background:#fff;color:var(--ul-ink)}.language-card.is-selected{border-color:var(--ul-blue);box-shadow:0 8px 22px #5b23ff1f}.language-card.is-disabled{opacity:.48;margin-bottom:28px}.language-card .flag{width:52px;height:52px;border-radius:15px;background:var(--ul-surface);display:grid;place-items:center;font-size:1.8rem}.language-card>span:nth-child(2){flex:1;display:grid;gap:3px}.language-card strong{font-size:1rem}.language-card small{color:var(--ul-muted)}.language-card ion-icon{color:var(--ul-blue);font-size:1.6rem}.course-preview-card,.goal-preview-card{margin:2px 0 18px;border:1px solid color-mix(in srgb,var(--unit-color, var(--ul-blue)) 22%,var(--ul-line));border-radius:20px;padding:15px;display:grid;gap:13px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color, var(--ul-blue)) 18%,transparent),transparent 34%),#fff;box-shadow:0 12px 26px #362f4f12}.course-preview-card>div:first-child{display:grid;grid-template-columns:45px minmax(0,1fr);align-items:center;gap:11px}.course-preview-card>div:first-child>span{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color, var(--ul-blue)) 14%,white);font-size:1.45rem}.course-preview-card h2,.goal-preview-card h2{margin:0 0 3px;font-size:1rem}.course-preview-card small,.goal-preview-card p{margin:0;color:var(--ul-muted);font-size:.68rem;line-height:1.35}.course-preview-stats,.goal-preview-card>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.goal-preview-card>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr))}.course-preview-stats span,.goal-preview-card>div:last-child span{border-radius:14px;padding:9px 8px;display:grid;justify-items:center;gap:1px;background:#f7f9fd}.course-preview-stats strong,.goal-preview-card>div:last-child strong{font-size:.9rem}.course-preview-stats small,.goal-preview-card>div:last-child small{color:var(--ul-muted);font-size:.56rem;font-weight:850;text-transform:uppercase}.goal-preview-card{--unit-color: var(--ul-green);margin-top:-10px}.onboarding-secondary{margin-top:10px}.name-field{display:grid;gap:8px;margin-bottom:22px;color:var(--ul-ink);font-size:.78rem;font-weight:850}.name-field input,.edit-profile input,.edit-profile select{min-height:52px;width:100%;border:2px solid var(--ul-line);border-radius:15px;padding:0 16px;outline:none;background:#fff;color:var(--ul-ink)}.name-field input:focus,.edit-profile input:focus,.edit-profile select:focus{border-color:var(--ul-blue)}.goal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:28px}.goal-grid button{min-height:100px;border:2px solid var(--ul-line);border-radius:18px;background:#fff;color:var(--ul-ink);display:grid;justify-items:center;align-content:center;gap:2px}.goal-grid button.selected{border-color:var(--ul-blue);background:#f1f7ff;box-shadow:0 8px 22px #5b23ff1f}.goal-grid span{font-size:1.45rem}.goal-grid strong{font-size:1rem}.goal-grid small{color:var(--ul-muted)}.top-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:22px}.home-status-row{position:relative}.home-status-row .top-stats{margin-bottom:28px}.sync-status{position:absolute;right:2px;bottom:-17px;display:flex;align-items:center;gap:4px;color:var(--ul-muted);font-size:.6rem;font-weight:750}.sync-status i{width:6px;height:6px;border-radius:50%;background:#aeb5c2}.sync-status.online i{background:var(--ul-green);box-shadow:0 0 0 3px #00c99021}.top-stat{min-height:45px;border:1px solid var(--ul-line);border-radius:15px;display:flex;align-items:center;justify-content:center;gap:5px;background:#fff;box-shadow:0 3px 12px #18203309}.top-stat ion-icon{font-size:1.15rem}.top-stat strong{font-size:.9rem}.top-stat span{color:var(--ul-muted);font-size:.67rem;font-weight:750}.top-stat--streak ion-icon{color:#c45100}.top-stat--xp ion-icon{color:var(--ul-blue)}.top-stat--level ion-icon{color:#a66900}.top-stat--accuracy ion-icon{color:var(--ul-green)}@media(max-width:379px){.top-stats{grid-template-columns:repeat(2,1fr)}.search-filter-tabs button{font-size:.56rem}.quick-mode-tabs button{flex-direction:column;gap:2px;font-size:.58rem}}.top-stat--streak.is-zero ion-icon{color:#aeb5c2}.home-greeting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 2px 22px}.home-greeting h1{margin:0 0 4px;font-size:clamp(2rem,8vw,3rem);letter-spacing:-.05em;font-weight:950}.home-greeting>div>p:last-child{margin:0;color:var(--ul-muted)}.greeting-bubble{flex:0 0 auto;border-radius:50% 45% 48% 52%;padding:19px 13px;background:var(--ul-yellow);color:#574f00;font-weight:950;transform:rotate(5deg)}.home-greeting--fresh{position:relative;overflow:hidden;margin:12px 0 18px;border:1px solid var(--ul-line);border-radius:25px;padding:22px;background:radial-gradient(circle at 92% 0%,rgba(228,255,48,.42),transparent 34%),linear-gradient(135deg,#fff 45%,#f1edff);box-shadow:0 12px 32px #362f4f12}.home-greeting--fresh:after{content:"";position:absolute;width:110px;height:110px;right:-45px;bottom:-65px;border:18px solid rgba(91,35,255,.08);border-radius:50%}.home-greeting--fresh>div{position:relative;z-index:1}.home-greeting--fresh .greeting-bubble{position:relative;z-index:1;width:72px;height:72px;padding:0;border:1px solid rgba(91,35,255,.12);border-radius:23px;display:grid;place-content:center;justify-items:center;gap:1px;background:#ffffffd1;color:var(--ul-ink);box-shadow:0 12px 28px #362f4f1f;transform:rotate(4deg)}.home-greeting--fresh .greeting-bubble b{font-size:1.7rem;line-height:1}.home-greeting--fresh .greeting-bubble small{color:var(--ul-muted);font-size:.64rem;font-weight:900;text-transform:uppercase}.continue-card{position:relative;overflow:hidden;border-radius:27px;padding:20px;background:radial-gradient(circle at 96% 5%,color-mix(in srgb,var(--unit-color) 15%,transparent),transparent 35%),#fff;border:1px solid color-mix(in srgb,var(--unit-color) 25%,var(--ul-line));box-shadow:0 16px 35px #18203317}.continue-top,.continue-progress{display:flex;align-items:center;justify-content:space-between}.continue-top>span:last-child{color:var(--ul-muted);font-size:.75rem;font-weight:800}.unit-pill{padding:6px 9px;border-radius:8px;background:color-mix(in srgb,var(--unit-color) 12%,white);color:color-mix(in srgb,var(--unit-color) 65%,#001c3d);font-size:.65rem;font-weight:950;letter-spacing:.08em}.continue-body{display:flex;gap:14px;align-items:center;margin:20px 0}.continue-emoji{width:70px;height:70px;flex:0 0 70px;border-radius:22px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 10%,white);font-size:2rem}.continue-body small{color:var(--ul-muted);font-size:.64rem;font-weight:850;letter-spacing:.08em}.continue-body h2{margin:3px 0 4px;font-size:1.22rem;letter-spacing:-.03em}.continue-body p{margin:0;color:var(--ul-muted);font-size:.78rem}.continue-progress{gap:10px;margin-bottom:16px}.continue-progress>span{height:8px;flex:1;overflow:hidden;border-radius:8px;background:#edf0f5}.continue-progress i{display:block;height:100%;border-radius:inherit;background:var(--unit-color)}.continue-progress em{color:var(--ul-muted);font-size:.72rem;font-style:normal;font-weight:800}.continue-button{min-height:50px;width:100%;border:0;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--unit-color) 72%,#07111f);color:#fff;font-weight:900;box-shadow:0 10px 22px color-mix(in srgb,var(--unit-color) 25%,transparent)}.quick-practice-banner{width:100%;min-height:94px;margin-top:13px;border:0;border-radius:22px;padding:15px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;overflow:hidden;position:relative;background:radial-gradient(circle at 90% -20%,rgba(228,255,48,.45),transparent 42%),linear-gradient(135deg,#3c177f,#5b23ff 62%,#7049ff);color:#fff;text-align:left;box-shadow:0 15px 30px #5b23ff38}.quick-practice-icon{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:#ffffff24;box-shadow:inset 0 1px #ffffff40}.quick-practice-icon ion-icon{color:var(--ul-yellow);font-size:1.45rem}.quick-practice-banner>span:nth-child(2){min-width:0;display:grid;gap:1px}.quick-practice-banner small{color:#d9d0ff;font-size:.59rem;font-weight:900;letter-spacing:.12em}.quick-practice-banner strong{font-size:.95rem;letter-spacing:-.02em}.quick-practice-banner em{overflow:hidden;color:#eeeaff;font-size:.65rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.quick-practice-cta{display:inline-flex;align-items:center;gap:4px;color:var(--ul-yellow);font-size:.68rem;font-weight:900}.quick-practice-cta ion-icon{font-size:.9rem}.coach-card{margin-top:13px;border:1px solid rgba(91,35,255,.16);border-radius:24px;padding:16px;background:radial-gradient(circle at 100% -10%,rgba(228,255,48,.34),transparent 34%),#fff;box-shadow:0 14px 32px #362f4f12}.coach-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:13px}.coach-head>span{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;background:#eef9ff;color:var(--ul-green);font-size:1.25rem}.coach-head h2{margin:0;font-size:1.08rem;letter-spacing:-.03em}.coach-head>strong{color:var(--ul-muted);font-size:.68rem;white-space:nowrap}.coach-action-list{display:grid;gap:9px}.coach-action{min-height:82px;width:100%;border:1px solid var(--ul-line);border-radius:18px;padding:11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.coach-action-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);color:var(--ul-blue);font-size:1.2rem}.coach-action-copy{min-width:0;display:grid;gap:2px}.coach-action-copy small{color:var(--ul-blue);font-size:.57rem;font-weight:900;letter-spacing:.1em}.coach-action-copy strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.coach-action-copy em{overflow:hidden;color:var(--ul-muted);font-size:.62rem;font-style:normal;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.coach-meter{height:6px;margin-top:5px;overflow:hidden;border-radius:6px;background:#edf0f5}.coach-meter i{display:block;height:100%;border-radius:inherit;background:var(--ul-blue)}.coach-action-cta{display:inline-flex;align-items:center;gap:3px;color:var(--ul-blue);font-size:.66rem;font-weight:900;white-space:nowrap}.coach-action-cta ion-icon{font-size:.88rem}.coach-action.tone-review .coach-action-icon{background:#fff2e7;color:#c45100}.coach-action.tone-notes .coach-action-icon{background:#f4fcf9;color:#147c71}.coach-action.tone-focus .coach-action-icon,.coach-action.tone-practice .coach-action-icon{background:#ecfbf6;color:#008d63}.coach-action.tone-speech .coach-action-icon,.coach-action.tone-story .coach-action-icon{background:#eef9ff;color:#0078d1}.skill-spotlight{width:100%;min-height:88px;margin-top:13px;border:1px solid rgba(0,139,255,.18);border-radius:22px;padding:13px 14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;background:linear-gradient(135deg,#008bff14,#e4ff301f),#fff;color:var(--ul-ink);text-align:left}.skill-spotlight>span:first-child{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#eef9ff;color:#0078d1;font-size:1.35rem}.skill-spotlight>span:nth-child(2){min-width:0;display:grid;gap:3px}.skill-spotlight small{color:var(--ul-blue);font-size:.58rem;font-weight:900;letter-spacing:.1em}.skill-spotlight span>strong{font-size:.9rem}.skill-spotlight em{overflow:hidden;color:var(--ul-muted);font-size:.64rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.skill-spotlight i{height:6px;overflow:hidden;border-radius:6px;background:#e4edf7}.skill-spotlight b{display:block;height:100%;border-radius:inherit;background:var(--ul-green)}.skill-spotlight>strong{color:var(--ul-blue);font-size:.82rem}.home-section{margin-top:32px}.home-dashboard-grid{display:grid}.home-dashboard-grid>.home-section{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:13px}.section-heading h2{margin:0;font-size:1.3rem;letter-spacing:-.035em}.section-heading>strong{color:var(--ul-blue);font-size:.8rem}.section-heading>button{border:0;background:transparent;color:var(--ul-blue);font-size:.78rem;font-weight:850}.daily-goal-card{border:1px solid var(--ul-line);border-radius:22px;padding:17px;display:flex;align-items:center;gap:17px;background:#fff}.goal-ring{width:90px;height:90px;flex:0 0 90px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ul-green) var(--goal),#e9edf2 0);position:relative}.goal-ring:after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}.goal-ring span{z-index:1;display:grid;text-align:center}.goal-ring strong{font-size:1rem}.goal-ring small{color:var(--ul-muted);font-size:.58rem}.daily-goal-card h3{margin:0 0 4px;font-size:1rem}.daily-goal-card p{margin:0 0 9px;color:var(--ul-muted);font-size:.76rem;line-height:1.4}.daily-goal-card button{border:0;padding:0;display:flex;align-items:center;gap:5px;background:transparent;color:var(--ul-pink);font-size:.73rem;font-weight:850}.daily-phrase-unit{max-width:210px;overflow:hidden;color:var(--ul-muted);font-size:.67rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.daily-phrase-card{position:relative;overflow:hidden;min-height:190px;border:1px solid rgba(91,35,255,.18);border-radius:25px;padding:23px 23px 18px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;gap:14px;background:radial-gradient(circle at 94% -5%,rgba(228,255,48,.42),transparent 34%),radial-gradient(circle at 0% 110%,rgba(0,139,255,.1),transparent 35%),#fff;box-shadow:0 15px 35px #362f4f14}.daily-phrase-quote{position:absolute;top:-17px;right:22px;color:#5b23ff17;font-family:Georgia,serif;font-size:8rem;line-height:1;pointer-events:none}.daily-phrase-copy{position:relative;z-index:1;display:grid;align-content:center;justify-items:start;gap:6px}.daily-phrase-copy>small{color:var(--ul-blue);font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.daily-phrase-copy>strong{max-width:590px;font-size:clamp(1.65rem,5vw,2.4rem);line-height:1.06;letter-spacing:-.045em}.daily-phrase-copy>p{margin:2px 0 0;color:var(--ul-muted);font-size:.85rem;animation:slide-in .22s ease both}.phrase-reveal{margin-top:6px;border:1px dashed color-mix(in srgb,var(--ul-blue) 38%,var(--ul-line));border-radius:999px;padding:7px 11px;background:transparent;color:var(--ul-blue);font-size:.67rem;font-weight:850}.daily-phrase-actions{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:7px}.daily-phrase-actions button{width:42px;height:42px;border:1px solid var(--ul-line);border-radius:14px;display:grid;place-items:center;background:#ffffffc7;color:var(--ul-muted);font-size:1.05rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.daily-phrase-actions button:first-child{border-color:#5b23ff33;background:#efeaff;color:var(--ul-blue)}.daily-phrase-actions button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.daily-phrase-status{grid-column:1 / -1;color:#00845e;font-size:.68rem;font-weight:850}.unit-preview-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.unit-preview-row button{min-width:0;border:1px solid var(--ul-line);border-radius:18px;padding:12px;display:grid;justify-items:start;text-align:left;background:#fff;color:var(--ul-ink)}.unit-preview-row button:disabled{opacity:.48}.unit-preview-row span{width:42px;height:42px;margin-bottom:10px;border-radius:13px;display:grid;place-items:center;font-size:1.35rem}.unit-preview-row strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.76rem;white-space:nowrap}.unit-preview-row small{margin-top:3px;color:var(--ul-muted);font-size:.62rem}.learn-intro{border-radius:24px;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#5b23ff,#362f4f);color:#fff;box-shadow:0 16px 30px #5b23ff3d}.learn-intro .eyebrow{color:#cfe5ff}.learn-intro h1{margin:0 0 5px;font-size:2rem;letter-spacing:-.05em}.learn-intro p:last-child{max-width:430px;margin:0;color:#e0edff;font-size:.82rem;line-height:1.45}.level-ring{width:82px;height:82px;flex:0 0 82px;border:8px solid rgba(255,255,255,.2);border-top-color:var(--ul-yellow);border-radius:50%;display:grid;place-items:center;align-content:center;transform:rotate(10deg)}.level-ring>*{transform:rotate(-10deg)}.level-ring strong{font-size:1rem}.level-ring small{color:#dbeaff;font-size:.6rem}.learn-coach-card{margin-top:14px;border:1px solid color-mix(in srgb,var(--unit-color) 22%,var(--ul-line));border-radius:22px;padding:16px;display:grid;gap:13px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color) 18%,transparent),transparent 34%),#fff;box-shadow:0 14px 30px #2a23450f}.learn-coach-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px}.learn-coach-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 18%,white);font-size:1.5rem}.learn-coach-head h2{overflow:hidden;margin:0 0 3px;font-size:1.08rem;text-overflow:ellipsis;white-space:nowrap}.learn-coach-head p:last-child{overflow:hidden;margin:0;color:var(--ul-muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.learn-coach-head>strong{border-radius:14px;padding:8px 9px;background:color-mix(in srgb,var(--unit-color) 16%,#f7f9fd);color:color-mix(in srgb,var(--unit-color) 68%,var(--ul-ink));font-size:.82rem}.learn-coach-meter{display:grid;gap:6px}.learn-coach-meter>span{height:9px;overflow:hidden;border-radius:999px;background:#edf1f7}.learn-coach-meter i{height:100%;border-radius:inherit;display:block;background:var(--unit-color);transition:width .3s ease}.learn-coach-meter small{color:var(--ul-muted);font-size:.62rem;font-weight:800}.learn-coach-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.learn-coach-actions button{min-height:45px;border:1px solid #dce4f2;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#fff;color:var(--ul-ink);font-size:.72rem;font-weight:900}.learn-coach-actions button.primary{border-color:var(--unit-color);background:var(--unit-color);color:#fff}.learn-summary-grid{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.learn-summary-grid>div{min-width:0;border:1px solid var(--ul-line);border-radius:16px;padding:11px;display:grid;gap:2px;background:#fff}.learn-summary-grid small{color:var(--ul-muted);font-size:.57rem;font-weight:850;text-transform:uppercase}.learn-summary-grid strong{overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.learn-summary-grid span{overflow:hidden;color:var(--ul-muted);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.learn-filter-tabs{margin:13px 0 0;padding:4px;border-radius:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:#edf1f7}.learn-filter-tabs button{min-width:0;min-height:40px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:var(--ul-muted);font-size:.63rem;font-weight:900}.learn-filter-tabs button.active{background:#fff;color:var(--ul-ink);box-shadow:0 6px 16px #222a4214}.learn-filter-tabs span{min-width:18px;border-radius:999px;padding:2px 5px;background:#eaf6ff;color:#0b76bd;font-size:.56rem}.path-list{position:relative;display:grid;gap:13px;margin-top:22px}.path-list:before{content:"";position:absolute;top:20px;bottom:20px;left:34px;width:3px;background:#e2e7ef}.unit-card{position:relative;z-index:1;min-height:122px;width:100%;border:1px solid var(--ul-line);border-radius:22px;padding:15px;display:grid;grid-template-columns:40px 1fr 58px;align-items:center;gap:13px;background:#fff;color:var(--ul-ink);text-align:left;box-shadow:0 5px 16px #1820330b}.unit-card.is-locked{opacity:.72;filter:grayscale(.25)}.unit-card.is-complete{border-color:#a8ead8}.unit-rail{align-self:stretch;display:grid;place-items:center}.unit-number{width:40px;height:40px;border:4px solid white;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 72%,#07111f);color:#fff;font-size:.8rem;font-weight:950;box-shadow:0 0 0 2px color-mix(in srgb,var(--unit-color) 22%,white)}.unit-copy{min-width:0;display:grid}.unit-copy>small{color:var(--ul-muted);font-size:.6rem;font-weight:900;letter-spacing:.08em}.unit-copy>strong{margin:3px 0;font-size:.97rem}.unit-copy>span:not(.unit-progress-row){overflow:hidden;color:var(--ul-muted);font-size:.71rem;text-overflow:ellipsis;white-space:nowrap}.unit-progress-row{display:flex;align-items:center;gap:8px;margin-top:10px}.unit-progress-track{height:6px;flex:1;overflow:hidden;border-radius:6px;background:#edf0f4}.unit-progress-track i{display:block;height:100%;border-radius:inherit}.unit-progress-row em{color:var(--ul-muted);font-size:.62rem;font-style:normal;font-weight:850}.unit-emoji{width:55px;height:55px;border-radius:18px;display:grid;place-items:center;font-size:1.6rem}.unit-emoji ion-icon{color:#8991a3;font-size:1.25rem}.unit-shell{padding-top:16px}.unit-hero{position:relative;overflow:hidden;border-radius:28px;padding:26px 22px 22px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--unit-color) 25%,transparent),transparent 36%),#fff;border:1px solid color-mix(in srgb,var(--unit-color) 28%,var(--ul-line))}.unit-hero-emoji{width:82px;height:82px;margin-bottom:22px;border-radius:25px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 12%,white);font-size:2.55rem;transform:rotate(-4deg)}.unit-hero .eyebrow{color:color-mix(in srgb,var(--unit-color) 65%,#001c3d)}.unit-hero h1{margin:0 0 8px;font-size:clamp(2rem,9vw,3rem);line-height:1;letter-spacing:-.055em}.unit-hero>p:not(.eyebrow){margin:0;color:var(--ul-muted);line-height:1.5}.unit-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.unit-meta span{padding:7px 10px;border-radius:10px;display:flex;align-items:center;gap:5px;background:var(--ul-surface);color:var(--ul-muted);font-size:.7rem;font-weight:800}.unit-progress-card{margin-top:14px;border:1px solid color-mix(in srgb,var(--unit-color) 24%,var(--ul-line));border-radius:22px;padding:16px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color) 13%,transparent),transparent 32%),#fff;box-shadow:0 12px 30px #1820330f}.unit-progress-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.unit-progress-head h2{margin:0 0 4px;font-size:1.08rem;letter-spacing:-.03em}.unit-progress-head p:last-child{margin:0;color:var(--ul-muted);font-size:.72rem;line-height:1.35}.unit-progress-head>strong{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 13%,white);color:color-mix(in srgb,var(--unit-color) 72%,#001c3d);font-size:.85rem;font-weight:950}.unit-progress-line{height:8px;margin:15px 0 13px;overflow:hidden;border-radius:8px;display:block;background:#edf0f5}.unit-progress-line i{display:block;height:100%;border-radius:inherit;background:var(--unit-color)}.unit-progress-cta{min-height:48px;background:color-mix(in srgb,var(--unit-color) 72%,#07111f);box-shadow:0 10px 22px color-mix(in srgb,var(--unit-color) 20%,transparent)}.unit-progress-cta:disabled{background:#d8dde6;color:#465166;box-shadow:none}.unit-plan-card{margin-top:14px;border:1px solid color-mix(in srgb,var(--unit-color) 24%,var(--ul-line));border-radius:22px;padding:16px;display:grid;gap:13px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color) 12%,transparent),transparent 32%),#fff;box-shadow:0 12px 30px #1820330f}.unit-plan-head{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px}.unit-plan-head>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 14%,white);color:color-mix(in srgb,var(--unit-color) 72%,#001c3d);font-size:1.15rem}.unit-plan-head h2{margin:0 0 4px;font-size:1.03rem}.unit-plan-head p:last-child{margin:0;color:var(--ul-muted);font-size:.72rem;line-height:1.35}.unit-plan-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unit-plan-stats>div{min-width:0;border:1px solid color-mix(in srgb,var(--unit-color) 15%,var(--ul-line));border-radius:14px;padding:9px 8px;display:grid;gap:2px;background:#fbfcff}.unit-plan-stats small{color:var(--ul-muted);font-size:.55rem;font-weight:900;text-transform:uppercase}.unit-plan-stats strong{color:var(--ul-ink);font-size:.92rem}.unit-plan-stats span{overflow:hidden;color:var(--ul-muted);font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.unit-plan-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unit-plan-actions button{min-width:0;min-height:44px;border:1px solid var(--ul-line);border-radius:14px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:var(--ul-ink);font-size:.68rem;font-weight:900}.unit-plan-actions button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-plan-actions button.primary{border-color:color-mix(in srgb,var(--unit-color) 62%,var(--ul-line));background:color-mix(in srgb,var(--unit-color) 74%,#07111f);color:#fff}.unit-plan-actions button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.unit-plan-status{margin:-1px 0 0;border-radius:13px;padding:9px 10px;background:#effcf8;color:#08785a;font-size:.68rem;font-weight:850}.grammar-pill{margin-top:16px;border:1px solid #ead9a6;border-radius:20px;padding:16px;display:flex;gap:13px;background:radial-gradient(circle at 92% -10%,rgba(228,255,48,.35),transparent 40%),#fffdf3}.grammar-pill-icon{flex:0 0 auto;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff2c4;color:#a66900;font-size:1.35rem}.grammar-pill .eyebrow{color:#a66900}.grammar-pill strong{display:block;margin:1px 0 5px;color:var(--ul-ink);font-size:.95rem;letter-spacing:-.02em}.grammar-pill>div>p:last-child{margin:0;color:#6f5b2a;font-size:.82rem;line-height:1.5}.ion-palette-dark .grammar-pill{border-color:#5c4d1f;background:radial-gradient(circle at 92% -10%,rgba(228,255,48,.1),transparent 40%),#2a2413}.ion-palette-dark .grammar-pill-icon{background:#453a16;color:#f0cf5a}.ion-palette-dark .grammar-pill strong{color:#f5efd8}.ion-palette-dark .grammar-pill>div>p:last-child{color:#d3c393}.lesson-list{margin-top:27px}.unit-phrases{margin-top:24px}.unit-phrase-list{display:grid;gap:9px}.unit-phrase-row{min-height:68px;border:1px solid var(--ul-line);border-radius:18px;padding:11px 10px 11px 13px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;background:#fff}.unit-phrase-row div{min-width:0;display:grid;gap:2px}.unit-phrase-row strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.unit-phrase-row small{overflow:hidden;color:var(--ul-muted);font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.unit-phrase-row button{width:38px;height:38px;border:1px solid var(--ul-line);border-radius:13px;display:grid;place-items:center;background:var(--ul-card);color:var(--ul-blue);font-size:1.08rem}.unit-phrase-row button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.lesson-row{min-height:88px;width:100%;margin-bottom:10px;border:1px solid var(--ul-line);border-radius:19px;padding:13px;display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;background:#fff;color:var(--ul-ink);text-align:left}.lesson-row.is-current{border-color:var(--ul-blue);box-shadow:0 7px 18px #5b23ff1a}.lesson-row.is-locked{opacity:.72}.lesson-index{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#edf3fb;color:var(--ul-blue);font-size:.78rem;font-weight:950}.lesson-row.is-complete .lesson-index{background:#def8ef;color:#008d64}.lesson-row small{color:var(--ul-muted);font-size:.58rem;font-weight:850;letter-spacing:.06em}.lesson-row strong,.lesson-row em{display:block}.lesson-row strong{margin:3px 0 1px;font-size:.9rem}.lesson-row em{color:var(--ul-muted);font-size:.7rem;font-style:normal}.lesson-row>ion-icon{color:#a4abb9}.lesson-header ion-toolbar{--background: white;--border-color: var(--ul-line);--min-height: 61px}.lesson-header ion-button{--color: var(--ul-muted)}.lesson-header ion-button ion-icon{font-size:1.5rem}.lesson-progress{height:100%;display:flex;align-items:center;gap:10px;padding:0 12px}.lesson-progress>span{height:9px;flex:1;overflow:hidden;border-radius:10px;background:#e8ecf2}.lesson-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ul-green),#39dbae);transition:width .26s ease}.lesson-progress strong{color:var(--ul-muted);font-size:.7rem}.lesson-xp{margin-right:12px;display:flex;align-items:center;gap:3px;color:var(--ul-blue);font-size:.75rem;font-weight:900}.lesson-shell{width:min(100%,680px);min-height:calc(100% - 1px);margin:0 auto;padding:18px 18px 150px;display:flex;flex-direction:column}.lesson-context{display:flex;align-items:center;gap:9px;margin-bottom:22px}.lesson-context>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:1.25rem}.lesson-context div{display:grid}.lesson-context small{color:var(--ul-muted);font-size:.65rem}.lesson-context strong{font-size:.85rem}.exercise-card{flex:1;border-radius:25px;padding:clamp(20px,5vw,34px);background:#fff;border:1px solid var(--ul-line);box-shadow:0 10px 30px #1820330f}.exercise-card.has-submitted{padding-bottom:clamp(18px,4vw,28px)}.exercise-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.exercise-instruction{margin:0;color:var(--ul-blue);font-size:.7rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.exercise-meta{min-height:30px;border:1px solid #dce4ef;border-radius:999px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;background:#f8fbff;color:#59627a;font-size:.68rem;font-weight:900;white-space:nowrap}.exercise-meta ion-icon{color:#8f6aff;font-size:.9rem}.exercise-coach-strip{margin-top:14px;border:1px solid #dbe7ff;border-radius:16px;padding:10px 12px;display:flex;align-items:flex-start;gap:9px;background:#f6f9ff;color:#4c5b78;font-size:.76rem;font-weight:800;line-height:1.35}.exercise-coach-strip ion-icon{flex:0 0 auto;margin-top:1px;color:#6b8dff;font-size:1rem}.exercise-coach-strip.is-done{border-color:#bdebdc;background:#effbf7;color:#08785a}.exercise-coach-strip.is-done ion-icon{color:#17b384}.exercise-coach-strip.is-wrong{border-color:#ffd3df;background:#fff4f7;color:#b2254e}.exercise-coach-strip.is-wrong ion-icon{color:#ef4b74}.exercise-prompt{margin:14px 0 28px;font-size:clamp(1.65rem,7vw,2.5rem);line-height:1.13;letter-spacing:-.045em;font-weight:900}.answer-list{display:grid;gap:10px}.answer-option{min-height:61px;width:100%;border:2px solid var(--ul-line);border-radius:17px;padding:9px 14px;display:flex;align-items:center;gap:12px;background:#fff;color:var(--ul-ink);text-align:left}.answer-option.is-selected{border-color:var(--ul-blue);background:#f0f7ff;box-shadow:0 5px 16px #5b23ff1a}.answer-option>span{width:32px;height:32px;flex:0 0 32px;border-radius:10px;display:grid;place-items:center;background:#f0f2f6;color:var(--ul-muted);font-size:.7rem;font-weight:900}.answer-option.is-selected>span{background:var(--ul-blue);color:#fff}.answer-option strong{font-size:.88rem}.exercise-check{margin-top:24px}.builder-status{margin:-7px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.builder-status>span{border-radius:999px;padding:7px 10px;background:#f3f6fb;color:var(--ul-muted);font-size:.68rem;font-weight:900}.builder-status>div{display:inline-flex;gap:7px}.builder-status button{width:34px;height:34px;border:1px solid #dce4ef;border-radius:11px;display:grid;place-items:center;background:#fff;color:#6c7690}.builder-status button ion-icon{font-size:1rem}.sentence-builder{min-height:95px;border-bottom:2px solid var(--ul-line);padding:10px 2px 16px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.sentence-builder.is-empty{color:var(--ul-muted);font-size:.8rem}.sentence-builder button,.word-chip{min-height:42px;border:1px solid #ced5e1;border-bottom-width:3px;border-radius:12px;padding:7px 12px;background:#fff;color:var(--ul-ink);font-weight:800}.word-bank{min-height:120px;padding-top:22px;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:9px}.match-help{margin:-17px 0 13px;color:var(--ul-muted);font-size:.75rem}.match-progress{height:8px;margin:-4px 0 16px;border-radius:999px;overflow:hidden;background:#edf1f7}.match-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#17b384,#66d9ff);transition:width .18s ease}.match-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.match-grid>div{display:grid;gap:9px}.match-option{min-height:65px;border:2px solid var(--ul-line);border-radius:15px;padding:9px;background:#fff;color:var(--ul-ink);font-size:.75rem;font-weight:800}.match-option.is-selected{border-color:var(--ul-blue);background:#f1edff}.match-option.is-matched{border-color:#7cc7ff;background:#e9f5ff;color:#005ea8}.type-meter{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ul-muted);font-size:.72rem}.type-meter span,.type-meter strong{border-radius:999px;padding:7px 10px;background:#f3f6fb;font-weight:900}.type-meter strong{color:#52607a;text-align:right}.exercise-answer-panel{margin-top:18px;border:1px solid #bdebdc;border-radius:18px;padding:12px;display:flex;gap:10px;background:#f1fbf7}.exercise-answer-panel.is-wrong{border-color:#ffd0dc;background:#fff5f8}.exercise-answer-panel>ion-icon{flex:0 0 auto;margin-top:2px;color:#17b384;font-size:1.25rem}.exercise-answer-panel.is-wrong>ion-icon{color:#ef4b74}.exercise-answer-panel div{min-width:0;display:grid;gap:4px}.exercise-answer-panel strong{color:var(--ul-ink);font-size:.82rem}.exercise-answer-panel span{overflow-wrap:anywhere;color:#6f35ff;font-size:.9rem;font-weight:900}.exercise-answer-panel small{color:var(--ul-muted);font-size:.72rem;line-height:1.35}@media(max-width:430px){.exercise-topline{flex-direction:column;align-items:stretch}.exercise-meta{align-self:flex-start;max-width:100%;white-space:normal}.exercise-coach-strip,.exercise-answer-panel{border-radius:15px}.type-meter{align-items:stretch;flex-direction:column;gap:7px}.type-meter strong{text-align:left}}.match-message{color:var(--ul-muted);font-size:.74rem;text-align:center}.audio-orb{width:90px;height:90px;margin:13px 0 10px;border:0;border-radius:50%;display:grid;place-items:center;align-content:center;gap:3px;background:var(--ul-blue);color:#fff;box-shadow:0 13px 28px #5b23ff42}.audio-orb ion-icon{font-size:2rem}.audio-orb span{font-size:.62rem;font-weight:850}.feedback-footer{border:0;box-shadow:0 -5px 25px #1820331c}.feedback-footer>div{min-height:116px;padding:17px max(18px,calc((100% - 680px)/2));display:grid;grid-template-columns:48px 1fr minmax(150px,200px);align-items:center;gap:13px}.feedback-footer.is-correct>div{background:#e6faf3;color:#006e4f}.feedback-footer.is-wrong>div{background:#fff0f3;color:#b01845}.feedback-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:currentColor}.feedback-icon ion-icon{color:#fff;font-size:1.4rem}.feedback-footer strong{font-size:1.03rem}.feedback-footer p{margin:3px 0 0;font-size:.76rem;line-height:1.35}.feedback-footer.is-correct .ul-button{background:#007a59;color:#fff}.feedback-footer.is-wrong .ul-button{background:#b01845;color:#fff}.result-shell{position:relative;min-height:100%;width:min(100%,580px);margin:auto;padding:max(55px,env(safe-area-inset-top)) 22px 34px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden}.result-medal{width:128px;height:128px;margin-bottom:25px;border:12px solid #eeeaff;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#5b23ff,#362f4f);box-shadow:0 18px 40px #5b23ff47}.result-medal span{color:var(--ul-yellow);font-size:4.2rem;filter:drop-shadow(0 4px 3px rgba(0,0,0,.13))}.result-shell h1{margin:0;font-size:clamp(2.7rem,12vw,4.5rem);letter-spacing:-.065em;font-weight:950}.result-shell>p:not(.eyebrow){max-width:430px;margin:11px 0 27px;color:var(--ul-muted);line-height:1.5}.result-stats{width:100%;margin-bottom:21px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.result-stats div{min-height:105px;border-radius:18px;padding:12px 6px;display:grid;place-items:center;align-content:center;background:#fff;border:1px solid var(--ul-line)}.result-stats ion-icon{color:var(--ul-blue);font-size:1.35rem}.result-stats strong{margin:5px 0 2px;font-size:1.15rem}.result-stats small{color:var(--ul-muted);font-size:.55rem;font-weight:850}.result-tip{width:100%;margin-bottom:23px;border-radius:17px;padding:14px;display:flex;align-items:center;gap:12px;background:#fffce1;text-align:left}.result-tip>span{font-size:1.5rem}.result-tip p{margin:0;color:#6c6216;font-size:.75rem}.result-tip strong{display:block;color:#514800}.result-next-card{width:100%;margin-bottom:18px;border:1px solid var(--ul-line);border-radius:22px;padding:16px;background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.24),transparent 34%),#fff;text-align:left;box-shadow:0 12px 30px #362f4f12}.result-next-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:13px;margin-bottom:12px}.result-next-head h2{margin:0 0 4px;font-size:1.05rem;letter-spacing:-.03em}.result-next-head p:last-child{margin:0;color:var(--ul-muted);font-size:.72rem;line-height:1.35}.result-next-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#efeaff;color:var(--ul-blue);font-size:1.28rem}.result-next-actions{display:grid;gap:8px}.result-next-actions button{min-height:62px;border:1px solid var(--ul-line);border-radius:16px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.result-next-actions button.primary{border-color:#5b23ff57;background:#f6f2ff}.result-next-actions ion-icon{width:38px;height:38px;border-radius:13px;padding:9px;background:var(--ul-surface);color:var(--ul-blue)}.result-next-actions span{min-width:0;display:grid;gap:2px}.result-next-actions strong{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.result-next-actions small{overflow:hidden;color:var(--ul-muted);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.confetti i{--x: calc((var(--i) * 47) % 100);position:absolute;top:calc((var(--i) * 29) % 48 * 1%);left:calc(var(--x) * 1%);width:8px;height:14px;border-radius:2px;background:hsl(calc(var(--i) * 43),85%,58%);transform:rotate(calc(var(--i) * 23deg));opacity:.65}.review-hero{border-radius:24px;padding:20px;display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#172c50,#234d81);color:#fff}.review-hero-icon{width:66px;height:66px;flex:0 0 66px;border-radius:21px;display:grid;place-items:center;background:#ffffff21}.review-hero-icon ion-icon{font-size:2rem}.review-hero .eyebrow{color:#91c8ff}.review-hero h1{margin:0 0 4px;font-size:1.35rem;letter-spacing:-.04em}.review-hero p:last-child{margin:0;color:#c6d8ef;font-size:.76rem}.review-forecast-card{margin-top:13px;border:1px solid var(--ul-line);border-radius:21px;padding:15px;background:#fff}.review-forecast-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:11px}.review-forecast-head>strong{color:var(--ul-blue);font-size:.72rem}.review-forecast-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-forecast-grid>div{min-height:80px;border:1px solid var(--ul-line);border-radius:15px;padding:9px 6px;display:grid;justify-items:center;align-content:center;gap:2px;background:var(--ul-surface);text-align:center}.review-forecast-grid>div.active{border-color:#008bff59;background:#eef9ff}.review-forecast-grid strong{font-size:1.15rem}.review-forecast-grid span{font-size:.65rem;font-weight:900}.review-forecast-grid small{color:var(--ul-muted);font-size:.55rem}.review-session-card{margin-top:13px;border:1px solid #dbe7ff;border-radius:21px;padding:15px;background:radial-gradient(circle at 100% -8%,rgba(0,139,255,.14),transparent 34%),#fff}.review-session-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px}.review-session-head>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#eaf6ff;color:var(--ul-blue);font-size:1.25rem}.review-session-head h2{margin:0 0 3px;font-size:1rem}.review-session-head p:last-child{margin:0;color:var(--ul-muted);font-size:.66rem;line-height:1.35}.review-session-head>strong{border-radius:999px;padding:7px 10px;background:#efeaff;color:var(--ul-blue);font-size:.68rem;white-space:nowrap}.review-session-stats{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-session-stats>div{min-width:0;border-radius:14px;padding:9px 8px;display:grid;gap:2px;background:#f7f9fd}.review-session-stats small,.review-session-controls>div>small{overflow:hidden;color:var(--ul-muted);font-size:.55rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.review-session-stats strong{font-size:.92rem}.review-session-controls{margin-top:12px;display:grid;gap:10px}.review-session-controls>div{display:grid;gap:7px}.review-mode-tabs,.review-size-tabs{display:grid;gap:7px}.review-mode-tabs,.review-size-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.review-mode-tabs button,.review-size-tabs button{min-width:0;min-height:42px;border:1px solid var(--ul-line);border-radius:14px;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--ul-card);color:var(--ul-ink);font-size:.7rem;font-weight:900}.review-mode-tabs button.active,.review-size-tabs button.active{border-color:var(--ul-blue);background:#efeaff;color:var(--ul-blue)}.review-mode-tabs ion-icon{flex:0 0 auto;font-size:1rem}.review-status{display:flex;align-items:center;gap:10px;margin:20px 0 10px}.review-status span{height:8px;flex:1;overflow:hidden;border-radius:8px;background:#e4e9f0}.review-status i{display:block;height:100%;background:var(--ul-green)}.review-status strong{color:var(--ul-muted);font-size:.7rem}.mastery-card{margin-bottom:12px;border-radius:13px;padding:10px 13px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--ul-line)}.mastery-card>span{color:var(--ul-muted);font-size:.6rem;font-weight:900;letter-spacing:.08em}.mastery-card>div{display:flex;gap:4px}.mastery-card i{width:17px;height:7px;border-radius:5px;background:#e4e8ef}.mastery-card i.active{background:var(--ul-green)}.mastery-card small{margin-left:auto;color:var(--ul-muted);font-size:.65rem}.review-feedback{margin-top:12px;border-radius:18px;padding:16px}.review-feedback.good{background:#e6faf3;color:#007653}.review-feedback.bad{background:#fff0f3;color:#ac1742}.review-feedback p{margin:5px 0 13px;font-size:.76rem}.empty-review{min-height:390px;display:grid;justify-items:center;align-content:center;text-align:center}.empty-review>span{font-size:4.5rem}.empty-review h2{margin:13px 0 6px;font-size:1.8rem}.empty-review p{max-width:390px;margin:0 0 22px;color:var(--ul-muted);line-height:1.5}.empty-review .ul-button{max-width:320px}.league-hero{border-radius:24px;padding:19px;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:13px;background:linear-gradient(135deg,#fff4e6,#fffaf4);border:1px solid #f2d8b7}.league-shield{width:56px;height:62px;display:grid;place-items:center;background:#b87436;clip-path:polygon(50% 0,92% 18%,82% 76%,50% 100%,18% 76%,8% 18%);font-size:1.7rem}.league-hero .eyebrow{color:#a55c21}.league-hero h1{margin:0 0 2px;font-size:1.25rem}.league-hero p:last-child{margin:0;color:#8a6a52;font-size:.7rem}.league-time{display:flex;align-items:center;gap:3px;color:#93613b;font-size:.65rem;font-weight:850}.league-progress-card{margin:16px 0 3px;border:1px solid #dce4f2;border-radius:21px;padding:16px;display:grid;gap:14px;background:#fff;box-shadow:0 14px 30px #1f28430f}.league-progress-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px}.league-progress-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eaf6ff;color:#0b76bd;font-size:1.15rem}.league-progress-head h2{margin:0 0 3px;font-size:1.04rem}.league-progress-head p:last-child{margin:0;color:var(--ul-muted);font-size:.72rem;line-height:1.35}.league-progress-head>strong{min-width:47px;border-radius:14px;padding:8px 9px;background:#f0edff;color:var(--ul-blue);font-size:.9rem;text-align:center}.league-progress-meter{display:grid;gap:6px}.league-progress-meter>span{height:10px;overflow:hidden;border-radius:999px;background:#edf1f7}.league-progress-meter i{height:100%;min-width:7px;border-radius:inherit;display:block;background:linear-gradient(90deg,#17b384,#008bff);transition:width .3s ease}.league-progress-meter small{color:var(--ul-muted);font-size:.62rem;font-weight:800}.league-progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.league-progress-stats>div{min-width:0;border:1px solid #e4e9f2;border-radius:14px;padding:10px;display:grid;gap:2px;background:#fbfcff}.league-progress-stats small{color:var(--ul-muted);font-size:.57rem;font-weight:850;text-transform:uppercase}.league-progress-stats strong{overflow:hidden;color:var(--ul-ink);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.league-progress-stats span{overflow:hidden;color:var(--ul-muted);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.league-progress-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.league-progress-actions button{min-height:45px;border:1px solid #dce4f2;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#fff;color:var(--ul-ink);font-size:.72rem;font-weight:900}.league-progress-actions button.primary{border-color:var(--ul-blue);background:var(--ul-blue);color:#fff}.league-mission-card{margin:13px 0 4px;border:1px solid #dce4f2;border-radius:21px;padding:16px;display:grid;gap:13px;background:#fff;box-shadow:0 14px 30px #1f28430f}.league-mission-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.league-mission-head h2{margin:0 0 4px;font-size:1.02rem}.league-mission-head p:last-child{margin:0;color:var(--ul-muted);font-size:.72rem;line-height:1.35}.league-mission-head>strong{min-width:64px;border-radius:999px;padding:8px 11px;background:#eafff7;color:#0f8b66;font-size:.78rem;text-align:center;white-space:nowrap}.league-zone-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.league-zone-strip span{min-width:0;border:1px solid #e4e9f2;border-radius:14px;padding:9px 10px;display:grid;gap:2px;background:#fbfcff}.league-zone-strip span.active{border-color:#9be6ce;background:#effcf8}.league-zone-strip small{color:var(--ul-muted);font-size:.56rem;font-weight:850;text-transform:uppercase}.league-zone-strip b{overflow:hidden;color:var(--ul-ink);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.league-mission-list{display:grid;gap:8px}.league-mission-list button{width:100%;min-height:58px;min-width:0;border:1px solid #dce4f2;border-radius:16px;padding:9px 10px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;background:#fff;color:var(--ul-ink);text-align:left}.league-mission-list button.primary{border-color:var(--ul-blue);background:#f1edff}.league-mission-list button>span{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#eaf6ff;color:#0b76bd;font-size:1.05rem}.league-mission-list button div{min-width:0;display:grid;gap:2px}.league-mission-list strong{color:var(--ul-ink);font-size:.78rem;line-height:1.15;overflow-wrap:anywhere}.league-mission-list small{color:var(--ul-muted);font-size:.62rem;line-height:1.25;overflow-wrap:anywhere}.league-mission-list em{color:var(--ul-blue);font-size:.7rem;font-style:normal;font-weight:950;white-space:nowrap}.podium{min-height:215px;margin:28px 0 15px;display:flex;align-items:end;justify-content:center}.podium-place{width:31%;max-width:145px;display:grid;justify-items:center;position:relative}.podium-place>span{width:53px;height:53px;margin-bottom:8px;border:4px solid white;border-radius:50%;display:grid;place-items:center;background:#e9edf5;color:#5d667a;font-size:.75rem;font-weight:900;box-shadow:0 0 0 2px #d7dde8}.podium-place.first>span{width:64px;height:64px;background:#eeeaff;color:#4815c5;box-shadow:0 0 0 3px #b7a7ff}.podium-place>i{position:absolute;top:-25px;font-style:normal;font-size:1.6rem}.podium-place>strong{width:100%;height:56px;display:grid;place-items:center;background:#aeb8c8;color:#172033;font-size:1.4rem}.podium-place.first>strong{height:88px;background:#5b23ff;color:#fff}.podium-place.third>strong{height:44px;background:#8b532c;color:#fff}.podium-place b{margin-top:7px;font-size:.76rem}.podium-place small{color:var(--ul-muted);font-size:.62rem}.ranking-list{border:1px solid var(--ul-line);border-radius:21px;overflow:hidden;background:#fff}.ranking-row{min-height:70px;padding:10px 14px;display:grid;grid-template-columns:25px 40px 1fr auto auto;align-items:center;gap:9px;border-bottom:1px solid var(--ul-line)}.ranking-row:last-child{border-bottom:0}.ranking-row.me{background:#f1edff}.ranking-row.promotes>strong{color:#0f8b66}.ranking-row.is-rival{background:#fff8ec}.ranking-row>strong{color:var(--ul-muted);text-align:center}.ranking-row>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eef1f6;color:#626b7f;font-size:.65rem;font-weight:900}.ranking-row.me>span{background:var(--ul-blue);color:#fff}.ranking-row div{display:grid}.ranking-row b{font-size:.82rem}.ranking-row small{color:var(--ul-muted);font-size:.62rem}.ranking-row em{color:var(--ul-blue);font-size:.72rem;font-style:normal;font-weight:900}.ranking-note{margin:18px;color:var(--ul-muted);font-size:.72rem;text-align:center}.profile-card{border-radius:24px;padding:20px;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:14px;background:#fff;border:1px solid var(--ul-line)}.profile-avatar{width:68px;height:68px;border-radius:21px;display:grid;place-items:center;background:linear-gradient(145deg,#5b23ff,#362f4f);color:#fff;font-size:1.3rem;font-weight:950}.profile-card h1{margin:0 0 3px;font-size:1.35rem;letter-spacing:-.04em}.profile-card>div:nth-child(2)>span{color:var(--ul-muted);font-size:.72rem}.profile-card>button{width:38px;height:38px;border:0;border-radius:12px;display:grid;place-items:center;background:#edf4fd;color:var(--ul-blue)}.profile-numbers{margin:13px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.profile-numbers div{min-height:105px;border:1px solid var(--ul-line);border-radius:18px;display:grid;place-items:center;align-content:center;background:#fff}.profile-numbers ion-icon{color:var(--ul-blue);font-size:1.35rem}.profile-numbers strong{margin:5px 0 1px;font-size:1.1rem}.profile-numbers small{color:var(--ul-muted);font-size:.61rem}.profile-coach-card{overflow:hidden;background:radial-gradient(circle at 100% -10%,rgba(0,139,255,.14),transparent 34%),#fff}.profile-coach-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px}.profile-coach-head>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#eaf6ff;color:var(--ul-blue);font-size:1.25rem}.profile-coach-head h2{margin:0 0 3px;font-size:1.05rem}.profile-coach-head p:last-child{margin:0;color:var(--ul-muted);font-size:.68rem;line-height:1.35}.profile-coach-head>strong{border-radius:999px;padding:7px 10px;background:#efeaff;color:var(--ul-blue);font-size:.68rem;white-space:nowrap}.profile-coach-stats{margin-top:13px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.profile-coach-stats>div{min-width:0;border-radius:14px;padding:9px 8px;display:grid;gap:1px;background:#f7f9fd}.profile-coach-stats small{overflow:hidden;color:var(--ul-muted);font-size:.54rem;font-weight:850;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.profile-coach-stats strong{font-size:.92rem}.profile-coach-stats span{overflow:hidden;color:var(--ul-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.profile-action-grid{margin-top:13px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.profile-action-grid button{min-width:0;min-height:58px;border:1px solid var(--ul-line);border-radius:16px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.profile-action-grid button>ion-icon:first-child{color:var(--ul-blue);font-size:1.2rem}.profile-action-grid button>ion-icon:last-child{color:var(--ul-muted);font-size:.92rem}.profile-action-grid button.primary{border-color:var(--ul-blue);background:var(--ul-blue);color:#fff}.profile-action-grid button.primary ion-icon,.profile-action-grid button.primary small{color:#fff}.profile-action-grid span{min-width:0;display:grid;gap:1px}.profile-action-grid strong{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.profile-action-grid small{overflow:hidden;color:var(--ul-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.settings-card{margin-top:13px;border:1px solid var(--ul-line);border-radius:20px;padding:17px;background:#fff}.profile-insight-grid{display:grid}.course-setting{display:flex;align-items:center;gap:12px}.course-setting>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.6rem}.course-setting div{display:grid}.course-setting strong{font-size:.86rem}.course-setting small{color:var(--ul-muted);font-size:.66rem}.profile-progress{height:7px;margin-top:13px;overflow:hidden;border-radius:7px;background:#e8ecf2}.profile-progress i{display:block;height:100%;border-radius:inherit;background:var(--ul-blue)}.goal-card{background:radial-gradient(circle at 98% 0%,rgba(0,139,255,.12),transparent 34%),#fff}.goal-list{display:grid;gap:10px}.goal-row{min-height:70px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px}.goal-row+.goal-row{border-top:1px solid var(--ul-line);padding-top:10px}.goal-row>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.2rem}.goal-row>div{min-width:0;display:grid;gap:4px}.goal-row strong{font-size:.8rem}.goal-row small{overflow:hidden;color:var(--ul-muted);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.goal-row i{height:6px;overflow:hidden;border-radius:6px;background:#edf0f5}.goal-row b{display:block;height:100%;border-radius:inherit;background:var(--ul-green)}.goal-row em{color:var(--ul-blue);font-size:.68rem;font-style:normal;font-weight:900}.skill-card{background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.22),transparent 32%),#fff}.skill-list{display:grid;gap:9px}.skill-row{min-height:72px;width:100%;border:1px solid var(--ul-line);border-radius:17px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.skill-row>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);color:var(--ul-blue);font-size:1.2rem}.skill-row>div{min-width:0;display:grid;gap:4px}.skill-row strong{font-size:.8rem}.skill-row small{overflow:hidden;color:var(--ul-muted);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.skill-row i{height:6px;overflow:hidden;border-radius:6px;background:#edf0f5}.skill-row b{display:block;height:100%;border-radius:inherit;background:var(--ul-blue)}.skill-row em{color:var(--ul-blue);font-size:.68rem;font-style:normal;font-weight:900}.setting-row{min-height:61px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--ul-line)}.setting-row:last-child{border-bottom:0}.setting-row>ion-icon{color:var(--ul-blue);font-size:1.25rem}.setting-row>span{flex:1;display:grid}.setting-row strong{font-size:.8rem}.setting-row small{color:var(--ul-muted);font-size:.64rem}.edit-profile{display:grid;gap:13px}.edit-profile label{display:grid;gap:6px;font-size:.72rem;font-weight:850}.danger-link{width:100%;margin-top:24px;border:0;background:transparent;color:#b21f49;font-size:.76rem;font-weight:850}.app-version{color:var(--ul-muted);font-size:.65rem;text-align:center}.backup-card{overflow:hidden;background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.3),transparent 35%),#fff}.backup-heading{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px}.backup-heading>span{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#5b23ff,#4520ae);color:var(--ul-yellow);font-size:1.4rem;box-shadow:0 10px 22px #5b23ff30}.backup-heading h2{margin:0 0 3px;font-size:1.08rem;letter-spacing:-.03em}.backup-heading p:last-child{margin:0;color:var(--ul-muted);font-size:.68rem;line-height:1.35}.backup-actions{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.backup-actions button{min-height:70px;border:1px solid var(--ul-line);border-radius:17px;padding:11px 12px;display:flex;align-items:center;gap:10px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.backup-actions button>ion-icon{flex:0 0 auto;color:var(--ul-blue);font-size:1.3rem}.backup-actions button>span{min-width:0;display:grid;gap:1px}.backup-actions strong,.backup-actions small{overflow-wrap:anywhere}.backup-actions strong{font-size:.76rem}.backup-actions small{color:var(--ul-muted);font-size:.59rem}.backup-file-input{position:fixed;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.backup-status{margin:12px 0 0;border-radius:11px;padding:8px 10px;background:#e9fbf5;color:#007653;font-size:.67rem;font-weight:800}.backup-status.error{background:#fff0f4;color:#b21f49}.cloud-card .backup-heading>span{background:#eef3ff;color:var(--ul-blue)}.sync-code-row{margin-top:14px;min-width:0;display:grid;gap:10px}.sync-code-reveal{display:inline-flex;align-items:center;gap:7px;border:0;padding:0;background:transparent;color:var(--ul-blue);font-size:.78rem;font-weight:850}.sync-code-reveal ion-icon{font-size:1.05rem}.sync-code-box{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:start;gap:8px;border:1px solid var(--ul-line);border-radius:13px;padding:10px 12px;background:var(--ul-surface)}.sync-code-box code{min-width:0;max-width:100%;overflow:visible;color:var(--ul-ink);font-size:clamp(.58rem,2.7vw,.72rem);font-weight:700;line-height:1.45;overflow-wrap:anywhere;white-space:normal;word-break:break-word}.sync-code-box button{width:36px;height:36px;border:0;border-radius:10px;display:grid;place-items:center;background:#eef3ff;color:var(--ul-blue);font-size:1.1rem}.sync-code-link{justify-self:start;border:0;padding:0;background:transparent;color:var(--ul-muted);font-size:.74rem;font-weight:800;text-decoration:underline}@media(max-width:540px){.feedback-footer>div{grid-template-columns:45px 1fr}.backup-actions{grid-template-columns:1fr}.coach-action{grid-template-columns:auto minmax(0,1fr)}.coach-action-cta{grid-column:2;justify-self:start}.feedback-footer .ul-button{grid-column:1 / -1;min-height:48px}.league-hero{grid-template-columns:52px 1fr}.league-time{grid-column:2}.league-mission-head{grid-template-columns:1fr}.league-mission-head>strong{justify-self:start}.league-zone-strip{grid-template-columns:1fr}.league-mission-list button{grid-template-columns:38px minmax(0,1fr)}.league-mission-list button>span{width:38px;height:38px}.league-mission-list em{grid-column:2;justify-self:start}}@media(min-width:760px){.home-shell,.learn-shell,.review-shell,.ranking-shell,.profile-shell{padding-top:30px}.home-shell,.profile-shell{width:min(100%,980px)}.continue-card{padding:27px}.learn-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-dashboard-grid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:18px}.home-dashboard-grid>.home-section{display:flex;flex-direction:column}.home-dashboard-grid .daily-goal-card,.home-dashboard-grid .quest-list{flex:1}.profile-insight-grid{grid-template-columns:1fr 1fr;gap:13px}.profile-insight-grid .settings-card{min-width:0}.profile-insight-grid .week-chart{grid-column:1 / -1}.onboarding-panel .ul-button{max-width:360px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.ion-palette-dark body{background:var(--ul-surface)}.ion-palette-dark .ul-header ion-toolbar,.ion-palette-dark .lesson-header ion-toolbar{--background: rgba(17, 26, 40, .96);--border-color: var(--ul-line);--color: var(--ul-ink)}.ion-palette-dark .ul-tabs{--background: linear-gradient(135deg, rgba(54, 47, 79, .98), rgba(24, 20, 36, .98));border-color:#b19eff3d;box-shadow:0 18px 42px #00000080,0 5px 16px #0000005c}.ion-palette-dark .ul-tabs ion-tab-button{--color: rgba(248, 247, 255, .68);--color-selected: #e4ff30;--color-focused: rgba(248, 247, 255, .68)}.ion-palette-dark .tab-icon-wrap{background:conic-gradient(var(--tab-accent) var(--tab-progress),#4b4265 0)}.ion-palette-dark .tab-icon-wrap:after{background:#2b233d}.ion-palette-dark .ul-tabs ion-label small{color:#f8f7ff80}.ion-palette-dark .ul-tabs ion-tab-button.tab-selected .tab-icon-wrap{background:#ffffff24}.ion-palette-dark .tab-dot{border-color:#362f4f}.ion-palette-dark .header-avatar{background:#3a2c67;color:#e2dcff;border-color:#211a31;box-shadow:0 0 0 2px #6d55ae}.ion-palette-dark .ul-button--primary:disabled{background:#4b4265;color:#b2bdcf}.ion-palette-dark .top-stat,.ion-palette-dark .catalog-sync-card,.ion-palette-dark .catalog-sync-stats>div,.ion-palette-dark .continue-card,.ion-palette-dark .daily-goal-card,.ion-palette-dark .unit-preview-row button,.ion-palette-dark .unit-card,.ion-palette-dark .learn-coach-card,.ion-palette-dark .learn-summary-grid>div,.ion-palette-dark .learn-coach-actions button,.ion-palette-dark .learn-filter-tabs button.active,.ion-palette-dark .path-label-meta b,.ion-palette-dark .unit-hero,.ion-palette-dark .unit-progress-card,.ion-palette-dark .unit-plan-card,.ion-palette-dark .unit-plan-stats>div,.ion-palette-dark .unit-plan-actions button,.ion-palette-dark .unit-phrase-row,.ion-palette-dark .lesson-row,.ion-palette-dark .exercise-card,.ion-palette-dark .exercise-meta,.ion-palette-dark .exercise-coach-strip,.ion-palette-dark .answer-option,.ion-palette-dark .sentence-builder button,.ion-palette-dark .word-chip,.ion-palette-dark .match-option,.ion-palette-dark .builder-status>span,.ion-palette-dark .builder-status button,.ion-palette-dark .type-meter span,.ion-palette-dark .type-meter strong,.ion-palette-dark .result-stats div,.ion-palette-dark .mastery-card,.ion-palette-dark .review-session-card,.ion-palette-dark .review-session-stats>div,.ion-palette-dark .review-mode-tabs button,.ion-palette-dark .review-size-tabs button,.ion-palette-dark .league-progress-card,.ion-palette-dark .league-progress-stats>div,.ion-palette-dark .league-progress-actions button,.ion-palette-dark .league-mission-card,.ion-palette-dark .league-zone-strip span,.ion-palette-dark .league-mission-list button,.ion-palette-dark .ranking-list,.ion-palette-dark .profile-card,.ion-palette-dark .profile-numbers div,.ion-palette-dark .profile-coach-card,.ion-palette-dark .profile-coach-stats>div,.ion-palette-dark .profile-action-grid button,.ion-palette-dark .settings-card,.ion-palette-dark .onboarding-feature-grid>div,.ion-palette-dark .course-preview-card,.ion-palette-dark .goal-preview-card,.ion-palette-dark .course-preview-stats span,.ion-palette-dark .goal-preview-card>div:last-child span,.ion-palette-dark .language-card,.ion-palette-dark .goal-grid button{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .exercise-meta ion-icon{color:#cfc2ff}.ion-palette-dark .exercise-coach-strip{background:#2b263b;color:var(--ul-muted)}.ion-palette-dark .exercise-coach-strip.is-done{border-color:#1e8066;background:#12382f;color:#74ebc7}.ion-palette-dark .exercise-coach-strip.is-wrong{border-color:#7a2942;background:#3d1927;color:#ff8caf}.ion-palette-dark .daily-phrase-card,.ion-palette-dark .backup-card{background:radial-gradient(circle at 94% -5%,rgba(228,255,48,.12),transparent 34%),var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .daily-phrase-actions button,.ion-palette-dark .backup-actions button{background:#30283f;color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .daily-phrase-actions button:first-child{border-color:#59459b;background:#382875;color:#d5caff}.ion-palette-dark .daily-phrase-actions button.active,.ion-palette-dark .unit-phrase-row button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.ion-palette-dark .unit-plan-actions button.primary{border-color:color-mix(in srgb,var(--unit-color) 42%,var(--ul-line));background:color-mix(in srgb,var(--unit-color) 24%,#271f3b);color:color-mix(in srgb,var(--unit-color) 36%,white)}.ion-palette-dark .unit-plan-actions button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.ion-palette-dark .unit-plan-status,.ion-palette-dark .backup-status{background:#12382f;color:#74ebc7}.ion-palette-dark .backup-status.error{background:#3d1927;color:#ff8caf}.ion-palette-dark .cloud-card .backup-heading>span,.ion-palette-dark .profile-coach-head>span,.ion-palette-dark .sync-code-box button{background:#382875;color:#cfc2ff}.ion-palette-dark .sync-code-box{background:#332a49;border-color:var(--ul-line)}.ion-palette-dark .continue-card{background:radial-gradient(circle at 96% 5%,color-mix(in srgb,var(--unit-color) 20%,transparent),transparent 35%),var(--ul-card)}.ion-palette-dark .unit-hero{background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--unit-color) 24%,transparent),transparent 36%),var(--ul-card)}.ion-palette-dark .unit-progress-card,.ion-palette-dark .unit-plan-card{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color) 18%,transparent),transparent 32%),var(--ul-card)}.ion-palette-dark .unit-pill,.ion-palette-dark .continue-emoji,.ion-palette-dark .unit-hero-emoji,.ion-palette-dark .unit-plan-head>span,.ion-palette-dark .unit-progress-head>strong,.ion-palette-dark .learn-coach-head>span,.ion-palette-dark .learn-coach-head>strong,.ion-palette-dark .unit-emoji{background:color-mix(in srgb,var(--unit-color) 18%,var(--ul-card))}.ion-palette-dark .unit-pill,.ion-palette-dark .unit-hero .eyebrow,.ion-palette-dark .unit-plan-head>span,.ion-palette-dark .learn-coach-head>strong{color:color-mix(in srgb,var(--unit-color) 42%,white)}.ion-palette-dark .continue-progress>span,.ion-palette-dark .lesson-progress>span,.ion-palette-dark .learn-coach-meter>span,.ion-palette-dark .path-label-progress,.ion-palette-dark .unit-progress-line,.ion-palette-dark .unit-progress-track,.ion-palette-dark .profile-progress,.ion-palette-dark .league-progress-meter>span,.ion-palette-dark .review-status span,.ion-palette-dark .match-progress,.ion-palette-dark .path-list:before{background:#4b4265}.ion-palette-dark .onboarding-page ion-content{--background: radial-gradient(circle at 12% 8%, rgba(228, 255, 48, .08), transparent 27%), radial-gradient(circle at 88% 18%, rgba(0, 139, 255, .12), transparent 26%), var(--ul-surface)}.ion-palette-dark .language-card .flag,.ion-palette-dark .onboarding-feature-grid span,.ion-palette-dark .course-preview-card>div:first-child>span,.ion-palette-dark .course-setting>span,.ion-palette-dark .answer-option>span,.ion-palette-dark .review-session-head>span,.ion-palette-dark .lesson-index,.ion-palette-dark .unit-phrase-row button,.ion-palette-dark .league-mission-list button>span,.ion-palette-dark .ranking-row>span{background:#332a49;color:var(--ul-muted)}.ion-palette-dark .language-card.is-selected,.ion-palette-dark .goal-grid button.selected,.ion-palette-dark .answer-option.is-selected,.ion-palette-dark .match-option.is-selected,.ion-palette-dark .review-mode-tabs button.active,.ion-palette-dark .review-size-tabs button.active,.ion-palette-dark .league-mission-list button.primary,.ion-palette-dark .ranking-row.me{background:#382875;border-color:var(--ul-blue)}.ion-palette-dark .answer-option.is-selected>span,.ion-palette-dark .ranking-row.me>span{background:var(--ul-blue);color:#07111f}.ion-palette-dark .match-option.is-matched,.ion-palette-dark .lesson-row.is-complete .lesson-index{background:#183d5c;color:#8ed0ff;border-color:#287cc1}.ion-palette-dark .goal-ring:after{background:var(--ul-card)}.ion-palette-dark .name-field input,.ion-palette-dark .edit-profile input,.ion-palette-dark .edit-profile select{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .league-hero{background:linear-gradient(135deg,#392817,#241d17);border-color:#61452b}.ion-palette-dark .league-hero .eyebrow{color:#f4bd83}.ion-palette-dark .league-hero p:last-child{color:#e2c5aa}.ion-palette-dark .league-time{color:#f1c38f}.ion-palette-dark .league-progress-icon{background:#183d5c;color:#8ed0ff}.ion-palette-dark .league-progress-head>strong{background:#382875;color:#cfc2ff}.ion-palette-dark .league-mission-head>strong,.ion-palette-dark .league-zone-strip span.active{background:#12382f;border-color:#1e8066;color:#74ebc7}.ion-palette-dark .league-progress-actions button.primary{border-color:var(--ul-blue);background:var(--ul-blue);color:#07111f}.ion-palette-dark .ranking-row.promotes>strong{color:#74ebc7}.ion-palette-dark .ranking-row.is-rival{background:#453a16}.ion-palette-dark .danger-link{color:#ff83a8}.ion-palette-dark .review-feedback.good,.ion-palette-dark .feedback-footer.is-correct>div{background:#12382f;color:#74ebc7}.ion-palette-dark .review-feedback.bad,.ion-palette-dark .feedback-footer.is-wrong>div{background:#3d1927;color:#ff8caf}.ion-palette-dark .feedback-footer.is-correct .ul-button{background:#74ebc7;color:#12382f}.ion-palette-dark .feedback-footer.is-wrong .ul-button{background:#ff8caf;color:#3d1927}.ion-palette-dark .result-tip{background:#353018}.ion-palette-dark .result-tip p,.ion-palette-dark .result-tip strong{color:#f5e98f}.ion-palette-dark .result-next-card{background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.1),transparent 34%),var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .result-next-head>span,.ion-palette-dark .result-next-actions ion-icon{background:#382875;color:#d5caff}.ion-palette-dark .result-next-actions button{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .result-next-actions button.primary{background:#30283f;border-color:#59459b}.course-option{width:100%;display:flex;align-items:center;gap:12px;padding:11px;margin-bottom:9px;border:1.5px solid var(--ul-line);border-radius:16px;background:#fff;text-align:left}.course-option>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.6rem}.course-option div{flex:1;display:grid}.course-option strong{font-size:.86rem}.course-option small{color:var(--ul-muted);font-size:.66rem}.course-option>ion-icon{color:var(--ul-blue);font-size:1.3rem}.course-option.is-active{border-color:var(--ul-blue);background:color-mix(in srgb,var(--ul-blue) 7%,white)}.setting-row--sub{padding-left:33px}.setting-row--sub select{border:1.5px solid var(--ul-line);border-radius:12px;padding:8px 12px;font:inherit;font-size:.78rem;font-weight:800;background:#fff;color:var(--ul-ink)}.upcoming-review{margin:4px auto 14px;max-width:330px;padding:13px 15px;border:1px dashed var(--ul-line);border-radius:16px;text-align:left}.upcoming-review strong{display:block;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ul-blue);margin-bottom:4px}.upcoming-review p{margin:0;font-size:.78rem;color:var(--ul-muted)}.podium-place.me b{color:var(--ul-blue)}.podium-place.me>span{outline:2.5px solid var(--ul-blue);outline-offset:2px}.ion-palette-dark .course-option{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .course-option>span{background:#332a49}.ion-palette-dark .course-option.is-active{background:#382875;border-color:var(--ul-blue)}.ion-palette-dark .setting-row--sub select{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.week-chart-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.week-chart-head strong{font-size:.92rem}.week-chart-plot{position:relative;height:118px;display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid var(--ul-line);padding-bottom:0}.week-goal-line{position:absolute;left:0;right:0;border-top:2px dashed color-mix(in srgb,var(--ul-muted) 55%,transparent);pointer-events:none}.week-col{position:relative;flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.week-col span{width:min(100%,20px);border-radius:4px 4px 0 0;background:var(--ul-chart-bar)}.week-col span.is-empty{height:3px;border-radius:2px;background:var(--ul-line)}.week-col em{font-style:normal;font-size:.62rem;font-weight:850;color:var(--ul-ink);margin-bottom:3px}.week-col small{position:absolute;bottom:-20px;font-size:.62rem;font-weight:800;color:var(--ul-muted)}.week-col.is-today small{color:var(--ul-ink);text-decoration:underline;text-underline-offset:3px}.week-chart-note{margin:26px 0 0;font-size:.64rem;color:var(--ul-muted)}.warmup-card{border:1px solid var(--ul-line);border-radius:22px;padding:21px;background:#fff;text-align:center}.warmup-card h1{margin:4px 0 6px;font-size:1.3rem}.warmup-lead{margin:0 0 15px;font-size:.8rem;color:var(--ul-muted)}.lesson-resume-card{width:100%;min-height:82px;margin-bottom:14px;border:1px solid rgba(91,35,255,.24);border-radius:19px;padding:12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.24),transparent 34%),#f7f4ff;color:var(--ul-ink);text-align:left}.lesson-resume-card>span:first-child{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--ul-blue);color:#fff;font-size:1.25rem}.lesson-resume-card>span:nth-child(2){min-width:0;display:grid;gap:2px}.lesson-resume-card small{color:var(--ul-blue);font-size:.58rem;font-weight:900;letter-spacing:.1em}.lesson-resume-card strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.lesson-resume-card em{overflow:hidden;color:var(--ul-muted);font-size:.64rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.lesson-resume-card>ion-icon{color:var(--ul-blue);font-size:1.05rem}.warmup-list{display:grid;gap:9px;margin-bottom:17px}.warmup-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--ul-line);border-radius:16px;background:var(--ul-surface);text-align:left}.warmup-row>ion-icon{flex-shrink:0;font-size:1.25rem;color:var(--ul-blue)}.warmup-row span{display:grid}.warmup-row strong{font-size:.88rem}.warmup-row small{font-size:.7rem;color:var(--ul-muted)}.warmup-start{width:100%}.ion-palette-dark .warmup-card{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .warmup-row{background:#332a49;border-color:var(--ul-line)}.ion-palette-dark .lesson-resume-card{background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.1),transparent 34%),#30283f;border-color:#59459b}.result-goal{margin:14px auto 0;width:fit-content;padding:9px 16px;border-radius:999px;background:#e4ff30;color:#362f4f;font-size:.8rem;font-weight:900}.ion-palette-dark .result-goal{background:#353018;color:#f5e98f}.result-level{width:100%;margin:4px 0 20px;border:1px solid var(--ul-line);border-radius:18px;padding:15px 16px;background:#fff;text-align:left}.result-level-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.result-level-head span{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:900}.result-level-head span ion-icon{color:#a66900;font-size:1.15rem}.result-level-head small{color:var(--ul-muted);font-size:.72rem;font-weight:800}.result-level-bar{height:12px;overflow:hidden;border-radius:10px;background:#edf0f5}.result-level-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b23ff,#8a6bff);transition:width .12s linear}.result-level p{margin:9px 0 0;color:var(--ul-muted);font-size:.72rem}.ion-palette-dark .result-level{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .result-level-bar{background:#4b4265}.ion-palette-dark .result-level-head span ion-icon{color:#f0cf5a}.result-recap-card,.result-phrase-replay{width:100%;margin-bottom:18px;border:1px solid var(--ul-line);border-radius:21px;padding:15px;background:#fff;text-align:left}.result-recap-head{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:12px}.result-recap-head h2,.result-phrase-head h2{margin:0 0 3px;font-size:1rem}.result-recap-head p:last-child{margin:0;color:var(--ul-muted);font-size:.68rem;line-height:1.35}.result-recap-head>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#e6faf3;color:#17b384;font-size:1.35rem}.result-recap-grid{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.result-recap-grid>div{min-width:0;border-radius:14px;padding:9px 8px;display:grid;gap:2px;background:#f7f9fd}.result-recap-grid small{overflow:hidden;color:var(--ul-muted);font-size:.54rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.result-recap-grid strong{font-size:.92rem}.result-recap-grid span{overflow:hidden;color:var(--ul-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.result-phrase-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.result-phrase-head button{min-height:38px;border:1px solid var(--ul-blue);border-radius:13px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;background:#efeaff;color:var(--ul-blue);font-size:.68rem;font-weight:900}.result-phrase-list{display:grid;gap:7px}.result-phrase-list article{min-height:56px;border:1px solid var(--ul-line);border-radius:15px;padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;align-items:center;gap:7px;background:var(--ul-surface)}.result-phrase-list div{min-width:0;display:grid;gap:2px}.result-phrase-list strong,.result-phrase-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-phrase-list strong{font-size:.76rem}.result-phrase-list small{color:var(--ul-muted);font-size:.62rem}.result-phrase-list button{width:36px;height:36px;border:1px solid var(--ul-line);border-radius:12px;display:grid;place-items:center;background:var(--ul-card);color:var(--ul-blue)}.result-phrase-list button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.ion-palette-dark .result-recap-card,.ion-palette-dark .result-phrase-replay,.ion-palette-dark .result-phrase-list article,.ion-palette-dark .result-phrase-list button{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .result-recap-head>span{background:#12382f;color:#74ebc7}.ion-palette-dark .result-recap-grid>div{background:#332a49}.ion-palette-dark .result-phrase-head button{border-color:#8e73ff;background:#382875;color:#d5caff}.ion-palette-dark .result-phrase-list button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.exercise-slide-enter-active,.exercise-slide-leave-active{transition:opacity .22s ease,transform .22s ease}.exercise-slide-enter-from{opacity:0;transform:translate(46px)}.exercise-slide-leave-to{opacity:0;transform:translate(-46px)}.audio-row{display:flex;align-items:center;gap:14px}.audio-slow{min-height:46px;border:2px solid var(--ul-line);border-radius:15px;padding:6px 14px;display:inline-flex;align-items:center;gap:7px;background:#fff;color:var(--ul-muted);font-size:1.05rem;font-weight:850}.audio-slow span{font-size:.68rem}.type-answer{width:100%;min-height:110px;border:2px solid var(--ul-line);border-radius:17px;padding:14px 16px;resize:none;outline:none;background:#fff;color:var(--ul-ink);font:inherit;font-size:1.05rem;line-height:1.45}.type-answer:focus{border-color:var(--ul-blue)}.type-hint{margin:9px 2px 0;color:var(--ul-muted);font-size:.68rem}.combo-pill{display:inline-block;margin-left:7px;padding:3px 9px;border-radius:999px;background:#e4ff30;color:#362f4f;font-size:.68rem;font-weight:950;vertical-align:2px;animation:combo-pop .34s ease}@keyframes combo-pop{0%{transform:scale(.4)}62%{transform:scale(1.18)}to{transform:scale(1)}}.feedback-mascot{width:48px;height:52px;display:block}.result-mascot{width:86px;height:92px}.result-streak .flame-alive{color:#ff6a00;animation:flame-flicker 1.1s ease-in-out infinite}@keyframes flame-flicker{0%,to{transform:scale(1);opacity:1}35%{transform:scale(1.18) rotate(-3deg);opacity:.88}70%{transform:scale(1.06) rotate(2deg)}}.result-achievements{width:100%;margin-bottom:21px;display:grid;gap:8px}.result-achievements .eyebrow{margin-bottom:0}.achievement-toast{border:1.5px solid #ead27a;border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff8dd,#fffdf4);text-align:left;animation:toast-pop .42s ease both}.achievement-toast>span{font-size:1.7rem}.achievement-toast strong{display:block;color:#6b5900;font-size:.86rem}.achievement-toast small{color:#93803a;font-size:.68rem}@keyframes toast-pop{0%{opacity:0;transform:scale(.85) translateY(8px)}70%{transform:scale(1.03)}to{opacity:1;transform:none}}.result-share{color:var(--ul-blue)}.confetti--big i{animation:confetti-drop 2.8s linear infinite;animation-delay:calc(var(--i) * -.17s);opacity:.85}@keyframes confetti-drop{0%{transform:translateY(-30px) rotate(0)}to{transform:translateY(72vh) rotate(340deg)}}.path-zigzag{display:flex;flex-direction:column;gap:30px;margin-top:26px}.path-step{position:relative;display:flex;align-items:center;gap:16px}.path-step.pos-0{margin-left:0}.path-step.pos-1{margin-left:48px}.path-step.pos-2{margin-left:96px}.path-step.from-0:before,.path-step.from-1:before,.path-step.from-2:before{content:"";position:absolute;left:40px;bottom:42px;width:0;height:122px;border-left:3px dashed var(--ul-line);transform-origin:bottom center;z-index:0}.path-zigzag.is-filtered .path-step:before{display:none}.path-step.pos-1.from-0:before,.path-step.pos-2.from-1:before{transform:rotate(-23deg)}.path-step.pos-0.from-1:before,.path-step.pos-1.from-2:before{transform:rotate(23deg)}.path-node{position:relative;z-index:1;width:84px;height:84px;flex:0 0 84px;border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer}.node-ring{position:absolute;inset:0;transform:rotate(-90deg)}.node-ring-track{fill:none;stroke:var(--ul-line);stroke-width:5}.node-ring-progress{fill:none;stroke:var(--unit-color);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .42s ease}.node-face{position:absolute;inset:9px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 14%,white);font-size:1.75rem;box-shadow:inset 0 -3px #0000000f}.path-step.is-complete .node-face{background:color-mix(in srgb,var(--unit-color) 78%,#07111f);color:#fff;font-size:1.5rem;font-weight:950}.path-step.is-locked .node-face{background:#edeaf4;color:#9a93ad;font-size:1.2rem}.path-step.is-locked .node-ring-progress{stroke:transparent}.path-step.is-current .node-face{animation:node-pulse 1.9s ease infinite}@keyframes node-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--unit-color) 42%,transparent)}55%{box-shadow:0 0 0 12px transparent}}.node-badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);z-index:2;padding:4px 9px;border-radius:999px;background:#e4ff30;color:#362f4f;font-size:.58rem;font-weight:950;letter-spacing:.06em;white-space:nowrap;box-shadow:0 4px 10px #362f4f38;animation:badge-bounce 1.6s ease infinite}@keyframes badge-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-5px)}}.path-label{min-width:0;border:0;padding:0;display:grid;gap:2px;background:transparent;color:var(--ul-ink);text-align:left;cursor:pointer}.path-label small{color:var(--ul-muted);font-size:.6rem;font-weight:900;letter-spacing:.08em}.path-label strong{font-size:.95rem;letter-spacing:-.02em}.path-label em{overflow:hidden;color:var(--ul-muted);font-size:.68rem;font-style:normal;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.path-label-progress{width:min(210px,100%);height:6px;margin-top:5px;overflow:hidden;border-radius:999px;background:#edf1f7}.path-label-progress i{height:100%;min-width:4px;border-radius:inherit;display:block;background:var(--unit-color)}.path-label-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}.path-label-meta b{border-radius:999px;padding:3px 7px;background:color-mix(in srgb,var(--unit-color) 10%,#f7f9fd);color:var(--ul-muted);font-size:.56rem;font-weight:900}.path-step.is-locked .path-label{opacity:.55}.freeze-banner{margin:0 0 18px;border:1.5px solid #9bd4ff;border-radius:15px;padding:12px 15px;background:#eaf6ff;color:#02568f;font-size:.8rem;font-weight:750}.level-up-card{margin:0 0 18px;border:0;border-radius:21px;padding:15px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;background:radial-gradient(circle at 90% -20%,rgba(228,255,48,.45),transparent 42%),linear-gradient(135deg,#3c177f,#5b23ff 62%,#7049ff);color:#fff;box-shadow:0 15px 30px #5b23ff38;animation:slide-in .32s ease both}.level-up-badge{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:#ffffff24;font-size:1.6rem;box-shadow:inset 0 1px #ffffff40}.level-up-card strong{font-size:.95rem;letter-spacing:-.02em}.level-up-card p{margin:2px 0 0;color:#e3dbff;font-size:.72rem}.level-up-card button{min-height:40px;border:0;border-radius:13px;padding:0 16px;background:var(--ul-yellow);color:#362f4f;font-size:.78rem;font-weight:900}.level-up-card--streak{background:radial-gradient(circle at 90% -20%,rgba(255,214,89,.5),transparent 42%),linear-gradient(135deg,#8a2c07,#d3541b 62%,#f07a2e);box-shadow:0 15px 30px #d3541b3d}.level-up-card--streak p{color:#ffe1c4}.level-up-card--streak button{background:#fff1d6;color:#7a3407}.level-card .level-bar{height:12px;overflow:hidden;border-radius:10px;background:#edf0f5}.level-card .level-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b23ff,#8a6bff);transition:width .38s ease}.level-note{margin:9px 0 0;color:var(--ul-muted);font-size:.72rem}.week-strip{margin:0 0 22px;border:1px solid var(--ul-line);border-radius:18px;padding:11px 13px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:#fff;box-shadow:0 3px 12px #18203309}.week-strip-day{display:grid;justify-items:center;gap:5px}.week-strip-day span{color:var(--ul-muted);font-size:.6rem;font-weight:900}.week-strip-day i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#edf0f5;color:#aeb5c2;font-size:.72rem;font-style:normal;font-weight:900}.week-strip-day.is-active i{background:#def8ef;color:#008d64}.week-strip-day.is-today span{color:var(--ul-blue)}.week-strip-day.is-today i{box-shadow:0 0 0 2px var(--ul-blue)}.catalog-sync-card{margin:-9px 0 22px;border:1px solid #dce4f2;border-radius:20px;padding:14px;display:grid;gap:12px;background:radial-gradient(circle at 100% 0%,rgba(0,139,255,.1),transparent 34%),#fff}.catalog-sync-head{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px}.catalog-sync-head>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eaf6ff;color:#0b76bd;font-size:1.18rem}.catalog-sync-head h2{margin:0 0 3px;font-size:.98rem}.catalog-sync-head p:last-child{overflow:hidden;margin:0;color:var(--ul-muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.catalog-sync-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.catalog-sync-stats>div{border-radius:12px;padding:8px;display:grid;gap:1px;background:#f7f9fd}.catalog-sync-stats small{overflow:hidden;color:var(--ul-muted);font-size:.54rem;font-weight:850;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.catalog-sync-stats strong{font-size:.86rem}.home-shell>*{animation:rise-in .36s ease both}.home-shell>*:nth-child(2){animation-delay:45ms}.home-shell>*:nth-child(3){animation-delay:90ms}.home-shell>*:nth-child(4){animation-delay:135ms}.home-shell>*:nth-child(5){animation-delay:.18s}.home-shell>*:nth-child(n+6){animation-delay:.22s}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.quest-list{border:1px solid var(--ul-line);border-radius:21px;padding:15px;display:grid;gap:12px;background:#fff}.quest-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:11px}.quest-emoji{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.15rem}.quest-row>div{min-width:0;display:grid;gap:6px}.quest-row strong{font-size:.82rem}.quest-track{height:7px;overflow:hidden;border-radius:7px;background:#edf0f5}.quest-track i{display:block;height:100%;border-radius:inherit;background:var(--ul-blue);transition:width .38s ease}.quest-row.is-done .quest-track i{background:#00b380}.quest-row em{color:var(--ul-muted);font-size:.74rem;font-style:normal;font-weight:900}.quest-row.is-done em{color:#00915f;font-size:.95rem}.quest-note{margin:2px 2px 0;color:var(--ul-muted);font-size:.68rem}.explore-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.explore-row button{min-width:0;border:1px solid var(--ul-line);border-radius:18px;padding:13px 11px;display:grid;justify-items:start;gap:2px;background:#fff;color:var(--ul-ink);text-align:left}.explore-row span{width:40px;height:40px;margin-bottom:8px;border-radius:13px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.25rem}.explore-row strong{max-width:100%;overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.explore-row small{color:var(--ul-muted);font-size:.6rem}.achievement-showcase{overflow:hidden}.achievement-spotlight{width:100%;margin:12px 0;border:1px solid #dbe7ff;border-radius:18px;padding:13px;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:11px;background:radial-gradient(circle at 100% -8%,rgba(228,255,48,.28),transparent 34%),linear-gradient(135deg,#f7fbff,#f3f0ff);color:var(--ul-ink);text-align:left}.achievement-spotlight>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#e9f5ff;color:#0074c7;font-size:1.35rem}.achievement-spotlight div{min-width:0;display:grid;gap:3px}.achievement-spotlight h2{margin:0;overflow:hidden;font-size:.94rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.achievement-spotlight p:not(.eyebrow){margin:0;color:var(--ul-muted);font-size:.66rem;line-height:1.3}.achievement-spotlight i{height:6px;margin-top:4px;border-radius:999px;overflow:hidden;background:#dfe8f3}.achievement-spotlight i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#17b384,#008bff)}.achievement-spotlight small{color:#52607a;font-size:.62rem;font-weight:850}.achievement-spotlight>strong{min-width:46px;border-radius:999px;padding:7px 9px;background:#fff;color:#0f7f65;font-size:.68rem;text-align:center}.achievement-spotlight>ion-icon{color:var(--ul-blue);font-size:1rem}.achievement-filter-tabs{margin-bottom:12px;border:1px solid var(--ul-line);border-radius:16px;padding:5px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;background:#f6f8fc}.achievement-filter-tabs button{min-width:0;min-height:38px;border:0;border-radius:12px;padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;background:transparent;color:var(--ul-muted);font-size:.66rem;font-weight:900}.achievement-filter-tabs button.active{background:#fff;color:var(--ul-blue);box-shadow:0 6px 16px #18203314}.achievement-filter-tabs ion-icon{font-size:.96rem}.achievement-filter-tabs span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.achievement-filter-tabs strong{min-width:23px;border-radius:999px;padding:3px 6px;background:#e9edf5;color:inherit;font-size:.58rem;text-align:center}.achievement-filter-tabs button.active strong{background:#efeaff}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.achievement-cell{min-height:108px;border:1px solid var(--ul-line);border-radius:16px;padding:10px 8px;display:grid;justify-items:center;align-content:center;gap:3px;text-align:center;background:var(--ul-surface)}.achievement-cell>span{font-size:1.55rem}.achievement-cell strong{font-size:.66rem;line-height:1.15}.achievement-cell small{color:var(--ul-muted);font-size:.56rem;line-height:1.25}.achievement-cell em{width:100%;overflow:hidden;color:#6f35ff;font-size:.54rem;font-style:normal;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.achievement-cell.is-locked{opacity:.55;filter:grayscale(.6)}.freeze-count{padding:6px 10px;border-radius:999px;background:#eaf6ff;color:#02568f;font-size:.72rem;font-weight:900;white-space:nowrap}.heatmap-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px}.heatmap-col{display:grid;grid-template-rows:repeat(7,1fr);gap:4px}.heatmap-col i,.heatmap-legend i{display:block;aspect-ratio:1;border-radius:4px}.heatmap-col .lvl-off{background:transparent}.heatmap-col .lvl-0,.heatmap-legend .lvl-0{background:#ecemf2;background:color-mix(in srgb,var(--ul-line) 55%,white)}.heatmap-col .lvl-1,.heatmap-legend .lvl-1{background:color-mix(in srgb,var(--ul-chart-bar) 28%,white)}.heatmap-col .lvl-2,.heatmap-legend .lvl-2{background:color-mix(in srgb,var(--ul-chart-bar) 52%,white)}.heatmap-col .lvl-3,.heatmap-legend .lvl-3{background:color-mix(in srgb,var(--ul-chart-bar) 76%,white)}.heatmap-col .lvl-4,.heatmap-legend .lvl-4{background:var(--ul-chart-bar)}.heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:12px}.heatmap-legend i{width:11px}.heatmap-legend span{color:var(--ul-muted);font-size:.6rem;font-weight:750}.heatmap-legend span:first-child{margin-right:3px}.heatmap-legend span:last-child{margin-left:3px}.ranking-row--skeleton .sk{display:block;border-radius:7px;background:linear-gradient(90deg,#ecedf2 25%,#f7f8fb 40%,#ecedf2 60%);background-size:300% 100%;animation:sk-shimmer 1.3s ease infinite}.sk-pos{width:16px;height:13px;margin:0 auto}.sk-avatar{width:38px;height:38px;border-radius:50%}.sk-name{width:45%;height:12px;margin-bottom:7px}.sk-note{width:65%;height:8px}.sk-xp{width:42px;height:12px}@keyframes sk-shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.phrasebook-hero{position:relative;overflow:hidden;margin:2px 0 16px;border-radius:25px;padding:21px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px;background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.38),transparent 40%),linear-gradient(140deg,#402080,#5b23ff);color:#fff;box-shadow:0 16px 36px #5b23ff33}.phrasebook-hero .eyebrow{color:var(--ul-yellow)}.phrasebook-hero h1{margin:0 0 7px;font-size:clamp(1.75rem,7vw,2.5rem);line-height:1;letter-spacing:-.05em}.phrasebook-hero p:last-child{max-width:380px;margin:0;color:#e6e0ff;font-size:.79rem;line-height:1.45}.phrasebook-hero>button{min-width:150px;border:1px solid rgba(255,255,255,.24);border-radius:18px;padding:12px;display:grid;gap:1px;background:#ffffff21;color:#fff;text-align:left;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.phrasebook-hero>button span{margin-bottom:5px;font-size:1.2rem}.phrasebook-hero>button strong{font-size:.77rem}.phrasebook-hero>button small{color:#dcd4ff;font-size:.58rem}.phrase-feature-card{margin:0 0 13px;border:1px solid color-mix(in srgb,var(--unit-color) 22%,var(--ul-line));border-radius:22px;padding:16px;display:grid;gap:13px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color) 18%,transparent),transparent 34%),#fff;box-shadow:0 14px 30px #2a23450f}.phrase-feature-head{display:grid;grid-template-columns:48px minmax(0,1fr) 42px;align-items:start;gap:11px}.phrase-feature-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 16%,white);font-size:1.45rem}.phrase-feature-head h2{margin:0 0 4px;font-size:1.05rem;line-height:1.35}.phrase-feature-head small{color:var(--ul-muted);font-size:.72rem;line-height:1.35}.phrase-feature-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.phrase-feature-actions button{min-height:42px;border:1px solid #dce4f2;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fbfcff;color:var(--ul-ink);font-size:.66rem;font-weight:900}.phrase-feature-actions button.active{border-color:#ff4d79;color:#ff4d79;animation:mic-pulse 1s ease infinite}.phrase-feature-actions strong{font-size:.65rem}.phrase-feature-feedback,.phrase-copy-status{margin:0;border-radius:13px;padding:9px 11px;font-size:.7rem;font-weight:800}.phrase-feature-feedback.good{background:#e6faf3;color:#047854}.phrase-feature-feedback.bad{background:#fff0f3;color:#b4234c}.phrasebook-stats{margin:0 0 13px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.phrasebook-stats>div{min-width:0;border:1px solid var(--ul-line);border-radius:16px;padding:10px;display:grid;gap:2px;background:#fff}.phrasebook-stats small{color:var(--ul-muted);font-size:.55rem;font-weight:850;text-transform:uppercase}.phrasebook-stats strong{overflow:hidden;font-size:.98rem;text-overflow:ellipsis;white-space:nowrap}.phrasebook-stats span{overflow:hidden;color:var(--ul-muted);font-size:.59rem;text-overflow:ellipsis;white-space:nowrap}.phrasebook-lead{margin:4px 2px 18px;color:var(--ul-muted);font-size:.85rem;line-height:1.5}.phrase-search{display:flex;align-items:center;gap:10px;min-height:50px;margin-bottom:22px;border:2px solid var(--ul-line);border-radius:16px;padding:0 15px;background:#fff}.phrase-search ion-icon{color:var(--ul-muted);font-size:1.15rem;flex-shrink:0}.phrase-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--ul-ink);font-size:.92rem}.phrase-filters{display:flex;align-items:center;gap:7px;margin:-9px 0 22px}.phrase-filters button{min-height:37px;border:1px solid var(--ul-line);border-radius:999px;padding:0 13px;display:inline-flex;align-items:center;gap:5px;background:var(--ul-card);color:var(--ul-muted);font-size:.72rem;font-weight:850}.phrase-filters button.active{border-color:var(--ul-blue);background:#efeaff;color:var(--ul-blue)}.phrase-filters button span{min-width:20px;height:20px;border-radius:10px;padding:0 5px;display:grid;place-items:center;background:var(--ul-surface);font-size:.62rem}.phrase-mode-tabs{flex-wrap:wrap}.phrase-unit-strip{margin:-12px 0 17px;display:flex;gap:7px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.phrase-unit-strip::-webkit-scrollbar{display:none}.phrase-unit-strip button{min-height:36px;border:1px solid var(--ul-line);border-radius:999px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--ul-muted);font-size:.68rem;font-weight:850;white-space:nowrap}.phrase-unit-strip button.active{border-color:var(--ul-green);background:#e6faf3;color:#047854}.phrase-copy-status{margin:-4px 0 14px;background:#eaf6ff;color:#02568f}.phrase-group{margin-bottom:24px}.phrase-group h2{display:flex;align-items:center;gap:8px;margin:0 0 11px;font-size:1.02rem;letter-spacing:-.02em}.phrase-group h2 span{font-size:1.2rem}.phrase-row{display:grid;grid-template-columns:42px 42px 1fr auto;align-items:center;gap:9px;margin-bottom:9px;border:1px solid var(--ul-line);border-radius:17px;padding:11px 12px;background:#fff}.phrase-audio{width:42px;height:42px;border:0;border-radius:13px;display:grid;place-items:center;background:#efeaff;color:var(--ul-blue);font-size:1.05rem}.phrase-audio--slow{background:var(--ul-surface)}.phrase-copy{min-width:0;display:grid;gap:1px}.phrase-copy strong{font-size:.88rem}.phrase-copy small{color:var(--ul-muted);font-size:.7rem}.phrase-copy em{font-size:.68rem;font-style:normal;font-weight:800}.phrase-copy em.good{color:#00915f}.phrase-copy em.bad{color:#c22553}.phrase-mic{width:42px;height:42px;border:2px solid var(--ul-line);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ul-muted);font-size:1.05rem}.phrase-actions{display:flex;gap:6px}.phrase-favorite{width:42px;height:42px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--ul-surface);color:#9992a8;font-size:1.05rem}.phrase-favorite.is-favorite{background:#fff7cc;color:#c07b00}.phrase-mic.is-listening{border-color:#ff4d79;color:#ff4d79;animation:mic-pulse 1s ease infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ff4d7959}60%{box-shadow:0 0 0 9px transparent}}.phrase-empty{margin:30px 0;color:var(--ul-muted);text-align:center;font-size:.85rem}.quick-practice-shell{width:min(100%,620px);min-height:100%;margin:0 auto;padding:18px 18px max(32px,env(safe-area-inset-bottom))}.quick-counter{margin-right:14px;color:var(--ul-muted);font-size:.74rem;font-weight:900}.pron-unavailable{min-height:70vh;display:grid;justify-items:center;align-content:center;text-align:center;gap:8px}.pron-unavailable span{font-size:4rem}.pron-unavailable h1{margin:8px 0 0;font-size:1.6rem;letter-spacing:-.03em}.pron-unavailable p{max-width:340px;margin:0 0 18px;color:var(--ul-muted);line-height:1.5}.pron-unavailable .ul-button{max-width:300px}.pron-mode-tabs{margin:-4px 0 14px;border:1px solid var(--ul-line);border-radius:17px;padding:4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:var(--ul-card)}.pron-mode-tabs button{min-height:45px;border:0;border-radius:13px;display:grid;place-items:center;align-content:center;gap:1px;background:transparent;color:var(--ul-muted)}.pron-mode-tabs button.active{background:var(--ul-blue);color:#fff;box-shadow:0 8px 18px #5b23ff2e}.pron-mode-tabs strong{font-size:.7rem}.pron-mode-tabs small{font-size:.56rem;font-weight:850;opacity:.85}.pron-session-card{margin:-4px 0 14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.pron-session-card>div{min-width:0;border:1px solid var(--ul-line);border-radius:15px;padding:9px 8px;display:grid;gap:2px;background:var(--ul-card)}.pron-session-card small{overflow:hidden;color:var(--ul-muted);font-size:.54rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.pron-session-card strong{font-size:.92rem}.pron-session-card span{overflow:hidden;color:var(--ul-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.pron-card{margin:18px 0;border:1px solid var(--ul-line);border-radius:24px;padding:22px;display:grid;justify-items:center;text-align:center;gap:10px;background:radial-gradient(circle at 90% -10%,rgba(91,35,255,.08),transparent 40%),#fff;box-shadow:0 12px 30px #1820330f}.pron-card-top{display:flex;align-items:center;gap:8px;color:var(--ul-muted);font-size:.66rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.pron-card-top em{font-style:normal;font-size:1.15rem}.pron-target{font-size:clamp(1.5rem,6vw,2.1rem);line-height:1.1;letter-spacing:-.035em}.pron-pt{color:var(--ul-muted);font-size:.9rem}.pron-listen{margin-top:6px;border:1px solid var(--ul-line);border-radius:999px;padding:8px 15px;display:inline-flex;align-items:center;gap:6px;background:var(--ul-surface);color:var(--ul-blue);font-size:.78rem;font-weight:850}.pron-listen--slow{margin-top:-2px;background:#fff9db;color:#a66900}.pron-mic{width:100%;min-height:64px;border:0;border-radius:20px;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#5b23ff,#362f4f);color:#fff;font-size:1rem;font-weight:850;box-shadow:0 12px 26px #5b23ff47}.pron-mic ion-icon{font-size:1.5rem}.pron-mic:disabled{opacity:.85}.pron-mic.is-listening{animation:mic-pulse 1s ease infinite}.pron-feedback{margin-top:16px;border-radius:18px;padding:16px}.pron-feedback.good{background:#e6faf3;color:#006e4f}.pron-feedback.bad{background:#fff0f3;color:#b01845}.pron-feedback p{margin:5px 0 13px;font-size:.82rem}.pron-score{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:10px}.pron-score span{height:8px;overflow:hidden;border-radius:8px;background:#ffffff85}.pron-score i{display:block;height:100%;border-radius:inherit;background:currentColor}.pron-score strong{font-size:.74rem}.pron-heard{border-radius:12px;padding:8px 10px;background:#ffffff6b}.pron-heard b{font-weight:900}.pron-tip-list{display:grid;gap:6px;margin:0 0 12px}.pron-tip-list span{border-radius:12px;padding:8px 10px;background:#ffffff80;font-size:.68rem;font-weight:850}.pron-feedback-actions{display:flex;gap:9px;align-items:center}.pron-feedback-actions .ul-button{flex:1;min-height:46px}.pron-retry{min-height:46px;padding:0 16px;border:1px solid currentColor;border-radius:15px;background:transparent;color:inherit;font-weight:850}.pron-skip{margin:16px auto 0;display:block;border:0;background:transparent;color:var(--ul-muted);font-size:.8rem;font-weight:800}.pron-review-card{width:100%;margin:0 0 14px;border:1px solid #ffd0dc;border-radius:22px;padding:14px;display:grid;gap:12px;background:radial-gradient(circle at 100% 0%,rgba(255,77,121,.12),transparent 34%),var(--ul-card);text-align:left}.pron-review-head{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px}.pron-review-head>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#fff0f3;color:#ef4b74;font-size:1.25rem}.pron-review-head h2{margin:0 0 2px;font-size:.98rem}.pron-review-head p:last-child{margin:0;color:var(--ul-muted);font-size:.66rem}.pron-review-list{display:grid;gap:7px}.pron-review-list article{min-height:54px;border:1px solid var(--ul-line);border-radius:15px;padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;align-items:center;gap:7px;background:color-mix(in srgb,var(--ul-surface) 72%,white)}.pron-review-list div{min-width:0;display:grid;gap:2px}.pron-review-list strong,.pron-review-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pron-review-list strong{font-size:.76rem}.pron-review-list small{color:var(--ul-muted);font-size:.62rem}.pron-review-list button{width:36px;height:36px;border:1px solid var(--ul-line);border-radius:12px;display:grid;place-items:center;background:var(--ul-card);color:var(--ul-blue)}.pron-review-list button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.ion-palette-dark .pron-mode-tabs,.ion-palette-dark .pron-card,.ion-palette-dark .pron-session-card>div,.ion-palette-dark .pron-review-card,.ion-palette-dark .pron-review-list article,.ion-palette-dark .pron-review-list button{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .pron-listen{background:#332a49;border-color:var(--ul-line);color:#cfc2ff}.ion-palette-dark .pron-listen--slow{background:#453a16;color:#f0cf5a}.ion-palette-dark .pron-feedback.good{background:#14382c;color:#6fe3b4}.ion-palette-dark .pron-feedback.bad{background:#3d1927;color:#ff8caf}.ion-palette-dark .pron-heard,.ion-palette-dark .pron-score span,.ion-palette-dark .pron-tip-list span{background:#ffffff14}.ion-palette-dark .pron-review-head>span{background:#3d1927;color:#ff8caf}.ion-palette-dark .pron-review-list button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.quick-progress{height:7px;overflow:hidden;border-radius:999px;background:var(--ul-line)}.quick-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ul-blue),#8f72ff);transition:width .28s ease}.quick-intro{margin:28px 4px 20px}.quick-intro h1{margin:0 0 7px;font-size:clamp(1.75rem,8vw,2.55rem);line-height:1.02;letter-spacing:-.05em}.quick-intro>p:last-child{margin:0;color:var(--ul-muted);font-size:.82rem}.quick-config{margin:-4px 0 14px;display:grid;gap:9px}.quick-mode-tabs,.quick-size-tabs{border:1px solid var(--ul-line);border-radius:17px;padding:4px;display:grid;gap:4px;background:var(--ul-card)}.quick-mode-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.quick-size-tabs{width:min(100%,230px);grid-template-columns:repeat(3,minmax(0,1fr))}.quick-mode-tabs button,.quick-size-tabs button{min-width:0;min-height:40px;border:0;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:var(--ul-muted);font-size:.66rem;font-weight:900}.quick-mode-tabs button:disabled{opacity:.42}.quick-mode-tabs ion-icon{font-size:1rem}.quick-mode-tabs button.active,.quick-size-tabs button.active{background:var(--ul-blue);color:#fff;box-shadow:0 8px 18px #5b23ff2e}.quick-custom-note{margin:-1px 2px 0;color:var(--ul-muted);font-size:.66rem;font-weight:750;line-height:1.35}.quick-session-card{margin:0 0 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quick-session-card>div{min-width:0;border:1px solid var(--ul-line);border-radius:15px;padding:9px 8px;display:grid;gap:2px;background:var(--ul-card)}.quick-session-card small{overflow:hidden;color:var(--ul-muted);font-size:.54rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.quick-session-card strong{font-size:.94rem}.quick-session-card span{overflow:hidden;color:var(--ul-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.flash-card{min-height:390px;border:1px solid rgba(91,35,255,.19);border-radius:30px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 88% 9%,rgba(228,255,48,.38),transparent 28%),radial-gradient(circle at 0% 100%,rgba(0,139,255,.11),transparent 40%),var(--ul-card);color:var(--ul-ink);box-shadow:0 24px 50px #362f4f1f;cursor:pointer;outline:none;transition:transform .18s ease,border-color .18s ease}.flash-card:focus-visible{border-color:var(--ul-blue);box-shadow:0 0 0 3px #5b23ff21,0 24px 50px #362f4f1f}.flash-card.is-revealed{border-color:#008bff61}.flash-card-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.flash-card-top em{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.15rem;font-style:normal}.flash-card-top small{color:var(--ul-muted);font-size:.67rem;font-weight:850}.flash-card-top ion-icon{color:var(--ul-blue);font-size:1.25rem}.flash-card-copy{display:grid;justify-items:center;gap:8px;text-align:center}.flash-card-copy>small,.flash-translation small{color:var(--ul-muted);font-size:.62rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.flash-card-copy>strong{max-width:470px;font-size:clamp(2rem,9vw,3.25rem);line-height:1.03;letter-spacing:-.055em}.flash-translation{display:grid;gap:3px;margin-top:12px;animation:slide-in .22s ease both}.flash-translation b{color:var(--ul-blue);font-size:1.15rem}.flash-hint{margin-top:15px;border:1px dashed var(--ul-line);border-radius:999px;padding:8px 13px;background:transparent;color:var(--ul-muted);font-size:.7rem;font-weight:800}.flash-card-actions{display:flex;justify-content:center;gap:9px}.flash-card-actions button{min-height:40px;border:1px solid var(--ul-line);border-radius:999px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;background:var(--ul-card);color:var(--ul-muted);font-size:.69rem;font-weight:850}.flash-card-actions button.favorite{border-color:#ead67d;background:#fff9db;color:#a66900}.quick-answer-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;animation:slide-in .22s ease both}.quick-answer-actions button{min-height:74px;border-radius:19px;padding:11px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;text-align:left}.quick-answer-actions button>span{grid-row:1 / 3;align-self:center;width:38px;height:38px;border-radius:13px;display:grid;place-items:center;font-size:1.1rem;font-weight:950}.quick-answer-actions strong{align-self:end;font-size:.78rem}.quick-answer-actions small{font-size:.59rem}.quick-answer-actions .again{border:1px solid var(--ul-line);background:var(--ul-card);color:var(--ul-ink)}.quick-answer-actions .again>span{background:var(--ul-surface);color:var(--ul-muted)}.quick-answer-actions .again small{color:var(--ul-muted)}.quick-answer-actions .got-it{border:1px solid #5b23ff;background:linear-gradient(135deg,#5b23ff,#4520ae);color:#fff;box-shadow:0 12px 25px #5b23ff33}.quick-answer-actions .got-it>span{background:#e4ff302e;color:var(--ul-yellow)}.quick-answer-actions .got-it small{color:#ddd4ff}.quick-tip{margin:17px 0 0;color:var(--ul-muted);font-size:.7rem;text-align:center}.quick-finish{min-height:calc(100vh - 100px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.finish-orbit{width:100px;height:100px;margin-bottom:23px;border-radius:35px;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,var(--ul-yellow),transparent 38%),linear-gradient(135deg,#efeaff,#d8ccff);font-size:2.6rem;box-shadow:0 18px 36px #5b23ff2e;transform:rotate(4deg)}.quick-finish h1{margin:0 0 8px;font-size:clamp(2.15rem,9vw,3.2rem);letter-spacing:-.055em}.quick-finish>p:not(.eyebrow){max-width:410px;margin:0;color:var(--ul-muted);font-size:.86rem;line-height:1.5}.quick-finish>p strong{color:var(--ul-blue)}.quick-result-grid{width:100%;margin:27px 0 22px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.quick-result-grid div{min-height:92px;border:1px solid var(--ul-line);border-radius:18px;display:grid;place-content:center;gap:1px;background:var(--ul-card)}.quick-result-grid span{font-size:1.15rem}.quick-result-grid strong{font-size:1rem}.quick-result-grid small{color:var(--ul-muted);font-size:.61rem}.quick-missed-card{width:100%;margin:0 0 14px;border:1px solid #ffd0dc;border-radius:22px;padding:14px;display:grid;gap:12px;background:radial-gradient(circle at 100% 0%,rgba(255,77,121,.12),transparent 34%),var(--ul-card);text-align:left}.quick-missed-head{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px}.quick-missed-head>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#fff0f3;color:#ef4b74;font-size:1.25rem}.quick-missed-head h2{margin:0 0 2px;font-size:.98rem}.quick-missed-head p:last-child{margin:0;color:var(--ul-muted);font-size:.66rem}.quick-missed-list{display:grid;gap:7px}.quick-missed-list article{min-height:54px;border:1px solid var(--ul-line);border-radius:15px;padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;align-items:center;gap:7px;background:color-mix(in srgb,var(--ul-surface) 72%,white)}.quick-missed-list div{min-width:0;display:grid;gap:2px}.quick-missed-list strong,.quick-missed-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-missed-list strong{font-size:.76rem}.quick-missed-list small{color:var(--ul-muted);font-size:.62rem}.quick-missed-list button{width:36px;height:36px;border:1px solid var(--ul-line);border-radius:12px;display:grid;place-items:center;background:var(--ul-card);color:var(--ul-blue)}.quick-missed-list button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.quick-finish .ul-button{max-width:390px}.dialogues-hero{margin-bottom:13px;border:1px solid #dce4f2;border-radius:24px;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 82px;align-items:center;gap:14px;background:radial-gradient(circle at 100% 0%,rgba(23,179,132,.13),transparent 38%),#fff}.dialogues-hero h1{margin:0 0 5px;font-size:1.35rem}.dialogues-hero p:last-child{margin:0;color:var(--ul-muted);font-size:.78rem;line-height:1.4}.dialogues-progress-ring{width:80px;aspect-ratio:1;position:relative;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#17b384 calc(var(--dialogue-progress) * 1%),#e8edf4 0)}.dialogues-progress-ring:before{content:"";position:absolute;inset:8px;border-radius:inherit;background:#fff}.dialogues-progress-ring strong,.dialogues-progress-ring small{position:relative;z-index:1}.dialogues-progress-ring strong{font-size:.98rem}.dialogues-progress-ring small{margin-top:-17px;color:var(--ul-muted);font-size:.58rem;font-weight:850}.dialogue-recommend-card{width:100%;margin-bottom:11px;border:1px solid #dce4f2;border-radius:19px;padding:13px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;background:#fbfcff;color:var(--ul-ink);text-align:left}.dialogue-recommend-card>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eaf6ff;font-size:1.35rem}.dialogue-recommend-card strong{display:block;overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.dialogue-recommend-card small{display:block;overflow:hidden;color:var(--ul-muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.dialogue-recommend-card em{border-radius:999px;padding:6px 9px;background:#def8ef;color:#008d64;font-size:.65rem;font-style:normal;font-weight:900;white-space:nowrap}.dialogues-stats{margin-bottom:11px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dialogues-stats>div{border:1px solid var(--ul-line);border-radius:16px;padding:11px;display:grid;gap:2px;background:#fff}.dialogues-stats small{color:var(--ul-muted);font-size:.57rem;font-weight:850;text-transform:uppercase}.dialogues-stats strong{font-size:1rem}.dialogue-filter-tabs{margin:0 0 13px;padding:4px;border-radius:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:#edf1f7}.dialogue-filter-tabs button{min-height:40px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--ul-muted);font-size:.68rem;font-weight:900}.dialogue-filter-tabs button.active{background:#fff;color:var(--ul-ink);box-shadow:0 6px 16px #222a4214}.dialogue-filter-tabs span{min-width:20px;border-radius:999px;padding:2px 5px;background:#eaf6ff;color:#0b76bd;font-size:.58rem}.dialogue-card{width:100%;display:flex;align-items:center;gap:13px;margin-bottom:11px;border:1px solid var(--ul-line);border-radius:20px;padding:15px;background:#fff;color:var(--ul-ink);text-align:left}.dialogue-emoji{width:52px;height:52px;flex:0 0 52px;border-radius:16px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.6rem}.dialogue-copy{flex:1;min-width:0;display:grid;gap:2px}.dialogue-copy strong{font-size:.93rem}.dialogue-copy small{color:var(--ul-muted);font-size:.7rem}.dialogue-copy em{overflow:hidden;color:var(--ul-muted);font-size:.61rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.dialogue-status{padding:6px 10px;border-radius:999px;background:#efeaff;color:var(--ul-blue);font-size:.7rem;font-weight:900;white-space:nowrap}.dialogue-status.is-done{background:#def8ef;color:#008d64}.dialogue-player-card,.dialogue-coach-card,.dialogue-vocab-card{margin-bottom:13px;border:1px solid var(--ul-line);border-radius:21px;padding:15px;display:grid;gap:12px;background:#fff}.dialogue-player-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px}.dialogue-player-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.45rem}.dialogue-player-head h1{margin:0 0 3px;font-size:1.08rem}.dialogue-player-head p:last-child{overflow:hidden;margin:0;color:var(--ul-muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.dialogue-player-head>strong{border-radius:999px;padding:7px 10px;background:#efeaff;color:var(--ul-blue);font-size:.68rem;white-space:nowrap}.dialogue-read-progress{display:grid;gap:5px}.dialogue-read-progress>span{height:9px;overflow:hidden;border-radius:999px;background:#edf1f7}.dialogue-read-progress i{height:100%;border-radius:inherit;display:block;background:linear-gradient(90deg,#17b384,var(--ul-blue));transition:width .25s ease}.dialogue-read-progress small{color:var(--ul-muted);font-size:.61rem;font-weight:800}.dialogue-player-actions,.dialogue-coach-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dialogue-coach-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.dialogue-player-actions button,.dialogue-coach-actions button,.dialogue-vocab-card button,.dialogue-favorite{min-height:42px;border:1px solid #dce4f2;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fbfcff;color:var(--ul-ink);font-size:.68rem;font-weight:900}.dialogue-player-actions button.active,.dialogue-coach-actions button.active{border-color:#17b384;background:#e6faf3;color:#047854}.dialogue-coach-head{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:start;gap:10px}.dialogue-coach-head h2{margin:0 0 5px;font-size:1rem;line-height:1.35}.dialogue-coach-head small{color:var(--ul-muted);font-size:.72rem;line-height:1.35}.dialogue-favorite{width:42px;padding:0;color:#a56f00}.dialogue-coach-actions strong{font-size:.68rem}.dialogue-speech-result{border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;font-size:.7rem;font-weight:800}.dialogue-speech-result.good{background:#e6faf3;color:#047854}.dialogue-speech-result.bad{background:#fff0f3;color:#b4234c}.dialogue-vocab-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialogue-vocab-card small{color:var(--ul-muted);font-size:.62rem;font-weight:800}.dialogue-vocab-card>div:last-child{display:flex;flex-wrap:wrap;gap:7px}.dialogue-vocab-card button{min-height:35px;padding:0 10px}.chat-thread{display:grid;gap:11px;margin-bottom:20px}.chat-bubble{max-width:88%;border-radius:19px;padding:11px 14px;animation:bubble-in .3s ease both}.chat-bubble.from-a{justify-self:start;border-bottom-left-radius:6px;background:#fff;border:1px solid var(--ul-line)}.chat-bubble.from-b{justify-self:end;border-bottom-right-radius:6px;background:linear-gradient(135deg,#5b23ff,#362f4f);color:#fff}.chat-bubble small{display:block;margin-bottom:2px;font-size:.6rem;font-weight:900;letter-spacing:.06em;opacity:.72;text-transform:uppercase}.chat-bubble p{margin:0;font-size:.94rem;font-weight:750;line-height:1.4}.chat-bubble em{display:block;margin-top:4px;font-size:.72rem;font-style:normal;opacity:.72}.bubble-audio{border:0;margin-left:5px;padding:2px;background:transparent;color:inherit;font-size:.95rem;vertical-align:-2px;opacity:.75}@keyframes bubble-in{0%{opacity:0;transform:translateY(9px) scale(.97)}to{opacity:1;transform:none}}.dialogue-next{margin-top:6px}.dialogue-question{font-size:clamp(1.3rem,5.5vw,1.8rem)}.answer-option.is-right{border-color:#17b384;background:#e6faf3}.answer-option.is-wrong-pick{border-color:#ef4b74;background:#fff0f3}.dialogue-result{min-height:420px;display:grid;justify-items:center;align-content:center;gap:6px;text-align:center}.dialogue-mascot{width:108px;height:116px;margin-bottom:8px}.dialogue-result h1{margin:0;font-size:2.1rem;letter-spacing:-.05em}.dialogue-result p{max-width:380px;margin:4px 0 18px;color:var(--ul-muted);line-height:1.5}.dialogue-result-card,.dialogue-review-card{width:min(100%,520px);margin:3px 0 12px;border:1px solid var(--ul-line);border-radius:22px;padding:15px;display:grid;gap:12px;background:#fff;text-align:left;box-shadow:0 12px 28px #1820330f}.dialogue-result-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px}.dialogue-result-head>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#e6faf3;color:#047854;font-size:1.15rem}.dialogue-result-head h2,.dialogue-review-head h2{margin:0 0 3px;font-size:1rem}.dialogue-result-head p:last-child{margin:0;color:var(--ul-muted);font-size:.7rem;line-height:1.35}.dialogue-result-head>strong{border-radius:999px;padding:7px 10px;background:#efeaff;color:var(--ul-blue);font-size:.72rem;white-space:nowrap}.dialogue-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dialogue-result-grid>div{min-width:0;border:1px solid #e4e9f2;border-radius:14px;padding:9px 8px;display:grid;gap:2px;background:#fbfcff}.dialogue-result-grid small{color:var(--ul-muted);font-size:.55rem;font-weight:900;text-transform:uppercase}.dialogue-result-grid strong{color:var(--ul-ink);font-size:.92rem}.dialogue-result-grid span{overflow:hidden;color:var(--ul-muted);font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.dialogue-result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dialogue-result-actions button{min-height:42px;border:1px solid #dce4f2;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fbfcff;color:var(--ul-ink);font-size:.68rem;font-weight:900}.dialogue-scene-status{max-width:none;margin:-2px 0 0;border-radius:13px;padding:9px 10px;background:#effcf8;color:#08785a;font-size:.68rem;font-weight:850}.dialogue-review-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.dialogue-review-head>strong{border-radius:999px;padding:7px 10px;background:#eaf6ff;color:#0b76bd;font-size:.72rem}.dialogue-review-card article{min-height:58px;border:1px solid #e4e9f2;border-radius:15px;padding:9px;display:grid;grid-template-columns:minmax(0,1fr) 36px 46px 36px;align-items:center;gap:7px;background:#fbfcff}.dialogue-review-card article div{min-width:0;display:grid;gap:2px}.dialogue-review-card article strong,.dialogue-review-card article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialogue-review-card article strong{color:var(--ul-ink);font-size:.76rem}.dialogue-review-card article small{color:var(--ul-muted);font-size:.62rem}.dialogue-review-card article button{width:36px;height:36px;border:1px solid #dce4f2;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--ul-blue)}.dialogue-review-card article button:nth-of-type(2){width:46px;color:#5f6678;font-size:.58rem;font-weight:900}.dialogue-review-card article button.active{border-color:#ead67d;background:#fff9db;color:#a66900}.placement-shell{padding-top:22px}.placement-intro{min-height:440px;display:grid;justify-items:center;align-content:center;gap:4px;text-align:center}.placement-emoji{font-size:3.6rem;margin-bottom:10px}.placement-intro h1{max-width:430px;margin:0 0 8px;font-size:clamp(1.7rem,7vw,2.4rem);letter-spacing:-.045em}.placement-intro p{max-width:420px;margin:0 0 10px;color:var(--ul-muted);line-height:1.55;font-size:.9rem}.placement-note{font-size:.78rem}.placement-intro .ul-button{max-width:340px;margin-top:14px}.placement-secondary{max-width:340px}.placement-preview-card,.placement-result-card,.placement-coach-card{width:100%;max-width:430px;border:1px solid color-mix(in srgb,var(--unit-color, var(--ul-blue)) 22%,var(--ul-line));border-radius:21px;padding:15px;display:grid;gap:13px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--unit-color, var(--ul-blue)) 16%,transparent),transparent 34%),#fff;text-align:left;box-shadow:0 12px 26px #362f4f12}.placement-preview-head,.placement-result-head{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:11px}.placement-preview-head>span,.placement-result-head>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#eaf6ff;color:var(--ul-blue);font-size:1.35rem}.placement-preview-head h2,.placement-result-head h2,.placement-coach-card h2{margin:0 0 3px;font-size:1rem}.placement-preview-head small,.placement-result-head small,.placement-coach-card small{color:var(--ul-muted);font-size:.68rem;line-height:1.35}.placement-preview-stats,.placement-result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.placement-preview-stats>div,.placement-result-stats>div{border-radius:14px;padding:9px 8px;display:grid;justify-items:center;gap:1px;background:#f7f9fd}.placement-preview-stats strong,.placement-result-stats strong{font-size:.92rem}.placement-preview-stats small,.placement-result-stats small{color:var(--ul-muted);font-size:.55rem;font-weight:850;text-transform:uppercase}.placement-unit-strip,.placement-map{display:flex;flex-wrap:wrap;gap:7px}.placement-unit-strip span,.placement-map span{width:34px;height:34px;border:1px solid color-mix(in srgb,var(--unit-color) 24%,var(--ul-line));border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--unit-color) 12%,white);font-size:1.05rem}.placement-map{margin:0 0 13px;justify-content:center}.placement-map span{opacity:.42}.placement-map span.done,.placement-map span.current{opacity:1}.placement-map span.done{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--unit-color) 48%,white)}.placement-map span.current{transform:translateY(-2px);box-shadow:0 8px 18px #362f4f24}.placement-coach-card{max-width:none;margin:0 0 13px;grid-template-columns:minmax(0,1fr) auto;align-items:center}.placement-coach-card>strong{border-radius:999px;padding:7px 10px;background:color-mix(in srgb,var(--unit-color) 14%,#f7f9fd);color:color-mix(in srgb,var(--unit-color) 72%,var(--ul-ink));font-size:.72rem}.placement-unlocked-list{display:grid;gap:6px}.placement-unlocked-list span{border-radius:12px;padding:8px 10px;background:#f7f9fd;color:var(--ul-muted);font-size:.66rem;font-weight:850}.placement-unit-tag{margin:0 0 13px;color:var(--ul-muted);font-size:.76rem;font-weight:850}.ion-palette-dark .audio-slow,.ion-palette-dark .type-answer,.ion-palette-dark .quest-list,.ion-palette-dark .explore-row button,.ion-palette-dark .phrase-feature-card,.ion-palette-dark .phrasebook-stats>div,.ion-palette-dark .phrase-feature-actions button,.ion-palette-dark .phrase-unit-strip button,.ion-palette-dark .phrase-search,.ion-palette-dark .phrase-row,.ion-palette-dark .phrase-mic,.ion-palette-dark .phrase-filters button,.ion-palette-dark .coach-action,.ion-palette-dark .skill-spotlight,.ion-palette-dark .review-forecast-card,.ion-palette-dark .review-forecast-grid>div,.ion-palette-dark .skill-row,.ion-palette-dark .dialogues-hero,.ion-palette-dark .dialogue-recommend-card,.ion-palette-dark .dialogues-stats>div,.ion-palette-dark .dialogue-filter-tabs button.active,.ion-palette-dark .dialogue-player-card,.ion-palette-dark .dialogue-coach-card,.ion-palette-dark .dialogue-vocab-card,.ion-palette-dark .dialogue-result-card,.ion-palette-dark .dialogue-review-card,.ion-palette-dark .dialogue-result-grid>div,.ion-palette-dark .dialogue-result-actions button,.ion-palette-dark .dialogue-review-card article,.ion-palette-dark .dialogue-review-card article button,.ion-palette-dark .dialogue-player-actions button,.ion-palette-dark .dialogue-coach-actions button,.ion-palette-dark .dialogue-vocab-card button,.ion-palette-dark .dialogue-favorite,.ion-palette-dark .placement-preview-card,.ion-palette-dark .placement-result-card,.ion-palette-dark .placement-coach-card,.ion-palette-dark .placement-preview-stats>div,.ion-palette-dark .placement-result-stats>div,.ion-palette-dark .placement-unlocked-list span,.ion-palette-dark .dialogue-card,.ion-palette-dark .chat-bubble.from-a{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .quest-emoji,.ion-palette-dark .explore-row span,.ion-palette-dark .phrase-feature-head>span,.ion-palette-dark .coach-action-icon,.ion-palette-dark .skill-spotlight>span:first-child,.ion-palette-dark .goal-row>span,.ion-palette-dark .skill-row>span,.ion-palette-dark .dialogue-recommend-card>span,.ion-palette-dark .dialogue-player-head>span,.ion-palette-dark .dialogue-result-head>span,.ion-palette-dark .placement-preview-head>span,.ion-palette-dark .placement-result-head>span,.ion-palette-dark .dialogue-emoji,.ion-palette-dark .phrase-audio--slow,.ion-palette-dark .achievement-cell{background:#332a49}.ion-palette-dark .achievement-spotlight{border-color:var(--ul-line);background:radial-gradient(circle at 100% -8%,rgba(228,255,48,.12),transparent 34%),linear-gradient(135deg,#27203a,#30264b)}.ion-palette-dark .achievement-spotlight>span,.ion-palette-dark .achievement-spotlight>strong,.ion-palette-dark .achievement-filter-tabs,.ion-palette-dark .achievement-filter-tabs button.active{background:#332a49;color:var(--ul-ink)}.ion-palette-dark .achievement-spotlight small{color:var(--ul-muted)}.ion-palette-dark .achievement-spotlight i,.ion-palette-dark .achievement-filter-tabs strong{background:#4b4265}.ion-palette-dark .achievement-filter-tabs button.active strong{background:#382875;color:#cfc2ff}.ion-palette-dark .achievement-cell{border-color:var(--ul-line)}.ion-palette-dark .phrase-audio{background:#382875;color:#cfc2ff}.ion-palette-dark .home-greeting--fresh{background:radial-gradient(circle at 92% 0%,rgba(228,255,48,.17),transparent 34%),linear-gradient(135deg,#27203a 45%,#30264b)}.ion-palette-dark .coach-card,.ion-palette-dark .goal-card,.ion-palette-dark .skill-card{background:radial-gradient(circle at 100% -10%,rgba(228,255,48,.12),transparent 34%),var(--ul-card)}.ion-palette-dark .review-forecast-grid>div.active{border-color:#3d80b7;background:#223a55}.ion-palette-dark .home-greeting--fresh .greeting-bubble,.ion-palette-dark .quick-mode-tabs,.ion-palette-dark .quick-size-tabs,.ion-palette-dark .quick-session-card>div,.ion-palette-dark .flash-card,.ion-palette-dark .flash-card-actions button,.ion-palette-dark .quick-answer-actions .again,.ion-palette-dark .quick-missed-card,.ion-palette-dark .quick-missed-list article,.ion-palette-dark .quick-missed-list button,.ion-palette-dark .quick-result-grid div{background-color:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .quick-missed-head>span{background:#3d1927;color:#ff8caf}.ion-palette-dark .phrase-filters button.active{border-color:#8e73ff;background:#382875;color:#d5caff}.ion-palette-dark .phrase-unit-strip button.active,.ion-palette-dark .phrase-feature-feedback.good{background:#12382f;color:#74ebc7;border-color:#1e8066}.ion-palette-dark .phrase-feature-feedback.bad{background:#3d1927;color:#ff8caf}.ion-palette-dark .phrase-copy-status{background:#12293c;color:#8ed0ff}.ion-palette-dark .phrase-favorite{background:#332a49;color:#9890aa}.ion-palette-dark .phrase-favorite.is-favorite,.ion-palette-dark .flash-card-actions button.favorite,.ion-palette-dark .quick-missed-list button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.ion-palette-dark .finish-orbit{background:radial-gradient(circle at 30% 20%,#6d7321,transparent 38%),linear-gradient(135deg,#382875,#2f254b)}.ion-palette-dark .quest-track,.ion-palette-dark .node-ring-track{background:#4b4265}.ion-palette-dark .node-ring-track{stroke:#4b4265}.ion-palette-dark .node-face{background:color-mix(in srgb,var(--unit-color) 22%,var(--ul-card));box-shadow:inset 0 -3px #00000047}.ion-palette-dark .path-step.is-locked .node-face{background:#2e2742;color:#6f6788}.ion-palette-dark .path-step.from-0:before,.ion-palette-dark .path-step.from-1:before,.ion-palette-dark .path-step.from-2:before{border-color:#4b4265}.ion-palette-dark .learn-filter-tabs{background:#4b4265}.ion-palette-dark .learn-filter-tabs span{background:#183d5c;color:#8ed0ff}.ion-palette-dark .learn-coach-actions button.primary{border-color:var(--unit-color);background:var(--unit-color);color:#fff}.ion-palette-dark .freeze-banner{border-color:#1f5e8e;background:#12293c;color:#8ed0ff}.ion-palette-dark .week-strip{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .week-strip-day i{background:#332a49;color:#6f6788}.ion-palette-dark .week-strip-day.is-active i{background:#14382c;color:#4be3a8}.ion-palette-dark .catalog-sync-head>span{background:#183d5c;color:#8ed0ff}.ion-palette-dark .placement-unit-strip span,.ion-palette-dark .placement-map span{background:color-mix(in srgb,var(--unit-color) 18%,var(--ul-card));border-color:color-mix(in srgb,var(--unit-color) 28%,var(--ul-line))}.ion-palette-dark .level-card .level-bar{background:#4b4265}.ion-palette-dark .top-stat--streak.is-zero ion-icon{color:#6f6788}.ion-palette-dark .top-stat--level ion-icon{color:#f0cf5a}.ion-palette-dark .freeze-count{background:#12293c;color:#8ed0ff}.ion-palette-dark .achievement-toast{border-color:#6d5c1c;background:linear-gradient(135deg,#353018,#2a2617)}.ion-palette-dark .achievement-toast strong{color:#f5e98f}.ion-palette-dark .achievement-toast small{color:#c9bd77}.ion-palette-dark .heatmap-col .lvl-0,.ion-palette-dark .heatmap-legend .lvl-0{background:#332c48}.ion-palette-dark .heatmap-col .lvl-1,.ion-palette-dark .heatmap-legend .lvl-1{background:color-mix(in srgb,var(--ul-chart-bar) 32%,#27203a)}.ion-palette-dark .heatmap-col .lvl-2,.ion-palette-dark .heatmap-legend .lvl-2{background:color-mix(in srgb,var(--ul-chart-bar) 55%,#27203a)}.ion-palette-dark .heatmap-col .lvl-3,.ion-palette-dark .heatmap-legend .lvl-3{background:color-mix(in srgb,var(--ul-chart-bar) 78%,#27203a)}.ion-palette-dark .ranking-row--skeleton .sk{background:linear-gradient(90deg,#332c48 25%,#3e3558 40%,#332c48 60%);background-size:300% 100%}.ion-palette-dark .dialogue-status{background:#382875;color:#cfc2ff}.ion-palette-dark .dialogue-status.is-done{background:#12382f;color:#74ebc7}.ion-palette-dark .dialogues-progress-ring{background:conic-gradient(#17b384 calc(var(--dialogue-progress) * 1%),#4b4265 0)}.ion-palette-dark .dialogues-progress-ring:before{background:var(--ul-card)}.ion-palette-dark .dialogue-filter-tabs,.ion-palette-dark .dialogue-read-progress>span{background:#4b4265}.ion-palette-dark .dialogue-filter-tabs span{background:#183d5c;color:#8ed0ff}.ion-palette-dark .dialogue-recommend-card em,.ion-palette-dark .dialogue-player-actions button.active,.ion-palette-dark .dialogue-coach-actions button.active,.ion-palette-dark .dialogue-speech-result.good{background:#12382f;color:#74ebc7;border-color:#1e8066}.ion-palette-dark .dialogue-player-head>strong{background:#382875;color:#cfc2ff}.ion-palette-dark .dialogue-speech-result.bad{background:#3d1927;color:#ff8caf}.ion-palette-dark .dialogue-scene-status{background:#12382f;color:#74ebc7}.ion-palette-dark .dialogue-review-head>strong{background:#183d5c;color:#8ed0ff}.ion-palette-dark .dialogue-review-card article button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.ion-palette-dark .answer-option.is-right{border-color:#17b384;background:#12382f}.ion-palette-dark .answer-option.is-wrong-pick{border-color:#ef4b74;background:#3d1927}.ion-palette-dark .exercise-answer-panel{border-color:#1e8066;background:#12382f}.ion-palette-dark .exercise-answer-panel.is-wrong{border-color:#7a2942;background:#3d1927}.ion-palette-dark .exercise-answer-panel span{color:#cfc2ff}@media(max-width:380px){.review-session-head{grid-template-columns:42px minmax(0,1fr)}.review-session-head>strong{grid-column:2;justify-self:start}.review-session-stats,.review-mode-tabs,.result-recap-grid,.pron-session-card{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-spotlight{grid-template-columns:42px minmax(0,1fr) auto}.achievement-spotlight>ion-icon{display:none}.achievement-filter-tabs button{grid-template-columns:auto 1fr}.achievement-filter-tabs button span{display:none}.achievement-grid,.phrasebook-stats,.phrase-feature-actions,.onboarding-feature-grid,.profile-coach-stats,.profile-action-grid,.catalog-sync-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.phrase-row{grid-template-columns:38px 38px 1fr;gap:7px}.phrase-audio,.phrase-mic,.phrase-favorite{width:38px;height:38px}.phrase-actions{grid-column:3;justify-content:flex-end}.quick-practice-cta{display:none}.learn-filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.learn-coach-head{grid-template-columns:44px minmax(0,1fr)}.learn-coach-head>strong{grid-column:2;justify-self:start}.unit-plan-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-plan-actions{grid-template-columns:1fr}.dialogue-result-head{grid-template-columns:42px minmax(0,1fr)}.dialogue-result-head>strong{grid-column:2;justify-self:start}.dialogue-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialogue-result-actions{grid-template-columns:1fr}.dialogue-review-card article{grid-template-columns:minmax(0,1fr) 34px 44px 34px}.dialogue-review-card article button{width:34px;height:34px}.dialogue-review-card article button:nth-of-type(2){width:44px}}@media(max-width:520px){.phrasebook-hero{grid-template-columns:1fr}.quick-mode-tabs,.quick-session-card{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-missed-list article{grid-template-columns:minmax(0,1fr) 34px 34px}.phrasebook-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.phrasebook-hero>button{width:100%;grid-template-columns:auto 1fr;column-gap:9px}.phrasebook-hero>button span{grid-row:1 / 3;align-self:center;margin:0}.flash-card{min-height:365px}}.focus-page ion-content{--background: #160d2a}.focus-shell{position:relative;min-height:100%;overflow:hidden;padding:max(18px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom));background:radial-gradient(circle at 15% 8%,rgba(91,35,255,.42),transparent 32%),radial-gradient(circle at 90% 70%,rgba(0,139,255,.18),transparent 36%),linear-gradient(155deg,#21123c,#120b22 65%,#091422);color:#f9f7ff}.focus-shell:before,.focus-shell:after{content:"";position:absolute;border:1px solid rgba(228,255,48,.1);border-radius:50%;pointer-events:none}.focus-shell:before{width:340px;height:340px;top:-230px;right:-120px}.focus-shell:after{width:220px;height:220px;bottom:-160px;left:-90px}.focus-topbar{position:relative;z-index:2;width:min(100%,760px);margin:0 auto;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px}.focus-topbar>button{width:42px;height:42px;border:1px solid rgba(255,255,255,.11);border-radius:14px;display:grid;place-items:center;background:#ffffff12;color:#fff;font-size:1.15rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.focus-topbar>span:nth-child(2){display:flex;align-items:center;justify-content:center;gap:7px;color:#cfc7df;font-size:.68rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.focus-topbar>span:nth-child(2) i{width:7px;height:7px;border-radius:50%;background:#857d96}.focus-topbar>span:nth-child(2) i.active{background:var(--ul-yellow);box-shadow:0 0 0 5px #e4ff301a;animation:focus-pulse 1.8s ease infinite}.focus-course-flag{width:42px;height:42px;border:1px solid rgba(255,255,255,.11);border-radius:14px;display:grid;place-items:center;background:#ffffff12;font-size:1.25rem}@keyframes focus-pulse{50%{box-shadow:0 0 0 8px #e4ff3000}}.focus-setup,.focus-finished{position:relative;z-index:1;width:min(100%,580px);min-height:calc(100vh - 110px);margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.focus-orbit{position:relative;width:112px;height:112px;margin-bottom:26px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 36% 28%,rgba(228,255,48,.9),transparent 16%),linear-gradient(145deg,#6f4dff,#352061);box-shadow:0 24px 60px #5b23ff57,inset 0 1px #ffffff47}.focus-orbit:before{content:"";position:absolute;inset:-15px;border:1px solid rgba(228,255,48,.24);border-radius:50%;transform:rotate(-18deg) scaleY(.42)}.focus-orbit i{position:absolute;width:11px;height:11px;right:-12px;border-radius:50%;background:var(--ul-yellow);box-shadow:0 0 18px #e4ff30a6;animation:orbit-dot 4s linear infinite}.focus-orbit b{color:#fff;font-size:3rem;font-weight:400}@keyframes orbit-dot{to{transform:rotate(360deg) translate(-12px) rotate(-360deg)}}.focus-setup .eyebrow,.focus-finished .eyebrow{color:var(--ul-yellow)}.focus-setup h1,.focus-finished h1{max-width:560px;margin:0;color:#fff;font-size:clamp(2.35rem,9vw,4rem);line-height:.98;letter-spacing:-.06em}.focus-setup>p:not(.eyebrow),.focus-finished>p:not(.eyebrow){max-width:480px;margin:17px 0 0;color:#bdb4cd;font-size:.86rem;line-height:1.55}.focus-duration-picker{width:min(100%,430px);margin:29px 0 18px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.focus-duration-picker button{min-height:88px;border:1px solid rgba(255,255,255,.12);border-radius:21px;display:grid;place-content:center;background:#ffffff0f;color:#cac3d6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .16s ease,border-color .16s ease,background .16s ease}.focus-duration-picker button.active{border-color:#e4ff30a6;background:linear-gradient(145deg,#5b23ffcc,#4c2691c7);color:#fff;box-shadow:0 15px 28px #0000002e;transform:translateY(-3px)}.focus-duration-picker strong{font-size:1.55rem;line-height:1}.focus-duration-picker small{margin-top:4px;font-size:.62rem;font-weight:800}.focus-mode-picker{width:min(100%,430px);margin:0 0 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.focus-mode-picker button{min-height:76px;border:1px solid rgba(255,255,255,.11);border-radius:19px;padding:10px 8px;display:grid;justify-items:center;align-content:center;gap:6px;background:#ffffff0e;color:#bdb4cd;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.focus-mode-picker button.active{border-color:#008bff8c;background:#008bff24;color:#fff;box-shadow:inset 0 1px #ffffff1c}.focus-mode-picker ion-icon{color:#c8baff;font-size:1.2rem}.focus-mode-picker button.active ion-icon{color:var(--ul-yellow)}.focus-mode-picker span{min-width:0;display:grid;gap:1px}.focus-mode-picker strong{font-size:.72rem}.focus-mode-picker small{overflow:hidden;font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}.focus-benefits{margin-bottom:25px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 15px}.focus-benefits span{display:inline-flex;align-items:center;gap:5px;color:#a9a0b9;font-size:.65rem;font-weight:750}.focus-benefits ion-icon{color:#c8baff}.focus-primary{width:min(100%,390px);min-height:56px;border:0;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--ul-yellow);color:#2e2441;font-size:.92rem;font-weight:950;box-shadow:0 16px 34px #e4ff3029}.focus-session{position:relative;z-index:1;width:min(100%,760px);margin:34px auto 0;display:grid;justify-items:center}.focus-timer{position:relative;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ul-yellow) var(--focus-progress),rgba(255,255,255,.09) 0);box-shadow:0 25px 60px #00000038}.focus-timer:after{content:"";position:absolute;inset:9px;border-radius:50%;background:linear-gradient(145deg,#24153f,#140c25);box-shadow:inset 0 1px #ffffff14}.focus-timer>span{position:relative;z-index:1;display:grid;justify-items:center}.focus-timer small{color:#91879f;font-size:.55rem;font-weight:900;letter-spacing:.1em}.focus-timer strong{margin:5px 0 2px;font-size:3rem;line-height:1;letter-spacing:-.06em}.focus-timer em{color:#b9b0c8;font-size:.62rem;font-style:normal;font-weight:750}.focus-checkpoints{width:min(100%,520px);margin-top:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.focus-checkpoints>div{min-width:0;border:1px solid rgba(255,255,255,.1);border-radius:15px;padding:8px 6px;display:grid;justify-items:center;gap:4px;background:#ffffff0e;color:#91879f}.focus-checkpoints ion-icon{font-size:1rem}.focus-checkpoints span{max-width:100%;overflow:hidden;font-size:.56rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.focus-checkpoints>div.active{border-color:#e4ff306b;background:#e4ff301a;color:var(--ul-yellow)}.focus-phrase-card{width:100%;min-height:245px;margin-top:27px;border:1px solid rgba(255,255,255,.13);border-radius:28px;padding:18px;display:grid;grid-template-rows:auto 1fr auto;background:radial-gradient(circle at 100% 0%,rgba(228,255,48,.18),transparent 31%),#ffffff13;box-shadow:0 22px 46px #00000030;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.focus-phrase-card>header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.focus-phrase-card>header>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#ffffff17;font-size:1.15rem}.focus-phrase-card>header small{overflow:hidden;color:#a79eb6;font-size:.59rem;font-weight:850;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}.focus-phrase-card>header button{width:38px;height:38px;border:0;border-radius:12px;display:grid;place-items:center;background:#ffffff12;color:#9d94aa;font-size:1rem}.focus-phrase-card>header button.active{background:#e4ff3024;color:var(--ul-yellow)}.focus-phrase-card>div{display:grid;align-content:center;justify-items:center;padding:14px;text-align:center}.focus-phrase-card>div>small{color:#a79eb6;font-size:.57rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.focus-phrase-card h2{max-width:580px;margin:7px 0;color:#fff;font-size:clamp(1.7rem,6vw,2.55rem);line-height:1.05;letter-spacing:-.045em}.focus-phrase-card>div button{border:1px dashed rgba(200,186,255,.32);border-radius:999px;padding:7px 11px;background:transparent;color:#c8baff;font-size:.64rem;font-weight:850}.focus-phrase-card>div p{margin:1px 0 0;color:#c5bdcf;font-size:.78rem;animation:slide-in .2s ease both}.focus-phrase-card>footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.focus-phrase-card>footer button{min-height:38px;border:0;border-radius:12px;padding:0 13px;display:inline-flex;align-items:center;gap:6px;background:#6f4dff3d;color:#d7ceff;font-size:.68rem;font-weight:850}.focus-phrase-card>footer span{color:#82798f;font-size:.59rem;font-weight:750}.focus-controls{margin-top:19px;display:flex;align-items:center;justify-content:center;gap:10px}.focus-controls button{min-height:45px;border-radius:15px;padding:0 17px;font-size:.72rem;font-weight:850}.focus-pause{border:0;display:inline-flex;align-items:center;gap:7px;background:#fff;color:#302545}.focus-finish-early{border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#aca3ba}.focus-finish-icon{width:104px;height:104px;margin-bottom:24px;border-radius:35px;display:grid;place-items:center;background:linear-gradient(145deg,#6f4dff,#3f2871);font-size:2.7rem;box-shadow:0 22px 55px #5b23ff4d;transform:rotate(4deg)}.focus-finished>p strong{color:#fff}.focus-result{width:100%;margin:28px 0 21px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.focus-result>div{min-height:93px;border:1px solid rgba(255,255,255,.11);border-radius:19px;display:grid;place-content:center;gap:1px;background:#ffffff0f}.focus-result span{font-size:1.15rem}.focus-result strong{font-size:1rem}.focus-result small{color:#a69caf;font-size:.6rem}.focus-review-card{width:100%;margin:0 0 18px;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:14px;display:grid;gap:10px;background:#ffffff0f;text-align:left}.focus-review-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.focus-review-head>strong{border-radius:999px;padding:6px 9px;background:#e4ff301f;color:var(--ul-yellow);font-size:.68rem}.focus-review-list{display:grid;gap:7px}.focus-review-list article{min-height:54px;border:1px solid rgba(255,255,255,.1);border-radius:15px;padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;align-items:center;gap:7px;background:#ffffff0d}.focus-review-list div{min-width:0;display:grid;gap:2px}.focus-review-list strong,.focus-review-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.focus-review-list strong{color:#fff;font-size:.76rem}.focus-review-list small{color:#a69caf;font-size:.62rem}.focus-review-list button{width:36px;height:36px;border:1px solid rgba(255,255,255,.11);border-radius:12px;display:grid;place-items:center;background:#ffffff12;color:#c8baff}.focus-review-list button.active{border-color:#e4ff306b;background:#e4ff301f;color:var(--ul-yellow)}.focus-finished .ul-button--ghost{max-width:390px;color:#aaa1b8}@media(min-width:760px){.explore-row{grid-template-columns:repeat(4,minmax(0,1fr))}.focus-session{margin-top:42px}.focus-timer{width:225px;height:225px}}@media(max-width:420px){.focus-shell{padding-inline:14px}.focus-setup,.focus-finished{min-height:calc(100vh - 88px)}.focus-setup h1,.focus-finished h1{font-size:2.35rem}.focus-orbit{width:92px;height:92px;margin-bottom:21px}.focus-duration-picker{margin-top:23px}.focus-duration-picker button{min-height:76px}.focus-mode-picker{gap:6px}.focus-mode-picker button{min-height:68px;padding-inline:5px}.focus-mode-picker small{display:none}.focus-benefits span:last-child{display:none}.focus-session{margin-top:25px}.focus-timer{width:180px;height:180px}.focus-timer strong{font-size:2.55rem}.focus-checkpoints{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-phrase-card{min-height:225px;margin-top:20px}.focus-phrase-card>footer span{display:none}}.search-shell{width:min(100%,920px);margin:0 auto;padding:21px 18px max(54px,env(safe-area-inset-bottom))}.global-search-hero{position:relative;overflow:hidden;border:1px solid rgba(91,35,255,.16);border-radius:28px;padding:25px;background:radial-gradient(circle at 94% 6%,rgba(228,255,48,.46),transparent 31%),radial-gradient(circle at 0% 110%,rgba(0,139,255,.1),transparent 36%),linear-gradient(145deg,#fff,#f2eeff);box-shadow:0 18px 40px #362f4f14}.global-search-hero h1{max-width:620px;margin:0 0 6px;font-size:clamp(2rem,7vw,3.25rem);line-height:1;letter-spacing:-.055em}.global-search-hero>p:not(.eyebrow){margin:0;color:var(--ul-muted);font-size:.8rem}.global-search-input{min-height:58px;margin-top:22px;border:2px solid rgba(91,35,255,.16);border-radius:19px;padding:0 15px;display:flex;align-items:center;gap:10px;background:#ffffffeb;box-shadow:0 12px 25px #362f4f14}.global-search-input:focus-within{border-color:var(--ul-blue);box-shadow:0 0 0 4px #5b23ff17}.global-search-input>ion-icon{flex:0 0 auto;color:var(--ul-blue);font-size:1.25rem}.global-search-input input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--ul-ink);font-size:.95rem}.global-search-input button{width:34px;height:34px;border:0;display:grid;place-items:center;background:transparent;color:var(--ul-muted);font-size:1.12rem}.search-section{margin-top:31px}.search-section-heading{margin-bottom:13px;display:flex;align-items:end;justify-content:space-between;gap:12px}.search-section-heading h2{margin:0;font-size:1.25rem;letter-spacing:-.035em}.search-section-heading>button{border:0;background:transparent;color:var(--ul-blue);font-size:.7rem;font-weight:850}.search-section-heading>strong{min-width:27px;height:27px;border-radius:14px;padding:0 7px;display:grid;place-items:center;background:#efeaff;color:var(--ul-blue);font-size:.65rem}.recent-searches{display:flex;flex-wrap:wrap;gap:7px}.recent-searches button{min-height:38px;border:1px solid var(--ul-line);border-radius:999px;padding:0 13px;display:inline-flex;align-items:center;gap:6px;background:var(--ul-card);color:var(--ul-muted);font-size:.72rem;font-weight:800}.recent-searches ion-icon{color:var(--ul-blue)}.search-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.search-suggestions button{min-height:118px;border:1px solid var(--ul-line);border-radius:21px;padding:15px;display:grid;justify-items:start;align-content:center;gap:2px;background:var(--ul-card);color:var(--ul-ink);text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.search-suggestions button:active{transform:scale(.98)}.search-suggestions button:hover{border-color:#5b23ff52;box-shadow:0 12px 25px #362f4f12}.search-suggestions span{margin-bottom:8px;font-size:1.5rem}.search-suggestions strong{font-size:.82rem}.search-suggestions small{color:var(--ul-muted);font-size:.64rem}.search-shortcuts{display:grid;gap:8px}.search-shortcuts>button,.search-dialogue-results>button,.search-note-list>button{width:100%;min-height:68px;border:1px solid var(--ul-line);border-radius:18px;padding:11px 13px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.search-shortcuts>button>span,.search-dialogue-results>button>span,.search-note-list>button>span{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:var(--ul-surface);font-size:1.25rem}.search-shortcuts div,.search-dialogue-results div,.search-note-list div{min-width:0;display:grid;gap:2px}.search-shortcuts strong,.search-dialogue-results strong,.search-note-list strong{overflow:hidden;font-size:.79rem;text-overflow:ellipsis;white-space:nowrap}.search-shortcuts small,.search-dialogue-results small,.search-note-list small{overflow:hidden;color:var(--ul-muted);font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.search-note-list em{overflow:hidden;color:color-mix(in srgb,var(--ul-blue) 62%,var(--ul-muted));font-size:.6rem;font-style:normal;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.search-shortcuts>button>ion-icon,.search-dialogue-results>button>ion-icon,.search-note-list>button>ion-icon{color:var(--ul-muted)}.search-summary{margin:22px 2px 0;display:flex;align-items:baseline;gap:5px}.search-summary span{color:var(--ul-ink);font-size:.76rem;font-weight:900}.search-summary small{color:var(--ul-muted);font-size:.68rem}.search-filter-tabs{margin-top:13px;border:1px solid var(--ul-line);border-radius:17px;padding:4px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;background:var(--ul-card)}.search-filter-tabs button{min-width:0;min-height:42px;border:0;border-radius:13px;display:grid;place-items:center;align-content:center;gap:1px;background:transparent;color:var(--ul-muted);font-size:.62rem;font-weight:900}.search-filter-tabs button.active{background:var(--ul-blue);color:#fff;box-shadow:0 8px 18px #5b23ff2e}.search-filter-tabs em{font-size:.56rem;font-style:normal;opacity:.82}.search-practice-card{margin-top:13px;border:1px solid #dbe7ff;border-radius:21px;padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;background:radial-gradient(circle at 100% -8%,rgba(0,139,255,.14),transparent 34%),#fff}.search-practice-card h2{margin:0 0 3px;font-size:1rem}.search-practice-card p:last-child{margin:0;color:var(--ul-muted);font-size:.68rem;line-height:1.35}.search-practice-actions{display:flex;gap:7px}.search-practice-actions button{min-height:40px;border:1px solid var(--ul-line);border-radius:14px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--ul-card);color:var(--ul-blue);font-size:.68rem;font-weight:900}.search-practice-actions button.primary{border-color:var(--ul-blue);background:var(--ul-blue);color:#fff}.search-best-card{margin-top:14px;border:1px solid rgba(91,35,255,.18);border-radius:23px;padding:17px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:13px;background:radial-gradient(circle at 100% -8%,rgba(228,255,48,.28),transparent 34%),#fff;box-shadow:0 12px 30px #362f4f12}.search-best-card>div:first-child{min-width:0;display:grid;gap:4px}.search-best-card strong{overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.search-best-card small,.search-best-card em{overflow:hidden;color:var(--ul-muted);font-size:.7rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.search-best-actions{display:grid;grid-template-columns:repeat(3,40px);gap:7px}.search-best-actions button{width:40px;height:40px;border:1px solid var(--ul-line);border-radius:14px;display:grid;place-items:center;background:var(--ul-card);color:var(--ul-blue);font-size:1.05rem}.search-best-actions button.active{border-color:#ead67d;background:#fff8d8;color:#aa6e00}.search-results-section{margin-top:25px}.search-phrase-list{display:grid;gap:8px}.search-phrase-list article{min-height:80px;border:1px solid var(--ul-line);border-radius:19px;padding:11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;background:var(--ul-card)}.search-result-audio,.search-result-favorite{width:42px;height:42px;border:0;border-radius:14px;display:grid;place-items:center;font-size:1.05rem}.search-result-audio{background:#efeaff;color:var(--ul-blue)}.search-result-favorite{background:var(--ul-surface);color:#9e97aa}.search-result-favorite.active{background:#fff8d8;color:#aa6e00}.search-phrase-list article>div{min-width:0;display:grid;gap:2px}.search-phrase-list strong{font-size:.84rem}.search-phrase-list small{color:var(--ul-muted);font-size:.67rem}.search-phrase-list em{margin-top:2px;color:color-mix(in srgb,var(--ul-blue) 68%,var(--ul-muted));font-size:.57rem;font-style:normal;font-weight:750}.search-path-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.search-path-results>button{min-width:0;min-height:94px;border:1px solid var(--ul-line);border-radius:19px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;background:var(--ul-card);color:var(--ul-ink);text-align:left}.search-path-results>button:disabled{opacity:.5}.search-path-results>button>span{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;font-size:1.2rem}.search-path-results>button>div{min-width:0;display:grid;gap:1px}.search-path-results small{color:var(--ul-blue);font-size:.54rem;font-weight:900;letter-spacing:.06em}.search-path-results strong{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.search-path-results em{overflow:hidden;color:var(--ul-muted);font-size:.59rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.search-path-results>button>ion-icon{color:var(--ul-muted)}.search-dialogue-results,.search-note-list{display:grid;gap:8px}.search-empty{min-height:310px;display:grid;place-content:center;justify-items:center;text-align:center}.search-empty>span{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;background:#efeaff;font-size:2rem}.search-empty h2{margin:17px 0 5px;font-size:1.3rem}.search-empty p{margin:0;color:var(--ul-muted);font-size:.75rem}.search-empty button{margin-top:16px;border:0;border-radius:999px;padding:9px 14px;background:var(--ul-blue);color:#fff;font-size:.7rem;font-weight:850}.ion-palette-dark .global-search-hero{background:radial-gradient(circle at 94% 6%,rgba(228,255,48,.13),transparent 31%),linear-gradient(145deg,#27203a,#30264b);border-color:var(--ul-line)}.ion-palette-dark .global-search-input,.ion-palette-dark .search-suggestions button,.ion-palette-dark .recent-searches button,.ion-palette-dark .search-shortcuts>button,.ion-palette-dark .search-filter-tabs,.ion-palette-dark .search-practice-card,.ion-palette-dark .search-practice-actions button,.ion-palette-dark .search-best-card,.ion-palette-dark .search-phrase-list article,.ion-palette-dark .search-path-results>button,.ion-palette-dark .search-dialogue-results>button,.ion-palette-dark .search-note-list>button{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .search-practice-actions button.primary{border-color:#8e73ff;background:#382875;color:#d5caff}.ion-palette-dark .global-search-input input{color:var(--ul-ink)}.ion-palette-dark .search-result-audio,.ion-palette-dark .search-best-actions button,.ion-palette-dark .search-empty>span{background:#382875;color:#d5caff}.ion-palette-dark .search-best-actions button.active{border-color:#7f6921;background:#453a16;color:#f0cf5a}.ion-palette-dark .search-result-favorite{background:#332a49}.ion-palette-dark .search-result-favorite.active{background:#453a16;color:#f0cf5a}@media(min-width:760px){.search-suggestions,.search-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}.search-shortcuts>button{min-width:0}}@media(max-width:560px){.global-search-hero{padding:20px}.search-practice-card{grid-template-columns:1fr}.search-practice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.search-path-results{grid-template-columns:1fr}.search-filter-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.search-suggestions button{min-height:108px;padding:13px}}ion-alert.ul-alert{--backdrop-opacity: .55}ion-alert.ul-alert .alert-wrapper{border-radius:24px;background:var(--ul-card);box-shadow:0 24px 60px #18103059;padding-bottom:6px}ion-alert.ul-alert .alert-head{padding:22px 22px 6px}ion-alert.ul-alert .alert-title{color:var(--ul-ink);font-size:1.12rem;font-weight:900;letter-spacing:-.02em}ion-alert.ul-alert .alert-message{padding:0 22px 14px;color:var(--ul-muted);font-size:.95rem;font-weight:600;line-height:1.45}ion-alert.ul-alert .alert-button-group{flex-wrap:nowrap;gap:10px;padding:4px 16px 14px}ion-alert.ul-alert button.alert-button{flex:1;margin:0;min-height:48px;border:0;border-radius:15px;font-size:.95rem;font-weight:850;text-transform:none}ion-alert.ul-alert button.alert-button .alert-button-inner{justify-content:center}ion-alert.ul-alert button.ul-alert__cancel{background:transparent;color:var(--ul-muted);box-shadow:inset 0 0 0 1.5px var(--ul-line)}ion-alert.ul-alert button.ul-alert__confirm{background:linear-gradient(135deg,#5b23ff,#362f4f);color:#fff;box-shadow:0 10px 24px #5b23ff4d}ion-alert.ul-alert button.ul-alert__confirm--danger{background:linear-gradient(135deg,#ff3b5c,#b3123a);box-shadow:0 10px 24px #ff3b5c4d}.study-note-banner{width:100%;min-height:88px;margin-top:12px;border:1px solid rgba(20,124,113,.2);border-radius:22px;padding:14px 16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;background:linear-gradient(135deg,#147c711f,#fff8d6cc),#fff;color:var(--ul-ink);text-align:left;box-shadow:0 12px 28px #147c711a}.study-note-banner.due{border-color:#b4530947;background:linear-gradient(135deg,#fff3cde6,#e8faf6e0),#fff;box-shadow:0 12px 28px #b453091a}.study-note-banner.due .study-note-icon{background:#fff2c8;color:#9a5b00}.study-note-banner.due small,.study-note-banner.due .study-note-cta{color:#9a5b00}.study-note-icon,.notes-hero button>ion-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:#e9fbf6;color:#147c71;font-size:1.35rem}.study-note-banner>span:nth-child(2){min-width:0;display:grid;gap:1px}.study-note-banner small{color:#147c71;font-size:.59rem;font-weight:950;letter-spacing:.11em}.study-note-banner strong{overflow:hidden;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}.study-note-banner em{overflow:hidden;color:var(--ul-muted);font-size:.65rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.study-note-cta{display:inline-flex;align-items:center;gap:4px;color:#147c71;font-size:.68rem;font-weight:900;white-space:nowrap}.notes-shell{padding-bottom:calc(54px + env(safe-area-inset-bottom))}.notes-hero{border:1px solid var(--ul-line);border-radius:26px;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;background:linear-gradient(135deg,#fff,#f4fbf8 64%,#fff8d6);box-shadow:0 14px 34px #1e293b14}.notes-hero h1{margin:0 0 7px;font-size:2.05rem;line-height:1.02;letter-spacing:-.045em}.notes-hero p:last-child{max-width:480px;margin:0;color:var(--ul-muted);font-size:.85rem;line-height:1.45}.notes-hero button{min-width:142px;border:0;border-radius:18px;padding:12px;display:grid;justify-items:center;gap:8px;background:#147c71;color:#fff;box-shadow:0 12px 24px #147c7133}.notes-hero button>ion-icon{background:#ffffff29;color:#e4ff30}.notes-hero button span{display:grid;justify-items:center}.notes-hero button strong{font-size:.78rem}.notes-hero button small{max-width:118px;overflow:hidden;color:#ffffffc2;font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.notes-stats{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}.notes-stats>div,.notes-mini-row button{min-width:0;border:1px solid var(--ul-line);border-radius:16px;padding:11px;display:grid;gap:2px;background:#fff}.notes-stats small,.notes-mini-row small{overflow:hidden;color:var(--ul-muted);font-size:.56rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.notes-stats strong{font-size:1rem}.notes-stats span{overflow:hidden;color:var(--ul-muted);font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.notes-toolbox{margin-top:11px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.notes-toolbox button{min-width:0;min-height:64px;border:1px solid var(--ul-line);border-radius:17px;padding:10px 12px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;background:#fff;color:var(--ul-ink);text-align:left}.notes-toolbox button:disabled{opacity:.58}.notes-toolbox ion-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#eef9ff;color:#0078d1;font-size:1.1rem}.notes-toolbox span{min-width:0;display:grid;gap:2px}.notes-toolbox strong,.notes-toolbox small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notes-toolbox strong{font-size:.76rem}.notes-toolbox small{color:var(--ul-muted);font-size:.6rem}.notes-import-input{display:none}.notes-review-card{margin-top:13px;border:1px solid rgba(91,35,255,.16);border-radius:24px;padding:16px;background:radial-gradient(circle at 100% -10%,rgba(228,255,48,.34),transparent 34%),linear-gradient(135deg,#fff,#f8f4ff);box-shadow:0 14px 32px #362f4f12}.notes-review-start,.notes-review-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.notes-review-start>span,.notes-review-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#efeaff;color:var(--ul-blue);font-size:1.35rem}.notes-review-start h2,.notes-review-head h2{overflow:hidden;margin:0;font-size:1.05rem;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap}.notes-review-start p:last-child,.notes-review-head small{overflow:hidden;margin:3px 0 0;color:var(--ul-muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.notes-review-start button,.notes-review-head button{min-height:42px;border:0;border-radius:14px;padding:0 14px;background:var(--ul-blue);color:#fff;font-size:.72rem;font-weight:900}.notes-review-head button{width:40px;min-height:40px;padding:0;display:grid;place-items:center;background:#5b23ff1a;color:var(--ul-blue)}.notes-review-progress{margin:14px 0 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px}.notes-review-progress>span{height:8px;overflow:hidden;border-radius:999px;background:#edf0f5}.notes-review-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#147c71,var(--ul-yellow));transition:width .18s ease}.notes-review-progress small{color:var(--ul-muted);font-size:.62rem;font-weight:900}.notes-review-card-face{min-height:150px;border:1px solid rgba(91,35,255,.14);border-radius:20px;padding:18px;display:grid;align-content:center;gap:8px;background:#ffffffc7}.notes-review-card-face small{color:var(--ul-blue);font-size:.6rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.notes-review-card-face strong{font-size:clamp(1.35rem,5vw,2rem);line-height:1.08;letter-spacing:-.04em}.notes-review-card-face p{margin:4px 0 0;color:var(--ul-muted);font-size:.83rem;line-height:1.5;white-space:pre-wrap;animation:slide-in .18s ease both}.notes-review-card-face p span{display:block;margin-bottom:5px;color:var(--ul-ink);font-weight:900}.notes-review-actions{margin-top:11px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.notes-review-actions button{min-width:0;min-height:43px;border:1px solid var(--ul-line);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:var(--ul-ink);font-size:.66rem;font-weight:900}.notes-review-actions button.primary{border-color:#147c71;background:#147c71;color:#fff}.note-composer{margin-top:14px;border:1px solid rgba(20,124,113,.22);border-radius:24px;padding:16px;display:grid;gap:12px;background:#fff;box-shadow:0 14px 32px #147c7114}.note-composer-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px}.note-composer-head>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#e9fbf6;color:#147c71;font-size:1.2rem}.note-composer-head h2{overflow:hidden;margin:0;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.note-composer-head button{width:38px;height:38px;border:1px solid var(--ul-line);border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--ul-muted)}.note-composer label{min-width:0;display:grid;gap:7px;color:var(--ul-ink);font-size:.7rem;font-weight:900}.note-composer input:not([type=checkbox]),.note-composer textarea,.note-composer select{width:100%;border:1px solid var(--ul-line);border-radius:15px;padding:12px 13px;outline:none;background:#fbfcff;color:var(--ul-ink);resize:vertical}.note-composer input:focus,.note-composer textarea:focus,.note-composer select:focus{border-color:#147c71;box-shadow:0 0 0 3px #147c711a}.note-source-pill{border:1px solid #d9e9ff;border-radius:16px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;background:#f7fbff}.note-source-pill ion-icon{color:#0078d1;font-size:1.15rem}.note-source-pill span{min-width:0;display:grid;gap:1px}.note-source-pill strong,.note-source-pill small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-source-pill small{color:var(--ul-muted)}.note-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.note-pin-toggle{min-height:44px;border:1px dashed rgba(20,124,113,.35);border-radius:15px;padding:0 12px;display:flex!important;grid-template-columns:none;align-items:center;gap:9px!important;background:#f4fcf9}.note-pin-toggle input{width:17px;height:17px;accent-color:#147c71}.note-pin-toggle span{display:inline-flex;align-items:center;gap:6px}.note-composer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.note-composer-actions button{min-height:47px;border:1px solid var(--ul-line);border-radius:15px;background:#fff;color:var(--ul-muted);font-weight:900}.note-composer-actions button.primary{border-color:#147c71;background:#147c71;color:#fff}.note-status{margin:-2px 0 0;color:#08785a;font-size:.68rem;font-weight:850}.note-status.error{color:#b2254e}.notes-search{min-height:50px;margin-top:15px;border:1px solid var(--ul-line);border-radius:16px;padding:0 14px;display:flex;align-items:center;gap:10px;background:#fff;color:var(--ul-muted)}.notes-search input{min-width:0;flex:1;border:0;outline:none;background:transparent;color:var(--ul-ink)}.note-filter-tabs{margin-top:11px;padding:4px;border-radius:17px;display:flex;gap:4px;overflow-x:auto;background:#edf3f6;scrollbar-width:none}.note-filter-tabs::-webkit-scrollbar{display:none}.note-filter-tabs button{min-width:82px;min-height:48px;border:0;border-radius:13px;display:grid;place-items:center;gap:1px;background:transparent;color:var(--ul-muted)}.note-filter-tabs ion-icon{font-size:1rem}.note-filter-tabs span{max-width:100%;overflow:hidden;font-size:.56rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.note-filter-tabs strong{min-width:18px;border-radius:999px;padding:1px 5px;background:#147c711a;color:#147c71;font-size:.54rem}.note-filter-tabs button.active{background:#fff;color:#147c71;box-shadow:0 7px 18px #1e293b14}.notes-recent{margin-top:28px}.notes-mini-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.notes-mini-row button{min-height:105px;color:var(--ul-ink);text-align:left}.notes-mini-row span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#f4fcf9;font-size:1.1rem}.notes-mini-row strong{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.note-list{margin-top:16px;display:grid;gap:12px}.note-card{border:1px solid var(--ul-line);border-radius:22px;padding:15px;display:grid;gap:12px;background:#fff;box-shadow:0 8px 24px #1e293b0d}.note-card.pinned{border-color:#147c7152;box-shadow:0 12px 28px #147c7117}.note-card.due{border-color:#b4530952;background:linear-gradient(135deg,#fffbebeb,#fff 54%),#fff}.note-card-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px}.note-card-head>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#f5f8fc;font-size:1.25rem}.note-card-head div{min-width:0}.note-card-head small{display:block;overflow:hidden;color:var(--ul-muted);font-size:.58rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.note-card-head small b{margin-left:6px;border-radius:999px;padding:2px 6px;background:#fff2c8;color:#9a5b00;font-size:.52rem;font-weight:950;text-transform:uppercase}.note-card-head h2{overflow:hidden;margin:3px 0 0;font-size:1rem;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.note-card-head button{width:40px;height:40px;border:1px solid var(--ul-line);border-radius:13px;display:grid;place-items:center;background:#fff;color:#147c71}.note-phrase{margin:0;border-left:3px solid #147c71;padding:3px 0 3px 10px;display:grid;gap:2px}.note-phrase strong{font-size:.86rem}.note-phrase span{color:var(--ul-muted);font-size:.68rem}.note-body{margin:0;color:var(--ul-ink);font-size:.82rem;line-height:1.48;white-space:pre-wrap}.note-card-foot{display:flex;justify-content:space-between;gap:10px;color:var(--ul-muted);font-size:.62rem;font-weight:850}.note-card-foot span.due{color:#9a5b00}.note-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.note-actions button{min-width:0;min-height:42px;border:1px solid var(--ul-line);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fbfcff;color:var(--ul-ink);font-size:.68rem;font-weight:900}.note-actions button:first-child{border-color:#147c7140;background:#f0fbf7;color:#147c71}.note-actions button.danger{color:#b2254e}.notes-empty{margin-top:32px;border:1px dashed rgba(20,124,113,.35);border-radius:24px;padding:28px 20px;display:grid;justify-items:center;text-align:center;background:#fbfffd}.notes-empty>span{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#e9fbf6;color:#147c71;font-size:1.45rem}.notes-empty h2{margin:14px 0 5px;font-size:1.16rem}.notes-empty p{max-width:360px;margin:0 0 17px;color:var(--ul-muted);font-size:.78rem;line-height:1.45}.ion-palette-dark .study-note-banner,.ion-palette-dark .notes-hero,.ion-palette-dark .notes-stats>div,.ion-palette-dark .notes-mini-row button,.ion-palette-dark .note-composer,.ion-palette-dark .notes-review-card,.ion-palette-dark .notes-review-card-face,.ion-palette-dark .notes-toolbox button,.ion-palette-dark .notes-search,.ion-palette-dark .note-filter-tabs button.active,.ion-palette-dark .note-card,.ion-palette-dark .note-card-head button,.ion-palette-dark .note-actions button,.ion-palette-dark .notes-empty{border-color:#4b4265;background:#27203a;color:var(--ul-ink)}.ion-palette-dark .study-note-banner,.ion-palette-dark .notes-hero{background:linear-gradient(135deg,#27203a,#1d2d2e 66%,#353018)}.ion-palette-dark .study-note-banner.due{border-color:#7f6921;background:linear-gradient(135deg,#453a16,#193937 70%)}.ion-palette-dark .study-note-banner.due .study-note-icon{background:#453a16;color:#f0cf5a}.ion-palette-dark .study-note-banner.due small,.ion-palette-dark .study-note-banner.due .study-note-cta{color:#f0cf5a}.ion-palette-dark .note-card.due{border-color:#7f6921;background:linear-gradient(135deg,#453a16b8,#27203a 60%),#27203a}.ion-palette-dark .note-card-head small b{background:#453a16;color:#f0cf5a}.ion-palette-dark .note-card-foot span.due{color:#f0cf5a}.ion-palette-dark .study-note-icon,.ion-palette-dark .note-composer-head>span,.ion-palette-dark .notes-mini-row span,.ion-palette-dark .notes-empty>span,.ion-palette-dark .note-source-pill{background:#193937;color:#78d8c8}.ion-palette-dark .note-composer input:not([type=checkbox]),.ion-palette-dark .note-composer textarea,.ion-palette-dark .note-composer select,.ion-palette-dark .note-pin-toggle,.ion-palette-dark .note-filter-tabs,.ion-palette-dark .notes-review-actions button,.ion-palette-dark .notes-review-head button,.ion-palette-dark .note-actions button:first-child{border-color:#4b4265;background:#211a31;color:var(--ul-ink)}.ion-palette-dark .note-filter-tabs strong{background:#193937;color:#78d8c8}@media(max-width:560px){.notes-hero{grid-template-columns:1fr}.notes-hero button{min-width:0;width:100%;grid-template-columns:auto 1fr;justify-items:start}.notes-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.note-form-grid,.note-composer-actions,.notes-toolbox,.notes-mini-row{grid-template-columns:1fr}.notes-review-start,.notes-review-head{grid-template-columns:auto minmax(0,1fr)}.notes-review-start button,.notes-review-head button{grid-column:1 / -1;width:100%}.notes-review-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.study-note-banner{grid-template-columns:auto minmax(0,1fr)}.study-note-cta{grid-column:1 / -1;justify-self:end}}.shop-shell{display:flex;flex-direction:column;gap:16px}.shop-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:20px;border-radius:20px;border:1px solid var(--ul-line);background:linear-gradient(135deg,#5b23ff1f,#008bff14)}.shop-hero .shop-gem{font-size:2.6rem;line-height:1}.shop-hero h1{font-size:2rem;margin:2px 0;color:var(--ul-ink)}.shop-hero p{color:var(--ul-muted);font-size:.82rem}.shop-boost-banner{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid var(--ul-green);background:#008bff1a}.shop-boost-banner span{font-size:1.5rem}.shop-boost-banner strong{color:var(--ul-ink);font-size:.95rem}.shop-boost-banner small{display:block;color:var(--ul-muted);font-size:.78rem}.shop-list{display:flex;flex-direction:column;gap:12px}.shop-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border-radius:18px;border:1px solid var(--ul-line);background:var(--ul-card);box-shadow:0 3px 12px #1820330a;transition:opacity .2s ease}.shop-item.is-locked{opacity:.72}.shop-item-emoji{font-size:2rem;text-align:center}.shop-item-body strong{display:block;color:var(--ul-ink);font-size:.95rem}.shop-item-body small{display:block;color:var(--ul-muted);font-size:.78rem;margin-top:2px}.shop-buy{border:none;border-radius:999px;padding:10px 16px;font-weight:800;font-size:.85rem;color:#fff;background:var(--ul-blue);white-space:nowrap}.shop-buy:disabled{background:var(--ul-line);color:var(--ul-muted);cursor:not-allowed}.shop-status{text-align:center;font-weight:700;font-size:.85rem;color:var(--ul-green)}.shop-status.error{color:#e0483d}.shop-note{color:var(--ul-muted);font-size:.78rem;text-align:center;line-height:1.5}.shop-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;text-align:left}.shop-entry-gem{font-size:1.8rem}.shop-entry-body strong{display:block;color:var(--ul-ink);font-size:.95rem}.shop-entry-body small{display:block;color:var(--ul-muted);font-size:.78rem;margin-top:2px}.shop-entry>ion-icon{color:var(--ul-muted);font-size:1.1rem}.result-gems{text-align:center;font-weight:800;color:var(--ul-blue);font-size:.95rem;margin:-6px 0 4px}.match-shell{display:flex;flex-direction:column;gap:16px;min-height:100%}.match-intro{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px}.match-orbit{font-size:3rem;animation:match-pulse 1.6s ease-in-out infinite}@keyframes match-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.match-intro h1{font-size:1.5rem;color:var(--ul-ink)}.match-intro>p{color:var(--ul-muted);font-size:.9rem;max-width:30ch}.match-intro-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:8px 0 4px}.match-intro-stats div{border:1px solid var(--ul-line);border-radius:16px;padding:12px 6px;background:var(--ul-card)}.match-intro-stats span{font-size:1.4rem}.match-intro-stats strong{display:block;font-size:1.2rem;color:var(--ul-ink)}.match-intro-stats small{color:var(--ul-muted);font-size:.68rem;font-weight:750}.match-empty{color:var(--ul-muted);font-size:.8rem}.match-hud{display:flex;align-items:center;justify-content:space-between;gap:8px}.match-score{display:inline-flex;align-items:center;gap:5px;font-weight:850;font-size:1.1rem;color:var(--ul-ink)}.match-score ion-icon{color:var(--ul-blue)}.match-combo{font-weight:800;font-size:.85rem;color:#c45100}.match-remaining{color:var(--ul-muted);font-size:.78rem;font-weight:700}.match-timer{position:relative;height:12px;border-radius:999px;background:var(--ul-line);overflow:hidden}.match-timer i{position:absolute;inset:0 auto 0 0;background:var(--ul-green);border-radius:999px;transition:width 1s linear}.match-timer.is-low i{background:#e0483d}.match-timer small{position:absolute;right:8px;top:-20px;font-size:.72rem;font-weight:800;color:var(--ul-muted)}.match-board{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.match-col{display:flex;flex-direction:column;gap:10px}.match-tile{min-height:58px;padding:10px 12px;border-radius:15px;border:2px solid var(--ul-line);background:var(--ul-card);color:var(--ul-ink);font-weight:700;font-size:.88rem;line-height:1.2;display:flex;align-items:center;justify-content:center;text-align:center;transition:transform .12s ease,border-color .15s ease,background .15s ease,opacity .2s ease}.match-tile:disabled{opacity:0;pointer-events:none}.match-tile.is-selected{border-color:var(--ul-blue);background:#5b23ff1a;transform:scale(1.03)}.match-tile.is-wrong{border-color:#e0483d;background:#e0483d1f;animation:match-shake .36s ease}.match-tile.is-hit{border-color:var(--ul-green);background:#008bff24}@keyframes match-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.match-finish{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:16px}.match-finish h1{font-size:1.5rem;color:var(--ul-ink)}.match-finish>p{color:var(--ul-muted)}.match-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:6px 0}.match-result-grid div{border:1px solid var(--ul-line);border-radius:16px;padding:14px 6px;background:var(--ul-card)}.match-result-grid span{font-size:1.4rem}.match-result-grid strong{display:block;font-size:1.25rem;color:var(--ul-ink)}.match-result-grid small{color:var(--ul-muted);font-size:.68rem;font-weight:750}.match-record-note{font-weight:800;color:var(--ul-green)}.exercise-explain{margin-top:12px}.exercise-explain-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ul-blue);background:#5b23ff14;color:var(--ul-blue);border-radius:999px;padding:9px 16px;font-weight:800;font-size:.85rem}.exercise-explain-btn:disabled{opacity:.6}.exercise-explain-body{border:1px solid var(--ul-line);border-left:3px solid var(--ul-blue);border-radius:14px;padding:12px 14px;background:var(--ul-card)}.exercise-explain-tag{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:800;color:var(--ul-blue);text-transform:uppercase;letter-spacing:.04em}.exercise-explain-body p{margin-top:6px;color:var(--ul-ink);font-size:.9rem;line-height:1.45}.exercise-explain-error{margin-top:6px;color:var(--ul-muted);font-size:.8rem}.roleplay-shell{display:flex;flex-direction:column;gap:14px;min-height:100%}.roleplay-empty,.roleplay-pick{text-align:center}.roleplay-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:24px}.roleplay-empty span{font-size:2.6rem}.roleplay-empty h1,.roleplay-pick h1{font-size:1.4rem;color:var(--ul-ink)}.roleplay-empty p,.roleplay-intro{color:var(--ul-muted);font-size:.9rem}.roleplay-intro{margin:6px 0 14px}.roleplay-scenarios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:left}.roleplay-scenario{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:18px;border:1px solid var(--ul-line);background:var(--ul-card)}.roleplay-scenario span{font-size:1.8rem}.roleplay-scenario strong{color:var(--ul-ink);font-size:.95rem}.roleplay-scenario small{color:var(--ul-muted);font-size:.76rem;line-height:1.3}.roleplay-chat{display:flex;flex-direction:column;gap:12px}.roleplay-scene-bar{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:.85rem;color:var(--ul-ink);padding-bottom:6px;border-bottom:1px solid var(--ul-line)}.roleplay-scene-bar button{color:var(--ul-blue);font-weight:800;font-size:.8rem}.roleplay-thread{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.roleplay-bubble{max-width:82%;padding:11px 14px;border-radius:18px;font-size:.92rem;line-height:1.4;position:relative}.roleplay-bubble.user{align-self:flex-end;background:var(--ul-blue);color:#fff;border-bottom-right-radius:5px}.roleplay-bubble.assistant{align-self:flex-start;background:var(--ul-card);border:1px solid var(--ul-line);color:var(--ul-ink);border-bottom-left-radius:5px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.roleplay-bubble.assistant button{color:var(--ul-blue);font-size:1.05rem;align-self:center}.roleplay-bubble.is-typing{display:flex;gap:4px;padding:14px}.roleplay-bubble.is-typing span{width:7px;height:7px;border-radius:50%;background:var(--ul-muted);animation:roleplay-typing 1s infinite ease-in-out}.roleplay-bubble.is-typing span:nth-child(2){animation-delay:.15s}.roleplay-bubble.is-typing span:nth-child(3){animation-delay:.3s}@keyframes roleplay-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.roleplay-footer{background:var(--ul-surface);border-top:1px solid var(--ul-line)}.roleplay-inputbar{display:flex;align-items:center;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}.roleplay-inputbar input{flex:1;border:1px solid var(--ul-line);border-radius:999px;padding:11px 16px;font-size:.92rem;background:var(--ul-card);color:var(--ul-ink)}.roleplay-mic,.roleplay-send{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.15rem}.roleplay-mic{border:1px solid var(--ul-line);background:var(--ul-card);color:var(--ul-ink)}.roleplay-mic.listening{background:#e0483d;color:#fff;border-color:#e0483d;animation:match-pulse 1s infinite}.roleplay-send{border:none;background:var(--ul-blue);color:#fff}.roleplay-send:disabled{background:var(--ul-line);color:var(--ul-muted)}@media(max-width:379px){.roleplay-scenarios{grid-template-columns:1fr}}.friends-shell{display:flex;flex-direction:column;gap:16px}.friends-empty{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:24px}.friends-empty span{font-size:2.6rem}.friends-empty h1{font-size:1.3rem;color:var(--ul-ink)}.friends-empty p{color:var(--ul-muted);font-size:.9rem}.friends-code-card,.friends-add-card,.friends-list-card{border:1px solid var(--ul-line);border-radius:20px;background:var(--ul-card);padding:18px}.friends-code-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}.friends-code-head span{font-size:1.8rem}.friends-code-head h2{color:var(--ul-ink);font-size:1.05rem}.friends-code-head p{color:var(--ul-muted);font-size:.8rem}.friends-code-box{display:flex;align-items:center;gap:8px;margin-top:14px;border:1px dashed var(--ul-line);border-radius:14px;padding:10px 14px;background:var(--ul-surface)}.friends-code-box code{flex:1;font-size:1.3rem;font-weight:800;letter-spacing:.18em;color:var(--ul-ink)}.friends-code-box button{width:38px;height:38px;border-radius:10px;border:1px solid var(--ul-line);background:var(--ul-card);color:var(--ul-blue);font-size:1.05rem}.friends-code-box button:disabled{opacity:.5}.friends-add-row{display:flex;gap:8px;margin-top:10px}.friends-add-row input{flex:1;border:1px solid var(--ul-line);border-radius:12px;padding:11px 14px;font-size:.95rem;text-transform:uppercase;letter-spacing:.12em;background:var(--ul-surface);color:var(--ul-ink)}.friends-add-row .ul-button{flex-shrink:0;width:auto;padding:0 18px}.friends-add-status{margin-top:8px;font-size:.82rem;font-weight:700;color:var(--ul-green)}.friends-add-status.error{color:#e0483d}.friends-loading{color:var(--ul-muted);font-size:.88rem;text-align:center;padding:14px 0}.friends-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.friend-row{display:grid;grid-template-columns:22px 40px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;border-radius:14px;border:1px solid var(--ul-line)}.friend-rank{font-weight:800;color:var(--ul-muted);text-align:center}.friend-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#5b23ff1f;color:var(--ul-blue);font-weight:800;font-size:.85rem}.friend-body strong{display:block;color:var(--ul-ink);font-size:.95rem}.friend-body small{display:block;color:var(--ul-muted);font-size:.76rem;margin-top:1px}.friend-row>button{color:var(--ul-muted);font-size:1.1rem;padding:4px}.monthly-card{border:1px solid var(--ul-line);border-radius:20px;padding:18px;background:linear-gradient(135deg,#f0b4291f,#5b23ff0f)}.monthly-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.monthly-emoji{font-size:2rem}.monthly-head h2{color:var(--ul-ink);font-size:1.05rem}.monthly-head>div>p{color:var(--ul-muted);font-size:.8rem}.monthly-badge{font-size:1.8rem;filter:drop-shadow(0 2px 6px rgba(240,180,41,.4))}.monthly-bar{margin-top:12px;height:10px;border-radius:999px;background:var(--ul-line);overflow:hidden}.monthly-bar i{display:block;height:100%;border-radius:999px;background:#f0b429;transition:width .5s ease}.monthly-foot{display:block;margin-top:7px;color:var(--ul-muted);font-size:.74rem;font-weight:700}.vocab-shell{display:flex;flex-direction:column;gap:14px}.vocab-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vocab-stats div{border:1px solid var(--ul-line);border-radius:16px;padding:12px 6px;text-align:center;background:var(--ul-card)}.vocab-stats strong{display:block;font-size:1.3rem;color:var(--ul-ink)}.vocab-stats small{color:var(--ul-muted);font-size:.68rem;font-weight:750}.vocab-search{display:flex;align-items:center;gap:8px;border:1px solid var(--ul-line);border-radius:14px;padding:10px 14px;background:var(--ul-card)}.vocab-search ion-icon{color:var(--ul-muted);font-size:1.1rem}.vocab-search input{flex:1;border:none;background:transparent;color:var(--ul-ink);font-size:.92rem}.vocab-filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.vocab-filters button{flex-shrink:0;border:1px solid var(--ul-line);border-radius:999px;padding:7px 13px;font-size:.8rem;font-weight:750;color:var(--ul-muted);background:var(--ul-card)}.vocab-filters button.active{background:var(--ul-blue);color:#fff;border-color:var(--ul-blue)}.vocab-filters button strong{font-weight:850}.vocab-empty{color:var(--ul-muted);text-align:center;padding:20px 0;font-size:.9rem}.vocab-list{display:flex;flex-direction:column;gap:10px}.vocab-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--ul-line);border-left:4px solid var(--ul-line);border-radius:14px;padding:12px 14px;background:var(--ul-card)}.vocab-row.lvl-0{border-left-color:#e0483d}.vocab-row.lvl-1{border-left-color:#f0b429}.vocab-row.lvl-2{border-left-color:var(--ul-green)}.vocab-row.lvl-3{border-left-color:var(--ul-blue)}.vocab-copy strong{display:block;color:var(--ul-ink);font-size:.95rem}.vocab-copy small{display:block;color:var(--ul-muted);font-size:.8rem;margin:1px 0 6px}.vocab-meter{display:block;height:6px;border-radius:999px;background:var(--ul-line);overflow:hidden}.vocab-meter i{display:block;height:100%;border-radius:999px;background:var(--ul-blue)}.vocab-copy em{display:block;margin-top:5px;color:var(--ul-muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.vocab-actions{display:flex;flex-direction:column;gap:6px}.vocab-actions button{width:36px;height:36px;border-radius:10px;border:1px solid var(--ul-line);background:var(--ul-surface);color:var(--ul-blue);font-size:1rem}.vocab-actions button.active{color:#f0b429}.vocab-practice{margin-top:4px}.share-progress{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;text-align:left}.share-progress-icon{font-size:1.8rem}.share-progress-body strong{display:block;color:var(--ul-ink);font-size:.95rem}.share-progress-body small{display:block;color:var(--ul-muted);font-size:.78rem;margin-top:2px}.share-progress>ion-icon{color:var(--ul-blue);font-size:1.2rem}.ai-practice-shell{display:flex;flex-direction:column;gap:14px;min-height:100%}.ai-practice-empty{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:40px}.ai-practice-empty span{font-size:3rem}.ai-practice-empty h1{font-size:1.35rem;color:var(--ul-ink)}.ai-practice-empty p{color:var(--ul-muted);font-size:.9rem;max-width:30ch}.ai-practice-spin{animation:match-pulse 1.4s ease-in-out infinite}.ai-practice-card{display:flex;flex-direction:column;gap:12px}.ai-practice-prompt{font-size:1.5rem;color:var(--ul-ink);line-height:1.25}.ai-practice-feedback{border-radius:14px;padding:12px 14px;border:1px solid var(--ul-line)}.ai-practice-feedback.is-correct{border-color:var(--ul-green);background:#008bff14}.ai-practice-feedback.is-wrong{border-color:#e0483d;background:#e0483d14}.ai-practice-feedback strong{color:var(--ul-ink);font-size:.95rem}.ai-practice-answer{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--ul-ink);font-weight:750;font-size:1rem}.ai-practice-answer button{color:var(--ul-blue);font-size:1.1rem}.ai-practice-feedback small{display:block;margin-top:6px;color:var(--ul-muted);font-size:.82rem;line-height:1.4}.ai-practice-finish{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:20px}.ai-practice-finish h1{font-size:1.5rem;color:var(--ul-ink)}.ai-practice-finish>p{color:var(--ul-muted)}.friends-kudos-card{border:1px solid var(--ul-line);border-radius:18px;padding:16px;background:linear-gradient(135deg,#008bff1a,#5b23ff0f)}.friends-kudos-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.friends-kudos-head span{font-size:1.8rem}.friends-kudos-head h2{color:var(--ul-ink);font-size:1rem}.friends-kudos-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.friends-kudos-list span{background:var(--ul-card);border:1px solid var(--ul-line);border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:700;color:var(--ul-ink)}.friend-cheer{width:40px;height:40px;border-radius:50%;border:1px solid var(--ul-line);background:var(--ul-card);font-size:1.1rem}.friend-cheer.done{background:#008bff24;border-color:var(--ul-green);color:var(--ul-green)}.friend-cheer:disabled{cursor:default}.friend-remove{color:var(--ul-muted);font-size:1.05rem;padding:4px}.friend-kudos-strip{display:flex;gap:6px;margin-top:8px}.friend-kudos-strip button{width:34px;height:34px;border-radius:10px;border:1px solid var(--ul-line);background:var(--ul-surface);font-size:1.05rem;transition:transform .1s ease}.friend-kudos-strip button:active{transform:scale(1.2)}.chest-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;border-radius:20px;border:1px solid transparent;background:linear-gradient(135deg,#f0b429,#f97316);color:#fff;box-shadow:0 8px 22px #f0941447}.chest-card.claimed{background:linear-gradient(135deg,#008bff24,#5b23ff1a);color:var(--ul-ink);border-color:var(--ul-line);box-shadow:none}.chest-emoji{font-size:2.4rem;line-height:1}.chest-card.opening .chest-emoji{animation:chest-shake .6s ease}@keyframes chest-shake{0%,to{transform:rotate(0) scale(1)}20%{transform:rotate(-12deg) scale(1.05)}40%{transform:rotate(12deg) scale(1.1)}60%{transform:rotate(-8deg) scale(1.15)}80%{transform:rotate(8deg) scale(1.2)}}.chest-body .eyebrow{color:#ffffffd9}.chest-card.claimed .chest-body .eyebrow{color:var(--ul-muted)}.chest-body strong{display:block;font-size:1.05rem;margin:1px 0}.chest-body small{display:block;font-size:.8rem;opacity:.92}.chest-open{border:none;background:#fffffff2;color:#b45309;font-weight:850;border-radius:999px;padding:10px 20px;font-size:.9rem}.chest-open:disabled{opacity:.7}.shop-themes{margin-top:4px}.shop-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.shop-theme{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:16px;border:2px solid var(--ul-line);background:var(--ul-card)}.shop-theme.active{border-color:var(--swatch)}.shop-theme-swatch{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:color-mix(in srgb,var(--swatch) 22%,transparent);border:2px solid var(--swatch)}.shop-theme strong{color:var(--ul-ink);font-size:.8rem}.shop-theme-btn{border:none;border-radius:999px;padding:6px 12px;font-size:.76rem;font-weight:800;color:#fff;background:var(--swatch);width:100%}.shop-theme-btn.is-active{background:transparent;color:var(--swatch);border:1px solid var(--swatch)}.shop-theme-btn:disabled:not(.is-active){background:var(--ul-line);color:var(--ul-muted)}.roleplay-levels{display:flex;gap:8px;margin:0 0 16px}.roleplay-levels button{flex:1;border:1px solid var(--ul-line);border-radius:999px;padding:8px 6px;font-size:.78rem;font-weight:750;color:var(--ul-muted);background:var(--ul-card)}.roleplay-levels button.active{background:var(--ul-blue);color:#fff;border-color:var(--ul-blue)}.friend-open{display:block;text-align:left;width:100%;background:none;border:none;padding:0}.friend-avatar{cursor:pointer}.friend-profile-shell{display:flex;flex-direction:column;gap:16px}.friend-profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:18px;border-radius:20px;border:1px solid var(--ul-line);background:linear-gradient(135deg,#5b23ff1a,#008bff0f)}.friend-profile-avatar{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#5b23ff26;color:var(--ul-blue);font-weight:850;font-size:1.2rem}.friend-profile-hero h1{font-size:1.4rem;color:var(--ul-ink)}.friend-profile-hero p{color:var(--ul-muted);font-size:.85rem}.compare-card{border:1px solid var(--ul-line);border-radius:18px;padding:6px 16px 12px;background:var(--ul-card)}.compare-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 0 10px;border-bottom:1px solid var(--ul-line);text-align:center}.compare-head span{font-weight:850;color:var(--ul-ink);font-size:.9rem}.compare-head small{color:var(--ul-muted);font-size:.72rem;padding:0 12px}.compare-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--ul-line)}.compare-row:last-child{border-bottom:none}.compare-row>strong{font-size:1.15rem;color:var(--ul-muted);text-align:center;font-weight:750}.compare-row>strong:first-child{text-align:right}.compare-row>strong:last-child{text-align:left}.compare-row>strong.win{color:var(--ul-blue);font-weight:900}.compare-row>span{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ul-muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;min-width:92px}.compare-row>span i{font-style:normal;font-size:1.1rem}.friend-profile-note{text-align:center;color:var(--ul-muted);font-size:.85rem;font-weight:600}.hub-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 16px;border-radius:18px;border:1px solid var(--ul-line);background:var(--ul-card)}.hub-banner-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#5b23ff1f;color:var(--ul-blue);font-size:1.2rem}.hub-banner small{color:var(--ul-muted);font-size:.65rem;font-weight:800;letter-spacing:.04em}.hub-banner strong{display:block;color:var(--ul-ink);font-size:.95rem}.hub-banner em{display:block;color:var(--ul-muted);font-size:.76rem;font-style:normal}.hub-shell{display:flex;flex-direction:column;gap:18px}.hub-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;text-align:left;padding:18px;border-radius:20px;border:none;background:linear-gradient(135deg,var(--ul-blue),#008bff);color:#fff}.hub-hero-emoji{font-size:2.2rem}.hub-hero-body small{font-size:.65rem;font-weight:800;opacity:.85;letter-spacing:.05em}.hub-hero-body strong{display:block;font-size:1.1rem;margin:1px 0}.hub-hero-body em{display:block;font-size:.82rem;font-style:normal;opacity:.92}.hub-hero>ion-icon{font-size:1.3rem}.hub-group{display:flex;flex-direction:column;gap:10px}.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hub-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;border-radius:16px;border:1px solid var(--ul-line);background:var(--ul-card);text-align:center}.hub-card-emoji{font-size:1.7rem}.hub-card strong{color:var(--ul-ink);font-size:.8rem}.hub-card small{color:var(--ul-muted);font-size:.68rem;line-height:1.25}.hub-badge{position:absolute;top:8px;right:8px;min-width:18px;padding:1px 5px;border-radius:999px;background:#e0483d;color:#fff;font-size:.66rem;font-weight:850;font-style:normal}@media(max-width:379px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.tutor-shell{display:flex;flex-direction:column;gap:14px;min-height:100%}.tutor-empty,.tutor-intro{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:24px}.tutor-empty span,.tutor-intro>span{font-size:2.8rem}.tutor-empty h1,.tutor-intro h1{font-size:1.35rem;color:var(--ul-ink)}.tutor-empty p,.tutor-intro>p{color:var(--ul-muted);font-size:.9rem;max-width:32ch}.tutor-suggestions{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:8px}.tutor-suggestions button{border:1px solid var(--ul-line);border-radius:14px;padding:12px 14px;background:var(--ul-card);color:var(--ul-ink);font-size:.85rem;font-weight:600;text-align:left}.tutor-thread{display:flex;flex-direction:column;gap:16px;padding-bottom:8px}.tutor-qa{display:flex;flex-direction:column;gap:8px}.tutor-question{align-self:flex-end;max-width:85%;background:var(--ul-blue);color:#fff;padding:10px 14px;border-radius:16px 16px 5px;font-size:.9rem;font-weight:600}.tutor-answer{border:1px solid var(--ul-line);border-left:3px solid var(--ul-blue);border-radius:14px;padding:12px 14px;background:var(--ul-card)}.tutor-answer.is-loading{opacity:.7}.tutor-answer-tag{display:inline-flex;align-items:center;gap:5px;font-size:.66rem;font-weight:800;color:var(--ul-blue);text-transform:uppercase;letter-spacing:.04em}.tutor-answer p{margin-top:6px;color:var(--ul-ink);font-size:.9rem;line-height:1.5;white-space:pre-wrap}.tutor-footer{background:var(--ul-surface);border-top:1px solid var(--ul-line)}.tutor-inputbar{display:flex;align-items:center;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}.tutor-inputbar input{flex:1;border:1px solid var(--ul-line);border-radius:999px;padding:11px 16px;font-size:.92rem;background:var(--ul-card);color:var(--ul-ink)}.tutor-inputbar button{width:42px;height:42px;border-radius:50%;flex-shrink:0;border:none;background:var(--ul-blue);color:#fff;font-size:1.15rem;display:flex;align-items:center;justify-content:center}.tutor-inputbar button:disabled{background:var(--ul-line);color:var(--ul-muted)}.tutor-save{display:inline-flex;align-items:center;gap:6px;margin-top:10px;border:1px solid var(--ul-line);background:var(--ul-surface);color:var(--ul-blue);border-radius:999px;padding:7px 14px;font-size:.78rem;font-weight:800}.tutor-save.done{color:var(--ul-green);border-color:var(--ul-green)}.tutor-save:disabled{cursor:default}.grammar-guide-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;border:1px solid var(--ul-blue);background:#5b23ff14;color:var(--ul-blue);border-radius:999px;padding:8px 15px;font-size:.8rem;font-weight:800}.grammar-guide-btn:disabled{opacity:.6}.grammar-guide{margin-top:10px;padding-top:10px;border-top:1px dashed var(--ul-line)}.grammar-guide>p{color:var(--ul-ink);font-size:.88rem;line-height:1.5;white-space:pre-wrap}.repair-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;border:1px solid #e0483d;background:#e0483d14}.repair-card.done{border-color:var(--ul-green);background:#008bff14}.repair-emoji{font-size:1.9rem}.repair-card strong{display:block;color:var(--ul-ink);font-size:.95rem}.repair-card p{color:var(--ul-muted);font-size:.8rem}.repair-btn{border:none;border-radius:999px;padding:9px 18px;font-weight:850;font-size:.85rem;color:#fff;background:#e0483d;white-space:nowrap}.repair-btn:disabled{background:var(--ul-line);color:var(--ul-muted)}.weekly-reward-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;border:1px solid var(--ul-line);background:linear-gradient(135deg,#f0b42924,#5b23ff0f)}.weekly-reward-card.done{background:#008bff14}.weekly-reward-emoji{font-size:1.9rem}.weekly-reward-card strong{display:block;color:var(--ul-ink);font-size:.95rem}.weekly-reward-card p{color:var(--ul-muted);font-size:.8rem}.weekly-reward-btn{border:none;border-radius:999px;padding:9px 18px;font-weight:850;font-size:.85rem;color:#fff;background:#f0b429;white-space:nowrap}.ranking-cheer{width:34px;height:34px;border-radius:50%;border:1px solid var(--ul-line);background:var(--ul-card);font-size:.95rem}.ranking-cheer.done{background:#008bff24;border-color:var(--ul-green);color:var(--ul-green)}.ranking-cheer:disabled{cursor:default}.ranking-cheer-spacer{width:34px}
