:root{color:oklch(27% .018 165);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--canvas:oklch(97.2% .008 92);--surface:oklch(99.3% .004 92);--surface-soft:oklch(94.8% .014 166);--ink:oklch(27% .018 165);--ink-soft:oklch(47% .018 165);--muted:oklch(59% .014 165);--line:oklch(87% .014 165);--line-strong:oklch(75% .024 165);--accent:oklch(43% .064 172);--accent-hover:oklch(37% .066 172);--accent-soft:oklch(91.5% .033 171);--success:oklch(48% .082 151);--error:oklch(48% .105 28);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--radius-sm:.45rem;--radius-md:.8rem;--ease-out:cubic-bezier(.25, 1, .5, 1);background:oklch(97.2% .008 92);font-family:Avenir Next,Avenir,SF Pro Text,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:20rem}body{min-width:20rem;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-soft);color:var(--ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#root{min-height:100vh}.app-shell{--content-reading:48rem;--content-wide:64rem;min-height:100vh}.main{min-height:100vh;padding:max(1.5rem, env(safe-area-inset-top)) 1.25rem 7.5rem}.page{width:min(100%, var(--content-wide));animation:page-in .42s var(--ease-out) both;margin:0 auto}.skip-link{z-index:1000;color:#fff;background:var(--accent);padding:.7rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.auth-shell,.status-shell{min-height:100vh;padding:max(1.5rem, env(safe-area-inset-top)) 1.25rem max(1.5rem, env(safe-area-inset-bottom));background:var(--canvas);place-items:center;display:grid}.auth-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:min(100%,27rem);padding:clamp(1.5rem,6vw,2.5rem)}.auth-mark{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:3.1rem;height:3.1rem;margin-bottom:2.2rem;display:grid}.auth-card h1{max-width:12ch;color:var(--ink);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,8vw,3rem);font-weight:520;line-height:1.08}.auth-lead{color:var(--ink-soft);margin:1rem 0 1.8rem;line-height:1.65}.auth-card form label{color:var(--ink);margin:0 0 .5rem;font-size:.8rem;font-weight:650;display:block}.auth-card form input{min-height:3rem;margin-bottom:1.15rem;padding:.72rem .85rem}.auth-card form input:focus{border-color:var(--accent)}.auth-switch{width:100%;color:var(--ink-soft);margin-top:.75rem;font-size:.8rem}.auth-legal{text-align:center;margin:1rem 0 0}.auth-legal a{color:var(--muted);text-underline-offset:.2em;font-size:.72rem}.auth-legal a:hover{color:var(--accent)}.form-success{color:var(--success);margin:-.25rem 0 1rem;font-size:.82rem;line-height:1.5}.migration-card{width:min(100%,35rem)}.migration-card h1{max-width:16ch}.migration-actions{gap:.75rem;margin-top:1.5rem;display:grid}.status-shell{color:var(--accent);text-align:center;align-content:center;gap:.9rem}.status-shell p{color:var(--ink-soft);margin:0}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes page-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.sidebar{display:none}.mobile-nav{z-index:200;padding:.45rem max(.5rem, env(safe-area-inset-right)) max(.45rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.mobile-nav button{min-height:3.5rem;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.72rem;display:flex}.mobile-nav button.active{color:var(--accent)}.page-header{max-width:var(--content-reading);padding:2.5rem 0 2rem}.page-header.compact{padding-top:1.5rem}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .75rem;font-size:.73rem;font-weight:650}.page-header h1{max-width:18ch;color:var(--ink);letter-spacing:-.045em;margin:0;font-size:clamp(2.05rem,7.8vw,4.2rem);font-weight:520;line-height:1.08}.page-header.compact h1{font-size:clamp(2rem,6.6vw,3.35rem)}.lead{max-width:42rem;color:var(--ink-soft);margin:1.25rem 0 0;font-size:1rem;line-height:1.7}h2{color:var(--ink);letter-spacing:-.02em;font-size:1.25rem;font-weight:590}.primary-button,.secondary-button,.text-button{cursor:pointer;min-height:2.85rem;transition:transform .12s var(--ease-out), background .18s var(--ease-out), color .18s var(--ease-out), border-color .18s var(--ease-out);border:0;justify-content:center;align-items:center;gap:.65rem;font-weight:610;display:inline-flex}.primary-button{border-radius:var(--radius-sm);color:#fff;background:var(--accent);padding:.75rem 1.1rem}.primary-button:hover{background:var(--accent-hover)}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.5}.secondary-button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:.75rem 1.1rem}.secondary-button:hover{border-color:var(--accent);color:var(--accent)}.text-button{min-height:2.75rem;color:var(--accent);background:0 0;padding:.5rem .25rem}kbd{opacity:.65;border:1px solid;border-radius:.25rem;padding:.1rem .32rem;font-size:.7rem;font-weight:500}.review-callout{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);gap:1.5rem;padding:2rem 0;display:grid;position:relative}.review-callout h2{margin:0 0 .5rem;font-size:clamp(1.45rem,5vw,2.15rem)}.review-callout p:not(.section-kicker){max-width:36rem;color:var(--ink-soft);margin:0;line-height:1.6}.review-callout .primary-button{justify-self:start}.wave-line{height:3.5rem;color:var(--accent);align-items:center;gap:.42rem;display:flex}.wave-line span{background:currentColor;border-radius:1rem;width:2px;height:25%;display:block}.wave-line span:nth-child(2),.wave-line span:nth-child(6){height:55%}.wave-line span:nth-child(3),.wave-line span:nth-child(5){height:90%}.wave-line span:nth-child(4){height:45%}.metrics{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);padding:1.75rem 0;display:grid}.metrics>div{border-right:1px solid var(--line);min-width:0;padding:0 .8rem}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border-right:0;padding-right:0}.metrics span,.metrics small{color:var(--muted);font-size:.69rem;line-height:1.35;display:block}.metrics strong{color:var(--ink);font-variant-numeric:tabular-nums;margin:.35rem 0;font-size:clamp(1.45rem,6vw,2.2rem);font-weight:540;display:block}.two-column{gap:3rem;padding-top:3rem;display:grid}.plain-section h2,.insight-block h2{margin:0}.recent-list{border-top:1px solid var(--line);margin-top:1.4rem}.recent-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(6rem,9rem);align-items:center;gap:1.25rem;padding:1rem 0;display:grid}.recent-row strong,.recent-row span{display:block}.recent-row strong{color:var(--ink);margin-bottom:.2rem;font-size:1.05rem}.recent-row div>span{color:var(--ink-soft);font-size:.82rem}.bilingual-meaning{color:var(--ink-soft);justify-items:start;gap:.45rem;line-height:1.55;display:grid}.bilingual-meaning.compact{gap:.25rem}.english-meaning{color:var(--ink-soft)}.chinese-meaning{color:var(--muted);font-size:.88em}.meaning-toggle{min-height:1.8rem;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:.15rem 0;font-size:.72rem;font-weight:620}.meaning-toggle:hover{color:var(--accent-hover);text-underline-offset:.2em;text-decoration:underline}.mini-score{border-bottom:1px solid var(--line-strong);justify-content:flex-end;align-items:center;height:1.3rem;display:flex;position:relative}.mini-score>span{background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0}.mini-score small{z-index:1;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem}.insight-block{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:1.75rem}.insight-block>svg{color:var(--accent);margin-bottom:2rem}.insight-block p:last-child{color:var(--ink-soft);margin:1rem 0 0;line-height:1.7}.home-overview{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);align-items:center;gap:1rem;margin:0 0 2rem;padding:1rem 0;display:grid}.home-stats{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-stats>div{border-right:1px solid var(--line);min-width:0;padding:0 .75rem}.home-stats>div:first-child{padding-left:0}.home-stats>div:last-child{border-right:0;padding-right:0}.home-stats strong,.home-stats span{display:block}.home-stats strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:560}.home-stats span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:.15rem;font-size:.67rem}.home-overview>button,.capture-workspace .capture-input-panel{width:100%}.capture-input-panel label,.analysis-panel label,.profile-form label,.candidate-group>label{color:var(--ink);margin-bottom:.55rem;font-size:.8rem;font-weight:650;display:block}.capture-input-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1rem;display:flex}.capture-input-heading a{color:var(--accent);align-items:center;gap:.3rem;margin-bottom:.55rem;font-size:.74rem;font-weight:620;text-decoration:none;display:inline-flex}.capture-input-heading a:hover{color:var(--accent-hover);text-underline-offset:.2em;text-decoration:underline}textarea,input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;color:var(--ink);background:var(--surface)}textarea::placeholder,input::placeholder{color:oklch(53% .015 165)}.capture-input-panel textarea{resize:vertical;min-height:14rem;padding:1.15rem;font-size:1.05rem;line-height:1.65}.capture-input-panel textarea:focus,.analysis-panel input:focus,.profile-form input:focus,.profile-form textarea:focus{border-color:var(--accent)}.input-meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin:.65rem 0 1.25rem;display:flex}.input-meta p{color:var(--muted);margin:0;font-size:.74rem;line-height:1.5}.character-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.7rem}.character-count.over-limit{color:var(--error);font-weight:650}.manual-targets{color:var(--ink-soft);margin:-.45rem 0 1rem;font-size:.75rem;line-height:1.6}.manual-targets span{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-right:.55rem;font-weight:650}code{color:var(--ink-soft);background:var(--surface-soft);padding:.1rem .25rem}.selection-chip,.status-pill{border:1px solid var(--line-strong);color:var(--accent);background:var(--surface);border-radius:99rem;padding:.25rem .55rem;font-size:.7rem}.analyze-button{width:100%}.form-error{color:var(--error);margin:-.5rem 0 1rem;font-size:.82rem}.analysis-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);animation:page-in .32s var(--ease-out);padding:1.5rem}.analysis-title{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.75rem;display:flex}.analysis-title h2{margin:0}.analysis-panel input,.profile-form input,.profile-form textarea{min-height:3rem;margin-bottom:1.15rem;padding:.72rem .85rem}.chinese-field-toggle{min-height:2rem;margin:-.35rem 0 1rem;padding-inline:0;font-size:.78rem}.candidate-list{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.candidate-list button,.failure-reasons button{border:1px solid var(--line-strong);min-height:2.4rem;color:var(--ink-soft);background:var(--surface);cursor:pointer;border-radius:99rem;align-items:center;gap:.35rem;padding:.45rem .75rem;display:inline-flex}.candidate-list button:hover,.candidate-list button.selected,.failure-reasons button:hover,.failure-reasons button.selected{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.candidate-list button:disabled{cursor:not-allowed;opacity:.55}.target-picker{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);margin:0 0 1rem;padding:1rem}.target-picker .candidate-list{margin-bottom:0}.analysis-results{gap:1rem;display:grid}.learning-previews{border-top:1px solid var(--line-strong);margin-top:2.75rem;padding-top:2.75rem}.batch-save-button{margin-top:.25rem}.preview-sentence{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:.65rem 0 1.5rem;padding:1.2rem 0}.preview-sentence span{color:var(--muted);font-size:.73rem}.preview-sentence p{color:var(--ink);margin:.6rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.16rem;line-height:1.65}.preview-sentence textarea{width:100%;min-height:6.5rem;color:var(--ink);resize:vertical;margin-top:.6rem;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.55}.field-warning{color:var(--danger);margin-top:.5rem;display:block}.generated-example-inline{border-top:1px solid var(--line);color:var(--ink-soft);margin:.65rem 0 0;padding-top:.65rem;font-family:Georgia,Times New Roman,serif;font-size:.92rem;line-height:1.5}.generated-example-inline>span,.example-source-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem;font-family:inherit;font-size:.67rem;font-weight:700;display:block}mark{color:var(--accent-hover);background:var(--accent-soft);padding:0 .12em}.full-button{width:100%}.passage-analysis{border-top:1px solid var(--line-strong);margin-top:3.25rem;padding-top:2.5rem}.passage-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;margin-bottom:1.25rem;display:flex}.passage-heading h2{margin:0;font-size:clamp(1.55rem,4vw,2.15rem)}.passage-heading .selection-hint{color:var(--muted);margin:.45rem 0 0;font-size:.75rem}.passage-heading-tools{justify-items:start;gap:.55rem;display:grid}.passage-heading-tools p{color:var(--muted);margin:0;font-size:.74rem}.compact-button{min-height:2.35rem;padding:.45rem .7rem;font-size:.74rem}.passage-sentences{border-top:1px solid var(--line)}.passage-sentence{border-bottom:1px solid var(--line);grid-template-columns:2rem minmax(0,1fr);gap:.85rem;padding:1.5rem 0;display:grid}.sentence-number{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.35rem;font-size:.67rem}.sentence-content{min-width:0}.passage-english{color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.12rem,3.4vw,1.4rem);line-height:1.65}.passage-english.selectable{line-height:1.9}.passage-translation{color:var(--ink-soft);margin:.65rem 0 0;font-size:.92rem;line-height:1.75}.word-token{min-height:2rem;color:inherit;cursor:text;font:inherit;line-height:inherit;background:0 0;border:0;border-radius:.15rem;margin:0 -.02em;padding:.02em .08em}.word-token:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--accent-soft) 55%, transparent)}.word-token.chosen{color:var(--accent-hover);background:var(--accent-soft)}.word-token.selecting{color:oklch(29% .075 153);box-shadow:inset 0 -2px 0 var(--accent);background:oklch(84% .085 153)}.word-token:focus-visible{z-index:1;outline-offset:1px}.range-composer{border-top:1px solid var(--line);border-bottom:1px solid var(--line);animation:page-in .18s var(--ease-out);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;margin-top:.65rem;padding:.6rem 0;display:flex}.range-composer>span{color:var(--muted);font-size:.72rem}.range-composer>span strong{color:var(--accent)}.range-composer>div{align-items:center;gap:.65rem;display:flex}.passage-candidates{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.55rem;margin-top:1rem;display:grid}.expression-card{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;color:var(--ink-soft);background:var(--surface)}.expression-card.selected{border-color:var(--accent);background:color-mix(in oklch, var(--accent-soft) 45%, var(--surface))}.expression-card-toggle{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-items:start;gap:.22rem;padding:.65rem .7rem;display:grid}.expression-card-toggle:hover{color:var(--accent)}.expression-card-toggle>span{align-items:center;gap:.35rem;font-size:.8rem;font-weight:650;display:flex}.expression-card-toggle small{color:var(--muted);font-size:.67rem;line-height:1.35}.expression-card-meaning{border-top:1px solid var(--line);padding:.65rem .7rem;font-size:.74rem}.expression-card-meaning .meaning-toggle{min-height:1.8rem;padding:0;font-size:.68rem}.meaning-loading,.meaning-error{color:var(--muted);align-items:center;gap:.4rem;line-height:1.45;display:flex}.meaning-error{color:var(--error)}.passage-selection-bar{z-index:80;bottom:calc(4.75rem + env(safe-area-inset-bottom));border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:.85rem;margin-top:1.25rem;padding:1rem;display:grid;position:sticky}.passage-selection-bar strong,.passage-selection-bar span{display:block}.passage-selection-bar strong{color:var(--ink);font-size:.9rem}.passage-selection-bar span{color:var(--muted);margin-top:.2rem;font-size:.7rem}.passage-selection-actions{grid-template-columns:.75fr 1.25fr;gap:.55rem;display:grid}.passage-selection-actions>button{width:100%}.source-form{color:var(--muted);margin:-.65rem 0 1rem;font-size:.72rem}.source-form strong{color:var(--ink-soft)}.search-field{max-width:var(--content-reading);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);background:var(--surface);align-items:center;gap:.65rem;padding:0 .85rem;display:flex}.search-field:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:3px}.search-field input{background:0 0;border:0;outline:0;min-height:3rem;padding:0}.library-list{border-top:1px solid var(--line-strong);margin-top:2rem}.library-item{border-bottom:1px solid var(--line);gap:1rem;padding:1.5rem 0;display:grid}.library-expression span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.library-expression h2{margin:.25rem 0;font-size:1.45rem}.library-expression p,.library-example{color:var(--ink-soft);margin:0}.library-expression .bilingual-meaning{margin-top:.35rem}.library-example{font-family:Georgia,Times New Roman,serif;font-size:1.04rem;line-height:1.65}.example-source-label{margin-top:.35rem}.library-meta{color:var(--muted);flex-wrap:wrap;gap:.45rem 1rem;font-size:.72rem;display:flex}.library-delete-trigger{min-height:1.8rem;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;margin:-.35rem 0 -.35rem auto;padding:.3rem .1rem;font-size:.72rem;display:inline-flex}.library-delete-trigger:hover,.library-delete-trigger[aria-expanded=true]{color:var(--error)}.library-delete-trigger:disabled{cursor:not-allowed;opacity:.45}.library-delete-confirm{border-top:1px solid var(--line);animation:delete-confirm-in .18s var(--ease-out) both;grid-column:1/-1;gap:1rem;padding:1rem 0 .15rem;display:grid}.library-delete-confirm strong,.library-delete-confirm span{display:block}.library-delete-confirm strong{color:var(--ink);font-size:.9rem}.library-delete-confirm span{max-width:38rem;color:var(--ink-soft);margin-top:.3rem;font-size:.76rem;line-height:1.5}.library-delete-actions{flex-wrap:wrap;gap:.55rem;display:flex}.library-delete-actions .text-button{min-width:5rem}.danger-button{border:1px solid var(--error);border-radius:var(--radius-sm);min-height:2.75rem;color:var(--surface);background:var(--error);cursor:pointer;justify-content:center;align-items:center;gap:.55rem;padding:.65rem .9rem;font-weight:620;display:inline-flex}.danger-button:hover{background:oklch(42% .11 28)}.danger-button:disabled{cursor:not-allowed;opacity:.55}.library-delete-error{color:var(--error);grid-column:1/-1;margin:-.3rem 0 0;font-size:.76rem;line-height:1.5}@keyframes delete-confirm-in{0%{opacity:0;transform:translateY(-.25rem)}}.empty-state{text-align:center;color:var(--muted);padding:4rem 1rem}.empty-state h2{margin:1rem 0 .35rem}.empty-state p{margin:0}.profile-grid{gap:2.5rem;display:grid}.field-row{gap:0;display:grid}.profile-form textarea{resize:vertical;min-height:6rem}.range-row{grid-template-columns:1fr auto;align-items:center;gap:1rem;margin-bottom:1.5rem;display:grid}.range-row input{min-height:auto;accent-color:var(--accent);margin:0;padding:0}.range-row output{min-width:4.5rem;color:var(--accent);text-align:right;font-weight:650}.profile-progress{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:1.75rem}.progress-ring{--progress:0deg;background:conic-gradient(var(--accent) var(--progress), var(--line) 0);border-radius:50%;place-items:center;width:11rem;height:11rem;margin:1.5rem auto;display:grid}.progress-ring:before{content:"";background:var(--surface-soft);border-radius:50%;grid-area:1/1;width:9.7rem;height:9.7rem}.progress-ring span{z-index:1;text-align:center;grid-area:1/1}.progress-ring strong,.progress-ring small{display:block}.progress-ring strong{color:var(--ink);font-size:2rem;font-weight:550}.progress-ring small{color:var(--muted)}.profile-progress>p:not(.section-kicker){color:var(--ink-soft);line-height:1.7}.profile-sync{border-top:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere;align-items:flex-start;gap:.55rem;margin-top:1.4rem;padding-top:1.1rem;font-size:.74rem;line-height:1.45;display:flex}.profile-sync.synced{color:var(--success)}.profile-sync.offline{color:var(--ink-soft)}.sign-out{color:var(--ink-soft);margin-top:.25rem}.review-main{padding:0}.review-session{background:var(--canvas);flex-direction:column;min-height:100vh;display:flex}.review-topbar{min-height:4rem;padding:max(.5rem, env(safe-area-inset-top)) 1.1rem 0;border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;font-size:.75rem;display:grid}.review-topbar .text-button{color:var(--ink-soft);justify-self:start;font-size:.78rem}.keyboard-hint{justify-self:end}.review-progress{background:var(--line);height:2px}.review-progress span{background:var(--accent);height:100%;transition:width .3s var(--ease-out);display:block}.listening-stage{width:min(100%,49rem);padding:3.5rem 1.25rem max(3rem, env(safe-area-inset-bottom));text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:0 auto;display:flex}.listening-stage.target-stage{justify-content:flex-start;padding-top:2rem}.sound-orbit{place-items:center;width:8rem;height:8rem;margin-bottom:2.75rem;display:grid;position:relative}.sound-orbit button{z-index:2;color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:50%;place-items:center;width:4.4rem;height:4.4rem;display:grid}.sound-orbit button svg{transform:translate(2px)}.orbit{border:1px solid var(--line-strong);border-radius:50%;position:absolute;inset:.75rem}.orbit-two{opacity:.6;inset:0}.sound-orbit.speaking .orbit-one{animation:pulse 1.5s var(--ease-out) infinite}.sound-orbit.speaking .orbit-two{animation:pulse 1.5s .18s var(--ease-out) infinite}.target-stage .sound-orbit{width:5.5rem;height:5.5rem;margin-bottom:1.5rem}.target-stage .sound-orbit button{width:3.4rem;height:3.4rem}.target-stage .sound-orbit .orbit-one{inset:.55rem}.target-stage .sound-orbit .orbit-two{inset:0}@keyframes pulse{0%{opacity:.7;transform:scale(.75)}80%,to{opacity:0;transform:scale(1.08)}}.listening-stage h1{max-width:16ch;color:var(--ink);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,8vw,3.5rem);font-weight:520;line-height:1.12}.review-instruction{max-width:34rem;color:var(--ink-soft);margin:1rem 0 2rem;line-height:1.65}.target-stage .review-instruction{margin:.7rem 0 1.4rem}.voice-status{border:1px solid var(--line);min-height:2rem;color:var(--accent);background:var(--surface);letter-spacing:.02em;border-radius:99rem;align-items:center;gap:.5rem;margin:-1rem 0 1.5rem;padding:.3rem .65rem;font-size:.7rem;display:inline-flex}.voice-status>span{background:var(--success);border-radius:50%;width:.4rem;height:.4rem}.target-stage .voice-status{margin-top:-.65rem;margin-bottom:1.15rem}.voice-status.fallback{color:var(--ink-soft)}.voice-status.fallback>span{background:oklch(62% .09 75)}.speech-notice{max-width:34rem;color:var(--ink-soft);margin:-.75rem 0 1.5rem;font-size:.78rem;line-height:1.55}.response-actions{gap:.75rem;width:min(100%,34rem);display:grid}.missed-button{color:var(--ink-soft)}.answer-reveal{width:min(100%,42rem)}.answer-sentence{color:var(--ink);margin:0 0 1.25rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,5vw,2rem);line-height:1.55}.answer-sentence .review-target-other{color:var(--ink);box-shadow:inset 0 -.18em var(--line-strong);background:0 0}.answer-sentence .review-target-active{color:var(--accent-hover);background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}.target-check{margin:0 auto 1.25rem}.target-check>span{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.35rem;font-size:.7rem;font-weight:650;display:block}.target-check strong{color:var(--accent);font-size:clamp(1.35rem,5vw,1.8rem);font-weight:620;display:block}.target-check p{color:var(--ink-soft);margin:.55rem 0 0;line-height:1.55}.target-rating-actions{gap:.65rem;width:min(100%,34rem);margin:0 auto;display:grid}.answer-meaning{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem .8rem;margin:0 auto 1.5rem;display:flex}.answer-meaning strong{color:var(--accent)}.answer-meaning-chinese{width:100%;color:var(--muted);font-size:.88rem}.failure-reasons{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.5rem 0;display:flex}.failure-reasons>span{width:100%;color:var(--muted);margin-bottom:.25rem;font-size:.75rem}.finish-actions{gap:.45rem;margin-top:1.75rem;display:grid}.toast{z-index:500;left:50%;bottom:calc(5.4rem + env(safe-area-inset-bottom));border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:max-content;max-width:calc(100vw - 2rem);color:var(--ink);background:var(--surface);animation:toast-in .25s var(--ease-out);align-items:center;gap:.55rem;padding:.8rem 1rem;font-size:.82rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 .65rem 2rem oklch(30% .02 165/.12)}.toast svg{color:var(--success)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,.5rem)}}@media (width>=44rem){.main{padding-inline:2rem}.review-callout{grid-template-columns:5rem 1fr;align-items:center}.review-callout .primary-button{grid-column:2}.home-overview{grid-template-columns:minmax(0,1fr) auto;gap:2rem}.home-overview>button{width:auto;min-width:12rem}.two-column{grid-template-columns:minmax(0,1.5fr) minmax(17rem,.85fr)}.passage-sentence{grid-template-columns:2.5rem minmax(0,1fr);gap:1.25rem;padding:1.75rem 0}.passage-heading-tools{justify-items:end}.passage-selection-bar{grid-template-columns:1fr auto;padding:1rem 1.15rem;bottom:1rem}.passage-selection-actions>button{min-width:7.5rem}.learning-previews{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-previews .batch-save-button{grid-column:1/-1}.library-item{grid-template-columns:minmax(10rem,.7fr) minmax(16rem,1.5fr);align-items:center}.library-meta{grid-column:2}.library-delete-confirm{grid-template-columns:minmax(0,1fr) auto;align-items:center}.library-delete-actions{justify-content:flex-end}.profile-grid{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);align-items:start}.field-row{grid-template-columns:1fr 1fr;gap:1rem}.response-actions{grid-template-columns:1fr 1fr}.response-actions .missed-button{grid-column:1/-1}.target-rating-actions{grid-template-columns:1fr 1fr}.target-rating-actions>:last-child:nth-child(3){grid-column:1/-1}.finish-actions{justify-items:center}.finish-actions .primary-button{min-width:15rem}}@media (width>=64rem){.app-shell{grid-template-columns:14.5rem minmax(0,1fr);display:grid}.sidebar{border-right:1px solid var(--line);background:var(--canvas);flex-direction:column;height:100vh;padding:1.5rem 1.25rem;display:flex;position:sticky;top:0}.wordmark{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.75rem;padding:0;display:flex}.wordmark-symbol{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:2.45rem;height:2.45rem;display:grid}.wordmark strong,.wordmark small{display:block}.wordmark strong{color:var(--ink);letter-spacing:.08em;font-size:1.08rem}.wordmark small{color:var(--muted);letter-spacing:.08em;margin-top:.05rem;font-size:.62rem}.desktop-nav{flex-direction:column;gap:.25rem;margin-top:3.5rem;display:flex}.nav-item{border-radius:var(--radius-sm);min-height:2.8rem;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.8rem;padding:0 .75rem;display:flex}.nav-item:hover{background:var(--surface-soft)}.nav-item.active{color:var(--accent);background:var(--accent-soft)}.sidebar-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:1.25rem}.sync-state{color:var(--muted);align-items:center;gap:.45rem;font-size:.7rem;display:flex}.sync-state.synced{color:var(--success)}.sync-state.offline{color:var(--ink-soft)}.sidebar-footer>small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.45rem;font-size:.62rem;display:block;overflow:hidden}.sidebar-note{color:var(--muted);margin:1rem 0 0;font-size:.7rem;line-height:1.65}.mobile-nav{display:none}.main{padding:2rem clamp(2.5rem,5vw,5rem) 5rem}.page-header{padding-top:3.2rem}.page-header.compact{padding-top:2rem}.review-callout{grid-template-columns:5rem 1fr auto;padding:2.5rem 0}.review-callout .primary-button{grid-area:1/3}.metrics>div{padding-inline:1.5rem}.review-main{grid-column:1/-1;padding:0}.toast{bottom:2rem}}@media (width>=100rem){.page{margin-inline:min(4vw,8rem) auto}}@media (hover:hover) and (pointer:fine){.primary-button,.secondary-button{min-height:2.7rem}}
