.ch-context-overlay[data-v-cec2f720]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.ch-context-menu[data-v-cec2f720]{position:fixed;z-index:201;background:#1a2236;border:1px solid #1e293b;border-radius:12px;padding:6px;min-width:170px;box-shadow:0 8px 24px #0006;animation:fade-in .15s ease-out}.ch-context-item[data-v-cec2f720]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13px;color:#f1f5f9;cursor:pointer;transition:background .1s}.ch-context-item[data-v-cec2f720]:hover{background:#a78bfa1f}.ch-context-item--danger[data-v-cec2f720]{color:#ef4444}.ch-context-item--danger[data-v-cec2f720]:hover{background:#ef44441f}.ch-context-divider[data-v-cec2f720]{height:1px;background:#1e293b;margin:4px 6px}.ch-confirm-overlay[data-v-fe0c793f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:300;animation:fade-in .15s ease-out}.ch-confirm-dialog[data-v-fe0c793f]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1a2236;border:1px solid #1e293b;border-radius:16px;padding:24px;min-width:280px;max-width:90vw;z-index:301;box-shadow:0 16px 48px #0006;animation:confirm-in .2s ease-out}.ch-confirm-text[data-v-fe0c793f]{font-size:14px;color:#f1f5f9;margin-bottom:20px;line-height:1.5;text-align:center}.ch-confirm-actions[data-v-fe0c793f]{display:flex;gap:10px;justify-content:center}.ch-confirm-btn[data-v-fe0c793f]{padding:10px 24px;border-radius:10px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}.ch-confirm-btn[data-v-fe0c793f]:hover{opacity:.85}.ch-confirm-btn--cancel[data-v-fe0c793f]{background:#1a2236;color:#94a3b8;border:1px solid #1e293b}.ch-confirm-btn--danger[data-v-fe0c793f]{background:#ef4444;color:#fff}.ch-layout{display:flex;height:100%}.ch-main-area{flex:1;display:flex;flex-direction:column;min-width:0;height:100%}.ch-header[data-v-383e2deb]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #1e293b;background:#0f172a;flex-shrink:0}.ch-back-btn[data-v-383e2deb]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:8px;display:flex;align-items:center}.ch-back-btn[data-v-383e2deb]:hover{color:#a78bfa}.ch-user-info[data-v-383e2deb]{flex:1;min-width:0;display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none}.ch-user-info:hover .ch-name[data-v-383e2deb]{color:#a78bfa}.ch-name[data-v-383e2deb]{font-size:15px;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.ch-status[data-v-383e2deb]{font-size:11px;color:#22c55e;display:flex;align-items:center;gap:4px}.ch-status[data-v-383e2deb]:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;animation:pulse-dot 1.5s ease-in-out infinite}.ch-header-actions[data-v-383e2deb]{display:flex;align-items:center;gap:4px}.ch-streak-btn[data-v-383e2deb]{background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:2px;padding:4px 8px;border-radius:12px;transition:background .15s}.ch-streak-btn[data-v-383e2deb]:hover{background:#a78bfa1a}.ch-streak-fire[data-v-383e2deb]{font-size:14px}.ch-streak-count[data-v-383e2deb]{font-size:12px;font-weight:600;color:#a78bfa}.ch-hamburger[data-v-383e2deb]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center}.ch-hamburger[data-v-383e2deb]:hover{background:#1a2236;color:#f1f5f9}.typing-dots[data-v-4db637ac]{display:flex;align-items:center;gap:4px}.dot[data-v-4db637ac]{display:inline-block;width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:pulse-dot 1.4s ease-in-out infinite both}.dot-1[data-v-4db637ac]{animation-delay:0s}.dot-2[data-v-4db637ac]{animation-delay:.16s}.dot-3[data-v-4db637ac]{animation-delay:.32s}.ch-msg[data-v-a73eea32]{display:flex;gap:8px;animation:msg-in .25s ease-out both}.ch-msg--me[data-v-a73eea32]{justify-content:flex-end}.ch-msg--me .ch-bubble[data-v-a73eea32]{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;border-bottom-right-radius:4px}.ch-msg--them[data-v-a73eea32]{justify-content:flex-start;align-items:flex-start}.ch-msg--them .ch-bubble[data-v-a73eea32]{background:#1e293b;color:#f1f5f9;border-bottom-left-radius:4px}.ch-msg-avatar-wrap[data-v-a73eea32]{flex-shrink:0}.ch-msg-avatar-btn[data-v-a73eea32]{background:none;border:none;padding:0;cursor:pointer;display:flex}.ch-msg-avatar-btn:hover .ch-msg-avatar[data-v-a73eea32]{opacity:.8}.ch-msg-avatar[data-v-a73eea32]{width:32px;height:32px;object-fit:cover;object-position:top;display:block;transition:opacity .15s}.ch-msg-body[data-v-a73eea32]{display:flex;flex-direction:column;max-width:75%}.ch-bubble[data-v-a73eea32]{padding:10px 14px;border-radius:8px;line-height:1.55;font-size:14px;word-break:break-word}.ch-bubble[data-v-a73eea32] p{margin:0 0 6px}.ch-bubble[data-v-a73eea32] p:last-child{margin-bottom:0}.ch-bubble[data-v-a73eea32] strong{font-weight:600}.ch-bubble[data-v-a73eea32] em{font-style:italic}.ch-bubble[data-v-a73eea32] br{display:block;content:"";margin:4px 0}.ch-bubble[data-v-a73eea32] blockquote{margin:4px 0 8px;padding:6px 10px;background:#fbbf2414;border-left:3px solid #fbbf24;border-radius:4px;font-size:13px}.ch-bubble[data-v-a73eea32] h2{margin:10px 0 0;font-size:15px;font-weight:600;text-align:center}.ch-bubble[data-v-a73eea32] h2 a{color:#a78bfa;text-decoration:none;display:inline-block;padding:8px 24px;border:1px solid #a78bfa;border-radius:20px;transition:background .2s,color .2s;font-size:14px}.ch-bubble[data-v-a73eea32] h2 a:hover{background:#a78bfa;color:#fff!important}.ch-messages[data-v-03c0856a]{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px}.ch-msg[data-v-03c0856a]{display:flex;gap:8px;animation:msg-in .25s ease-out both}.ch-msg--me[data-v-03c0856a]{justify-content:flex-end}.ch-msg--me .ch-bubble[data-v-03c0856a]{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;border-bottom-right-radius:4px}.ch-msg--them[data-v-03c0856a]{justify-content:flex-start;align-items:flex-start}.ch-msg--them .ch-bubble[data-v-03c0856a]{background:#1e293b;color:#f1f5f9;border-bottom-left-radius:4px}.ch-msg-avatar-wrap[data-v-03c0856a]{flex-shrink:0}.ch-msg-avatar-btn[data-v-03c0856a]{background:none;border:none;padding:0;cursor:pointer;display:flex}.ch-msg-avatar-btn:hover .ch-msg-avatar[data-v-03c0856a]{opacity:.8}.ch-msg-avatar[data-v-03c0856a]{width:32px;height:32px;object-fit:cover;object-position:top;display:block;transition:opacity .15s}.ch-msg-body[data-v-03c0856a]{display:flex;flex-direction:column;max-width:75%}.ch-bubble[data-v-03c0856a]{padding:10px 14px;border-radius:8px;line-height:1.55;font-size:14px;word-break:break-word}.ch-bubble[data-v-03c0856a] p{margin:0 0 6px}.ch-bubble[data-v-03c0856a] p:last-child{margin-bottom:0}.ch-bubble[data-v-03c0856a] strong{font-weight:600}.ch-bubble[data-v-03c0856a] em{font-style:italic}.ch-bubble[data-v-03c0856a] br{display:block;content:"";margin:4px 0}.ch-bubble--typing[data-v-03c0856a]{min-width:60px;display:flex;align-items:center;justify-content:center;gap:4px;padding:14px 16px}.ch-intimacy-bar[data-v-03c0856a]{display:flex;align-items:center;gap:8px;padding:6px 14px;border-top:1px solid #1e293b;background:#0f172a;flex-shrink:0}.ch-intimacy-bar-label[data-v-03c0856a]{font-size:11px;color:#a78bfa;font-weight:500;white-space:nowrap;flex-shrink:0}.ch-intimacy-bar-track[data-v-03c0856a]{flex:1;height:3px;background:#475569;border-radius:2px;overflow:hidden}.ch-intimacy-bar-fill[data-v-03c0856a]{height:100%;background:#a78bfa;border-radius:2px;transition:width .5s ease-out;min-width:0}.ch-input-area[data-v-9df697a1]{flex-shrink:0}.ch-quota-banner[data-v-9df697a1]{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;font-size:13px;color:#fbbf24;background:#fbbf240f;border-top:1px solid rgba(251,191,36,.1);cursor:default}.ch-quota-banner--exhausted[data-v-9df697a1]{cursor:pointer;background:linear-gradient(135deg,#a78bfa1f,#fbbf2414);border-top:1px solid rgba(167,139,250,.2);transition:background .2s}.ch-quota-banner--exhausted[data-v-9df697a1]:hover{background:linear-gradient(135deg,#a78bfa38,#fbbf2424)}.ch-quota-banner--exhausted:hover .ch-quota-banner-arrow[data-v-9df697a1]{transform:translate(3px)}.ch-quota-banner--exhausted[data-v-9df697a1]:active{background:linear-gradient(135deg,#a78bfa4d,#fbbf242e)}.ch-quota-banner-text[data-v-9df697a1]{flex:1;text-align:center;line-height:1.4}.ch-quota-banner-arrow[data-v-9df697a1]{flex-shrink:0;color:#a78bfa;transition:transform .2s;display:flex}.ch-input[data-v-9df697a1]{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;border-top:1px solid #1e293b;background:#0f172a}textarea[data-v-9df697a1]{flex:1;background:#1a2236;border:1px solid #1e293b;border-radius:12px;padding:10px 14px;color:#f1f5f9;font-size:14px;font-family:inherit;line-height:1.4;resize:none;outline:none;min-height:42px;max-height:120px}textarea[data-v-9df697a1]::placeholder{color:#64748b}textarea[data-v-9df697a1]:focus{border-color:#a78bfa}textarea[data-v-9df697a1]:disabled{opacity:.35;cursor:not-allowed}.ch-send[data-v-9df697a1]{width:42px;height:42px;border-radius:50%;border:none;background:#a78bfa;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .2s}.ch-send[data-v-9df697a1]:disabled{opacity:.25;cursor:not-allowed}.ch-send[data-v-9df697a1]:hover:not(:disabled){opacity:.85}.ch-reward-overlay[data-v-2d90bfb3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:600;display:flex;align-items:center;justify-content:center}.ch-reward-panel[data-v-2d90bfb3]{background:#1a2236;border:1px solid #1e293b;border-radius:20px;width:340px;max-width:85vw;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.ch-reward-header[data-v-2d90bfb3]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #1e293b}.ch-reward-header h2[data-v-2d90bfb3]{font-size:16px;font-weight:600;color:#f1f5f9}.ch-reward-close[data-v-2d90bfb3]{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:18px;padding:4px}.ch-reward-loading[data-v-2d90bfb3],.ch-reward-login[data-v-2d90bfb3]{padding:40px 20px;text-align:center;color:#475569;font-size:14px}.ch-reward-body[data-v-2d90bfb3]{padding:20px}.ch-reward-streak[data-v-2d90bfb3]{text-align:center;font-size:18px;font-weight:600;color:#a78bfa;margin-bottom:20px}.ch-reward-grid[data-v-2d90bfb3]{display:flex;flex-direction:column;gap:8px}.ch-reward-item[data-v-2d90bfb3]{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;border:1px solid #1e293b;transition:background .15s}.ch-reward-item--current[data-v-2d90bfb3]{border-color:#a78bfa;background:#a78bfa14}.ch-reward-item--past[data-v-2d90bfb3]{opacity:.5}.ch-reward-item-icon[data-v-2d90bfb3]{font-size:20px;width:32px;text-align:center}.ch-reward-item-day[data-v-2d90bfb3]{font-size:11px;color:#475569;min-width:40px}.ch-reward-item-label[data-v-2d90bfb3]{flex:1;font-size:13px;color:#f1f5f9}.ch-reward-claim-btn[data-v-2d90bfb3]{padding:6px 14px;border-radius:8px;background:#a78bfa;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:opacity .15s}.ch-reward-claim-btn[data-v-2d90bfb3]:hover{opacity:.85}.ch-reward-claimed[data-v-2d90bfb3]{padding:6px 14px;border-radius:8px;background:transparent;border:1px solid #475569;color:#475569;font-size:12px}.ch-chat-view[data-v-ccc58112]{flex:1;display:flex;flex-direction:column;min-width:0;background:#111827;height:100%}.ch-level-up-banner[data-v-ccc58112]{padding:8px 14px;background:linear-gradient(90deg,#a78bfa26,#a78bfa0d);border-bottom:1px solid rgba(167,139,250,.2);text-align:center;animation:fade-in .3s ease-out;flex-shrink:0}.ch-level-up-text[data-v-ccc58112]{font-size:13px;font-weight:600;color:#a78bfa}.ch-conv-page[data-v-934aa7f5]{flex:1;display:flex;flex-direction:column;min-width:0;background:#111827;height:100%}.ch-conv-page-header[data-v-934aa7f5]{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid #1e293b;background:#0f172a;flex-shrink:0}.ch-conv-page-header h2[data-v-934aa7f5]{font-size:17px;font-weight:600;color:#f1f5f9}.ch-conv-page-body[data-v-934aa7f5]{flex:1;overflow-y:auto;padding:8px}.ch-conv-status[data-v-934aa7f5]{text-align:center;padding:24px 16px;font-size:13px;color:#475569}.ch-conv-item[data-v-934aa7f5]{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:10px;cursor:pointer;transition:background .15s;user-select:none;-webkit-user-select:none}.ch-conv-item[data-v-934aa7f5]:hover{background:#1a2236}.ch-conv-item[data-v-934aa7f5]:active{background:#a78bfa14}.ch-conv-item-avatar-wrap[data-v-934aa7f5]{position:relative;width:48px;height:48px;flex-shrink:0}.ch-conv-item-avatar[data-v-934aa7f5]{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:top}.ch-press-ring[data-v-934aa7f5]{position:absolute;top:0;right:0;bottom:0;left:0;width:48px;height:48px}.ch-press-ring-bg[data-v-934aa7f5]{fill:none;stroke:#475569;stroke-width:2;opacity:.3}.ch-press-ring-fg[data-v-934aa7f5]{fill:none;stroke:#a78bfa;stroke-width:2.5;stroke-dasharray:113.097;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}.ch-conv-item-info[data-v-934aa7f5]{flex:1;min-width:0}.ch-conv-item-name[data-v-934aa7f5]{display:flex;align-items:center;gap:4px;font-size:15px;font-weight:500;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.ch-pin-icon[data-v-934aa7f5]{color:#a78bfa;flex-shrink:0}.ch-conv-item-preview[data-v-934aa7f5]{display:block;font-size:13px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ch-conv-item-time[data-v-934aa7f5]{font-size:11px;color:#475569;flex-shrink:0;align-self:flex-start;margin-top:2px}.ch-char-card-page[data-v-f9978a32]{flex:1;display:flex;flex-direction:column;height:100%;background:#111827;overflow-y:auto}.ch-char-card-header-bar[data-v-f9978a32]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #1e293b;background:#0f172a;flex-shrink:0}.ch-char-card-header-bar h2[data-v-f9978a32]{font-size:16px;font-weight:600;color:#f1f5f9}.ch-char-card-back[data-v-f9978a32]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:8px;display:flex;align-items:center}.ch-char-card-back[data-v-f9978a32]:hover{color:#a78bfa}.ch-char-card-loading[data-v-f9978a32]{text-align:center;padding:48px 16px;color:#475569;font-size:14px}.ch-char-card-body[data-v-f9978a32]{flex:1;display:flex;flex-direction:column;align-items:center;padding:40px 24px 32px;max-width:480px;margin:0 auto;width:100%}.ch-char-card-avatar-section[data-v-f9978a32]{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.ch-char-card-avatar[data-v-f9978a32]{width:100px;height:100px;border-radius:50%;object-fit:cover;object-position:top;margin-bottom:16px;box-shadow:0 4px 20px #0000004d}.ch-char-card-name[data-v-f9978a32]{font-size:20px;font-weight:600;color:#f1f5f9;margin-bottom:6px;text-align:center}.ch-char-card-status[data-v-f9978a32]{font-size:13px;color:#22c55e;display:flex;align-items:center;gap:4px}.ch-char-card-status[data-v-f9978a32]:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;animation:pulse-dot 1.5s ease-in-out infinite}.ch-char-card-desc[data-v-f9978a32]{font-size:13px;color:#94a3b8;line-height:1.6;text-align:center;margin-bottom:24px;padding:0 8px}.ch-char-card-attrs[data-v-f9978a32]{width:100%;border-radius:12px;border:1px solid #1e293b;overflow:hidden;margin-bottom:24px}.ch-char-card-attr[data-v-f9978a32]{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #1e293b}.ch-char-card-attr[data-v-f9978a32]:last-child{border-bottom:none}.ch-char-card-attr-label[data-v-f9978a32]{font-size:13px;color:#475569}.ch-char-card-attr-value[data-v-f9978a32]{font-size:13px;color:#f1f5f9;font-weight:500}.ch-char-card-section[data-v-f9978a32]{width:100%;margin-bottom:24px;text-align:center}.ch-char-card-section-title[data-v-f9978a32]{font-size:14px;font-weight:600;color:#a78bfa;margin-bottom:10px}.ch-char-card-relation[data-v-f9978a32]{font-size:14px;color:#f1f5f9;line-height:1.6;text-align:center;margin-bottom:12px;padding:14px;border-radius:12px;background:#a78bfa0f;border:1px solid rgba(167,139,250,.12)}.ch-char-card-intimacy-bar-track[data-v-f9978a32]{width:100%;height:6px;background:#475569;border-radius:3px;overflow:hidden;margin-bottom:8px}.ch-char-card-intimacy-bar-fill[data-v-f9978a32]{height:100%;background:linear-gradient(90deg,#a78bfa,#c084fc);border-radius:3px;transition:width .5s ease-out}.ch-char-card-intimacy-stats[data-v-f9978a32]{display:flex;justify-content:center;gap:16px}.ch-char-card-intimacy-stat[data-v-f9978a32]{font-size:12px;color:#94a3b8}.ch-char-card-streak[data-v-f9978a32]{font-size:16px;color:#a78bfa;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:12px;border:1px solid #1e293b}.ch-streak-fire[data-v-f9978a32]{font-size:20px}.ch-char-card-actions[data-v-f9978a32]{width:100%}.ch-char-card-btn[data-v-f9978a32]{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:12px;border:1px solid #a78bfa;background:transparent;color:#a78bfa;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.ch-char-card-btn[data-v-f9978a32]:hover{background:#a78bfa1a}.ch-char-card-btn[data-v-f9978a32]:active{background:#a78bfa2e}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,PingFang SC,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:#0a0e17;color:#f1f5f9;-webkit-font-smoothing:antialiased}#app{height:100dvh;width:100%;max-width:768px;margin:0 auto;background:#111827;position:relative;overflow:hidden}[v-cloak]{display:none}.ch-messages::-webkit-scrollbar,.ch-sidebar-body::-webkit-scrollbar,.ch-menu-body::-webkit-scrollbar{width:4px}.ch-messages::-webkit-scrollbar-track,.ch-sidebar-body::-webkit-scrollbar-track,.ch-menu-body::-webkit-scrollbar-track{background:transparent}.ch-messages::-webkit-scrollbar-thumb,.ch-sidebar-body::-webkit-scrollbar-thumb,.ch-menu-body::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
