:root{--bg:#000;--surface:#1c1c1e;--bubble:#2c2c2e;--bubble-user:#3a3a3c;--text:#f5f5f7;--muted:#8e8e93;--line:#3a3a3c;--accent:#0a84ff;--danger:#ff453a;--safe-bottom:env(safe-area-inset-bottom,0px);--vv-height:100dvh;--vv-offset:0px;--sans:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);overscroll-behavior:none;margin:0}body{padding:env(safe-area-inset-top) 0 0}#root{min-height:100%}.shell{top:var(--vv-offset);height:var(--vv-height);background:var(--bg);flex-direction:column;max-width:480px;margin:0 auto;display:flex;position:fixed;left:0;right:0}.page{flex-direction:column;flex:1;min-height:0;display:flex}.thread{--chat-bg:#f3ede7;--chat-user:#cd5c5c;--chat-user-text:#fff;--chat-agent:#fff;--chat-agent-text:#000;--topbar-bg:#fff;--topbar-action:#cd5c5c;--topbar-name:#000;--topbar-settings:#67707e;--sans:"Roboto", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, sans-serif;background:var(--chat-bg);color:var(--chat-agent-text);font-family:var(--sans)}.topbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:52px;padding:10px 16px;display:flex}.topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:17px;font-weight:600;overflow:hidden}.topbar-spacer{flex:1}.topbar-actions{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.icon-btn{width:44px;height:44px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.back,.primary-link{color:var(--accent);font-size:16px;text-decoration:none}button.back{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}button.back:disabled{opacity:.4}.primary-link{font-weight:600}button.primary-link{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}button.primary-link:disabled{opacity:.4}.pad{padding:12px 16px}.muted{color:var(--muted)}.error-text{color:var(--danger);margin:0;font-size:14px}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.chat-list{margin:0;padding:0;list-style:none;overflow:auto}.chat-item{border-bottom:1px solid var(--line);color:inherit;padding:14px 16px;text-decoration:none;display:block}.chat-item-name{margin-bottom:4px;font-weight:600}.chat-item-scenario{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.form{flex-direction:column;gap:14px;padding:16px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.form input,.form textarea,.composer-input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:10px;padding:10px 12px;font-size:16px}.form textarea{resize:vertical}.settings-form{flex:1;min-height:0;padding-bottom:28px;overflow:auto}.settings-form textarea{font-size:14px;line-height:1.45}.settings-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-actions .form-submit{min-width:120px;margin-top:0}.form-submit{height:44px;margin-top:8px}.usage-section{margin-top:28px}.usage-section h2{margin:0 0 8px;font-size:18px}.usage-table-wrap{border:1px solid var(--line);border-radius:10px;margin-top:8px;overflow:auto}.usage-table{border-collapse:collapse;width:100%;font-size:13px}.usage-table th,.usage-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:8px 10px}.usage-table th:nth-child(n+3),.usage-table td:nth-child(n+3){text-align:right;white-space:nowrap}.usage-name{font-weight:600}.usage-scenario{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12px;overflow:hidden}.thread-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 12px 8px;display:flex;overflow:auto}.row{display:flex}.row-agent{justify-content:flex-start;align-items:flex-end;gap:6px}.row-user{justify-content:flex-end}.bubble{text-align:left;background:var(--bubble);max-width:86%;color:var(--text);font:inherit;border:0;border-radius:16px;padding:10px 12px 8px}.bubble-user{background:var(--bubble-user)}.bubble-agent{cursor:default}.bubble-translate{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:13px;display:block}.bubble-translate:disabled{opacity:.6;cursor:default}.word-group{display:inline}.word-hit{color:inherit;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:0;padding:0 1px;display:inline}.word-hit.selected{color:#fff;background:#5e5ce6}.word-hit.selected rt{color:#c7c7ff}.define-tray{border-bottom:1px solid var(--line);align-items:flex-start;gap:8px;padding:10px 12px 8px;display:flex}.define-main{flex:1;min-width:0}.define-pinyin{color:var(--muted);margin:0;font-size:13px}.define-term{margin:2px 0 4px;font-size:28px;font-weight:600;line-height:1.2}.define-en{margin:0;font-size:16px}.define-actions .icon-btn{margin:0}.bubble:disabled{opacity:1}.bubble-rule{border:0;border-top:1px solid #48484a;margin:8px 0 6px}.bubble-en{color:#e5e5ea;margin:0;font-size:15px;line-height:1.45}.bubble-plain{margin:0;font-size:16px;line-height:1.45}.retry-btn{width:32px;height:32px;color:var(--muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.retry-btn:disabled{opacity:.35}.ruby-line{font-size:17px;line-height:2.15}ruby{ruby-position:over;ruby-align:center}rt{color:var(--muted);letter-spacing:0;-webkit-user-select:none;user-select:none;font-size:.52em;font-weight:400}.dock{border-top:1px solid var(--line);padding-bottom:max(8px, var(--safe-bottom));background:#111}.suggestions{flex-wrap:wrap;align-items:flex-start;gap:8px;padding:10px 12px 4px;display:flex;overflow:visible}.suggestions .bubble-translate{text-align:left;flex:100%}.suggestion-plain{margin:0;font-size:15px;line-height:1.4}.suggestion-card{background:var(--bubble);cursor:pointer;text-align:left;border-radius:16px;width:fit-content;max-width:100%;padding:10px 12px}.suggestion-en{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.4}.composer{flex-direction:column;gap:8px;padding:8px 12px 4px;display:flex}.suggest-btn,.send-btn{color:var(--accent);font:inherit;background:0 0;border:0;padding:0;font-weight:600}.suggest-btn{align-self:flex-start;padding:2px 0;font-size:14px}.suggest-btn.active{color:#fff}.composer-row{align-items:center;gap:8px;display:flex}.composer-input{flex:1}.send-btn{height:40px;padding:0 6px}.send-btn:disabled,.suggest-btn:disabled{opacity:.4}.typing{align-self:flex-start}.unlock{text-align:center;justify-content:center;align-items:center;padding:24px 16px}.unlock-card{width:100%;max-width:280px}.unlock h1{color:var(--chat-agent-text);margin:0 0 8px;font-size:43px;font-weight:700;line-height:1.2}.unlock-sub{color:var(--topbar-settings);margin:0 0 24px;font-size:15px;line-height:1.4}.unlock-google{background:var(--chat-user);width:100%;height:48px;color:var(--chat-user-text);font:inherit;border-radius:24px;justify-content:center;align-items:center;font-size:16px;font-weight:600;text-decoration:none;display:flex}.thread .topbar{background:var(--topbar-bg);border-bottom:1px solid #0000000f;position:relative}.thread .topbar h1{text-align:center;max-width:calc(100% - 200px);color:var(--topbar-name);text-overflow:ellipsis;white-space:nowrap;flex:none;margin:0;font-size:17px;font-weight:500;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.thread .topbar .back,.thread .topbar-actions{z-index:1;position:relative}.thread .back,.thread .primary-link{color:var(--topbar-action)}.thread .icon-btn,.thread .muted{color:var(--topbar-settings)}.thread .bubble-user{background:var(--chat-user);color:var(--chat-user-text)}.thread .bubble-agent{background:var(--chat-agent);color:var(--chat-agent-text)}.thread .bubble-user .bubble-translate,.thread .bubble-user .bubble-en{color:var(--chat-user-text)}.thread .bubble-agent .bubble-translate,.thread .bubble-agent .bubble-en{color:var(--chat-agent-text)}.thread .bubble-user rt{color:#ffffffbf}.thread .bubble-agent rt{color:#00000073}.thread .bubble-user .bubble-rule{border-top-color:#ffffff59}.thread .bubble-agent .bubble-rule{border-top-color:#0000001f}.thread .bubble-user .error-text{color:var(--chat-user-text);margin-top:6px}.thread .bubble-user .word-hit.selected{color:#fff;background:#00000040}.thread .bubble-user .word-hit.selected rt{color:#ffffffd9}.thread .bubble-agent .word-hit.selected{background:var(--chat-bg);color:#000}.thread .bubble-agent .word-hit.selected rt{color:var(--topbar-settings)}.thread .dock{background:var(--chat-bg);border-top-color:#00000014}.thread .suggestion-card{background:var(--chat-user);color:var(--chat-user-text);border-radius:16px}.thread .suggestion-card rt{color:#ffffffbf}.thread .suggestion-en,.thread .suggestion-card .bubble-translate,.thread .suggestion-card .bubble-en{color:var(--chat-user-text)}.thread .suggestion-card .bubble-rule{border-top-color:#ffffff59}.thread .composer-input{color:#000;background:#fff;border-color:#e0d6ce}.thread .suggest-btn,.thread .send-btn,.thread .suggest-btn.active{color:var(--chat-user)}.thread .define-tray{color:#000;border-bottom-color:#00000014}.thread .define-pinyin,.thread .define-actions .icon-btn,.thread .retry-btn{color:var(--topbar-settings)}.thread-split{border:0;border-top:2px solid #c4c0bb;align-self:stretch;height:0;margin:16px 12px}.wizard-body{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:28px 20px 16px;display:flex;overflow:auto}.wizard-stack{width:100%}.wizard-question{color:#000;text-align:center;margin:0 0 24px;font-size:28px;font-weight:700;line-height:1.2}.wizard-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.wizard-bubble{background:var(--chat-user);color:var(--chat-user-text);min-height:56px;font:inherit;cursor:pointer;text-align:center;white-space:normal;border:0;border-radius:24px;padding:14px 16px;font-size:16px;font-weight:600;line-height:1.3}.wizard-bubble.selected{box-shadow:inset 0 0 0 2px #000}.wizard-bubble:disabled{opacity:.4}.thread .chat-list{flex:1;min-height:0}.thread .chat-item{color:var(--chat-agent-text);border-bottom-color:#00000014}.thread .chat-item-name{color:var(--topbar-name);font-weight:500}.thread .chat-item-scenario,.thread .empty{color:var(--topbar-settings)}
