:root{color-scheme:dark;--app-height: 100vh;--bg: #0c0c14;--surface: #131320;--card: #1a1a2e;--border: #252535;--accent: #f0a030;--accent-dim: rgba(240,160,48,.13);--text: #e0ddd6;--text-muted: #6a6a7a;--text-dim: #9a9aaa;--err: #e05555;--err-bg: rgba(224,85,85,.1);--ok: #4ec994;--ok-bg: rgba(78,201,148,.1);--user-bubble: #1e2840;--user-border: #2a3555;--theme-btn-text: #f0a030;--card-outline: rgba(255,255,255,.04);--card-outline-strong: rgba(240,160,48,.24);--card-shadow: 0 10px 24px rgba(0,0,0,.16);--card-shadow-strong: 0 14px 30px rgba(0,0,0,.2)}:root[data-theme=light]{color-scheme:light;--bg: #d7d9e0;--surface: #ebeef4;--card: #f5f6fa;--border: #cfd4de;--accent: #b96e10;--accent-dim: rgba(185,110,16,.12);--text: #2b2f3a;--text-muted: #767b88;--text-dim: #575d6b;--err: #cf5858;--err-bg: rgba(207,88,88,.1);--ok: #2f9a70;--ok-bg: rgba(47,154,112,.12);--user-bubble: #dfe7f5;--user-border: #c8d5ea;--theme-btn-text: #9f6412;--card-outline: rgba(43,47,58,.07);--card-outline-strong: rgba(185,110,16,.22);--card-shadow: 0 8px 18px rgba(61,69,84,.08);--card-shadow-strong: 0 12px 24px rgba(61,69,84,.12)}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;background:var(--bg)}select{color-scheme:inherit;background-color:var(--card);color:var(--text)}select option,select optgroup{background-color:var(--card);color:var(--text)}select option:checked{background-color:var(--accent-dim);color:var(--accent)}.enhanced-native-select{display:none!important}.custom-select{position:relative;display:block;width:100%;min-width:0;z-index:1}.custom-select.open{z-index:1600}.custom-select-trigger{width:100%;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:11px;background:var(--card);color:var(--text);padding:7px 10px;font-family:Manrope,sans-serif;font-size:13px;font-weight:700;line-height:1.2;text-align:left;cursor:pointer;transition:border-color .2s,color .2s,background .2s,box-shadow .2s}.custom-select-trigger:hover,.custom-select.open .custom-select-trigger{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 1px #f0a03014}.custom-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow{width:15px;height:15px;flex:0 0 15px;color:currentColor;transition:transform .2s}.custom-select.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);display:none;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:0 18px 42px #0000006b;max-height:260px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.custom-select.drop-up .custom-select-menu{top:auto;bottom:calc(100% + 6px)}.custom-select.open .custom-select-menu{display:flex}.custom-select-option{width:100%;min-height:38px;display:flex;align-items:center;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:9px 12px;font-family:Manrope,sans-serif;font-size:13px;font-weight:750;line-height:1.25;text-align:left;cursor:pointer;transition:border-color .16s,color .16s,background .16s,box-shadow .16s}.custom-select-option:hover,.custom-select-option:focus{outline:none;border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.custom-select-option.active{border-color:#f0a030b8;color:var(--accent);background:#f0a03029;box-shadow:inset 0 0 0 1px #f0a0302e}.custom-select-option:disabled{opacity:.55;cursor:not-allowed}.custom-mode-select{width:auto;min-width:118px;max-width:150px;flex:0 1 auto}.custom-mode-select .custom-select-trigger{min-height:28px;border-radius:7px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:650;color:var(--text-muted)}.custom-mode-select .custom-select-option{min-height:32px;font-size:12px;padding:8px 10px}.custom-chat-level-select{min-width:76px;max-width:92px}.custom-chat-level-select .custom-select-trigger{color:var(--accent);border-color:#f0a03073;justify-content:center}.custom-reading-select .custom-select-trigger{min-height:34px;border-radius:7px;padding:7px 9px;font-size:13px}.custom-field-select .custom-select-trigger{min-height:38px;border-radius:8px;background:var(--surface);padding:8px 12px;font-size:14px;font-weight:650}.custom-field-select .custom-select-menu{background:var(--card)}.custom-field-select .custom-select-option{background:var(--surface)}body{font-family:Manrope,sans-serif;background:var(--bg);color:var(--text);height:var(--app-height,100vh);display:flex;flex-direction:column;overflow:hidden;transition:background-color .2s,color .2s}body{position:relative;isolation:isolate}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.22;background-color:#050507;background-image:url(../lingualab-ai-language-tile.webp);background-repeat:repeat;background-size:720px 720px;background-position:center center;transition:opacity .2s}:root[data-theme=light] body:before{opacity:0}body.sidebar-hidden .vp{display:none!important}body.sidebar-hidden #btn-side-toggle{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}body.reading-mode-active .input-area,body.news-mode-active .input-area,body.news-mode-active #btn-new-conv{display:none}@supports (height:100dvh){:root{--app-height:100dvh}}header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:11px 18px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.brand-row{display:flex;align-items:center;gap:12px;min-width:0;justify-self:start}.logo{display:flex;align-items:center;gap:8px;min-width:0;font-family:Manrope,sans-serif;font-size:18px;font-weight:700;color:var(--accent);letter-spacing:.01em}.logo-wordmark{white-space:nowrap}.logo em{color:var(--text-dim);font-family:Manrope,sans-serif;font-style:normal;font-weight:600;font-size:13px;margin-left:0;white-space:nowrap}.app-switch{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--border);background:var(--card);border-radius:11px;justify-self:center;box-shadow:inset 0 1px #ffffff05}.app-btn{padding:7px 14px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-dim);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:Manrope,sans-serif;white-space:nowrap}.app-btn:hover{color:var(--text);background:#ffffff08}.app-btn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.hcontrols{display:flex;gap:7px;align-items:center;justify-self:end}.level-pill{font-family:JetBrains Mono,monospace;font-size:11px;padding:4px 11px;border:1px solid var(--accent);color:var(--accent);border-radius:20px;cursor:pointer;transition:all .2s;user-select:none}.level-pill:hover{background:var(--accent-dim)}.btn-i{width:34px;height:34px;border:1px solid var(--border);background:var(--card);color:var(--text-dim);border-radius:8px;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-i:hover{border-color:var(--accent);color:var(--accent)}#theme-btn{color:var(--theme-btn-text);font-size:14px}.account-btn{width:auto;max-width:210px;padding:0 11px;font-family:Manrope,sans-serif;font-size:11px;font-weight:750}.account-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-btn.authenticated{border-color:#4ec9946b;color:var(--ok)}.auth-modal{position:relative;width:430px}.auth-modal-close{position:absolute;top:14px;right:14px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-muted);font-size:24px;line-height:1;cursor:pointer;transition:all .2s}.auth-modal-close:hover,.auth-modal-close:focus-visible{outline:none;border-color:var(--border);background:var(--surface);color:var(--text)}.auth-modal .mtitle{padding-right:42px}.auth-help-row{display:flex;justify-content:flex-end;margin-top:-6px}.auth-link-button{padding:2px 0;border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.auth-link-button:hover,.auth-link-button:focus-visible{outline:none;color:var(--text);text-decoration:underline}.auth-status{margin-top:10px;color:var(--text-muted);font-size:12px;line-height:1.45}.auth-status:empty{display:none}.auth-status.error{color:var(--err)}.auth-status.success{color:var(--ok)}.auth-profile{display:grid;gap:16px}.auth-profile-email{padding:3px 0;font-size:15px;font-weight:750;overflow-wrap:anywhere}.auth-unavailable{padding:13px;border:1px solid rgba(224,85,85,.28);border-radius:9px;background:var(--err-bg);color:var(--text-dim);font-size:13px;line-height:1.55}.auth-verification{display:grid;gap:12px}.auth-verification-title{font-size:17px;font-weight:800;color:var(--text)}.auth-verification-copy{color:var(--text-dim);font-size:13px;line-height:1.6}.auth-verification .mactions{margin-top:4px}[hidden]{display:none!important}.mobile-vocab-btn,.mobile-fullscreen-btn,.mobile-reading-settings-btn,.mobile-news-btn,.mobile-history-btn,.mobile-bottom-nav,.grammar-mobile-close{display:none}.mobile-news-btn,.mobile-history-btn{min-width:58px;height:34px;align-items:center;justify-content:center;gap:4px;padding:0 10px;border:1px solid rgba(240,160,48,.5);border-radius:8px;background:var(--accent-dim);color:var(--accent);font-family:Manrope,sans-serif;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}.mobile-news-btn:hover,.mobile-news-btn:focus-visible,.mobile-news-btn.on,.mobile-history-btn:hover,.mobile-history-btn:focus-visible,.mobile-history-btn.on{outline:none;border-color:var(--accent);background:var(--accent);color:#17110a}body.mobile-vocab-open #btn-mobile-vocab,body.mobile-reading-settings-open #btn-mobile-reading-settings,body.fullscreen-active #btn-fullscreen{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}body.layout-fullscreen-active .stats,body.layout-fullscreen-active .topics{display:none}.stats{display:flex;align-items:center;padding:5px 18px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.stat{display:flex;align-items:center;gap:5px;padding:0 12px;border-right:1px solid var(--border);font-size:11px;color:var(--text-muted);white-space:nowrap}.stat:first-child{padding-left:0}.stat:last-child{border-right:none}.sv{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.stat-progress{gap:8px;padding:0 14px;min-width:220px;border-right:1px solid var(--border);margin-left:auto;margin-right:auto}.progress-inline-title,.progress-inline-summary{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.progress-inline-level{font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace;white-space:nowrap;flex-shrink:0}.progress-inline-main{display:flex;align-items:center;gap:8px;min-width:0}.progress-bar{width:108px;height:6px;background:var(--card);border:1px solid var(--border);border-radius:999px;overflow:hidden;flex-shrink:0}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#f7c56e);transition:width .35s ease}.progress-inline-note{font-size:10px;color:var(--text-dim);font-family:JetBrains Mono,monospace;white-space:nowrap}.main{display:flex;flex:1;overflow:hidden}.chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topics{display:flex;gap:7px;padding:9px 14px;border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0;scrollbar-width:none}.topics::-webkit-scrollbar{display:none}.topics-label{font-size:10px;color:var(--text-muted);white-space:nowrap;align-self:center;font-family:JetBrains Mono,monospace;flex-shrink:0}.chip{white-space:nowrap;font-size:11px;padding:5px 11px;background:var(--card);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;cursor:pointer;transition:all .2s;font-family:Manrope,sans-serif;line-height:1.2}.chip:hover,.chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.messages{flex:1;overflow-y:auto;padding:18px 14px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.msg-group{display:flex;flex-direction:column;gap:6px}.msg{max-width:86%;padding:11px 15px;border-radius:12px;font-size:14px;line-height:1.65;position:relative}.msg.user{background:var(--user-bubble);border:1px solid var(--user-border);align-self:flex-end;border-bottom-right-radius:4px}.msg.ai{background:var(--card);border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:4px}.user-actions{display:flex;justify-content:flex-end}.retry-btn{border-color:#e0555547;color:#f1b0b0;background:#e0555514}.retry-btn:hover{border-color:#e0555585;color:#ffd1d1;background:#e0555524}.role-lbl{font-size:10px;font-family:JetBrains Mono,monospace;color:var(--text-muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.08em}.w{cursor:pointer;border-radius:4px;padding:0 2px;transition:background .15s,color .15s,box-shadow .15s;display:inline}.w:hover{background:#f0a0302e;color:var(--accent)}.w.hi{background:#f0a03047;color:var(--accent);box-shadow:inset 0 -1px #f0a03042}.w.ph{background:#f0a03057;color:var(--accent);box-shadow:inset 0 -1px #f0a03052}.w.inv{color:var(--accent)}.w.reading-word-active{background:#7bd99a;color:#07120b!important;box-shadow:0 0 0 1px #7bd99a7a,0 0 14px #7bd99a2e;font-weight:800}.corr-block{max-width:86%;align-self:flex-end;padding:9px 13px;background:var(--err-bg);border:1px solid rgba(224,85,85,.3);border-radius:8px;font-size:13px}.corr-lbl{font-size:10px;font-family:JetBrains Mono,monospace;color:var(--err);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.corr-source{color:var(--text);font-size:14px;line-height:1.65;margin-bottom:9px}.corr-source .msg{max-width:100%;margin:0}.corr-source .msg.user{align-self:stretch}.corr-text{color:var(--text-dim);font-size:13px;line-height:1.65;white-space:pre-line;margin-bottom:7px}.corr-list{display:flex;flex-direction:column;gap:8px;margin-bottom:9px}.corr-item{padding:7px 8px;border:1px solid rgba(255,255,255,.06);border-radius:7px;background:#ffffff08}.corr-change{font-size:13px;line-height:1.5;color:var(--text)}.corr-from{color:var(--text-dim)}.corr-arrow{color:var(--text-muted);padding:0 4px}.corr-to{color:var(--ok)}.corr-why{margin-top:5px;font-size:13px;line-height:1.65;color:var(--text-muted)}.corr-fixed{color:var(--ok);font-size:14px}.sent-lines{display:flex;flex-direction:column;gap:5px}.sent-row{display:flex;gap:6px;align-items:flex-start}.sent-text{flex:1;min-width:0}.sent-btn{flex-shrink:0;padding:3px 8px;border-radius:5px;border:1px solid var(--border);background:none;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.15;cursor:pointer;transition:all .2s}.sent-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.speak-btn{color:var(--text)}.speak-btn:hover{border-color:var(--text-dim);color:var(--text);background:#ffffff0a}.speak-icn{width:13px;height:13px;display:block;pointer-events:none}.sp-src{font-size:12px;line-height:1.45;color:var(--text-dim);margin-bottom:8px}.sp-tr{font-size:14px;line-height:1.5;color:var(--text);margin-bottom:8px}.sp-note{font-size:12px;line-height:1.45;color:var(--accent)}.popup{position:fixed;background:var(--card);border:1px solid var(--accent);border-radius:9px;padding:11px 14px;font-size:13px;z-index:1000;box-shadow:0 8px 36px #0009;display:none;min-width:170px}.popup.show{display:block}.popup-word-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.popup-word{min-width:0;overflow-wrap:anywhere;font-family:Manrope,sans-serif;font-size:17px;font-weight:700;color:var(--accent)}.popup-speak{flex:0 0 auto;padding:5px 8px;margin-left:auto;color:var(--text)}.popup-speak .speak-icn{width:14px;height:14px}.pbtn{display:block;width:100%;padding:6px 10px;font-size:12px;border-radius:6px;cursor:pointer;border:none;font-family:Manrope,sans-serif;transition:all .2s;margin-bottom:5px;text-align:left}.pbtn:last-child{margin-bottom:0}.pbtn.pri{background:var(--accent);color:#000;font-weight:600}.pbtn.pri:hover{opacity:.85}.pbtn.sec{background:var(--border);color:var(--text-dim)}.pbtn.sec:hover{background:var(--surface);color:var(--text)}.pbtn.translate{border:1px solid rgba(123,217,154,.36);background:#54b47426;color:#7bd99a;font-weight:700}.pbtn.translate:hover{background:#54b4743d;color:#a8f0bd;border-color:#7bd99a85}.pbtn.translate:disabled{opacity:.72;cursor:wait}.popup-translation{display:none;margin:7px 0 6px;padding:8px 9px;border:1px solid var(--border);border-radius:7px;background:#ffffff08;color:var(--text);line-height:1.45;max-width:260px}.popup-translation.show{display:block}.popup-translation-main{font-weight:700;color:var(--accent);margin-bottom:4px}.popup-translation-extra{font-size:12px;color:var(--text-muted)}.popup-translation-example{margin-top:5px;padding-top:6px;border-top:1px solid rgba(255,255,255,.07);color:#d8ecff;line-height:1.45}.input-area{padding:10px 14px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:9px;align-items:flex-end;flex-shrink:0}.iw{flex:1}.mode-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px}.mode-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.mode-btns{display:flex;gap:4px}.mbtn{padding:3px 9px;border-radius:5px;cursor:pointer;border:1px solid var(--border);color:var(--text-muted);background:transparent;font-family:Manrope,sans-serif;font-size:11px;transition:all .2s}.mbtn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.mode-select{min-width:118px;max-width:150px;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:4px 8px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px;outline:none;transition:border-color .2s,color .2s}.mode-select:focus{border-color:var(--accent);color:var(--text)}.mode-select:hover{border-color:var(--accent);color:var(--text)}.chat-level-select{min-width:76px;max-width:92px;color:var(--accent);border-color:#f0a03073;font-weight:700;text-align:center}.ccount{font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace}textarea#inp{width:100%;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:9px 13px;color:var(--text);font-family:Manrope,sans-serif;font-size:14px;resize:none;min-height:42px;max-height:120px;line-height:1.5;outline:none;transition:border-color .2s}textarea#inp:focus{border-color:var(--accent)}textarea#inp::placeholder{color:var(--text-muted)}.emoji-wrap{position:relative;flex-shrink:0}.ebtn{width:42px;height:42px;background:var(--card);border:1px solid var(--border);border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s;color:var(--text);flex-shrink:0}.ebtn:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}.emoji-picker{position:absolute;right:0;bottom:50px;width:232px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px;display:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;box-shadow:0 14px 38px #00000073;z-index:220}.emoji-picker.show{display:grid}.emoji-item{height:32px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}.emoji-item:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}.sbtn{width:42px;height:42px;background:var(--accent);border:none;border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;transition:all .2s;flex-shrink:0}.sbtn:hover{opacity:.85;transform:translateY(-1px)}.sbtn:disabled{opacity:.35;cursor:not-allowed;transform:none}.vp{width:620px;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);flex-shrink:0}.side-section{display:flex;flex-direction:column;min-height:0}.side-section.grow{flex:1}.side-divider{height:1px;background:var(--border);margin:0 12px}.vp.grammar-mode #vp-vocab-section,.vp.grammar-mode #vp-divider,.vp.grammar-mode #saved-chats-panel,.vp.reading-mode #vp-vocab-section,.vp.reading-mode #vp-divider,.vp.reading-mode #saved-chats-panel{display:none}.grammar-panel{display:none;flex-direction:column;flex:1;min-height:0}.vp.grammar-mode .grammar-panel{display:flex}.vp.reading-mode .grammar-panel{display:none}.grammar-copy{padding:12px 16px;color:var(--text-dim);font-size:13px;line-height:1.55}.grammar-main{flex:1;min-height:0;overflow:auto;padding:0 12px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.grammar-accordion{display:flex;flex-direction:column;gap:8px}.grammar-cat{border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:hidden;transition:border-color .2s,box-shadow .2s,background .2s}.grammar-cat-head{width:100%;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:none;background:transparent;color:var(--text);cursor:pointer;font-family:Manrope,sans-serif;font-size:13px;transition:background .2s,color .2s,box-shadow .2s}.grammar-cat-head:hover{background:#f0a0300f}.grammar-cat-head.on{background:#f0a0301f;color:var(--accent);box-shadow:inset 0 0 0 1px #f0a03061}.grammar-cat-left{display:flex;align-items:center;gap:10px;min-width:0}.grammar-cat-emoji{font-size:15px;line-height:1;flex-shrink:0}.grammar-cat-title{font-weight:700;line-height:1.35}.grammar-cat-arrow{width:14px;height:14px;display:block;color:var(--text-muted);flex-shrink:0;transition:transform .3s ease,color .2s}.grammar-cat-head.on .grammar-cat-arrow{color:var(--accent)}.grammar-cat.open .grammar-cat-arrow{transform:rotate(180deg)}.grammar-cat-panel{max-height:0;overflow:hidden;transition:max-height .3s ease}.grammar-cat.open .grammar-cat-panel{max-height:720px}.grammar-topics{display:flex;flex-direction:column;gap:4px;padding:0 10px 10px}.grammar-topic-btn{width:100%;text-align:left;padding:10px 12px 10px 40px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);font-family:Manrope,sans-serif;font-size:13px;line-height:1.4;cursor:pointer;transition:background .2s,color .2s}.grammar-topic-btn:hover{background:#f0a03014;color:var(--text)}.grammar-topic-btn.on{background:#f0a03029;color:var(--accent);font-weight:700}.grammar-meta{padding:0 2px 2px;display:flex;flex-direction:column;gap:5px}.grammar-meta-value{font-size:13px;font-weight:700;color:var(--accent);line-height:1.4}.grammar-note{font-size:11px;line-height:1.5;color:var(--text-muted);font-family:JetBrains Mono,monospace}.grammar-actions{padding:10px 14px 14px;border-top:1px solid var(--border);display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.grammar-actions .grammar-meta{flex:1;min-width:0;padding:0}.grammar-start{flex:0 0 auto;height:38px;padding:0 16px;border-radius:10px;border-color:var(--accent)!important;background:var(--accent-dim)!important;color:var(--accent)!important;font-weight:700}.grammar-start:hover{border-color:var(--accent)!important;background:#f0a0302e!important;color:var(--accent)!important}.grammar-saved-chats-panel{margin-top:auto;padding-top:6px}.reading-panel{display:none;flex-direction:column;flex:1;min-height:0}.vp.reading-mode .reading-panel{display:flex}.reading-panel-head{gap:8px}.reading-panel-tabs{display:flex;gap:6px;width:100%}.reading-panel-tab{flex:1;min-height:32px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:13px;font-weight:750;cursor:pointer;transition:border-color .2s,color .2s,background .2s;white-space:nowrap}.reading-panel-tab:hover{border-color:var(--accent);color:var(--accent)}.reading-panel-tab.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.reading-tab-panel{display:none;flex-direction:column;flex:1;min-height:0}.reading-panel[data-reading-side-tab=reading] #reading-tab-panel-reading,.reading-panel[data-reading-side-tab=vocab] #reading-tab-panel-vocab{display:flex}.reading-vocab-panel{min-height:0}.reading-copy{padding:12px 16px 10px;color:var(--text-dim);font-size:13px;line-height:1.55}.reading-main{flex:1;min-height:0;overflow:auto;padding:0 12px 10px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.reading-field{display:flex;flex-direction:column;gap:7px}.reading-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:JetBrains Mono,monospace}.reading-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.reading-seg.two{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-option{min-height:32px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:12px;font-weight:650;cursor:pointer;transition:all .2s}.reading-option:hover{border-color:var(--accent);color:var(--accent)}.reading-option.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.reading-select{width:100%;min-height:34px;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--text);font-family:Manrope,sans-serif;font-size:13px;font-weight:650;padding:7px 9px;outline:none;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.reading-select:hover,.reading-select:focus{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.reading-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.reading-check{display:flex;align-items:flex-start;gap:7px;min-height:34px;padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--text-dim);font-size:12px;line-height:1.35;cursor:pointer;transition:all .2s}.reading-check:hover{border-color:var(--accent);color:var(--text)}.reading-check.on{border-color:#f0a03080;color:var(--accent);background:var(--accent-dim)}.reading-check input{accent-color:var(--accent);margin-top:2px;flex-shrink:0}.reading-actions{padding:10px 14px 14px;border-top:1px solid var(--border);display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.reading-summary{font-size:11px;line-height:1.45;color:var(--text-muted);font-family:JetBrains Mono,monospace}.reading-start{flex:0 0 auto;height:38px;padding:0 16px;border-radius:10px;border-color:var(--accent)!important;background:var(--accent-dim)!important;color:var(--accent)!important;font-weight:700}.reading-start:hover{border-color:var(--accent)!important;background:#f0a0302e!important;color:var(--accent)!important}.reading-saved-chats-panel{margin-top:auto;padding-top:6px}.vp-head{padding:11px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.vp-title{font-family:Manrope,sans-serif;font-size:15px;font-weight:700;letter-spacing:.01em}#vp-title-grammar{color:var(--accent)}.vcnt{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--accent);background:var(--accent-dim);padding:2px 8px;border-radius:10px}.vocab-head-meta,.vocab-audio-controls{display:flex;align-items:center;gap:7px;min-width:0}.vocab-audio-progress{min-width:31px;text-align:center;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px;white-space:nowrap}.vocab-audio-progress.preparing{color:var(--accent)}.vocab-audio-btn{width:30px;height:30px;flex:0 0 30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--text-dim);cursor:pointer;transition:border-color .2s,color .2s,background .2s,box-shadow .2s}.vocab-audio-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.vocab-audio-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.vocab-audio-btn.playing{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.vocab-audio-btn.shuffle.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 1px #f0a0301a}.vocab-audio-btn.loop.on{border-color:var(--ok);color:var(--ok);background:var(--ok-bg);box-shadow:0 0 0 1px #72d67c1f}.vocab-audio-btn svg.vocab-audio-icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.vocab-audio-btn.next svg.vocab-audio-icon{fill:currentColor;stroke:none}.vocab-audio-btn.loading .vocab-audio-icon{display:none}.vocab-audio-btn.loading:before{content:"";width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:reading-speak-spin .75s linear infinite}.vocab-audio-icon{font-size:14px;line-height:1}.vocab-more{position:relative;flex:0 0 auto}.vocab-more summary::-webkit-details-marker{display:none}.vocab-more-trigger{list-style:none;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--text-dim);cursor:pointer;transition:border-color .2s,color .2s,background .2s,box-shadow .2s}.vocab-more-trigger:hover,.vocab-more-trigger:focus-visible,.vocab-more[open] .vocab-more-trigger{outline:none;border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 1px #f0a03014}.vocab-more-icon{display:block;font-family:Manrope,sans-serif;font-size:20px;font-weight:800;line-height:1;transform:translateY(-3px)}.vocab-more-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1600;display:grid;gap:4px;min-width:132px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 16px 38px #0000007a}.vocab-more-item{width:100%;min-height:34px;padding:7px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);font-family:Manrope,sans-serif;font-size:12px;font-weight:650;text-align:left;cursor:pointer;transition:border-color .16s,color .16s,background .16s}.vocab-more-item:hover,.vocab-more-item:focus-visible{outline:none;border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.vocab-more-item.danger:hover,.vocab-more-item.danger:focus-visible{border-color:#e055558c;color:var(--err);background:var(--err-bg)}.vp-actions{display:flex;gap:5px;padding:7px 12px;border-bottom:1px solid var(--border)}.vbtn{flex:1;padding:5px;font-size:11px;border-radius:6px;cursor:pointer;border:1px solid var(--border);color:var(--text-dim);background:var(--card);font-family:Manrope,sans-serif;transition:all .2s;text-align:center}.vbtn:hover{border-color:var(--accent);color:var(--accent)}.vbtn.inline{flex:0 0 auto;padding:5px 10px;white-space:nowrap}.saved-chats-panel{flex-shrink:0}.saved-chats-head{position:relative;cursor:pointer;gap:10px;margin:7px 7px 0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);transition:all .2s;display:flex;align-items:center;justify-content:flex-end}.saved-chats-head:hover{border-color:var(--accent)}.saved-chats-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;pointer-events:none}.saved-chats-icon{width:14px;height:14px;display:block;color:var(--text-muted);flex-shrink:0}.saved-chats-head:hover .saved-chats-icon{color:var(--accent)}.saved-chats-panel .chatlist{transition:max-height .28s ease,padding .28s ease,opacity .2s ease}.saved-chats-panel.collapsed .vp-head{border-bottom:1px solid var(--border)}.saved-chats-panel.collapsed .chatlist{max-height:0;padding-top:0;padding-bottom:0;opacity:0;pointer-events:none}.chatlist{max-height:240px;overflow-y:auto;padding:7px;display:flex;flex-direction:column;gap:5px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-item{display:flex;align-items:flex-start;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:9px 10px;cursor:pointer;transition:all .2s}.chat-item:hover{border-color:var(--accent)}.chat-item.active{border-color:var(--accent);background:var(--accent-dim)}.chat-main{flex:1;min-width:0}.chat-title{font-size:12px;color:var(--text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-meta{margin-top:4px;font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.chat-del{width:22px;height:22px;border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.chat-del:hover{border-color:var(--err);color:var(--err);background:var(--err-bg)}.vlist{flex:1;overflow-y:auto;padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.vlist.ngsl-mode{display:block;padding:0}.ngsl-palette{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:baseline;justify-content:center;gap:5px 8px;padding:20px 16px 12px}.ngsl-word{appearance:none;display:inline-flex;align-items:center;border:0;border-radius:6px;background:transparent;color:var(--text-dim);font-family:Manrope,sans-serif;font-weight:650;line-height:1.15;padding:4px 6px;cursor:pointer;transition:color .16s,background .16s,transform .16s,box-shadow .16s}.ngsl-word.freq-1{font-size:12px;font-weight:550}.ngsl-word.freq-2{font-size:15px}.ngsl-word.freq-3{font-size:19px;font-weight:750}.ngsl-word.freq-4{font-size:24px;font-weight:850}.ngsl-word:hover,.ngsl-word:focus-visible{outline:none;color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 1px #f0a03047;transform:translateY(-1px)}.ngsl-word.inv{color:var(--ok);background:var(--ok-bg);box-shadow:inset 0 0 0 1px #72d67c38}.ngsl-sentinel{height:48px;display:flex;align-items:center;justify-content:center}.ngsl-sentinel:after{content:"";width:14px;height:14px;border:2px solid var(--border);border-right-color:var(--accent);border-radius:50%;animation:reading-speak-spin .75s linear infinite}.ngsl-credit{padding:9px 12px 14px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:8px;text-align:center;opacity:.72}.ngsl-credit a{color:inherit;text-decoration:none}.ngsl-credit a:hover{color:var(--accent)}.lexical-gate,.lexical-test,.lexical-result{margin:12px;padding:20px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,var(--card),var(--surface));box-shadow:var(--card-shadow);text-align:left}.lexical-gate{text-align:center;padding-top:26px;padding-bottom:26px}.lexical-gate-icon{width:44px;height:44px;margin:0 auto 12px;display:grid;place-items:center;border:1px solid var(--card-outline-strong);border-radius:13px;background:var(--accent-dim);font-size:20px}.lexical-kicker{margin-bottom:7px;color:var(--accent);font-family:JetBrains Mono,monospace;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.lexical-gate h3,.lexical-test h3,.lexical-result h3,.lexical-suggestions-head h3{color:var(--text);font-size:17px;line-height:1.35}.lexical-gate p,.lexical-test p,.lexical-result p,.lexical-suggestions-copy{margin-top:8px;color:var(--text-dim);font-size:12px;line-height:1.55}.lexical-primary,.lexical-secondary{min-height:40px;margin-top:16px;padding:9px 15px;border-radius:10px;font-family:Manrope,sans-serif;font-size:12px;font-weight:850;cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}.lexical-primary{border:1px solid var(--accent);background:var(--accent);color:#17110a}.lexical-secondary{border:1px solid var(--border);background:transparent;color:var(--text-dim)}.lexical-primary:hover,.lexical-secondary:hover{transform:translateY(-1px)}.lexical-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.lexical-test-facts,.lexical-result-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.lexical-test-facts span,.lexical-result-badges span{padding:5px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:9px}.lexical-test-progress{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.lexical-test-progress b{color:var(--accent)}.lexical-progress-track{height:4px;margin:9px 0 18px;border-radius:999px;background:var(--border);overflow:hidden}.lexical-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .2s ease}.lexical-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.lexical-test-word{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:13px;font-weight:750;cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}.lexical-test-word:hover,.lexical-test-word:focus-visible{outline:none;border-color:var(--accent);color:var(--accent)}.lexical-test-word.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);box-shadow:inset 0 0 0 1px #f0a03021}.lexical-result-number{margin-top:5px;color:var(--accent);font-family:Manrope,sans-serif;font-size:34px;font-weight:900;letter-spacing:-.04em}.lexical-result-label{color:var(--text-dim);font-size:11px}.lexical-result-note{color:var(--accent)!important}.lexical-suggestions-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 16px 0}.lexical-suggestions-head span{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:10px}.lexical-suggestions-copy{margin:6px 16px 0}.lexical-loading{padding:28px 16px;color:var(--text-muted);font-size:12px;text-align:center}.lexical-empty{height:auto;min-height:150px}@media(max-width:600px){.lexical-gate,.lexical-test,.lexical-result{margin:0 0 12px;padding:18px 16px;border-radius:12px}.lexical-test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lexical-primary{width:100%}.lexical-suggestions-head,.lexical-suggestions-copy{margin-left:4px;margin-right:4px}.ngsl-palette{padding-left:4px;padding-right:4px}}#vp-vocab-section[data-vocab-tab=discover] .vocab-head-meta,#reading-tab-panel-vocab[data-vocab-tab=discover] .vocab-head-meta,#mobile-vocab-panel[data-vocab-tab=discover] .mobile-panel-head-actions{display:none}.vcol{display:flex;flex-direction:column;gap:10px;min-width:0}.vempty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:160px;color:var(--text-muted);font-size:13px;text-align:center;padding:20px;gap:8px;grid-column:1 / -1}.ei{font-size:30px;opacity:.45}.vi{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 17px 15px;position:relative;transition:border-color .2s,box-shadow .2s;min-height:176px;box-shadow:0 0 0 1px var(--card-outline),var(--card-shadow)}.vi:hover{border-color:var(--card-outline-strong);box-shadow:0 0 0 1px var(--card-outline-strong),var(--card-shadow-strong)}.vi[data-click=selectVocabularyAudioCard],.mobile-card-item[data-click=selectVocabularyAudioCard]{cursor:pointer}.vi.vocab-audio-selected,.mobile-card-item.vocab-audio-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim),var(--card-shadow-strong)}.vi[data-click=selectVocabularyAudioCard]:focus-visible,.mobile-card-item[data-click=selectVocabularyAudioCard]:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim),var(--card-shadow-strong)}.vi.vocab-audio-current,.mobile-card-item.vocab-audio-current{border-color:#72d67cb8;box-shadow:0 0 0 2px #72d67c2e,var(--card-shadow-strong)}.vi:hover .vdel{opacity:1}.vhead{display:block;padding-right:28px}.vcopy{min-width:0}.vword-row{display:flex;align-items:flex-start;gap:8px;min-width:0}.vword{font-family:Manrope,sans-serif;font-size:17px;font-weight:700;line-height:1.25;color:var(--accent)}.msg.ai .w.hi,.msg.ai .w.ph,.corr-fixed .w.hi,.corr-fixed .w.ph{color:var(--accent)!important}.vspeak{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;padding:4px 9px;font-size:14px;line-height:1;color:var(--text)}.vspeak .speak-icn{width:14px;height:14px}.vtrans{font-size:14px;line-height:1.45;color:var(--text);margin-top:4px}.vphone{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);margin-left:6px}.vex{font-size:12px;color:var(--text-muted);margin-top:9px;font-style:italic;line-height:1.55;border-top:1px solid var(--border);padding-top:8px}.vex .hl{color:var(--accent);font-style:normal}.vcoll{margin-top:9px;padding-top:8px;border-top:1px dashed var(--border)}.coll-title{font-size:10px;font-family:JetBrains Mono,monospace;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}.coll-list{display:flex;flex-direction:column;gap:7px}.coll-sense-group{display:flex;flex-direction:column;gap:6px;min-width:0}.coll-sense-title{width:max-content;max-width:100%;padding:2px 7px;border-left:2px solid var(--accent);border-radius:4px;background:var(--accent-dim);color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;line-height:1.4}.coll-sense-items{display:flex;flex-direction:column;gap:7px}.coll-item{display:flex;gap:7px;align-items:flex-start}.coll-tag{padding:2px 6px;border-radius:999px;border:1px solid var(--border);font-size:9px;font-family:JetBrains Mono,monospace;color:var(--text-muted);flex-shrink:0;text-transform:uppercase;letter-spacing:.06em}.coll-tag.core{border-color:#f0a03059;color:var(--accent);background:var(--accent-dim)}.coll-tag.variant{border-color:#58aaff52;color:#79b4ff;background:#58aaff1f}.coll-tag.extension{border-color:#72d67c52;color:var(--ok);background:var(--ok-bg)}.coll-copy{min-width:0}.coll-phrase{font-size:12px;line-height:1.45;color:var(--text)}.coll-phrase .hl{color:var(--accent)}.coll-meaning{font-size:11px;line-height:1.4;color:var(--text-muted);margin-top:2px}.coll-example{font-size:12px;color:var(--text-dim);margin-top:6px;line-height:1.55;font-style:italic}.coll-actions{margin-top:7px;display:flex;gap:8px;flex-wrap:wrap}.coll-card{min-height:0}.coll-card .coll-list{gap:14px}.coll-card .coll-sense-group{gap:8px}.coll-card .coll-sense-group+.coll-sense-group{padding-top:12px;border-top:1px solid var(--border)}.coll-card .coll-sense-title{padding:4px 9px;border-left-width:3px;font-family:Manrope,sans-serif;font-size:13px;font-weight:750;line-height:1.3;color:var(--text)}.coll-card .coll-sense-items{gap:10px}.coll-card .coll-item{display:block;padding-top:10px;border-top:1px dashed var(--border)}.coll-card .coll-item:first-child{padding-top:0;border-top:none}.coll-card .coll-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.coll-card .coll-phrase{font-family:Manrope,sans-serif;font-size:18px;font-weight:700;line-height:1.3;color:var(--accent)}.coll-card .coll-meaning{font-size:13px;line-height:1.45;color:var(--text);margin-top:4px}.coll-card .coll-example{margin-top:8px}.vdel{position:absolute;top:11px;right:11px;width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;border-radius:5px}.vdel:hover{background:var(--err-bg);color:var(--err);opacity:1}.vstatus{margin-top:11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vocab-card-more[open]{z-index:20}.vocab-card-more .vocab-more-trigger{width:28px;height:26px;border-radius:5px}.vocab-card-more .vocab-more-menu{top:auto;bottom:calc(100% + 6px);min-width:118px}.vocab-card-more .vocab-more-item:disabled{opacity:.72;cursor:wait}.vocab-card-more .vocab-more-item.loading{color:var(--accent)}.vocab-card-more .vocab-more-item.loading:after{content:"";display:inline-block;width:10px;height:10px;margin-left:8px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:reading-speak-spin .75s linear infinite}.vlbtn{font-size:11px;font-family:JetBrains Mono,monospace;color:var(--text-muted);cursor:pointer;padding:4px 9px;border-radius:5px;border:1px solid var(--border);transition:all .2s;background:none}.vlbtn:hover{border-color:var(--ok);color:var(--ok)}.vlbtn.on{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.vp-tabs{display:flex;gap:5px;padding:7px 12px;border-bottom:1px solid var(--border)}.vtab{flex:1;padding:5px;font-size:11px;border-radius:6px;cursor:pointer;border:1px solid var(--border);color:var(--text-dim);background:var(--card);font-family:Manrope,sans-serif;transition:all .2s;text-align:center}.vtab:hover{border-color:var(--accent);color:var(--accent)}.vtab.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.overlay{position:fixed;inset:0;background:#000000b8;z-index:320;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}.overlay.show{opacity:1;pointer-events:all}.modal{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;width:480px;max-width:calc(100vw - 32px);transform:translateY(18px);transition:transform .2s}.overlay.show .modal{transform:translateY(0)}.fullscreen-guide-copy{display:grid;gap:14px;color:var(--text-dim);font-size:13px;line-height:1.6}.fullscreen-guide-copy strong{color:var(--text)}.fullscreen-guide-steps{display:grid;gap:9px;margin:0;padding-left:22px;color:var(--text)}.fullscreen-guide-steps li{padding-left:3px}.fullscreen-guide-steps li::marker{color:var(--accent);font-family:JetBrains Mono,monospace;font-weight:800}.fullscreen-guide-note{padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-muted);font-size:12px}.mtitle{font-family:Manrope,sans-serif;font-size:19px;font-weight:700;margin-bottom:18px;color:var(--accent)}.stabs{display:flex;gap:6px;margin-bottom:16px}.stab{flex:1;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px;font-family:Manrope,sans-serif;transition:all .2s;text-align:center}.stab:hover{border-color:var(--accent);color:var(--accent)}.stab.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.settings-pane{display:none}.settings-pane.show{display:block}.fg{margin-bottom:14px}.fl{font-size:11px;color:var(--text-muted);margin-bottom:5px;display:block;text-transform:uppercase;letter-spacing:.06em;font-family:JetBrains Mono,monospace}.fi,.fs{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-family:Manrope,sans-serif;font-size:14px;outline:none;transition:border-color .2s}.fi:focus,.fs:focus{border-color:var(--accent)}.fs option{background:var(--card);color:var(--text)}.fhelp{font-size:12px;color:var(--text-dim);line-height:1.45;margin-top:6px}.about-copy{display:grid;gap:13px;color:var(--text-dim);font-size:13px;line-height:1.6}.about-copy strong{color:var(--text)}.about-copy a{color:var(--accent);font-weight:700;text-decoration:none}.about-copy a:hover{text-decoration:underline}.ptabs{display:flex;gap:5px;margin-bottom:14px}.ptab{flex:1;padding:7px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px;font-family:Manrope,sans-serif;transition:all .2s;text-align:center}.ptab.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.mactions{display:flex;gap:9px;margin-top:18px}.bpri{flex:1;padding:9px;background:var(--accent);color:#000;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;font-family:Manrope,sans-serif;transition:opacity .2s}.bpri:hover{opacity:.85}.bsec{padding:9px 18px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;font-size:14px;cursor:pointer;font-family:Manrope,sans-serif;transition:all .2s}.bsec:hover{border-color:var(--text-dim);color:var(--text)}.fc-overlay{position:fixed;inset:0;background:#000000e0;z-index:320;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}.fc-overlay.show{opacity:1;pointer-events:all}.fc-shell{position:relative;display:flex;flex-direction:column;align-items:center}.fc-header{text-align:center;margin-bottom:22px}.fc-header h2{font-family:Manrope,sans-serif;font-size:21px;font-weight:700;color:var(--accent)}.fc-header p{font-size:12px;color:var(--text-muted);margin-top:4px}.fc-wrap{perspective:1000px;width:380px;height:230px;cursor:pointer}.fc{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1)}.fc.flip{transform:rotateY(180deg)}.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px}.front{background:var(--card);border:1px solid var(--accent)}.back{background:var(--card);border:1px solid var(--ok);transform:rotateY(180deg)}.fc-speak{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;justify-content:center;z-index:2;color:var(--text)}.fc-speak .speak-icn{width:14px;height:14px}.fc-word{font-family:Manrope,sans-serif;font-size:34px;font-weight:700;color:var(--accent)}.fc-hint{font-size:12px;color:var(--text-muted);margin-top:7px}.fc-tr{font-size:34px;font-weight:700;line-height:1.25;color:var(--ok);font-family:Manrope,sans-serif}.fc-ex{font-size:12px;color:var(--text-dim);margin-top:9px;text-align:center;font-style:italic}.fc-controls{display:flex;gap:11px;margin-top:22px;align-items:center}.fcbtn{padding:9px 22px;border-radius:9px;border:none;cursor:pointer;font-family:Manrope,sans-serif;font-size:13px;font-weight:500;transition:all .2s}.fcbtn.skip{background:var(--card);color:var(--text-muted);border:1px solid var(--border)}.fcbtn.skip:hover{border-color:var(--text-dim);color:var(--text)}.fcbtn.know{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}.fcbtn.know:hover{background:var(--ok);color:#000}.fc-prog{color:var(--text-muted);font-size:12px;font-family:JetBrains Mono,monospace}.fc-close{position:absolute;top:-4px;right:0;width:34px;height:34px;border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:8px;cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;transition:all .2s}.fc-close:hover{border-color:var(--err);color:var(--err);background:var(--err-bg)}.mobile-panel{position:fixed;inset:0;z-index:190;display:none;flex-direction:column;background:var(--bg);color:var(--text);padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);min-height:var(--app-height,100vh)}body.mobile-vocab-open #mobile-vocab-panel,body.mobile-reading-settings-open #mobile-reading-panel,body.mobile-history-open #mobile-history-panel{display:flex}.mobile-panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.mobile-panel-leading{display:flex;align-items:center;gap:10px;min-width:0}.mobile-panel-title{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:18px;font-weight:800;color:var(--accent)}.mobile-panel-count{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted);font-weight:600}.mobile-panel-head-actions{display:flex;align-items:center;gap:8px}.mobile-panel-close{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text-dim);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-panel-close:hover{border-color:var(--accent);color:var(--accent)}.mobile-panel-back{flex:0 0 38px;font-size:22px;line-height:1}.mobile-panel-tabs{display:flex;gap:7px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.mobile-panel-tab{flex:1;min-height:42px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:13px;font-weight:800;cursor:pointer;transition:all .2s}.mobile-panel-tab:hover,.mobile-panel-tab.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.mobile-panel-actions{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.mobile-panel-actions .vbtn{flex:1;min-height:40px}.mobile-panel-body{flex:1;min-height:0;overflow:auto;padding:12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#mobile-history-tabs{gap:5px;padding:8px}#mobile-history-tabs .mobile-panel-tab{min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px;font-size:11px}.mobile-history-tab-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-history-tab-count{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--surface);color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.mobile-panel-tab.on .mobile-history-tab-count{background:var(--accent);color:#17110a}.mobile-history-new{min-height:42px!important;border-color:var(--accent)!important;background:var(--accent)!important;color:#17110a!important;font-weight:850!important}.mobile-history-list{max-height:none!important;overflow:visible!important;padding:0!important;gap:8px!important}.mobile-history-list .chat-item{align-items:center;padding:13px 12px;border-radius:11px}.mobile-history-list .chat-title{font-size:14px;font-weight:750;line-height:1.4;-webkit-line-clamp:1}.mobile-history-preview{margin-top:4px;color:var(--text-dim);font-size:12px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-history-list .chat-meta{margin-top:5px;font-size:10px}.mobile-history-list .chat-del{width:34px;height:34px;border-radius:9px;font-size:15px}.mobile-vocab-list{display:grid;grid-template-columns:1fr;gap:10px;align-content:start;padding:0!important;overflow:visible!important}.mobile-vocab-list.ngsl-mode{display:block}.mobile-vocab-list .vi{min-height:0;padding:13px}.mobile-vocab-list .vdel{opacity:1}.mobile-vocab-list .vword{font-size:17px}#mobile-vocab-panel[data-vocab-tab=cards] #mobile-vlist{display:none}#mobile-vocab-panel:not([data-vocab-tab=cards]) #mobile-card-list{display:none}.mobile-card-list{display:flex;flex-direction:column;gap:10px}.mobile-card-hero{padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--card);display:grid;gap:8px}.mobile-card-hero-title{font-size:16px;font-weight:800;color:var(--accent)}.mobile-card-hero-copy{font-size:12px;line-height:1.5;color:var(--text-dim)}.mobile-card-start{min-height:42px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:#000;font-family:Manrope,sans-serif;font-size:13px;font-weight:800;cursor:pointer}.mobile-card-grid{display:grid;grid-template-columns:1fr;gap:10px}.mobile-card-item{padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--card);display:grid;gap:8px}.mobile-card-word{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:800;font-size:17px;min-width:0}.mobile-card-word span{min-width:0;overflow-wrap:anywhere}.mobile-card-trans{font-size:14px;color:var(--text)}.mobile-card-example{font-size:12px;color:var(--text-dim);font-style:italic;line-height:1.55}.mobile-reading-controls{display:flex;flex-direction:column;gap:12px}.mobile-reading-controls .reading-main{display:flex;flex-direction:column;gap:12px;padding:0;overflow:visible}.mobile-reading-controls .reading-path{grid-template-columns:1fr}.mobile-reading-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface)}.mobile-reading-footer .reading-summary{flex:1;min-width:0}.mobile-reading-footer .reading-start{height:44px;min-height:44px}.grammar-mobile-close{display:none;margin-left:auto}.mobile-bottom-nav{flex:0 0 auto;position:relative;z-index:210;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--border);background:var(--surface);padding:4px 6px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -8px 22px #00000029}.mobile-nav-btn{min-width:0;min-height:50px;display:flex;align-items:center;justify-content:center;border:0;border-top:2px solid transparent;border-radius:6px;background:transparent;color:var(--text-muted);padding:5px 3px;font-family:Manrope,sans-serif;font-size:11px;font-weight:800;line-height:1.15;cursor:pointer;transition:color .18s,background .18s,border-color .18s}.mobile-nav-btn.has-icon{flex-direction:column;gap:2px;padding-top:3px;padding-bottom:3px}.mobile-nav-icon{display:block;font-size:16px;line-height:1}.mobile-nav-btn.on{border-top-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.pull-refresh{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;z-index:360;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-dim);box-shadow:0 10px 28px #00000057;opacity:0;pointer-events:none;transform:translate(-50%,-54px) scale(.94);transition:opacity .16s,transform .16s,border-color .16s,color .16s}.pull-refresh.show{opacity:1;transform:translate(-50%) scale(1)}.pull-refresh.ready{border-color:var(--accent);color:var(--accent)}.pull-refresh.refreshing{border-color:var(--ok);color:var(--ok)}.pull-refresh-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;transition:transform .12s}.pull-refresh.ready .pull-refresh-icon{transform:rotate(180deg)}.pull-refresh.refreshing .pull-refresh-icon{animation:pull-refresh-spin .7s linear infinite}.pull-refresh-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}@keyframes pull-refresh-spin{to{transform:rotate(360deg)}}.typing{display:flex;gap:4px;align-items:center;padding:11px 15px;background:var(--card);border:1px solid var(--border);border-radius:12px 12px 12px 4px;align-self:flex-start;width:fit-content}.td{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:tb 1.2s ease-in-out infinite}.td:nth-child(2){animation-delay:.2s}.td:nth-child(3){animation-delay:.4s}@keyframes tb{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%) translateY(20px);background:var(--card);border:1px solid var(--accent);color:var(--text);padding:9px 18px;border-radius:8px;font-size:13px;z-index:300;opacity:0;transition:all .3s;pointer-events:none;white-space:normal;line-height:1.45;max-width:min(84vw,860px);text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px;color:var(--text-muted);user-select:none}.welcome h1{font-family:Manrope,sans-serif;font-size:27px;font-weight:700;color:var(--text);margin-bottom:10px}.welcome p{font-size:14px;line-height:1.7;max-width:340px}.welcome .hint{margin-top:18px;font-size:12px;font-family:JetBrains Mono,monospace;color:var(--accent)}.welcome .hint2{margin-top:7px;font-size:12px;color:var(--text-muted)}.welcome-install-card{display:none;width:min(420px,100%);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;margin-top:22px;padding:13px 14px;border:1px solid rgba(240,160,48,.58);border-radius:13px;background:linear-gradient(135deg,#f0a03033,#f0a03014);color:var(--text);font-family:Manrope,sans-serif;text-align:left;cursor:pointer;box-shadow:0 12px 30px #0003;transition:transform .18s,border-color .18s,background .18s}.welcome-install-card:hover,.welcome-install-card:focus-visible{outline:none;transform:translateY(-2px);border-color:var(--accent);background:linear-gradient(135deg,#f0a03047,#f0a0301c)}.welcome-install-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:11px;background:var(--accent);color:#17110a;font-size:25px;font-weight:500}.welcome-install-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.welcome-install-badge{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.welcome-install-copy strong{color:var(--text);font-size:14px;line-height:1.3}.welcome-install-copy small{color:var(--text-dim);font-size:11px;line-height:1.4}.welcome-install-arrow{color:var(--accent);font-size:20px;font-weight:800}.msg.reading-story{max-width:min(900px,96%);width:min(900px,96%);padding:16px 18px;align-self:center;margin-left:auto;margin-right:auto;border-bottom-left-radius:12px}.reading-story-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.reading-story-title{min-width:0;font-size:18px;font-weight:800;color:var(--text);line-height:1.35}.reading-story-audio-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.reading-story-audio-progress{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px;white-space:nowrap}.reading-story-audio-progress.preparing{color:var(--accent)}.reading-story-audio-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:#ffffff06;color:var(--text-dim);font-family:Manrope,sans-serif;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;transition:background .18s,border-color .18s,color .18s,opacity .18s}.reading-story-audio-btn:hover,.reading-story-audio-btn:focus-visible{outline:none;border-color:#f0a03094;background:var(--accent-dim);color:var(--accent)}.reading-story-audio-btn.play{border-color:#75d69a4d;background:#54b47414;color:#9eeab8}.reading-story-audio-btn.play:hover,.reading-story-audio-btn.play:focus-visible{border-color:#7bd99a9e;background:#54b4742e;color:#b8f5ca}.reading-story-audio-btn.loop.on{border-color:#f0a03094;background:var(--accent-dim);color:var(--accent)}.reading-story-audio-btn:disabled{opacity:.42;cursor:not-allowed;pointer-events:none}.reading-story-audio-btn.loading span{visibility:hidden}.reading-story-audio-btn.loading:after{content:"";position:absolute;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:reading-speak-spin .75s linear infinite}.reading-paragraphs{display:flex;flex-direction:column;gap:15px}.reading-paragraph{margin:0 -8px;padding:13px 8px 0;border-top:1px solid rgba(255,255,255,.06);border-radius:10px;transition:background .2s,border-color .2s,box-shadow .2s}.reading-paragraph:first-child{padding-top:0;border-top:none}.reading-paragraph.reading-story-audio-current{border-color:#f0a03059;background:#f0a0300f;box-shadow:0 0 0 1px #f0a03014}.reading-paragraph-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.reading-paragraph-tense{min-width:0;color:var(--accent);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:850;line-height:1.35;letter-spacing:.015em}.reading-label-bubble{display:block;width:100%;padding:9px 12px;margin-top:11px;border:1px solid rgba(117,214,154,.28);border-radius:12px;background:#54b47414;box-shadow:inset 0 1px #ffffff08}.reading-label-summary{display:flex;align-items:center;gap:8px;width:100%;cursor:pointer;list-style:none}.reading-label-summary::-webkit-details-marker{display:none}.reading-label-bubble[open] .reading-label-summary{margin-bottom:8px}.reading-label-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:1px solid rgba(240,160,48,.36);border-radius:999px;background:var(--accent-dim);color:var(--accent);font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.2}.reading-speak-btn{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:140px;min-width:140px;height:28px;padding:0 9px;border-radius:999px;border:1px solid rgba(117,214,154,.28);background:#54b47414;color:#9eeab8;font-family:Manrope,sans-serif;font-size:12px;font-weight:800;line-height:1;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.reading-speak-btn:hover,.reading-speak-btn.on{border-color:#7bd99a9e;background:#54b4742e;color:#b8f5ca}.reading-speak-btn .speak-icn{width:14px;height:14px}.reading-speak-label{display:inline-block;white-space:nowrap}.reading-speak-btn.loading{border-color:#f0a03094;background:#f0a0301f;color:#ffc56f}.reading-speak-btn.loading .speak-icn{display:none}.reading-speak-btn.loading:before{content:"";width:13px;height:13px;flex:0 0 13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:reading-speak-spin .75s linear infinite}@keyframes reading-speak-spin{to{transform:rotate(360deg)}}.reading-label-explanation{display:flex;flex-direction:column;gap:10px;color:var(--text);font-size:13.5px;line-height:1.62;font-weight:650}.reading-explain-overview{color:#7bd99a}.reading-explain-section{display:grid;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#ffffff06}.reading-explain-heading{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:2px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.1);font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.3;font-weight:700}.reading-explain-heading.form{color:#8fd3ff;background:#50aaff1f;border-color:#8fd3ff47}.reading-explain-heading.paragraph{color:#7bd99a;background:#54b4741f;border-color:#7bd99a4d}.reading-explain-heading.markers{color:var(--accent);background:var(--accent-dim);border-color:#f0a03052}.reading-explain-heading.mistake{color:#ff9b9b;background:#ff64641a;border-color:#ff9b9b4d}.reading-explain-heading.examples{color:#cbb6ff;background:#9674ff1f;border-color:#cbb6ff47}.reading-explain-lines{display:grid;gap:4px}.reading-explain-line{color:var(--text);font-weight:650}.reading-explain-formula{font-family:JetBrains Mono,monospace;color:#d8ecff;font-size:12.5px;font-weight:650}.reading-explain-note{color:#7bd99a}.reading-explain-chips{display:flex;flex-wrap:wrap;gap:6px}.reading-explain-chip{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:999px;border:1px solid rgba(123,217,154,.26);background:#7bd99a14;color:#9eeab8;font-weight:750}.reading-explain-chip.marker{border-color:#f0a0304d;background:#f0a0301a;color:var(--accent)}.reading-explain-mistake{display:grid;gap:4px}.reading-explain-wrong{color:#ffb0b0}.reading-explain-correct{color:#9eeab8}.reading-explain-kicker{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px}.reading-paragraph-text{font-size:15px;line-height:1.8;color:var(--text)}.vp.news-mode #vp-divider,.vp.news-mode #saved-chats-panel{display:none}.news-toolbar-meta{margin-left:auto;align-self:center;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px;white-space:nowrap}.news-refresh-chip{font-family:Manrope,sans-serif}.news-refresh-chip:disabled{opacity:.62;cursor:wait}.news-shell{width:min(980px,100%);margin:0 auto;display:flex;flex-direction:column;gap:14px;padding-bottom:12px}.news-feed-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 2px 2px}.news-feed-heading{display:flex;flex-direction:column;gap:4px}.news-feed-kicker{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.news-feed-head h1{font-size:25px;line-height:1.25;color:var(--text)}.news-feed-head p{max-width:620px;color:var(--text-dim);font-size:13px;line-height:1.55}.news-feed-count{flex:0 0 auto;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px;white-space:nowrap}.news-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.news-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:10px 0 2px}.news-page-button{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 9px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:border-color .18s,color .18s,background .18s}.news-page-button:hover,.news-page-button:focus-visible{outline:none;border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.news-page-button.active,.news-page-button.active:disabled{opacity:1;border-color:var(--accent);background:var(--accent);color:#17110a;cursor:default}.news-page-button:disabled{opacity:.4;cursor:not-allowed;background:var(--card);color:var(--text-muted);border-color:var(--border)}.news-page-button.nav{min-width:96px;gap:6px}.news-page-status{flex-basis:100%;text-align:center;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.news-card{position:relative;width:100%;min-width:0;min-height:190px;display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card);color:var(--text);font-family:Manrope,sans-serif;text-align:left;cursor:pointer;box-shadow:var(--card-shadow);transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}.news-card:hover,.news-card:focus-visible{outline:none;transform:translateY(-2px);border-color:#f0a03080;background:linear-gradient(145deg,var(--card),var(--accent-dim));box-shadow:var(--card-shadow-strong)}.news-card.read{box-shadow:none}.news-card.read .news-card-title{color:var(--text-dim)}.news-card-top{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px;line-height:1.3}.news-unread{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border:1px solid rgba(240,160,48,.34);border-radius:999px;background:var(--accent-dim);color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.news-card-source{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.news-card-date{margin-left:auto;white-space:nowrap}.news-card-title{font-size:17px;font-weight:800;line-height:1.38;color:var(--text);transition:color .18s}.news-card-summary{color:var(--text-dim);font-size:13px;line-height:1.58;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.news-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.news-tag{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.news-state{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:34px 20px;border:1px solid var(--border);border-radius:14px;background:var(--card);text-align:center}.news-state strong{font-size:18px;color:var(--text)}.news-state p{max-width:520px;color:var(--text-dim);font-size:13px;line-height:1.55}.news-loader{width:28px;height:28px;border:3px solid var(--border);border-right-color:var(--accent);border-radius:50%;animation:reading-speak-spin .75s linear infinite}.news-action{min-height:36px;padding:7px 13px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text-dim);font-family:Manrope,sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:border-color .18s,color .18s,background .18s}.news-action:hover,.news-action:focus-visible{outline:none;border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.news-action.primary{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.news-reader{width:min(900px,100%);margin:0 auto;display:flex;flex-direction:column;gap:10px;padding-bottom:18px}.news-reader-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.news-reader-position{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.news-article{padding:20px 22px;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--card-shadow)}.news-article-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px}.news-article h1{font-size:26px;line-height:1.3;color:var(--text);margin-bottom:10px}.news-article-lead{color:var(--text-dim);font-size:14px;line-height:1.65;margin-bottom:14px}.news-article .news-tags{margin:0 0 16px}.news-article-body{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border);padding-top:4px}.news-paragraph{padding:16px 0;border-top:1px solid rgba(255,255,255,.06)}.news-paragraph:first-child{border-top:0}.news-paragraph .reading-paragraph-head{margin-bottom:8px}.news-paragraph-text{font-size:15.5px;line-height:1.85}.news-paragraph-heading{font-size:18px;font-weight:800;line-height:1.45;color:var(--text)}.news-boostora-link-row{display:flex;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.news-boostora-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:12px;font-weight:800;text-decoration:none}.news-boostora-link:hover,.news-boostora-link:focus-visible{outline:none;text-decoration:underline}.news-source-link{flex:0 0 auto;color:var(--accent);font-size:12px;font-weight:800;text-decoration:none}.news-source-link:hover{text-decoration:underline}.news-reader-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}@media(max-width:1180px){.news-list{grid-template-columns:1fr}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media(min-width:961px)and (max-width:1260px){.vp{display:flex;width:min(440px,42vw)}.stat-progress{margin-left:12px;margin-right:0}.app-switch{gap:3px;padding:3px}.app-btn{padding:6px 8px;font-size:11px}.hcontrols{gap:4px}.btn-i{width:32px;height:32px}}@media(max-width:960px){html,body{height:var(--app-height,100dvh)}body{--mobile-nav-height: calc(59px + env(safe-area-inset-bottom)) ;min-width:0;overflow-x:hidden;overscroll-behavior-y:auto}header{grid-template-columns:minmax(76px,1fr) auto;grid-template-areas:"brand controls";gap:8px;padding:calc(7px + env(safe-area-inset-top)) 9px 7px}.brand-row{grid-area:brand;width:auto;min-width:0;justify-content:flex-start;gap:6px}.logo{min-width:0;max-width:100%;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo em,.app-switch{display:none}.app-btn{min-width:0;min-height:44px;padding:8px 6px;font-size:12px}.hcontrols{grid-area:controls;justify-self:end;max-width:100%;display:flex;gap:4px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.hcontrols::-webkit-scrollbar{display:none}body.layout-fullscreen-active header{grid-template-columns:1fr;grid-template-areas:"controls";grid-template-rows:auto;gap:4px;padding:calc(5px + env(safe-area-inset-top)) 8px 5px}body.layout-fullscreen-active .brand-row{display:none}.mobile-fullscreen-btn{display:flex}.mobile-news-btn,.mobile-history-btn{display:inline-flex}.mobile-reading-settings-btn{display:none}.mobile-bottom-nav{display:grid}.mobile-panel{inset:0 0 var(--mobile-nav-height);height:auto;min-height:0;padding:env(safe-area-inset-top) 0 0}body.mobile-history-open .mobile-bottom-nav{display:none}body.mobile-history-open #mobile-history-panel{inset:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.mobile-nav-btn{min-height:50px}body.keyboard-open .mobile-bottom-nav{display:none}body.reading-mode-active .mobile-reading-settings-btn{display:flex}#btn-flash,#btn-export{display:none}.level-pill{height:32px;display:flex;align-items:center;justify-content:center;padding:4px 10px;flex:0 0 auto}.btn-i{width:38px;height:38px;flex:0 0 38px;border-radius:9px}.account-btn{width:auto;max-width:min(180px,42vw);padding:0 10px;flex:0 1 auto}.account-label{display:block}#btn-side-toggle,#btn-flash,#btn-export,.mobile-vocab-btn{display:none}.stats{padding:6px 10px;gap:0;scrollbar-width:none}.stats::-webkit-scrollbar{display:none}.stat{padding:0 8px;font-size:10px}.stat:first-child{padding-left:0}.sv{font-size:11px}.stat-progress{min-width:162px;margin-left:0;padding-right:0}.progress-bar{width:72px}.progress-inline-note{display:none}.main{flex-direction:column;min-width:0;min-height:0}.chat-panel{flex:1 1 auto;min-height:0;width:100%}.topics{padding:8px 10px;gap:6px}.topics-label{font-size:9px}.chip{font-size:11px;padding:6px 10px}.messages{padding:12px 10px;gap:10px}.msg,.corr-block{max-width:94%;font-size:14px;line-height:1.55;overflow-wrap:anywhere}.corr-source,.corr-fixed{font-size:14px;line-height:1.55}.corr-text,.corr-change,.corr-why{font-size:13px;line-height:1.55}.sent-row{gap:5px}.sent-btn{padding:4px 7px;font-size:10px}.welcome{padding:26px 18px}.welcome h1{font-size:24px}.welcome p{font-size:14px;max-width:300px}.welcome-install-card{display:grid;width:100%;margin-top:18px}.input-area{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:7px}.iw{min-width:0}.mode-row{align-items:flex-start;gap:0;margin-bottom:6px}.mode-tools{width:100%;display:grid;grid-template-columns:minmax(76px,.65fr) minmax(0,1.35fr);gap:5px}.mode-btns{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%}.mbtn{min-width:0;min-height:40px;padding:6px;font-size:10px;line-height:1.2}.mode-select{width:100%;min-width:0;max-width:none;height:40px;font-size:11px}.custom-mode-select{width:100%;min-width:0;max-width:none}.custom-mode-select .custom-select-trigger{min-height:40px;height:40px;font-size:11px}.ccount{display:none}textarea#inp{min-height:44px;max-height:96px;padding:10px 12px;font-size:16px;line-height:1.45}.ebtn,.sbtn{width:44px;height:44px;border-radius:10px}.emoji-picker{right:-47px;bottom:52px;width:min(272px,calc(100vw - 20px));grid-template-columns:repeat(6,minmax(0,1fr))}.popup{max-width:calc(100vw - 20px);min-width:min(260px,calc(100vw - 20px));padding:10px 12px}.vp{display:none}body.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode){display:flex;width:100%;height:34dvh;min-height:214px;max-height:330px;border-left:0;border-top:1px solid var(--border)}body.sidebar-hidden.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode){display:flex!important}body.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode) #saved-chats-panel,body.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode) #vp-divider{display:none}body.mobile-vocab-open .vlist{grid-template-columns:1fr;padding:8px}body.mobile-vocab-open .vi{min-height:0;padding:12px}body.mobile-vocab-open .vdel{opacity:1}body.mobile-vocab-open .vword{font-size:16px}body.mobile-vocab-open .vtrans{font-size:13px}.vp.grammar-mode{display:none}body.mobile-grammar-open .vp.grammar-mode,body.sidebar-hidden.mobile-grammar-open .vp.grammar-mode{position:fixed;inset:0 0 var(--mobile-nav-height);z-index:190;display:flex!important;width:100%;height:auto;min-height:0;max-height:none;border:0;background:var(--surface);padding:env(safe-area-inset-top) 0 0}body.mobile-grammar-open .vp.grammar-mode .grammar-panel{display:flex;min-height:0}.grammar-mobile-close{display:flex}.vp.reading-mode{display:flex;width:100%;height:42dvh;min-height:238px;max-height:380px;border-left:0;border-top:1px solid var(--border)}body.sidebar-hidden .vp.reading-mode{display:flex!important}.vp.reading-mode .reading-panel{display:flex}.vp.reading-mode .reading-vocab-panel .vlist{grid-template-columns:1fr;padding:8px}.vp.reading-mode .reading-vocab-panel .vi{min-height:0;padding:12px}.vp.reading-mode .reading-vocab-panel .vdel{opacity:1}body.keyboard-open .vp{display:none!important}body.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode),body.reading-mode-active .vp.reading-mode{display:none!important}.grammar-copy{display:none}.grammar-main{padding:8px 10px 0;gap:8px}.grammar-cat-head{padding:10px;font-size:12px}.grammar-topic-btn{min-height:44px;padding:9px 10px 9px 34px;font-size:12px}.grammar-actions{padding:8px 10px 10px;gap:8px;align-items:center}.grammar-meta-value{font-size:12px}.grammar-note{display:none}.grammar-start,.reading-start{height:44px;min-height:44px;padding:0 12px}.grammar-saved-chats-panel,.reading-copy{display:none}.reading-main{padding:8px 10px 0;gap:10px}.reading-path{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-option,.reading-check,.reading-panel-tab,.vtab,.vbtn{min-height:44px}.reading-actions{padding:8px 10px 10px;gap:8px;align-items:center}.reading-saved-chats-panel{display:none}.reading-story-header{flex-direction:column;gap:10px}.reading-story-title{font-size:16px}.reading-story-audio-controls{width:100%;justify-content:flex-start;gap:8px}.reading-story-audio-progress{flex-basis:100%}.reading-story-audio-btn{min-height:44px;padding:0 14px;font-size:12px;gap:7px}.reading-story-audio-btn>[aria-hidden=true]{font-size:15px}.reading-paragraph-tense{font-size:12px}.reading-paragraph-text{font-size:14px;line-height:1.7}.news-toolbar-meta{display:none}.news-shell{gap:10px;padding-bottom:6px}.news-feed-head{align-items:flex-start;gap:8px;padding:0}.news-feed-head h1{font-size:21px}.news-feed-head p{font-size:12.5px}.news-feed-count{padding-top:5px}.news-list{grid-template-columns:1fr;gap:9px}.news-card{min-height:0;padding:14px;border-radius:12px}.news-card-title{font-size:16px}.news-card-summary{font-size:12.5px}.news-pagination{gap:5px;padding-top:8px}.news-page-button{min-width:34px;height:34px;padding:0 7px}.news-page-button.nav{min-width:34px}.news-page-label{display:none}.news-reader{gap:8px}.news-article{padding:16px 14px;border-radius:13px}.news-article h1{font-size:21px}.news-article-lead{font-size:13.5px}.news-paragraph{padding:14px 0}.news-paragraph-text{font-size:14.5px;line-height:1.76}.news-boostora-link-row{justify-content:flex-start}.news-boostora-link{min-height:36px}.news-reader-footer{align-items:stretch}.news-reader-footer .news-action{flex:1}.modal{width:100%;max-width:none;max-height:calc(100dvh - 18px);overflow:auto;border-radius:16px 16px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));align-self:flex-end}.overlay{align-items:flex-end}.mtitle{font-size:18px;margin-bottom:14px}.stabs{gap:5px;margin-bottom:14px}.stab{padding:9px 6px}.fg{margin-bottom:12px}.fi,.fs{font-size:16px;padding:10px 11px}.mactions{gap:8px;margin-top:16px}.bsec,.bpri{min-height:44px}.fc-shell{width:calc(100vw - 24px)}.fc-header{margin-bottom:16px;padding:0 34px}.fc-header h2{font-size:19px}.fc-wrap{width:100%;height:220px}.face{padding:22px}.fc-word,.fc-tr{font-size:28px;overflow-wrap:anywhere;text-align:center}.fc-controls{width:100%;gap:8px;margin-top:16px}.fcbtn{flex:1;padding:10px 12px}.toast{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);padding:9px 12px}}@media(max-width:560px){.reading-path{grid-template-columns:1fr}.vp.reading-mode{height:48dvh;max-height:430px}.reading-story-audio-controls{display:grid;grid-template-columns:repeat(2,max-content);justify-content:flex-start;gap:6px}.reading-story-audio-progress{grid-column:1/-1;flex-basis:auto}.reading-story-audio-btn{width:auto;min-height:38px;padding:0 10px;font-size:12px;gap:5px}.reading-story-audio-btn>[aria-hidden=true]{font-size:14px}}@media(max-width:420px){#mobile-vocab-panel .mobile-panel-title{display:none}#mobile-vocab-panel .mobile-panel-tabs{gap:4px;padding:8px}#mobile-vocab-panel .mobile-panel-tab{min-width:0;min-height:38px;padding:4px;font-size:11px}#mobile-vocab-panel .mobile-panel-head{gap:6px;padding-left:10px;padding-right:10px}#mobile-vocab-panel .mobile-panel-head-actions{gap:5px}#mobile-vocab-panel .vocab-audio-controls{gap:4px}#mobile-vocab-panel .vocab-audio-progress{min-width:26px;font-size:9px}#mobile-vocab-panel .vocab-more-trigger{width:28px;height:28px}.stat:nth-child(4){display:none}.stat-progress{min-width:138px}.progress-inline-level{display:none}.progress-bar{width:84px}.messages{padding-left:8px;padding-right:8px}.msg,.corr-block{max-width:96%;padding:10px 12px}.input-area{padding-left:8px;padding-right:8px}.ebtn{display:none}.emoji-picker{right:0}.fc-wrap{height:205px}}@media(max-width:960px)and (max-height:520px)and (orientation:landscape){header{grid-template-columns:minmax(120px,1fr) auto;grid-template-areas:"brand controls";gap:8px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px}.stats,.topics{display:none}.mode-row{align-items:center;margin-bottom:4px}.mode-tools{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(90px,.5fr) minmax(160px,1fr);align-items:center}.mode-btns,.custom-mode-select{width:100%;min-width:0}body.reading-mode-active .vp.reading-mode,body.mobile-vocab-open .vp:not(.grammar-mode):not(.reading-mode){display:none!important}.messages{padding-top:8px;padding-bottom:8px}}@media(display-mode:standalone),(display-mode:fullscreen){html,body{min-height:100vh}body.keyboard-open{min-height:var(--app-height,100vh)}}
