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