:root{--paper: #FAF9F7;--surface: #FFFFFF;--surface2: #F2F0EC;--ink: #1A1A1F;--muted: #6B6B76;--faint: #9A9AA4;--line: #E6E4E0;--line2: #D6D3CE;--shadow: 0 1px 2px rgba(26,26,31,.06), 0 8px 24px rgba(26,26,31,.07);--shadow-book: 0 2px 4px rgba(26,26,31,.1), 0 12px 28px rgba(26,26,31,.16);--tests: #3D63DD;--vocab: #1F9D55;--speaking: #D97515;--danger: #D1434B;--tests-soft: rgba(61,99,221,.1);--vocab-soft: rgba(31,157,85,.1);--speaking-soft: rgba(217,117,21,.1);--r-lg: 20px;--r-md: 14px;--r-sm: 10px;--tab-h: 58px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}:root[data-theme=dark]{--paper: #12131A;--surface: #1A1C25;--surface2: #23252F;--ink: #ECEBF0;--muted: #9596A4;--faint: #6A6B79;--line: rgba(255,255,255,.09);--line2: rgba(255,255,255,.16);--shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.45);--shadow-book: 0 2px 6px rgba(0,0,0,.5), 0 14px 34px rgba(0,0,0,.6);--tests: #7B98FF;--vocab: #4ED88B;--speaking: #F2A65A;--danger: #FF7B82;--tests-soft: rgba(123,152,255,.14);--vocab-soft: rgba(78,216,139,.14);--speaking-soft: rgba(242,166,90,.14)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior-y:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}:focus-visible{outline:2px solid var(--tests);outline-offset:2px;border-radius:6px}.screen{max-width:560px;margin:0 auto;padding:calc(14px + var(--safe-t)) 16px calc(var(--tab-h) + 24px + var(--safe-b));min-height:100vh}.screen.no-tabs{padding-bottom:calc(28px + var(--safe-b))}.head{margin-bottom:20px}.head h1{font-size:27px;font-weight:760;letter-spacing:-.5px;line-height:1.15}.head p{color:var(--muted);font-size:14px;margin-top:3px}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.topbar .grow{flex:1;min-width:0}.topbar h2{font-size:19px;font-weight:700;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar small{display:block;color:var(--muted);font-size:13px}.icon-btn{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--line);font-size:17px;transition:transform .12s ease}.icon-btn:active{transform:scale(.92)}.icon-btn.admin-jump{background:var(--tests-soft);border-color:transparent;color:var(--tests)}.resume{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--shadow);margin-bottom:18px;transition:transform .14s ease}.resume:active{transform:scale(.99)}.resume-label{font-size:12px;color:var(--muted);margin-bottom:6px}.resume-title{font-size:18px;font-weight:700;letter-spacing:-.2px}.resume-sub{font-size:13px;color:var(--muted);margin-top:2px}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:26px}.tile{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;transition:transform .14s ease}.tile:active{transform:scale(.97)}.tile-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:17px;margin-bottom:10px}.tile-name{font-size:15px;font-weight:650}.tile-meta{font-size:12px;color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}.tile[data-c=tests] .tile-icon{background:var(--tests-soft);color:var(--tests)}.tile[data-c=vocab] .tile-icon{background:var(--vocab-soft);color:var(--vocab)}.tile[data-c=speaking] .tile-icon{background:var(--speaking-soft);color:var(--speaking)}.tile[data-c=library] .tile-icon{background:var(--surface2);color:var(--ink)}.row-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.row-head h3{font-size:16px;font-weight:700;letter-spacing:-.2px}.row-head button{font-size:13px;color:var(--muted)}.shelf{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 16px 18px;margin:0 -16px;scrollbar-width:none;scroll-padding-inline:16px}.shelf::-webkit-scrollbar{display:none}.shelf>*{scroll-snap-align:start}.cover{flex:0 0 108px;display:block;text-align:left}.cover-img{display:block;position:relative;width:108px;height:144px;border-radius:3px 7px 7px 3px;overflow:hidden;background:var(--surface2);box-shadow:var(--shadow-book)}.cover-img img{width:100%;height:100%;object-fit:cover;display:block}.cover-img:after{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(90deg,#00000042,#0000000a)}.cover-title{font-size:12px;font-weight:600;margin-top:8px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.list{display:flex;flex-direction:column;gap:8px}.item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;transition:transform .12s ease}.item:active{transform:scale(.985)}.item-body{flex:1;min-width:0}.item-title{font-size:15px;font-weight:600}.item-sub{font-size:12.5px;color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}.item-end{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.item-num{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--surface2);font-size:13px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--muted)}.item.done .item-num{background:var(--vocab-soft);color:var(--vocab)}.bar{height:5px;border-radius:3px;background:var(--surface2);overflow:hidden}.bar>i{display:block;height:100%;border-radius:3px;background:var(--tests);transition:width .45s cubic-bezier(.4,0,.2,1)}.bar[data-c=vocab]>i{background:var(--vocab)}.bar[data-c=speaking]>i{background:var(--speaking)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 10px;text-align:center}.stat b{display:block;font-size:21px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.4px}.stat span{font-size:11.5px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:13px 18px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line2);font-size:15px;font-weight:620;transition:transform .12s ease,opacity .2s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-tests{background:var(--tests);color:#fff;border-color:var(--tests)}.btn-vocab{background:var(--vocab);color:#fff;border-color:var(--vocab)}.btn-speaking{background:var(--speaking);color:#fff;border-color:var(--speaking)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-wide{width:100%}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-top:1px solid var(--line);padding-bottom:var(--safe-b)}.tab{height:var(--tab-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--faint);font-size:10.5px;font-weight:550}.tab i{font-style:normal;font-size:19px;line-height:1}.tab.on{color:var(--ink)}.tab.on[data-c=tests]{color:var(--tests)}.tab.on[data-c=vocab]{color:var(--vocab)}.tab.on[data-c=speaking]{color:var(--speaking)}.center{text-align:center;padding:54px 20px}.center .big{font-size:40px;margin-bottom:12px}.center p{color:var(--muted);font-size:14px;margin-bottom:16px}.spinner{width:26px;height:26px;margin:54px auto;border:2.5px solid var(--line2);border-top-color:var(--muted);border-radius:50%;animation:spin .75s linear infinite}.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + 18px + var(--safe-b));transform:translate(-50%);z-index:100;max-width:90vw;background:var(--ink);color:var(--paper);padding:11px 16px;border-radius:11px;font-size:13.5px;font-weight:550;box-shadow:var(--shadow);animation:toast-in .22s cubic-bezier(.2,.9,.3,1) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.chip{padding:7px 13px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.q-progress{display:flex;gap:3px;margin-bottom:18px}.q-progress>i{flex:1;height:3px;border-radius:2px;background:var(--line);transition:background .3s ease}.q-progress>i.ok{background:var(--vocab)}.q-progress>i.no{background:var(--danger)}.q-progress>i.now{background:var(--tests)}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 20px;margin-bottom:16px;min-height:128px;display:flex;align-items:center;box-shadow:var(--shadow)}.q-text{font-size:19px;font-weight:600;line-height:1.45;letter-spacing:-.2px;white-space:pre-line}.q-text.long{font-size:16px;font-weight:500;line-height:1.55;letter-spacing:0}.opts{display:flex;flex-direction:column;gap:9px}.opt{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);padding:14px;font-size:15px;transition:border-color .18s ease,background .18s ease,opacity .18s ease,transform .1s ease}.opt:active:not(:disabled){transform:scale(.985)}.opt-key{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--surface2);font-size:12px;font-weight:650;color:var(--muted)}.opt-text{flex:1}.opt.right{border-color:var(--vocab);background:var(--vocab-soft)}.opt.right .opt-key{background:var(--vocab);color:#fff}.opt.wrong{border-color:var(--danger);background:#d1434b14}.opt.wrong .opt-key{background:var(--danger);color:#fff}.opt.dim{opacity:.45}.q-timer{text-align:center;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:14px}.q-timer.low{color:var(--danger);font-weight:650}.score{font-size:52px;font-weight:780;letter-spacing:-2px;font-variant-numeric:tabular-nums}.score-sub{color:var(--muted);font-size:14px;margin-top:2px}.grid-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:18px 14px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#00000073;display:flex;align-items:flex-end;animation:fade-in .18s ease both}@keyframes fade-in{0%{opacity:0}}.sheet{width:100%;max-width:560px;margin:0 auto;background:var(--surface);border-radius:22px 22px 0 0;padding:10px 18px calc(20px + var(--safe-b));animation:sheet-up .26s cubic-bezier(.2,.9,.3,1) both}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:0 auto 16px}.sheet-row{display:flex;gap:14px;margin-bottom:16px}.sheet-note{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:16px}.mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:24px}.mode-btn{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 12px;text-align:center;cursor:pointer;color:inherit;transition:all .18s;font-family:inherit}.mode-btn:active{transform:scale(.96)}.mode-btn.selected{border-color:var(--tests);background:linear-gradient(135deg,#7b5ea726,#4facfe14);box-shadow:0 0 0 1px #7b5ea74d}.mode-btn .mode-icon{font-size:28px;display:block;margin-bottom:7px}.mode-btn .mode-label{display:block;font-size:13px;font-weight:700}.mode-btn .mode-desc{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.35}.practice-header{margin-bottom:20px}.practice-progress{height:5px;background:var(--surface2);border-radius:3px;overflow:hidden;margin-bottom:8px}.practice-progress-fill{height:100%;background:var(--speaking);border-radius:3px;transition:width .35s cubic-bezier(.4,0,.2,1)}.practice-counter{font-size:13px;color:var(--muted);text-align:center}.flashcard-scene{perspective:1200px;margin:0 auto 24px;max-width:360px}.flashcard{width:100%;aspect-ratio:4/3;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1);cursor:pointer}.flashcard.flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:28px 24px;text-align:center}.flashcard-front{background:var(--surface);border:1px solid rgba(79,172,254,.3);box-shadow:0 16px 40px #00000080,inset 0 1px #ffffff0f}.flashcard-back{background:var(--surface2);border:1px solid rgba(0,230,118,.3);box-shadow:0 16px 40px #00000080,inset 0 1px #ffffff0f;transform:rotateY(180deg)}.flashcard-word{font-size:34px;font-weight:800;letter-spacing:-.5px;background:var(--speaking);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.flashcard-hint{font-size:13px;color:var(--muted);margin-top:10px}.flashcard-meaning{font-size:22px;font-weight:700;color:var(--vocab);text-shadow:0 0 20px rgba(0,230,118,.3)}.flashcard-tap{font-size:12px;color:var(--faint);margin-top:10px}.flashcard-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.fc-btn{flex:1;min-width:90px;max-width:130px;border:none;border-radius:16px;padding:14px 8px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:inherit}.fc-btn:active{transform:scale(.93)}.fc-btn.known{background:#00e67626;color:var(--vocab);box-shadow:0 4px 16px #00e67626}.fc-btn.hard{background:#ffab4026;color:var(--speaking);box-shadow:0 4px 16px #ffab4026}.fc-btn.skip{background:var(--surface2);color:var(--muted)}.fc-btn .btn-icon{font-size:22px}.mc-question{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 20px;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}.mc-question:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--speaking)}.mc-word{font-size:32px;font-weight:800;letter-spacing:-.5px;background:var(--speaking);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mc-subtitle{font-size:13px;color:var(--muted);margin-top:6px}.mc-options{display:flex;flex-direction:column;gap:10px}.mc-option{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-md);padding:16px 18px;font-size:15px;font-weight:500;cursor:pointer;text-align:left;color:inherit;transition:all .15s;font-family:inherit}.mc-option:active:not(.correct):not(.wrong){background:var(--surface2);border-color:#4facfe4d}.mc-option.correct{border-color:var(--vocab);background:#00e67614;color:var(--vocab);box-shadow:0 0 0 1px #00e67633}.mc-option.wrong{border-color:var(--danger);background:#ff525214;color:var(--danger)}.matching-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}.match-btn{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-md);padding:14px 10px;font-size:13px;font-weight:600;cursor:pointer;color:inherit;text-align:center;transition:all .15s;word-break:break-word;line-height:1.3;font-family:inherit}.match-btn:active:not(.matched){transform:scale(.96)}.match-btn.selected{border-color:var(--tests);background:#4facfe1a;box-shadow:0 0 0 1px #4facfe40,0 4px 14px #4facfe1a}.match-btn.matched{border-color:#00e67666;background:#00e67612;color:var(--vocab);opacity:.7;cursor:default}.match-btn.error{border-color:var(--danger);animation:shake .35s}.matching-score{text-align:center;font-size:14px;color:var(--muted);margin-bottom:12px}.type-question{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 20px;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}.type-question:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(135deg,#ffd740,#ffab40)}.type-prompt{font-size:13px;color:var(--muted);margin-bottom:10px}.type-word{font-size:28px;font-weight:800;letter-spacing:-.4px;color:var(--speaking);text-shadow:0 0 24px rgba(255,215,64,.3)}.type-input-wrap{display:flex;gap:10px;margin-bottom:12px}.type-input{flex:1;background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-md);padding:14px 16px;font-size:16px;color:var(--ink);font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.type-input:focus{border-color:var(--tests);box-shadow:0 0 0 3px #4facfe1f}.type-input.correct{border-color:var(--vocab);box-shadow:0 0 0 3px #00e6761a}.type-input.wrong{border-color:var(--danger);box-shadow:0 0 0 3px #ff52521a}.type-submit{background:var(--speaking);color:#fff;border:none;border-radius:var(--r-md);padding:14px 20px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s;font-family:inherit;box-shadow:0 4px 16px #7b5ea74d}.type-submit:active{opacity:.82;transform:scale(.96)}.type-feedback{text-align:center;font-size:15px;font-weight:600;padding:11px;border-radius:var(--r-md);margin-bottom:12px}.type-feedback.correct{background:#00e6761a;color:var(--vocab);border:1px solid rgba(0,230,118,.2)}.type-feedback.wrong{background:#ff52521a;color:var(--danger);border:1px solid rgba(255,82,82,.2)}.end-screen{text-align:center;padding:32px 16px}.end-icon{font-size:72px;margin-bottom:18px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.4))}.end-title{font-size:26px;font-weight:800;margin-bottom:8px;letter-spacing:-.4px}.end-subtitle{font-size:16px;color:var(--muted);margin-bottom:32px}.end-stats{display:flex;justify-content:center;gap:28px;margin-bottom:32px}.end-stat-val{font-size:36px;font-weight:800;background:var(--speaking);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-1px}.end-stat-lbl{font-size:13px;color:var(--muted);margin-top:2px}.end-actions{display:flex;flex-direction:column;gap:10px;max-width:280px;margin:0 auto}.mode-intro{font-size:14px;color:var(--muted);margin-bottom:18px;text-align:center}.flashcard-stage{position:relative;max-width:360px;margin:0 auto 22px}.flashcard-peek{position:absolute;top:0;right:0;bottom:0;left:0;aspect-ratio:4/3;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);transform:translateY(10px) scale(.965);opacity:.55;pointer-events:none}.flashcard-stage .flashcard-scene{position:relative;margin:0;max-width:none;touch-action:pan-y;outline:none}.flashcard-stage .flashcard-scene:focus-visible .flashcard-face{border-color:var(--tests);box-shadow:0 0 0 3px #4facfe59,0 16px 40px #00000080}@keyframes throw-right{to{transform:translate(120%,-8%) rotate(14deg);opacity:0}}@keyframes throw-left{to{transform:translate(-120%,-8%) rotate(-14deg);opacity:0}}@keyframes throw-up{to{transform:translateY(-115%) scale(.92);opacity:0}}.flashcard-scene.leaving-known{animation:throw-right .26s cubic-bezier(.4,0,1,1) forwards}.flashcard-scene.leaving-hard{animation:throw-left .26s cubic-bezier(.4,0,1,1) forwards}.flashcard-scene.leaving-skip{animation:throw-up .26s cubic-bezier(.4,0,1,1) forwards}.flashcard-echo{font-size:17px;font-weight:600;color:var(--muted);margin-top:10px}.swipe-tip{margin-top:14px;text-align:center;font-size:12px;color:var(--faint)}.fc-btn:disabled{opacity:.45}.mc-option{display:flex;align-items:center;gap:12px;transition:background .18s ease,border-color .18s ease,opacity .18s ease,transform .12s ease}.mc-key{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.mc-text{flex:1;text-align:left}.mc-mark{font-size:16px;font-weight:700}.mc-option.dimmed{opacity:.4}.mc-option.correct .mc-key{background:#00e67638;color:var(--vocab)}.mc-option.wrong .mc-key{background:#ff525238;color:var(--danger)}.match-col{display:flex;flex-direction:column;gap:8px}.match-btn{transition:background .16s ease,border-color .16s ease,transform .12s ease,opacity .2s ease}.match-btn.matched{pointer-events:none}.matching-score{margin-top:14px;display:flex;justify-content:center;gap:18px;font-size:14px;font-variant-numeric:tabular-nums}.type-answer-reveal{margin:0 0 14px;padding:12px 16px;border-radius:var(--r-md);background:#00e6761a;border:1px solid rgba(0,230,118,.28);font-size:14px;color:var(--muted);text-align:center}.type-answer-reveal strong{color:var(--vocab);font-weight:700}.cue-card{background:var(--surface);border:1px solid rgba(255,159,69,.28);border-radius:var(--r-lg);padding:22px 20px;margin-bottom:20px;box-shadow:0 18px 44px #00000080}.cue-label{font-size:11px;color:var(--speaking);letter-spacing:.08em;margin-bottom:10px}.cue-prompt{font-size:21px;font-weight:700;line-height:1.35}.cue-intro{font-size:13px;color:var(--muted);margin:14px 0 8px}.cue-points{list-style:none;display:flex;flex-direction:column;gap:8px}.cue-points li{position:relative;padding-left:18px;font-size:15px;line-height:1.45}.cue-points li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--speaking)}.cue-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.cue-actions .hint{font-size:13px;color:var(--muted);text-align:center;line-height:1.5;margin-bottom:2px}.phase-done{font-size:15px;font-weight:600;color:var(--vocab)}.ring{position:relative;width:150px;height:150px}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--surface2);stroke-width:8}.ring-fill{fill:none;stroke:var(--speaking);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s linear,stroke .3s ease}.ring.urgent .ring-fill{stroke:var(--danger)}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-time{font-size:32px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.ring.urgent .ring-time{color:var(--danger)}.ring-label{font-size:12px;color:var(--muted);margin-top:2px}.followups{margin-top:26px}.followups-title{font-size:12px;color:var(--muted);margin-bottom:9px}.followup{padding:12px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:14px;margin-bottom:7px}.runner-head{margin-bottom:20px}.runner-progress{height:4px;border-radius:2px;background:var(--surface2);overflow:hidden}.runner-progress-fill{height:100%;background:var(--speaking);border-radius:2px;transition:width .35s cubic-bezier(.4,0,.2,1)}.runner-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--muted)}.runner-clock{font-variant-numeric:tabular-nums}.question-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 22px;margin-bottom:14px;min-height:150px;display:flex;flex-direction:column;justify-content:center}.question-text{font-size:20px;font-weight:600;line-height:1.4}.tip-toggle{width:100%;padding:11px;border-radius:var(--r-md);border:1px dashed var(--line2);background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;margin-bottom:18px}.tip-toggle:active{background:var(--surface)}.tip-box{padding:13px 15px;border-radius:var(--r-md);background:#ff9f4517;border:1px solid rgba(255,159,69,.26);font-size:14px;line-height:1.5;margin-bottom:18px;white-space:pre-line}.tip-label{display:block;font-size:11px;color:var(--speaking);margin-bottom:5px}.runner-actions{display:flex;gap:9px}.runner-actions .btn{flex:1}.empty,.error-block,.done-screen{text-align:center;padding:52px 20px}.done-screen h2{font-size:22px;font-weight:700;margin-bottom:6px}.done-screen>p{color:var(--muted);font-size:14px;margin-bottom:22px}.cover-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:12px;background:var(--surface2);color:var(--muted);font-size:12.5px;font-weight:600;line-height:1.35;text-align:center}.auth-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}.auth-step{display:flex;gap:12px;align-items:flex-start}.auth-step b{flex:0 0 24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700}.auth-step span{flex:1;font-size:14px;line-height:1.5;color:var(--ink)}.auth-step strong{font-weight:650}.auth-detail{font-size:12px;color:var(--faint)}.auth-detail summary{cursor:pointer;padding:6px 0}.auth-detail>div{margin-top:6px;padding:10px 12px;background:var(--surface2);border-radius:8px;line-height:1.6;word-break:break-word}.search{width:100%;padding:11px 14px;margin-bottom:14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:15px}.search::placeholder{color:var(--faint)}.search:focus{outline:2px solid var(--tests);outline-offset:-1px}.chip-sm{padding:5px 10px;font-size:12px;font-variant-numeric:tabular-nums}.search-row{display:flex;align-items:center;gap:8px;margin-bottom:14px}.search-row .search{flex:1;margin-bottom:0}.filter-btn{position:relative;flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:transform .12s ease,border-color .12s ease}.filter-btn:active{transform:scale(.94)}.filter-btn.on{border-color:var(--ink)}.filter-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:9px;border:2px solid var(--paper);background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.active-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.active-filters .chip{display:inline-flex;align-items:center;gap:6px}.sheet.filters{max-height:calc(var(--vh, 100vh) * .78);display:flex;flex-direction:column}.filter-scroll{overflow-y:auto;overscroll-behavior:contain}.filter-group{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.02em;margin:4px 0 8px}.filter-foot{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--line);margin-top:4px}.filter-foot .btn-ghost{flex:none}.result-count{font-size:12px;color:var(--faint);margin-bottom:12px}.cover-author{display:block;font-size:11px;color:var(--muted);margin-top:2px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-title{font-size:17px;font-weight:700;letter-spacing:-.2px;line-height:1.25}.book-author{font-size:13.5px;color:var(--muted);margin-top:3px}.book-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.tag{font-size:11.5px;padding:3px 9px;border-radius:7px;background:var(--surface2);color:var(--muted)}.tag-level{background:var(--tests-soft);color:var(--tests);font-weight:650}.book-desc{font-size:14px;line-height:1.55;color:var(--ink);margin:16px 0 14px}.book-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin-bottom:16px;padding:12px 14px;background:var(--surface2);border-radius:var(--r-md);font-size:13px}.book-facts dt{color:var(--muted)}.book-facts dd{text-align:right;font-variant-numeric:tabular-nums}.reader{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}.reader-bar{position:absolute;left:0;right:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .2s ease}.reader-bar.top{top:0;padding-top:calc(10px + var(--safe-t));border-bottom:1px solid var(--line)}.reader-bar.bottom{bottom:0;padding-bottom:calc(10px + var(--safe-b));border-top:1px solid var(--line)}.reader-bar.top.hid{transform:translateY(-100%);opacity:0;pointer-events:none}.reader-bar.bottom.hid{transform:translateY(100%);opacity:0;pointer-events:none}.reader-title{flex:1;min-width:0;text-align:center}.reader-title strong{display:block;font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title small{font-size:11.5px;color:var(--muted)}.reader{--paper: #F4EADA;--surface: #EFE3CF;--surface2: #E6D8C0;--ink: #2E2721;--muted: #6E6153;--faint: #9C8C77;--line: rgba(72,56,38,.14);--line2: rgba(72,56,38,.24);--reader-font: "Iowan Old Style", Palatino, Georgia, serif;--reader-line: 1.7;--reader-margin: 22px;--reader-align: justify;--reader-pattern: none}.reader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--reader-pattern);background-repeat:repeat;pointer-events:none;z-index:0}.reader>*:not(.sheet-backdrop){position:relative;z-index:1}.pager-wrap{position:relative;flex:1;min-height:0;display:flex;padding:0 var(--reader-margin)}.pager{flex:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:calc(72px + var(--safe-t)) 0 calc(84px + var(--safe-b))}.pager::-webkit-scrollbar{display:none}.paged{height:100%;column-fill:auto;line-height:var(--reader-line);font-family:var(--reader-font);hyphens:auto;-webkit-hyphens:auto}.paged p{margin-bottom:.95em;text-align:var(--reader-align);orphans:2;widows:2}.paged.no-dropcap p:first-of-type:first-letter{font-size:inherit;float:none;line-height:inherit;padding:0;font-weight:inherit}.paged p:first-of-type:first-letter{font-size:2.8em;float:left;line-height:.88;padding:.06em .09em 0 0;font-weight:600}.page-hint{position:absolute;top:50%;transform:translateY(-50%);font-size:26px;line-height:1;color:var(--faint);pointer-events:none;opacity:.55}.page-hint.left{left:6px}.page-hint.right{right:6px}.reader-chapter{font-size:.95em;font-weight:700;letter-spacing:.01em;color:var(--muted);margin-bottom:1.4em;padding-bottom:.7em;border-bottom:1px solid var(--line);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.reader-nav--unused{display:flex;gap:10px;margin-top:2.4em;padding-top:1.6em;border-top:1px solid var(--line)}.reader-nav .btn{flex:1;justify-content:center}.reader-progress{flex:1;min-width:0}.reader-progress .bar{margin-bottom:5px}.reader-progress span{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.reader-size{display:flex;gap:4px;flex-shrink:0}.reader-size button{width:38px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:13px;font-weight:650}.reader-size button:disabled{opacity:.35}.sheet.toc{max-height:calc(var(--vh, 100vh) * .76);display:flex;flex-direction:column}.toc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.toc-head-text{display:flex;align-items:baseline;gap:10px;min-width:0}.toc-head strong{font-size:17px;font-weight:700}.toc-head span{font-size:12px;color:var(--muted)}.toc-list{overflow-y:auto;display:flex;flex-direction:column;gap:2px}.toc-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 10px;border-radius:var(--r-sm);font-size:14px}.toc-item:active{background:var(--surface2)}.toc-item.on{background:color-mix(in srgb,currentColor 9%,transparent);font-weight:650}.toc-num{flex:0 0 26px;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}.toc-item.on .toc-num{color:inherit;opacity:.8}.toc-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-min{font-size:11.5px;color:var(--faint);flex-shrink:0}.cover-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:#00000059}.cover-progress>i{display:block;height:100%;background:var(--tests)}.page-view{flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:calc(64px + var(--safe-t)) 0 calc(76px + var(--safe-b));background:var(--surface2)}.page-img{display:block;width:100%;max-width:min(100%,1000px);height:auto;background:#fff;box-shadow:0 2px 10px #00000038}.page-view.zoom{align-items:flex-start;justify-content:flex-start}.page-view.zoom .page-img{width:190%;max-width:none}.page-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.page-grid{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 16px;max-height:calc(var(--vh, 100vh) * .32);overflow-y:auto}.page-chip{padding:6px 11px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.page-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.sheet.settings{max-height:calc(var(--vh, 100vh) * .86);display:flex;flex-direction:column}.set-scroll{overflow-y:auto;flex:1;margin-bottom:12px}.set-label{font-size:12px;color:var(--muted);margin:16px 0 9px}.set-scroll>.set-label:first-child{margin-top:2px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:9px}.theme-cell{text-align:center}.theme-chip{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:12px;border:1.5px solid;font-size:15px;font-weight:650;font-family:Georgia,serif;transition:transform .12s ease}.theme-cell:active .theme-chip{transform:scale(.94)}.theme-cell.on .theme-chip{outline:2.5px solid var(--tests);outline-offset:2px}.theme-name{display:block;margin-top:5px;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-cell.on .theme-name{color:var(--ink);font-weight:600}.seg-row{display:flex;gap:6px}.seg-item{flex:1;padding:10px 8px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13.5px}.seg-item.on{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}.size-row{display:flex;align-items:center;gap:12px}.size-btn{flex:0 0 46px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:14px;font-weight:650}.size-btn:disabled{opacity:.35}.size-ticks{flex:1;display:flex;align-items:center;gap:4px}.size-tick{flex:1;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--surface)}.size-tick.on{background:var(--ink);border-color:var(--ink)}.set-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}.set-toggle:last-of-type{border-bottom:none}.set-toggle span{font-size:14.5px}.set-toggle small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.set-toggle input{width:20px;height:20px;accent-color:var(--tests);flex-shrink:0}.reader .scene-break{text-align:center;color:var(--faint);font-size:1.1em;letter-spacing:.3em;margin:1.6em 0;text-indent:0}:root{--shell: 560px}@media(min-width:680px){:root{--shell: 700px}.screen{max-width:var(--shell);padding-left:22px;padding-right:22px}.tiles{grid-template-columns:repeat(4,1fr)}.shelf{margin-inline:-22px;padding-inline:22px;scroll-padding-inline:22px}.tabs{left:50%;right:auto;transform:translate(-50%);width:min(100%,var(--shell));border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:18px 18px 0 0}}@media(min-width:1024px){:root{--shell: 940px}.list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tiles{gap:12px}}.pager-wrap{width:100%;max-width:var(--measure, 100%);margin-inline:auto}.reader-bar{padding-left:max(14px,(100% - var(--measure, 100%)) / 2 + 14px);padding-right:max(14px,(100% - var(--measure, 100%)) / 2 + 14px)}.icon{display:block;flex:none}.tab{gap:5px;letter-spacing:.1px}.tab .icon{transition:transform .16s cubic-bezier(.3,1.3,.5,1)}.tab.on .icon{transform:translateY(-1px)}.tile{padding:15px 15px 16px;box-shadow:none}.tile-icon{display:flex;justify-content:flex-start;place-items:start;width:fit-content;height:auto;background:none!important;border-radius:0;margin-bottom:12px}.tile[data-c=tests] .tile-icon{color:var(--tests)}.tile[data-c=vocab] .tile-icon{color:var(--vocab)}.tile[data-c=speaking] .tile-icon{color:var(--speaking)}.tile[data-c=library] .tile-icon{color:var(--muted)}.tile-name{font-size:15px;font-weight:640;letter-spacing:-.1px}.tile-meta{font-variant-numeric:tabular-nums}.resume,.q-card{box-shadow:none}.resume{padding:17px 18px 18px}.resume-label{font-size:11.5px;font-weight:600;letter-spacing:.2px;color:var(--muted)}.resume-title{font-size:19px;font-weight:700;letter-spacing:-.3px}.resume-sub,.item-sub,.item-end,.cover-meta,.result-count,.score-sub{font-variant-numeric:tabular-nums}.head h1{letter-spacing:-.6px}.row-head h3{letter-spacing:-.25px}.center .big,.empty-icon,.big-icon,.end-icon{font-size:0;display:flex;justify-content:center;color:var(--faint);margin-bottom:14px;filter:none}.end-icon{color:var(--vocab);margin-bottom:18px}.mode-btn .mode-icon{font-size:0;display:flex;justify-content:center;margin-bottom:10px;color:var(--muted)}.mode-btn:hover .mode-icon,.mode-btn.selected .mode-icon{color:var(--tests)}.fc-btn .btn-icon{font-size:0;display:flex;justify-content:center;margin-bottom:4px}.item-end.mark-known{color:var(--vocab)}.item-end.mark-hard{color:var(--speaking)}.mc-mark,.ms-ok,.ms-no{display:inline-flex;align-items:center;gap:4px}.ms-ok{color:var(--vocab)}.ms-no{color:var(--danger)}.phase-done{display:flex;align-items:center;gap:7px}.item-mark{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--surface2);font-size:15px;line-height:1}.sheet-backdrop{min-height:100%}.sheet{max-height:calc(var(--vh, 100vh) - 28px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sup-block{margin-bottom:24px}.sup-head{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:650;letter-spacing:-.15px;margin-bottom:10px}.sup-star{color:var(--support);font-size:13px}.sup-x{margin-left:auto;flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface2);color:var(--muted);transition:transform .12s ease}.sup-x:active{transform:scale(.92)}.sup-gifts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sup-gift{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 4px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .12s ease}.sup-gift:active{transform:scale(.96)}.sup-gift:disabled{opacity:.5}.sup-gift.on{border-color:var(--support);background:var(--support-soft)}.sup-gift.on .sup-gift-price{color:var(--support)}.sup-gift-emoji{font-size:26px;line-height:1}.sup-gift-price{font-size:12.5px;font-weight:640;color:var(--muted);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:2px}@media(min-width:680px){.sup-gifts{grid-template-columns:repeat(6,1fr)}}.sup-comment{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 13px;font-size:15px;line-height:1.45;resize:none;color:var(--ink)}.sup-comment::placeholder{color:var(--faint)}.sup-comment:focus{outline:none;border-color:var(--line2)}.sup-counter{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:7px;font-size:12px;color:var(--muted)}.sup-counter b{font-variant-numeric:tabular-nums;font-weight:600;flex:none}:root{--support: #B8860B;--support-soft: rgba(184,134,11,.12)}:root[data-theme=dark]{--support: #E3B341;--support-soft: rgba(227,179,65,.14)}.tabs{grid-template-columns:repeat(6,1fr)}.tab.on[data-c=support],.tile[data-c=support] .tile-icon{color:var(--support)}.sup-rank{flex:0 0 28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--surface2);font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--muted)}.sup-rank.top{background:var(--support-soft);color:var(--support)}.sup-total{display:inline-flex;align-items:center;gap:3px;font-size:14px;font-weight:650;color:var(--ink)}.item.sup-me{border-color:var(--support)}.sup-anon{display:flex;align-items:flex-start;gap:10px;margin-top:14px;cursor:pointer}.sup-anon input{position:absolute;opacity:0;width:0;height:0}.sup-anon-box{flex:0 0 20px;height:20px;margin-top:1px;display:grid;place-items:center;border:1.5px solid var(--line2);border-radius:6px;color:transparent;transition:background .14s ease,border-color .14s ease,color .14s ease}.sup-anon input:checked~.sup-anon-box{background:var(--support);border-color:var(--support);color:#fff}.sup-anon input:focus-visible~.sup-anon-box{outline:2px solid var(--support);outline-offset:2px}.sup-anon-text{display:flex;flex-direction:column;gap:2px}.sup-anon-text b{font-size:14px;font-weight:620}.pod-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 16px 0;margin-bottom:24px}.pod{display:grid;align-items:end;gap:6px}.pod-one{display:flex;flex-direction:column;align-items:center;gap:7px;padding:2px 2px 14px;min-width:0;transition:transform .12s ease}.pod-one:not(:disabled):active{transform:scale(.96)}.pod-ava{position:relative;display:block}.pod-ava .sup-ava{border:2px solid var(--line)}.pod-one.r1 .pod-ava .sup-ava{border-color:var(--support)}.pod-rank{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:10px;border:2px solid var(--surface);background:var(--surface2);color:var(--muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.pod-one.r1 .pod-rank{background:var(--support);color:var(--paper)}.pod-name{max-width:100%;margin-top:2px;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pod-one.r1 .pod-name{font-size:14.5px;font-weight:690}.pod-stars{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}.pod-one.r1 .pod-stars{font-size:15px;color:var(--support)}.pod-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin:0 -16px;padding:11px 16px;font-size:13px;color:var(--muted)}.pod-total{display:inline-flex;align-items:center;gap:4px;min-width:0}.pod-total b{color:var(--ink);font-weight:680;font-variant-numeric:tabular-nums}.pod-all{display:inline-flex;align-items:center;gap:2px;flex:none;font-size:13px;font-weight:640;color:var(--support)}.pod-empty{display:flex;align-items:center;gap:9px;padding:0 0 16px;color:var(--muted);font-size:13.5px}.pod-empty .icon{color:var(--support);flex:none}.give{display:flex;flex-direction:column;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 18px 13px}.give-num,.give-input{font-size:42px;font-weight:740;line-height:1.05;letter-spacing:-1.4px;font-variant-numeric:tabular-nums}.give-num{display:inline-flex;align-items:center;gap:7px;transition:transform .12s ease}.give-num .sup-star{font-size:22px}.give-num .icon{color:var(--faint);align-self:center;margin-left:2px}.give-num:active{transform:scale(.97)}.give-edit{display:inline-flex;align-items:center;gap:7px}.give-edit .sup-star{font-size:22px}.give-input{width:100%;max-width:200px;text-align:center;background:transparent;color:var(--ink);border:none;border-bottom:2px solid var(--support);padding-bottom:2px}.give-input:focus{outline:none}.give-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:26px;margin-top:16px;background:transparent;touch-action:none}.give-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--support) 0 calc(var(--p, 0) * 100%),var(--surface2) calc(var(--p, 0) * 100%) 100%)}.give-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--surface);border:2px solid var(--support);box-shadow:0 1px 4px #0000002e;margin-top:-9px}.give-slider::-moz-range-track{height:6px;border-radius:3px;background:var(--surface2)}.give-slider::-moz-range-progress{height:6px;border-radius:3px;background:var(--support)}.give-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--surface);border:2px solid var(--support)}.give-hint{margin-top:11px;font-size:12px;color:var(--faint)}.give-note{margin-top:16px}.give-note-lbl{display:block;margin-bottom:7px;font-size:12.5px;color:var(--muted)}.btn-give{margin-top:14px;background:var(--support);color:var(--paper);border-color:var(--support);font-weight:660}.sup-boost{display:flex;align-items:center;gap:11px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;font-size:14.5px;font-weight:620;transition:transform .12s ease}.sup-boost span{flex:1;min-width:0;text-align:left}.sup-boost .icon:first-child{color:var(--support)}.sup-boost .icon:last-child{color:var(--faint)}.sup-boost:active{transform:scale(.985)}.sheet.board{max-height:calc(var(--vh, 100vh) * .86);display:flex;flex-direction:column}.board-list{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:4px}.board-me{margin-top:12px;text-align:center;font-size:13px;color:var(--muted)}.sup-ava{flex:0 0 34px;width:34px;height:34px;border-radius:50%;overflow:hidden;background:var(--surface2);display:grid;place-items:center}.sup-ava img{width:100%;height:100%;object-fit:cover;display:block}.sup-ava-fb{font-size:14px;font-weight:650;color:var(--muted)}.paged p.speaking{background:color-mix(in srgb,currentColor 9%,transparent);border-radius:6px;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 9%,transparent);transition:background .25s ease}.reader-bar .icon-btn.on{color:var(--tests)}.spin{width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite;opacity:.75}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation-duration:2s}}.voice-list{display:grid;gap:6px;margin-bottom:18px}.voice-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);cursor:pointer}.voice-row.on{border-color:color-mix(in srgb,currentColor 38%,transparent);background:color-mix(in srgb,currentColor 8%,transparent)}.voice-play{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line2);background:var(--surface);color:var(--ink)}.voice-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:15px;font-weight:600;line-height:1.25}.voice-name small{font-size:12.5px;font-weight:450;color:var(--muted)}.voice-row.on>svg{opacity:.75}.audio-note{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--safe-b) + 92px);z-index:30;display:flex;align-items:center;gap:9px;padding:9px 15px;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-size:13.5px;font-weight:550;color:var(--ink);max-width:calc(100% - 32px)}.sheet.wordcard{max-height:calc(var(--vh, 100vh) * .72);padding:18px 18px 22px}.wc-top{display:flex;align-items:center;gap:8px;margin-bottom:14px}.wc-word{flex:1;font-size:27px;font-weight:650;letter-spacing:-.02em;color:var(--ink);line-height:1.15;word-break:break-word}.wc-lemma{font-size:14px;font-weight:500;color:var(--muted);margin-left:8px}.wc-wait{color:var(--muted);font-size:14px;padding:14px 0 6px}.wc-uz{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.wc-chip{border:1px solid var(--line2);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 14px;font-size:15px;font-weight:500}.wc-chip.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.wc-def{color:var(--ink);font-size:14.5px;line-height:1.5;margin-bottom:9px}.wc-def em{color:var(--muted);font-style:normal;font-size:12.5px;text-transform:lowercase;margin-right:6px}.wc-ctx{color:var(--muted);font-size:14px;line-height:1.55;font-style:italic;border-left:2px solid var(--line2);padding-left:11px;margin:12px 0 4px}.wc-add{width:100%;margin-top:16px}.wc-add.done{opacity:.55}.wc-ctx-sm{font-style:italic;opacity:.8;margin-top:4px}.sheet-backdrop.center{align-items:center;padding:0 14px}.sheet-backdrop.center .sheet{text-align:left;border-radius:20px;max-height:calc(var(--vh, 100vh) * .78);animation:card-pop .2s cubic-bezier(.2,.9,.3,1) both;padding:18px 18px 20px;box-shadow:var(--shadow)}@keyframes card-pop{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}.brand-banner{margin:0 0 14px;border-radius:16px;overflow:hidden;line-height:0}.brand-banner img{width:100%;height:auto;display:block}@media(min-width:680px){.brand-banner{max-width:520px;margin-inline:auto}}.rec{margin:26px 0 30px;padding:18px 16px 16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);transition:background .22s ease,border-color .22s ease,box-shadow .22s ease}.rec.live{background:var(--speaking-soft);border-color:var(--speaking);box-shadow:0 0 0 4px var(--speaking-soft)}.runner-actions.muted{opacity:.32;pointer-events:none;filter:saturate(.3)}.runner-actions{transition:opacity .2s ease,filter .2s ease}.rec-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 0 4px}.rec-ring{position:absolute;top:2px;width:76px;height:76px;border-radius:50%;background:var(--speaking);pointer-events:none;transition:transform .09s linear,opacity .18s ease}.rec-btn{position:relative;width:76px;height:76px;border-radius:50%;border:none;background:var(--speaking);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 20px #d9751557;transition:transform .14s ease,border-radius .22s ease}.rec-btn:active:not(:disabled){transform:scale(.94)}.rec-btn:disabled{opacity:.5}.rec-shape{width:26px;height:26px;border-radius:50%;background:#fff;transition:border-radius .22s ease,width .22s ease,height .22s ease}.rec-btn.on .rec-shape{width:24px;height:24px;border-radius:6px}.rec-time{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;color:var(--speaking);letter-spacing:.02em}.rec-review{display:flex;align-items:center;gap:12px;padding:6px 0}.rec-play{flex:1;display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:14px;border:1px solid var(--line2);background:var(--surface);color:var(--ink)}.rec-play b{font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.rec-acts{display:flex;gap:8px}.rec-act{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;border:1px solid var(--line2);background:var(--surface);color:var(--ink)}.rec-act:active{transform:scale(.95)}.rec-act.danger{color:var(--danger)}.rec-act.keep{background:var(--vocab);border-color:var(--vocab);color:#fff}.rec-saved{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.rec-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:999px;border:1px solid var(--line2);background:var(--surface);font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}.rec-mini{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:none;background:var(--speaking-soft);color:var(--speaking)}.rec-mini.ghost{background:transparent;color:var(--faint)}.rec-err{margin-top:10px;font-size:13px;color:var(--danger);text-align:center}.pager{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
