.role-avatar-image[data-v-0b67a1de]{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.character-life[data-v-60e2bddf]{margin-top:.25rem;font-size:.75rem;line-height:1.5;max-width:30rem}.character-life summary[data-v-60e2bddf]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(52vw,30rem)}.character-life summary[data-v-60e2bddf]:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}.life-label[data-v-60e2bddf]{font-weight:600}.life-description[data-v-60e2bddf]{display:grid;gap:.35rem;padding:.55rem 0;white-space:normal;overflow-wrap:anywhere}.life-loading[data-v-60e2bddf]{display:block;margin-top:.25rem}.life-unavailable[data-v-60e2bddf]{display:flex;align-items:center;gap:.5rem}.life-unavailable button[data-v-60e2bddf]{min-height:44px;min-width:44px;font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-decoration:underline}@media(max-width:600px){.life-description[data-v-60e2bddf]{max-width:29ch}}.goal-progress[data-v-07be0e8b]{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border-subtle);font-size:13px;line-height:1.6}summary[data-v-07be0e8b]{cursor:pointer;min-height:36px}.progress-status[data-v-07be0e8b]{font-weight:600;margin:6px 0}.progress-help[data-v-07be0e8b],small[data-v-07be0e8b]{color:var(--text-secondary);font-size:12px}.progress-summary small[data-v-07be0e8b]{display:block}.progress-actions[data-v-07be0e8b]{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}button[data-v-07be0e8b]{min-height:44px;padding:8px 10px;color:inherit;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:5px;font:inherit}button[data-v-07be0e8b]:disabled{opacity:.5}.progress-form[data-v-07be0e8b]{display:grid;gap:10px;padding:12px 0}label[data-v-07be0e8b]{display:grid;gap:6px}input[data-v-07be0e8b]:not([type=checkbox]),textarea[data-v-07be0e8b]{width:100%;min-width:0;padding:9px;font:inherit;background:var(--bg-app);color:inherit;border:1px solid var(--border-strong);border-radius:4px}.progress-consent[data-v-07be0e8b]{display:flex;align-items:flex-start;gap:8px}.progress-consent input[data-v-07be0e8b]{margin-top:6px;flex:0 0 auto}.progress-error[data-v-07be0e8b]{color:var(--error)}.progress-stages[data-v-07be0e8b],.progress-history ol[data-v-07be0e8b]{padding-left:22px;overflow-wrap:anywhere}.progress-stages span[data-v-07be0e8b]{font-size:11px;color:var(--text-secondary)}.progress-history li[data-v-07be0e8b]{margin-bottom:12px}.progress-history p[data-v-07be0e8b]{margin:0}button[data-v-07be0e8b]:focus-visible,input[data-v-07be0e8b]:focus-visible,textarea[data-v-07be0e8b]:focus-visible,summary[data-v-07be0e8b]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.journal-backdrop[data-v-f0f6145c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;justify-content:flex-end;background:#00000059}.journal-panel[data-v-f0f6145c]{width:min(480px,100vw);height:100%;overflow-y:auto;overscroll-behavior:contain;padding:22px;background:var(--bg-app);color:var(--text-primary);outline:none}.journal-heading[data-v-f0f6145c]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.journal-heading h2[data-v-f0f6145c]{font-size:21px;margin:6px 0 16px}.journal-heading small[data-v-f0f6145c],.journal-hint[data-v-f0f6145c],.journal-actions small[data-v-f0f6145c],.journal-editor small[data-v-f0f6145c]{color:var(--text-secondary);font-size:13px;line-height:1.6}.journal-hint[data-v-f0f6145c]{margin-bottom:16px}.journal-actions[data-v-f0f6145c]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0}.journal-panel button[data-v-f0f6145c]{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:6px;color:inherit;background:var(--bg-subtle);font:inherit;font-size:13px}.journal-panel button[data-v-f0f6145c]:disabled{opacity:.5}.journal-panel button[data-v-f0f6145c]:focus-visible,.journal-panel input[data-v-f0f6145c]:focus-visible,.journal-panel select[data-v-f0f6145c]:focus-visible,.journal-panel textarea[data-v-f0f6145c]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.journal-editor[data-v-f0f6145c]{padding:16px 0;border-block:1px solid var(--border-subtle);margin:16px 0;display:grid;gap:12px}.journal-editor h3[data-v-f0f6145c]{font-size:16px;margin:0}.journal-editor label[data-v-f0f6145c]{display:grid;gap:5px;font-size:14px}.journal-editor input[data-v-f0f6145c],.journal-editor textarea[data-v-f0f6145c],.journal-editor select[data-v-f0f6145c]{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:5px;padding:10px;background:var(--bg-app);color:inherit;font:inherit}.journal-editor textarea[data-v-f0f6145c]{resize:vertical}.journal-item[data-v-f0f6145c]{border-top:1px solid var(--border-subtle);padding:16px 0;overflow-wrap:anywhere}.journal-item-heading[data-v-f0f6145c]{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.journal-status[data-v-f0f6145c]{white-space:nowrap;font-size:12px;color:var(--text-muted)}.journal-content[data-v-f0f6145c]{margin:8px 0;font-size:14px;line-height:1.6;white-space:pre-wrap}.journal-notice[data-v-f0f6145c]{font-size:13px;line-height:1.6}.journal-error[data-v-f0f6145c]{color:var(--error);line-height:1.6}.journal-empty[data-v-f0f6145c]{padding:26px 0;color:var(--text-muted);line-height:1.6}.journal-delete[data-v-f0f6145c]{background:var(--bg-subtle);padding:12px;font-size:13px;line-height:1.6}.journal-delete button[data-v-f0f6145c]{margin-right:8px}@media(max-width:600px){.journal-panel[data-v-f0f6145c]{padding:16px;width:100%}}.followup-backdrop[data-v-7360ea48]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;justify-content:flex-end;background:#00000059}.followup-panel[data-v-7360ea48]{width:min(480px,100vw);height:100%;padding:22px;overflow-y:auto;overscroll-behavior:contain;background:var(--bg-app);color:var(--text-primary);outline:none;overflow-wrap:anywhere}header[data-v-7360ea48]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}h2[data-v-7360ea48]{font-size:21px;margin:6px 0 16px}h3[data-v-7360ea48]{font-size:16px;margin:16px 0 4px}p[data-v-7360ea48],small[data-v-7360ea48]{font-size:13px;line-height:1.65}.hint[data-v-7360ea48],small[data-v-7360ea48]{color:var(--text-secondary)}button[data-v-7360ea48]{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:6px;color:inherit;background:var(--bg-subtle);font:inherit;font-size:13px}button[data-v-7360ea48]:disabled{opacity:.5}button[data-v-7360ea48]:focus-visible,input[data-v-7360ea48]:focus-visible,select[data-v-7360ea48]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}form[data-v-7360ea48]{display:grid;gap:12px;border-block:1px solid var(--border-subtle);padding:12px 0 18px;margin:14px 0}label[data-v-7360ea48]{display:grid;gap:5px;font-size:13px;line-height:1.6}input[data-v-7360ea48],select[data-v-7360ea48]{box-sizing:border-box;min-width:0;width:100%;min-height:42px;border:1px solid var(--border-strong);border-radius:5px;padding:8px;font:inherit;color:inherit;background:var(--bg-app)}.check[data-v-7360ea48]{display:flex;align-items:flex-start;gap:9px}.check input[data-v-7360ea48]{width:18px;height:18px;min-height:18px;flex-shrink:0;margin-top:3px}.time-fields[data-v-7360ea48]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.followup-preview[data-v-7360ea48]{margin:0;padding:12px;border-left:3px solid var(--border-strong);background:var(--bg-subtle);font-size:14px;line-height:1.7}.followup-item[data-v-7360ea48]{border-top:1px solid var(--border-subtle);padding:16px 0}.followup-item>div[data-v-7360ea48]{display:flex;justify-content:space-between;gap:12px}.followup-item span[data-v-7360ea48]{white-space:nowrap;font-size:12px;color:var(--text-muted)}.followup-item small[data-v-7360ea48]{display:block;margin-bottom:8px}.followup-item p[data-v-7360ea48]{margin:8px 0}.error[data-v-7360ea48]{color:var(--error)}@media(max-width:600px){.followup-panel[data-v-7360ea48]{width:100%;padding:16px}}.proactive-backdrop[data-v-1a1fa758]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;justify-content:flex-end;background:#00000059}.proactive-panel[data-v-1a1fa758]{width:min(480px,100vw);height:100%;overflow:auto;padding:22px;background:var(--bg-app);color:var(--text-primary)}header[data-v-1a1fa758]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}h2[data-v-1a1fa758]{font-size:21px;margin:6px 0 16px}h3[data-v-1a1fa758]{font-size:16px;margin:18px 0 6px}p[data-v-1a1fa758],small[data-v-1a1fa758],label[data-v-1a1fa758]{font-size:13px;line-height:1.65}.hint[data-v-1a1fa758],small[data-v-1a1fa758]{color:var(--text-secondary)}.error[data-v-1a1fa758]{color:var(--error)}button[data-v-1a1fa758]{min-height:44px;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:6px;color:inherit;background:var(--bg-subtle);font:inherit;font-size:13px}button[data-v-1a1fa758]:disabled{opacity:.5}form[data-v-1a1fa758]{display:grid;gap:12px;border-block:1px solid var(--border-subtle);padding:14px 0 18px;margin:14px 0}label[data-v-1a1fa758]{display:grid;gap:5px}input[data-v-1a1fa758],select[data-v-1a1fa758]{box-sizing:border-box;min-width:0;width:100%;min-height:42px;padding:8px;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-app);color:inherit;font:inherit}.check[data-v-1a1fa758]{display:flex;align-items:flex-start;gap:8px}.check input[data-v-1a1fa758]{width:18px;min-height:18px}.times[data-v-1a1fa758]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.delivery[data-v-1a1fa758]{border-top:1px solid var(--border-subtle);padding:14px 0}.delivery>div[data-v-1a1fa758]{display:flex;justify-content:space-between;gap:10px}.delivery span[data-v-1a1fa758]{color:var(--text-muted);font-size:12px}.delivery p[data-v-1a1fa758]{margin:6px 0}.delivery small[data-v-1a1fa758]{display:block}@media(max-width:600px){.proactive-panel[data-v-1a1fa758]{width:100%;padding:16px}}.discover-controls[data-v-fb8cf9e7]{display:grid;gap:8px;padding:2px 0 10px;margin-bottom:10px;background:transparent;border-bottom:1px solid var(--border-subtle)}.discover-clear[data-v-fb8cf9e7]{white-space:nowrap}.conversation-open[data-v-e8985419]{display:flex;align-items:center;gap:12px;flex:1 1 0;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left}.conversation-open[data-v-e8985419]:focus-visible{outline:2px solid var(--astraea-brand-primary);outline-offset:-2px;border-radius:var(--radius-md)}.group-chat-redesign[data-v-b2d31b7d]{width:min(100%,860px);min-height:100%;display:flex;flex-direction:column;gap:0;padding-top:0;padding-bottom:0}.group-chat-topbar[data-v-b2d31b7d]{display:flex;align-items:center;gap:10px;min-height:68px;padding:8px 0;border-bottom:1px solid var(--c-line, var(--border-subtle))}.group-back-button[data-v-b2d31b7d],.group-icon-button[data-v-b2d31b7d],.group-close-button[data-v-b2d31b7d]{border:0;background:transparent;color:var(--c-ink-soft, var(--text-secondary));cursor:pointer}.group-back-button[data-v-b2d31b7d]{width:34px;height:40px;font-size:31px;line-height:1}.group-back-button[data-v-b2d31b7d]:hover,.group-icon-button[data-v-b2d31b7d]:hover,.group-close-button[data-v-b2d31b7d]:hover{color:var(--c-lamp, var(--accent));background:var(--c-lamp-wash, var(--bg-subtle))}.group-title-button[data-v-b2d31b7d]{flex:1;min-width:0;padding:5px 8px;border:0;border-radius:9px;background:transparent;color:var(--c-ink, var(--text-primary));text-align:left;cursor:pointer}.group-title-button[data-v-b2d31b7d]:hover{background:var(--c-lamp-wash, var(--bg-subtle))}.group-title-button.is-static[data-v-b2d31b7d]{cursor:default}.group-title-line[data-v-b2d31b7d],.group-title-subline[data-v-b2d31b7d]{display:flex;align-items:center;gap:8px;min-width:0}.group-title-line strong[data-v-b2d31b7d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.group-title-subline[data-v-b2d31b7d]{margin-top:4px;overflow:hidden;color:var(--c-ink-soft, var(--text-secondary));font-size:11px;text-overflow:ellipsis;white-space:nowrap}.group-member-count[data-v-b2d31b7d]{flex:0 0 auto;color:var(--c-lamp, var(--accent));font-size:11px;font-weight:700}.group-top-actions[data-v-b2d31b7d]{display:flex;gap:3px}.group-icon-button[data-v-b2d31b7d]{width:38px;height:38px;border-radius:10px;font-size:20px}.group-status-banner[data-v-b2d31b7d]{margin:10px 0 0;padding:9px 12px;border:1px solid color-mix(in srgb,var(--c-danger, #b55e59) 35%,var(--c-line, #ddd));border-radius:9px;color:var(--c-danger, #b55e59);font-size:12px}.group-chat-scroll[data-v-b2d31b7d]{flex:1;min-height:300px;overflow:auto;padding:20px 4px 22px;scroll-behavior:smooth}.group-day-divider[data-v-b2d31b7d]{display:flex;align-items:center;gap:10px;margin:0 auto 20px;color:var(--c-ink-faint, #999);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.group-day-divider[data-v-b2d31b7d]:before,.group-day-divider[data-v-b2d31b7d]:after{flex:1;height:1px;background:var(--c-line, #ddd);content:""}.group-message-row[data-v-b2d31b7d]{display:flex;align-items:flex-end;gap:9px;max-width:min(80%,620px);margin:0 0 16px}.group-message-row.is-user[data-v-b2d31b7d]{justify-content:flex-end;max-width:min(76%,560px);margin-left:auto}.group-message-avatar[data-v-b2d31b7d]{flex:0 0 32px;width:32px;height:32px;align-self:flex-start}.group-message-content[data-v-b2d31b7d]{min-width:0}.group-message-meta[data-v-b2d31b7d]{display:flex;align-items:baseline;gap:7px;margin:0 0 5px 3px;color:var(--c-ink-soft, #666);font-size:11px}.group-message-meta time[data-v-b2d31b7d]{color:var(--c-ink-faint, #999);font-size:10px}.group-message-bubble[data-v-b2d31b7d]{padding:10px 13px;border:1px solid var(--c-line, #ddd);border-radius:5px 15px 15px;background:var(--c-surface, #fff);color:var(--c-ink, #222);font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px 2px #1e1e1408}.group-message-bubble.user[data-v-b2d31b7d]{border-color:color-mix(in srgb,var(--c-lamp, #8b5e4a) 32%,var(--c-line, #ddd));border-radius:15px 5px 15px 15px;background:var(--c-bubble-me, #eee4dc)}.group-message-time[data-v-b2d31b7d]{display:block;margin-top:4px;color:var(--c-ink-faint, #999);font-size:10px;text-align:right}.group-chat-composer[data-v-b2d31b7d]{display:flex;align-items:flex-end;gap:8px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--c-line, #ddd);background:var(--c-ground, #f5f5f2)}.group-chat-composer textarea[data-v-b2d31b7d]{flex:1;min-width:0;min-height:42px;max-height:120px;resize:none;padding:11px 13px;border:1px solid var(--c-line, #ddd);border-radius:14px;outline:0;background:var(--c-surface, #fff);color:var(--c-ink, #222);font:inherit;font-size:14px;line-height:1.35;writing-mode:horizontal-tb}.group-chat-composer textarea[data-v-b2d31b7d]:focus{border-color:var(--c-lamp, #8b5e4a);box-shadow:0 0 0 3px var(--c-lamp-wash, rgba(139, 94, 74, .1))}.group-send-button[data-v-b2d31b7d]{flex:0 0 42px;width:42px;height:42px;border:0;border-radius:50%;background:var(--c-lamp-fill, #8b5e4a);color:var(--c-on-lamp, #fff);cursor:pointer;font-size:21px;line-height:1}.group-send-button[data-v-b2d31b7d]:disabled{opacity:.42;cursor:not-allowed}.group-auth-state[data-v-b2d31b7d],.group-empty-state[data-v-b2d31b7d]{display:grid;place-items:center;gap:9px;min-height:52vh;padding:24px;text-align:center}.group-empty-state.is-inline[data-v-b2d31b7d]{display:block;min-height:0;padding:30px 12px;color:var(--c-ink-soft, #666);font-size:13px}.group-auth-state h1[data-v-b2d31b7d],.group-empty-state h2[data-v-b2d31b7d]{margin:0;font-size:21px;letter-spacing:-.025em}.group-auth-state p[data-v-b2d31b7d],.group-empty-state p[data-v-b2d31b7d]{max-width:340px;margin:0;color:var(--c-ink-soft, #666);font-size:13px;line-height:1.55}.group-empty-actions[data-v-b2d31b7d]{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.group-empty-mark[data-v-b2d31b7d]{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--c-line, #ddd);border-radius:50%;color:var(--c-lamp, #8b5e4a);font-size:22px;letter-spacing:2px}.group-overlay[data-v-b2d31b7d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;justify-content:flex-end;background:#14141261}.group-drawer[data-v-b2d31b7d],.group-create-modal[data-v-b2d31b7d]{width:min(100%,390px);height:100%;overflow:auto;padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-left:1px solid var(--c-line, #ddd);background:var(--c-surface, #fff);color:var(--c-ink, #222);box-shadow:-16px 0 44px #1e1c1929}.group-create-modal[data-v-b2d31b7d]{width:min(100%,480px);height:auto;max-height:min(760px,calc(100dvh - 32px));align-self:center;margin:16px;border:1px solid var(--c-line, #ddd);border-radius:18px}.group-drawer-header[data-v-b2d31b7d]{display:flex;justify-content:space-between;gap:14px;margin-bottom:22px}.group-drawer-kicker[data-v-b2d31b7d]{margin:0 0 5px;color:var(--c-lamp, #8b5e4a);font-size:10px;font-weight:750;letter-spacing:.16em}.group-drawer-header h2[data-v-b2d31b7d]{margin:0;font-size:21px;letter-spacing:-.025em}.group-drawer-header p[data-v-b2d31b7d]:last-child{margin:5px 0 0;color:var(--c-ink-soft, #666);font-size:12px}.group-close-button[data-v-b2d31b7d]{width:34px;height:34px;flex:0 0 34px;border-radius:50%;font-size:24px;line-height:1}.group-member-list[data-v-b2d31b7d],.group-room-list[data-v-b2d31b7d]{display:grid;gap:5px}.group-member-row[data-v-b2d31b7d]{display:flex;align-items:center;gap:11px;min-height:56px;padding:7px 6px;border-bottom:1px solid var(--c-line, #ddd)}.group-member-row[data-v-b2d31b7d] .avatar{width:36px;height:36px;flex:0 0 36px}.group-member-row>span[data-v-b2d31b7d]:last-child{display:grid;gap:3px}.group-member-row small[data-v-b2d31b7d],.group-room-row small[data-v-b2d31b7d]{color:var(--c-ink-soft, #666);font-size:11px}.group-member-initial[data-v-b2d31b7d],.group-room-mark[data-v-b2d31b7d]{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--c-lamp-wash, #f5ece7);color:var(--c-lamp, #8b5e4a);font-size:12px;font-weight:700}.group-member-remove[data-v-b2d31b7d]{margin-left:auto;min-height:30px;padding:0 8px;border:1px solid var(--c-line, #ddd);border-radius:8px;background:transparent;color:var(--c-ink-soft, #666);font-size:11px;white-space:nowrap}.group-member-remove[data-v-b2d31b7d]:hover{border-color:var(--c-danger, #b55e59);color:var(--c-danger, #b55e59)}.group-member-actions[data-v-b2d31b7d]{display:grid;gap:8px;margin-top:16px}.group-invite-panel[data-v-b2d31b7d]{display:grid;gap:15px;margin-top:12px;padding:13px;border:1px solid var(--c-line, #ddd);border-radius:12px;background:var(--c-raised, #fafaf8)}.group-invite-section[data-v-b2d31b7d]{display:grid;gap:7px}.group-invite-section>strong[data-v-b2d31b7d]{font-size:13px}.group-invite-section>p[data-v-b2d31b7d]{margin:0;color:var(--c-ink-soft, #666);font-size:11px;line-height:1.45}.group-invite-token[data-v-b2d31b7d]{display:grid;gap:4px;padding:9px;border-radius:9px;background:var(--c-lamp-wash, #f5ece7)}.group-invite-token code[data-v-b2d31b7d]{overflow-wrap:anywhere;color:var(--c-lamp, #8b5e4a);font-size:12px}.group-invite-token small[data-v-b2d31b7d]{color:var(--c-ink-faint, #999);font-size:10px}.group-invite-input-row[data-v-b2d31b7d]{display:flex;gap:6px}.group-invite-input-row input[data-v-b2d31b7d]{min-width:0;flex:1;min-height:38px;padding:0 9px;border:1px solid var(--c-line, #ddd);border-radius:9px;background:var(--c-surface, #fff);color:var(--c-ink, #222);font:inherit;font-size:12px}.group-invite-check[data-v-b2d31b7d]{min-width:48px;border:1px solid var(--c-line, #ddd);border-radius:9px;background:transparent;color:var(--c-ink-soft, #666);font-size:11px}.group-invite-preview[data-v-b2d31b7d]{display:grid;gap:5px;padding-top:4px}.group-invite-preview span[data-v-b2d31b7d]{color:var(--c-ink-soft, #666);font-size:11px}.group-drawer-action.is-danger[data-v-b2d31b7d]{border-color:color-mix(in srgb,var(--c-danger, #b55e59) 50%,var(--c-line, #ddd));color:var(--c-danger, #b55e59)}.group-drawer-note[data-v-b2d31b7d]{display:flex;gap:8px;margin:20px 0;padding:11px;border-radius:10px;background:var(--c-raised, #fafaf8);color:var(--c-ink-soft, #666);font-size:11px;line-height:1.5}.group-drawer-note span[data-v-b2d31b7d]{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border:1px solid var(--c-line, #ddd);border-radius:50%;color:var(--c-lamp, #8b5e4a);font-weight:700}.group-drawer-note p[data-v-b2d31b7d]{margin:0}.group-drawer-action[data-v-b2d31b7d]{width:100%;min-height:44px;margin-top:auto;border:1px solid var(--c-lamp, #8b5e4a);border-radius:11px;background:transparent;color:var(--c-lamp, #8b5e4a);font-size:13px;font-weight:700;cursor:pointer}.group-drawer-action[data-v-b2d31b7d]:hover{background:var(--c-lamp-wash, #f5ece7)}.group-room-row[data-v-b2d31b7d]{display:flex;align-items:center;gap:10px;width:100%;min-height:62px;padding:8px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--c-ink, #222);text-align:left;cursor:pointer}.group-room-row[data-v-b2d31b7d]:hover,.group-room-row.is-active[data-v-b2d31b7d]{border-color:var(--c-line, #ddd);background:var(--c-lamp-wash, #f5ece7)}.group-room-row>span[data-v-b2d31b7d]:nth-child(2){display:grid;gap:3px;min-width:0}.group-room-row strong[data-v-b2d31b7d],.group-room-row small[data-v-b2d31b7d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-room-arrow[data-v-b2d31b7d]{margin-left:auto;color:var(--c-ink-faint, #999);font-size:20px}.group-drawer-empty[data-v-b2d31b7d]{color:var(--c-ink-soft, #666);font-size:13px}.group-field-label[data-v-b2d31b7d]{display:block;margin:0 0 7px;color:var(--c-ink-soft, #666);font-size:12px;font-weight:700}.group-title-input[data-v-b2d31b7d]{width:100%;box-sizing:border-box;min-height:42px;margin-bottom:20px;padding:10px 12px;border:1px solid var(--c-line, #ddd);border-radius:10px;background:var(--c-raised, #fafaf8);color:var(--c-ink, #222);font:inherit}.group-picker-heading[data-v-b2d31b7d]{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:13px}.group-picker-heading span[data-v-b2d31b7d]{color:var(--c-ink-soft, #666);font-size:11px}.group-character-picker[data-v-b2d31b7d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.group-character-option[data-v-b2d31b7d]{position:relative;display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid var(--c-line, #ddd);border-radius:11px;background:var(--c-raised, #fafaf8);color:var(--c-ink, #222);text-align:left;cursor:pointer}.group-character-option.is-selected[data-v-b2d31b7d]{border-color:var(--c-lamp, #8b5e4a);background:var(--c-lamp-wash, #f5ece7)}.group-character-option[data-v-b2d31b7d] .avatar{width:30px;height:30px;flex:0 0 30px}.group-character-option>span[data-v-b2d31b7d]:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.group-picker-check[data-v-b2d31b7d]{margin-left:auto;color:var(--c-lamp, #8b5e4a);font-weight:700}.group-create-submit[data-v-b2d31b7d]{width:100%;margin-top:20px}.group-fade-enter-active[data-v-b2d31b7d],.group-fade-leave-active[data-v-b2d31b7d]{transition:opacity .18s ease}.group-fade-enter-from[data-v-b2d31b7d],.group-fade-leave-to[data-v-b2d31b7d]{opacity:0}@media(max-width:560px){.group-chat-redesign[data-v-b2d31b7d]{width:100%}.group-chat-topbar[data-v-b2d31b7d]{min-height:62px}.group-chat-scroll[data-v-b2d31b7d]{padding-inline:0}.group-message-row[data-v-b2d31b7d]{max-width:88%}.group-message-row.is-user[data-v-b2d31b7d]{max-width:82%}.group-overlay[data-v-b2d31b7d]{align-items:flex-end}.group-drawer[data-v-b2d31b7d]{width:100%;height:min(82dvh,620px);border:0;border-radius:20px 20px 0 0}.group-create-modal[data-v-b2d31b7d]{width:calc(100% - 20px);max-height:calc(100dvh - 20px);margin:10px;border-radius:18px}}@media(prefers-reduced-motion:reduce){.group-chat-scroll[data-v-b2d31b7d]{scroll-behavior:auto}}.market-header[data-v-051363d7]{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.group-mode-badge[data-v-051363d7]{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-secondary);font-size:12px;white-space:nowrap}.market-submit-trigger[data-v-051363d7]{display:flex;align-items:center;gap:8px;width:100%;padding:14px 16px;margin-bottom:16px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;text-align:left}.market-submit-trigger[data-v-051363d7]:hover{background:var(--bg-subtle)}.trigger-icon[data-v-051363d7]{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--astraea-brand-primary);color:#fff;font-size:18px;line-height:1;flex-shrink:0}.icon-button[data-v-051363d7]{border:0;background:transparent;color:var(--text-secondary);font-size:18px;cursor:pointer;padding:4px 6px;line-height:1;flex-shrink:0}.icon-button[data-v-051363d7]:hover{color:var(--text-primary)}.compact-auth-prompt[data-v-051363d7]{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px 20px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--bg-surface);text-align:center}.compact-auth-prompt p[data-v-051363d7]{margin:0;color:var(--text-secondary);font-size:14px}.market-submit-card[data-v-051363d7],.market-card[data-v-051363d7]{border:1px solid var(--border-subtle);border-radius:18px;background:var(--bg-surface);padding:16px}.market-submit-card[data-v-051363d7]{display:grid;gap:14px;margin-bottom:22px}.market-submit-header[data-v-051363d7]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.market-submit-fields[data-v-051363d7]{display:grid;grid-template-columns:1.2fr 1fr 1.5fr auto;gap:8px;align-items:center}.market-input[data-v-051363d7]{width:100%;border:1px solid var(--border-subtle);border-radius:10px;padding:10px 12px;background:var(--bg-inset);color:inherit;font:inherit;box-sizing:border-box}.market-list[data-v-051363d7]{display:grid;gap:10px}.market-card[data-v-051363d7]{display:flex;justify-content:space-between;gap:18px;align-items:center}.market-card-copy[data-v-051363d7]{display:grid;gap:5px;min-width:0}.market-card-copy p[data-v-051363d7]{margin:0;color:var(--text-secondary)}.market-card-copy small[data-v-051363d7]{color:var(--text-secondary);font-size:12px}.market-card-title[data-v-051363d7]{display:flex;align-items:center;gap:8px}.market-card-actions[data-v-051363d7]{display:flex;gap:8px;flex-shrink:0}.market-status-approved[data-v-051363d7]{color:var(--astraea-brand-primary)}.market-status-pending[data-v-051363d7]{color:var(--text-secondary)}.market-status-rejected[data-v-051363d7]{color:#a66b28}.market-muted[data-v-051363d7]{color:var(--text-secondary);font-size:13px}@media(max-width:760px){.market-header[data-v-051363d7],.market-card[data-v-051363d7]{display:block}.market-card-actions[data-v-051363d7]{margin-top:12px}.market-submit-fields[data-v-051363d7]{grid-template-columns:1fr}.market-submit-trigger[data-v-051363d7]{padding:12px 14px;font-size:13px}.compact-auth-prompt[data-v-051363d7]{padding:24px 16px}}@media(max-width:390px){.market-submit-card[data-v-051363d7]{padding:12px;gap:12px;margin-bottom:16px}.market-submit-trigger[data-v-051363d7]{padding:10px 12px;margin-bottom:12px}.trigger-icon[data-v-051363d7]{width:22px;height:22px;font-size:16px}.market-card[data-v-051363d7]{padding:12px}.compact-auth-prompt[data-v-051363d7]{padding:20px 14px;gap:12px}}.page-back-row[data-v-dff6c031]{display:flex;padding:8px 16px 0}.detail-v2-poster-wrap[data-v-dff6c031]{display:flex;justify-content:center;margin:4px auto 14px}.detail-v2-poster[data-v-dff6c031]{position:relative;width:min(100%,180px);aspect-ratio:3 / 4;border-radius:var(--radius-lg, 16px);overflow:hidden;border:1px solid var(--border-subtle);box-shadow:0 10px 28px #00000059;background:var(--bg-surface)}.detail-poster-img[data-v-dff6c031]{width:100%;height:100%;object-fit:cover;display:block}.detail-poster-badge[data-v-dff6c031]{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#efe7dc;font-size:11px;font-weight:600}.detail-conversation-entry[data-v-dff6c031]{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;color:var(--c-ink-soft);font-size:12px}.detail-conversation-button[data-v-dff6c031]{min-height:34px;padding:0 12px;border:1px solid color-mix(in srgb,var(--c-lamp) 55%,var(--c-line));border-radius:10px;background:var(--c-lamp-wash);color:var(--c-lamp);font-size:12px;font-weight:700}.detail-conversation-button[data-v-dff6c031]:hover{background:var(--c-lamp-fill);color:var(--c-on-lamp)}.page-back-row[data-v-24510c49]{display:flex}.state-page.permission-denied .state-title[data-v-24510c49]{color:var(--astraea-brand-gold)}.profile-page[data-v-a5e1639a]{display:flex;flex-direction:column;gap:14px;padding:16px 14px 32px;max-width:600px;margin:0 auto;width:100%}.profile-hero-card[data-v-a5e1639a]{width:100%;background:var(--c-surface, #1e1b18);border:1px solid var(--c-line, rgba(239, 231, 220, .12));border-radius:18px;padding:18px 16px;display:flex;align-items:center;gap:14px;cursor:pointer;text-align:left;font:inherit;transition:border-color var(--transition-fast, .15s),background var(--transition-fast, .15s),transform .1s ease;-webkit-user-select:none;user-select:none}.profile-hero-card[data-v-a5e1639a]:hover{border-color:color-mix(in srgb,var(--c-lamp, #f08a5d) 50%,var(--c-line));background:color-mix(in srgb,var(--c-surface) 95%,var(--c-lamp))}.profile-hero-card[data-v-a5e1639a]:active{transform:scale(.99)}.profile-hero-seal[data-v-a5e1639a]{width:52px;height:52px;border-radius:14px;background:var(--c-lamp-wash, rgba(240, 138, 93, .12));color:var(--c-lamp, #f08a5d);border:1px solid color-mix(in srgb,var(--c-lamp, #f08a5d) 35%,transparent);font-size:22px;font-weight:700;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;display:grid;place-items:center;flex-shrink:0;box-shadow:0 4px 12px #00000026}.profile-hero-main[data-v-a5e1639a]{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px}.profile-hero-name-row[data-v-a5e1639a]{display:flex;align-items:center;gap:8px}.profile-hero-name[data-v-a5e1639a]{font-size:17px;font-weight:600;color:var(--c-ink, #efe7dc);font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-badge[data-v-a5e1639a]{font-size:10.5px;padding:1px 6px;border-radius:6px;font-weight:500;letter-spacing:.02em}.profile-badge.verified[data-v-a5e1639a]{background:#0f6f872e;color:#9db4d6;border:1px solid rgba(15,111,135,.35)}.profile-badge.local[data-v-a5e1639a]{background:var(--c-lamp-wash, rgba(240, 138, 93, .12));color:var(--c-lamp, #f08a5d);border:1px solid color-mix(in srgb,var(--c-lamp) 30%,transparent)}.profile-hero-hint[data-v-a5e1639a]{font-size:12px;color:var(--c-ink-soft, rgba(239, 231, 220, .6));margin:0}.profile-hero-arrow[data-v-a5e1639a]{font-size:20px;color:var(--c-ink-faint, rgba(239, 231, 220, .3));font-weight:300}.profile-group[data-v-a5e1639a]{background:var(--c-surface, #1e1b18);border:1px solid var(--c-line, rgba(239, 231, 220, .12));border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.profile-group-header[data-v-a5e1639a]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px;border-bottom:1px solid color-mix(in srgb,var(--c-line) 40%,transparent)}.profile-group-title[data-v-a5e1639a]{font-size:12.5px;font-weight:600;color:var(--c-ink, #efe7dc)}.profile-group-meta[data-v-a5e1639a]{font-size:11.5px;color:var(--c-ink-soft, rgba(239, 231, 220, .5))}.profile-relation-scroll[data-v-a5e1639a]{display:flex;gap:8px;padding:10px 14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.profile-relation-scroll[data-v-a5e1639a]::-webkit-scrollbar{display:none}.profile-relation-chip[data-v-a5e1639a]{display:flex;align-items:center;gap:8px;background:var(--c-ground, #141210);border:1px solid var(--c-line, rgba(239, 231, 220, .12));border-radius:18px;padding:5px 12px 5px 6px;cursor:pointer;flex-shrink:0;color:var(--c-ink, #efe7dc);transition:border-color var(--transition-fast, .15s),background var(--transition-fast, .15s)}.profile-relation-chip[data-v-a5e1639a]:hover{border-color:var(--c-lamp, #f08a5d);background:var(--c-lamp-wash, rgba(240, 138, 93, .1))}.profile-chip-seal[data-v-a5e1639a]{width:24px;height:24px;border-radius:999px;overflow:hidden;font-size:11px;font-weight:700;display:grid;place-items:center;background:var(--c-lamp-wash);color:var(--c-lamp);border:1px solid color-mix(in srgb,var(--c-lamp) 30%,transparent);flex-shrink:0}.profile-chip-name[data-v-a5e1639a]{font-size:13px;font-weight:500}.profile-chip-arrow[data-v-a5e1639a]{font-size:13px;color:var(--c-ink-faint)}.profile-cell[data-v-a5e1639a]{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border:none;background:transparent;width:100%;text-align:left;font:inherit;color:var(--c-ink, #efe7dc);position:relative}.profile-cell[data-v-a5e1639a]:not(:last-child):after{content:"";position:absolute;bottom:0;left:44px;right:16px;height:1px;background:color-mix(in srgb,var(--c-line) 40%,transparent)}.profile-cell.is-interactive[data-v-a5e1639a]{cursor:pointer;transition:background var(--transition-fast, .15s)}.profile-cell.is-interactive[data-v-a5e1639a]:hover{background:color-mix(in srgb,var(--c-lamp) 6%,transparent)}.profile-cell.is-interactive[data-v-a5e1639a]:active{background:color-mix(in srgb,var(--c-lamp) 12%,transparent)}.profile-cell.is-danger .profile-cell-label[data-v-a5e1639a]{color:var(--c-danger, #d9534f)}.profile-cell-left[data-v-a5e1639a]{display:flex;align-items:center;gap:0}.profile-cell-icon[data-v-a5e1639a]{display:none}.profile-cell-label[data-v-a5e1639a]{font-size:13.5px;font-weight:500;color:var(--c-ink)}.profile-cell-value[data-v-a5e1639a]{font-size:12.5px;color:var(--c-ink-soft)}.profile-cell-arrow[data-v-a5e1639a]{font-size:18px;color:var(--c-ink-faint);font-weight:300}.profile-footer[data-v-a5e1639a]{text-align:center;padding:20px 16px 8px;display:flex;flex-direction:column;gap:4px}.profile-footer-brand[data-v-a5e1639a]{font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-size:12px;letter-spacing:.14em;color:var(--c-ink-faint, rgba(239, 231, 220, .4));margin:0}.profile-footer-slogan[data-v-a5e1639a]{font-size:11px;color:var(--c-ink-faint, rgba(239, 231, 220, .3));margin:0}.voice-recorder[data-v-bd962eae]{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.voice-recorder__hint[data-v-bd962eae],.voice-recorder__limit[data-v-bd962eae]{margin:0;font-size:13px;color:#8a6d3b}.voice-recorder__limit[data-v-bd962eae]{color:#b3541e}.voice-recorder__live[data-v-bd962eae]{display:flex;align-items:center;gap:10px;font-size:14px}.voice-recorder__pulse[data-v-bd962eae]{width:10px;height:10px;border-radius:50%;background:#c0392b;animation:voice-recorder-pulse-bd962eae 1.2s ease-in-out infinite}@keyframes voice-recorder-pulse-bd962eae{0%,to{opacity:.35}50%{opacity:1}}.voice-recorder__btn[data-v-bd962eae]{border:1px solid var(--border-medium, #b9a7e0);border-radius:999px;padding:6px 14px;font-size:14px;background:var(--bg-surface, #fff);color:var(--text-secondary, #3d2f6b);cursor:pointer}.voice-recorder__btn--primary[data-v-bd962eae]{background:var(--astraea-brand-primary, #0f6f87);color:var(--text-inverse, #fff)}.voice-recorder__btn--ghost[data-v-bd962eae]{border-color:var(--border-subtle, #d0c6e8);color:var(--astraea-brand-primary, #0f6f87)}.voice-recorder__btn[data-v-bd962eae]:disabled{opacity:.5;cursor:not-allowed}.inline-voice-input[data-v-7e3507ce]{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.inline-voice-input[data-v-7e3507ce] .voice-recorder{flex:0 0 auto;align-items:stretch}.inline-voice-input[data-v-7e3507ce] .voice-recorder__btn{min-height:38px;padding:0 14px;white-space:nowrap}.inline-voice-input[data-v-7e3507ce] .voice-recorder__hint,.inline-voice-input[data-v-7e3507ce] .voice-recorder__limit{display:none}.inline-voice-input[data-v-7e3507ce] .voice-recorder__live{white-space:nowrap;font-size:12px}.inline-voice-input__hint[data-v-7e3507ce]{min-width:0;margin:0;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.inline-voice-input__hint.is-error[data-v-7e3507ce]{color:var(--status-error)}.inline-voice-input__retry[data-v-7e3507ce]{flex:0 0 auto;min-height:32px;padding:0 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-size:12px;white-space:nowrap}@media(max-width:520px){.inline-voice-input[data-v-7e3507ce]{gap:7px}.inline-voice-input__hint[data-v-7e3507ce]{font-size:11px}.inline-voice-input[data-v-7e3507ce] .voice-recorder__btn{padding:0 10px}}.conversation-picker-layer[data-v-a70f3f33]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#14141275}.conversation-picker[data-v-a70f3f33]{width:min(100%,560px);max-height:min(760px,calc(100dvh - 32px));overflow:auto;padding:22px;border:1px solid var(--c-line);border-radius:22px 22px 16px 16px;background:var(--c-surface);color:var(--c-ink);box-shadow:var(--shadow-sheet)}.conversation-picker-header[data-v-a70f3f33]{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px}.conversation-picker-kicker[data-v-a70f3f33]{margin:0 0 5px;color:var(--c-ink-faint);font-size:10px;letter-spacing:.12em}.conversation-picker-header h2[data-v-a70f3f33]{margin:0;font-size:20px}.conversation-picker-header p[data-v-a70f3f33]:last-child{margin:5px 0 0;color:var(--c-ink-soft);font-size:12px}.conversation-picker-list[data-v-a70f3f33]{display:grid;gap:8px}.conversation-picker-item[data-v-a70f3f33]{display:flex;align-items:stretch;gap:8px;padding:4px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-raised)}.conversation-picker-item.is-active[data-v-a70f3f33]{border-color:var(--c-lamp);background:var(--c-lamp-wash)}.conversation-picker-item.is-archived[data-v-a70f3f33]{opacity:.76}.conversation-picker-select[data-v-a70f3f33]{display:grid;flex:1 1 auto;min-width:0;gap:4px;padding:10px;border:0;background:transparent;color:var(--c-ink);text-align:left}.conversation-picker-title[data-v-a70f3f33]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:750}.conversation-picker-meta[data-v-a70f3f33]{display:flex;justify-content:space-between;gap:8px;color:var(--c-ink-faint);font-size:10px}.conversation-picker-preview[data-v-a70f3f33]{overflow:hidden;color:var(--c-ink-soft);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.conversation-picker-actions[data-v-a70f3f33]{display:flex;align-items:center;gap:4px;padding-right:6px}.conversation-picker-small-action[data-v-a70f3f33]{min-width:42px;min-height:30px;padding:0 7px;border:1px solid var(--c-line);border-radius:8px;background:transparent;color:var(--c-ink-soft);font-size:11px;white-space:nowrap;writing-mode:horizontal-tb}.conversation-picker-small-action[data-v-a70f3f33]:hover{border-color:var(--c-lamp);color:var(--c-lamp)}.conversation-picker-input[data-v-a70f3f33]{width:108px;min-height:30px;padding:0 7px;border:1px solid var(--c-lamp);border-radius:8px;background:var(--c-surface);color:var(--c-ink);font-size:11px}.conversation-picker-empty[data-v-a70f3f33]{padding:30px 8px;color:var(--c-ink-soft);text-align:center}.conversation-picker-footer[data-v-a70f3f33]{display:flex;gap:8px;margin-top:16px}.conversation-picker-footer[data-v-a70f3f33]>*{flex:1;min-height:42px}@media(max-width:560px){.conversation-picker-layer[data-v-a70f3f33]{padding:0}.conversation-picker[data-v-a70f3f33]{width:100%;max-height:calc(100dvh - 8px);border-radius:22px 22px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom))}.conversation-picker-actions[data-v-a70f3f33]{flex-direction:row;align-items:center;justify-content:center}}.product-stage[data-v-83433dba]:focus{outline:none}.privacy-backdrop[data-v-af80f9c8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;justify-content:flex-end;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.privacy-panel[data-v-af80f9c8]{width:min(600px,100vw);height:100%;overflow-y:auto;overscroll-behavior:contain;padding:28px 24px;background:var(--bg-surface);color:var(--text-primary);border-left:1px solid var(--border-medium);box-shadow:-12px 0 40px #00000059;outline:none;display:flex;flex-direction:column;gap:20px}.privacy-header[data-v-af80f9c8]{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--border-subtle);padding-bottom:16px}.privacy-title[data-v-af80f9c8]{margin:0;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-size:22px;font-weight:600;color:var(--text-primary)}.privacy-subtitle[data-v-af80f9c8]{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--text-secondary)}.privacy-close-btn[data-v-af80f9c8]{background:transparent;border:0;font-size:20px;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.privacy-close-btn[data-v-af80f9c8]:hover{background:var(--bg-subtle);color:var(--text-primary)}.privacy-loading[data-v-af80f9c8]{text-align:center;padding:40px 16px;color:var(--text-muted);font-size:14px}.privacy-overview[data-v-af80f9c8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.privacy-stat-card[data-v-af80f9c8]{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 12px;display:flex;gap:10px;align-items:flex-start}.privacy-stat-icon[data-v-af80f9c8]{font-size:22px;line-height:1}.privacy-stat-body[data-v-af80f9c8]{display:flex;flex-direction:column;gap:2px}.privacy-stat-num[data-v-af80f9c8]{font-family:var(--font-serif);font-size:20px;color:var(--c-lamp);line-height:1.2}.privacy-stat-name[data-v-af80f9c8]{font-size:13px;font-weight:600;color:var(--text-primary)}.privacy-stat-body small[data-v-af80f9c8]{font-size:11px;color:var(--text-muted);line-height:1.4}.privacy-raw-details[data-v-af80f9c8]{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px}.privacy-raw-summary[data-v-af80f9c8]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:600;color:var(--text-secondary)}.privacy-raw-hint[data-v-af80f9c8]{font-size:11px;color:var(--text-muted)}.privacy-raw-list[data-v-af80f9c8]{display:grid;gap:6px;margin:12px 0 8px;padding-top:10px;border-top:1px dashed var(--border-subtle)}.privacy-raw-row[data-v-af80f9c8]{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.privacy-raw-row dd[data-v-af80f9c8]{margin:0;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-primary)}.privacy-boundaries[data-v-af80f9c8]{margin-top:8px;padding-top:6px;border-top:1px solid var(--border-subtle)}.privacy-boundary-item[data-v-af80f9c8]{font-size:11.5px;color:var(--text-muted);line-height:1.5;margin:2px 0}.privacy-section-card[data-v-af80f9c8]{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px 16px;display:flex;flex-direction:column;gap:10px}.privacy-section-card.is-danger[data-v-af80f9c8]{border-color:color-mix(in srgb,var(--c-danger) 40%,var(--border-subtle));background:color-mix(in srgb,var(--c-danger) 4%,var(--bg-surface))}.privacy-card-title[data-v-af80f9c8]{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.privacy-card-title.danger-text[data-v-af80f9c8]{color:var(--c-danger)}.privacy-card-desc[data-v-af80f9c8]{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary)}.privacy-retention-row[data-v-af80f9c8]{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:6px}.privacy-select-label[data-v-af80f9c8]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary);flex:1 1 200px}.privacy-form[data-v-af80f9c8]{display:grid;gap:12px;margin-top:8px}.privacy-form-field[data-v-af80f9c8]{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.privacy-form-field input[data-v-af80f9c8]{font:inherit;width:100%;min-height:42px;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary)}.privacy-form-field input[data-v-af80f9c8]:focus{border-color:var(--c-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-danger) 20%,transparent)}.privacy-checkbox-label[data-v-af80f9c8]{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.6;color:var(--text-secondary);cursor:pointer}.privacy-checkbox-label input[data-v-af80f9c8]{margin-top:3px;width:16px;height:16px}.product-primary-button.is-danger[data-v-af80f9c8]{background:var(--c-danger);border-color:var(--c-danger);color:#fff}.product-primary-button.is-danger[data-v-af80f9c8]:hover:not(:disabled){background:color-mix(in srgb,var(--c-danger) 85%,#000)}.privacy-receipt[data-v-af80f9c8]{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);background:var(--c-lamp-wash);border:1px solid color-mix(in srgb,var(--c-lamp) 30%,transparent)}.privacy-receipt-dot[data-v-af80f9c8]{width:8px;height:8px;border-radius:50%;background:var(--c-ok);flex-shrink:0}.privacy-receipt-content[data-v-af80f9c8]{display:flex;flex-direction:column;gap:2px}.privacy-receipt-content strong[data-v-af80f9c8]{font-size:13px;color:var(--text-primary)}.privacy-receipt-content small[data-v-af80f9c8]{font-size:11.5px;color:var(--text-muted)}.privacy-footer[data-v-af80f9c8]{margin-top:auto;padding-top:12px}@media(max-width:600px){.privacy-panel[data-v-af80f9c8]{width:100%;padding:20px 16px}}.character-studio[data-v-097f3c99]{height:100%;overflow-y:auto;padding:24px;color:var(--text-primary);background:var(--bg-app);font-size:14px}.studio-header[data-v-097f3c99]{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.studio-header h1[data-v-097f3c99]{margin:2px 0 6px;font-size:22px;font-weight:700;color:var(--text-primary)}.studio-header p[data-v-097f3c99]{margin:0;line-height:1.5;font-size:13px;color:var(--text-secondary)}.studio-layout[data-v-097f3c99]{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:24px;max-width:1200px;margin:0 auto}aside[data-v-097f3c99]{display:flex;flex-direction:column;gap:12px;min-width:0}.studio-role[data-v-097f3c99]{display:grid;gap:4px;text-align:left;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.studio-role[data-v-097f3c99]:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.studio-role[aria-pressed=true][data-v-097f3c99]{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle);box-shadow:inset 3px 0 var(--astraea-brand-primary)}.studio-history[data-v-097f3c99],.studio-delete[data-v-097f3c99]{margin-top:16px;padding:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle)}.studio-history header[data-v-097f3c99]{display:flex;justify-content:space-between;align-items:center;gap:8px}.studio-history details[data-v-097f3c99]{margin-top:10px;padding:10px;background:var(--bg-surface);border-radius:var(--radius-sm)}.studio-history ol[data-v-097f3c99]{margin:10px 0 0;padding-left:22px}.studio-history li[data-v-097f3c99]{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.studio-delete[data-v-097f3c99]{border-color:var(--status-danger-border, #d66)}.studio-delete h3[data-v-097f3c99]{margin:0 0 8px}.studio-delete dl[data-v-097f3c99]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;font-size:12px}.studio-delete dt[data-v-097f3c99]{color:var(--text-secondary)}.studio-delete dd[data-v-097f3c99]{margin:0;font-variant-numeric:tabular-nums}.danger-action[data-v-097f3c99]{color:var(--status-danger, #a33);border-color:var(--status-danger-border, #d66)}.studio-role strong[data-v-097f3c99]{font-size:14px;font-weight:650;color:var(--text-primary)}.studio-role span[data-v-097f3c99]{font-size:12px;color:var(--text-muted)}.studio-form[data-v-097f3c99]{display:flex;flex-direction:column;gap:18px;min-width:0;background:var(--bg-surface);padding:24px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}button[data-v-097f3c99],input[data-v-097f3c99],textarea[data-v-097f3c99],select[data-v-097f3c99]{font:inherit;color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-app);min-height:40px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}button[data-v-097f3c99]{padding:6px 14px;background:var(--bg-surface);font-weight:600;font-size:13px;cursor:pointer}button[data-v-097f3c99]:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-subtle)}input[data-v-097f3c99],textarea[data-v-097f3c99],select[data-v-097f3c99]{padding:8px 12px;width:100%}input[data-v-097f3c99]:focus,textarea[data-v-097f3c99]:focus,select[data-v-097f3c99]:focus{border-color:var(--astraea-brand-primary);box-shadow:0 0 0 3px #0f6f8726;background:var(--bg-surface)}textarea[data-v-097f3c99]{resize:vertical}label[data-v-097f3c99]{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}fieldset[data-v-097f3c99]{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}.studio-actions[data-v-097f3c99]{display:flex;gap:10px;flex-wrap:wrap}.studio-avatar-editor[data-v-097f3c99]{display:grid;gap:10px;padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-app)}.studio-avatar-preview[data-v-097f3c99],.studio-avatar-fallback[data-v-097f3c99]{width:72px;height:72px;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-subtle)}.studio-avatar-fallback[data-v-097f3c99]{display:grid;place-items:center;font-size:26px;font-weight:700;color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle)}.studio-publication[data-v-097f3c99],.studio-confirm[data-v-097f3c99]{display:grid;gap:12px;border:1px solid var(--border-subtle);padding:16px;border-radius:var(--radius-md);background:var(--bg-app)}.studio-confirm[data-v-097f3c99]{border-color:var(--status-warning-border);background:var(--status-warning-bg);border-left:4px solid var(--status-warning)}.studio-check[data-v-097f3c99]{display:flex;align-items:center;gap:8px;font-weight:400}.studio-check input[data-v-097f3c99]{width:18px;min-height:18px;flex-shrink:0}details[data-v-097f3c99]{border:1px solid var(--border-subtle);padding:14px;border-radius:var(--radius-md);background:var(--bg-app)}summary[data-v-097f3c99]{cursor:pointer;font-size:13px;font-weight:600;color:var(--text-secondary)}.studio-error[data-v-097f3c99]{color:var(--status-error);padding:10px 14px;background:var(--status-error-bg);border:1px solid var(--status-error-border);border-radius:var(--radius-sm);margin-bottom:14px}.studio-notice[data-v-097f3c99]{color:var(--status-success);padding:10px 14px;background:var(--status-success-bg);border:1px solid var(--status-success-border);border-radius:var(--radius-sm);margin-bottom:14px}@media(max-width:720px){.character-studio[data-v-097f3c99]{padding:14px}.studio-layout[data-v-097f3c99]{grid-template-columns:1fr;gap:16px}.studio-header[data-v-097f3c99]{flex-wrap:wrap}aside[data-v-097f3c99]{max-height:280px;overflow-y:auto}}.auth-screen[data-v-8d972708]{min-height:100vh;min-height:100dvh;height:100%;overflow-y:auto;display:flex;flex-direction:column;padding:calc(10px + env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom));background:var(--bg-app);color:var(--text-primary);position:relative;box-sizing:border-box}.auth-top-bar[data-v-8d972708]{display:flex;justify-content:flex-end;align-items:center;width:min(100%,420px);margin:0 auto 6px}.auth-theme-btn[data-v-8d972708]{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.auth-theme-btn[data-v-8d972708]:hover{border-color:var(--border-medium);color:var(--text-primary);background:var(--bg-subtle)}.auth-theme-btn[data-v-8d972708]:focus-visible,.auth-companion-tab[data-v-8d972708]:focus-visible,.auth-mode-tab[data-v-8d972708]:focus-visible,.auth-toggle-pwd-btn[data-v-8d972708]:focus-visible{outline:2px solid var(--c-lamp);outline-offset:2px}.auth-theme-btn .theme-icon[data-v-8d972708]{display:grid;place-items:center;color:var(--c-lamp)}.auth-container[data-v-8d972708]{flex:1 1 auto;display:grid;place-items:center;width:100%}.auth-card[data-v-8d972708]{width:min(100%,420px);padding:20px 18px 18px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:none;display:grid;gap:10px;box-sizing:border-box}.auth-brand[data-v-8d972708]{text-align:center;display:grid;justify-items:center;gap:2px;margin-bottom:0}.auth-title[data-v-8d972708]{margin:0;font-family:inherit;font-size:23px;font-weight:750;color:var(--text-primary);letter-spacing:.04em}.auth-companion-preview[data-v-8d972708]{display:grid;gap:7px;width:100%;margin:0}.auth-companion-picker[data-v-8d972708]{display:flex;gap:6px;overflow-x:auto;padding:2px 1px 3px;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.auth-companion-picker[data-v-8d972708]::-webkit-scrollbar{display:none}.auth-companion-tab[data-v-8d972708]{display:flex;align-items:center;gap:8px;min-width:0;flex:0 0 106px;min-height:44px;padding:5px 7px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-elevated);color:var(--text-secondary);text-align:left;scroll-snap-align:start;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.auth-companion-tab[data-v-8d972708]:hover{border-color:var(--border-medium);color:var(--text-primary);transform:translateY(-1px)}.auth-companion-tab.is-active[data-v-8d972708]{border-color:color-mix(in srgb,var(--c-lamp) 60%,var(--border-medium));background:var(--c-lamp-wash);color:var(--text-primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--c-lamp) 18%,transparent)}.auth-companion-tab img[data-v-8d972708]{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--border-medium);border-radius:var(--radius-full);object-fit:cover;object-position:center 20%;background:var(--bg-surface-hover)}.auth-companion-tab>span[data-v-8d972708],.auth-dialogue-head>span[data-v-8d972708]{display:grid;min-width:0;gap:2px}.auth-companion-tab strong[data-v-8d972708],.auth-dialogue-head strong[data-v-8d972708]{color:currentColor;font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-dialogue-card[data-v-8d972708]{display:grid;gap:8px;padding:10px;border:1px solid var(--border-medium);border-radius:var(--radius-lg);background:var(--bg-surface-elevated)}.auth-dialogue-head[data-v-8d972708]{display:flex;align-items:center;gap:8px}.auth-dialogue-head img[data-v-8d972708]{width:28px;height:28px;border:1px solid var(--border-medium);border-radius:var(--radius-full);object-fit:cover;object-position:center 20%}.auth-dialogue-status[data-v-8d972708]{width:8px;height:8px;margin-left:auto;border-radius:var(--radius-full);background:var(--c-lamp);box-shadow:0 0 0 3px var(--c-lamp-wash)}.auth-dialogue-thread[data-v-8d972708]{display:grid;gap:6px;min-width:0}.auth-dialogue-thread p[data-v-8d972708]{width:fit-content;max-width:92%;margin:0;padding:6px 9px;border-radius:14px;font-size:11.5px;line-height:1.45;overflow-wrap:anywhere}.auth-dialogue-user[data-v-8d972708]{justify-self:end;background:var(--bg-subtle);color:var(--text-secondary);border-bottom-right-radius:4px!important}.auth-dialogue-reply[data-v-8d972708]{justify-self:start;background:var(--c-lamp-wash);color:var(--text-primary);border:1px solid color-mix(in srgb,var(--c-lamp) 22%,var(--border-subtle));border-bottom-left-radius:4px!important}.auth-mode-tabs[data-v-8d972708]{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin:0}.auth-mode-tab[data-v-8d972708]{display:flex;align-items:center;justify-content:center;padding:6px 10px;font-size:12px;font-weight:600;border-radius:calc(var(--radius-md) - 2px);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-mode-tab[data-v-8d972708]:hover{color:var(--text-primary)}.auth-mode-tab.is-active[data-v-8d972708]{background:var(--bg-surface);color:var(--c-lamp);border-color:color-mix(in srgb,var(--c-lamp) 25%,var(--border-subtle));box-shadow:0 1px 3px #00000014}.auth-field[data-v-8d972708]{display:grid;gap:4px}.auth-field-header[data-v-8d972708]{display:flex;align-items:center;justify-content:space-between}.auth-field-label[data-v-8d972708]{font-size:12px;font-weight:600;color:var(--text-secondary)}.auth-toggle-pwd-btn[data-v-8d972708]{background:transparent;border:0;font-size:11.5px;color:var(--text-muted);cursor:pointer;padding:0 2px;transition:color var(--transition-fast)}.auth-toggle-pwd-btn[data-v-8d972708]:hover{color:var(--c-lamp)}.auth-field input[data-v-8d972708]{font:inherit;width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box}.auth-field input[data-v-8d972708]:focus-visible{border-color:var(--astraea-brand-primary);box-shadow:0 0 0 3px var(--astraea-brand-primary-subtle);background:var(--bg-surface)}.auth-submit-btn[data-v-8d972708]{width:100%;min-height:40px;font-size:14px;font-weight:650;border-radius:var(--radius-md);margin-top:0;display:inline-flex;align-items:center;justify-content:center;gap:8px}.auth-spinner[data-v-8d972708]{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:auth-spin-8d972708 .8s linear infinite}@keyframes auth-spin-8d972708{to{transform:rotate(360deg)}}.auth-loading-text[data-v-8d972708]{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-secondary);font-size:14px;padding:24px 0;margin:0}.auth-notice[data-v-8d972708]{font-size:12.5px;line-height:1.6;color:var(--text-primary);padding:10px 14px;border-radius:var(--radius-sm);background:var(--c-lamp-wash);border:1px solid color-mix(in srgb,var(--c-lamp) 30%,transparent)}.auth-error[data-v-8d972708]{font-size:12.5px;line-height:1.6;color:var(--status-error);padding:10px 14px;border-radius:var(--radius-sm);background:var(--status-error-bg);border:1px solid var(--status-error-border)}.authenticated-shell[data-v-8d972708]{height:100dvh;width:100vw;display:flex;flex-direction:column;position:relative;overflow:hidden}.authenticated-content[data-v-8d972708]{flex:1 1 0;min-height:0;width:100%;height:100%;overflow:hidden;position:relative;isolation:isolate}.authenticated-content[data-v-8d972708] .app-shell,.authenticated-content[data-v-8d972708] .product-shell{height:100%}.modal-backdrop[data-v-8d972708]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}.modal-dialog[data-v-8d972708]{width:min(440px,calc(100vw - 32px));background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:24px 22px;box-shadow:0 16px 48px #0006;display:grid;gap:14px}.modal-header[data-v-8d972708]{display:flex;justify-content:space-between;align-items:center}.modal-title[data-v-8d972708]{margin:0;font-family:inherit;font-size:20px;font-weight:700;color:var(--text-primary)}.modal-close-btn[data-v-8d972708]{background:transparent;border:0;font-size:18px;color:var(--text-muted);cursor:pointer;padding:4px}.modal-desc[data-v-8d972708]{font-size:13px;line-height:1.6;color:var(--text-secondary);margin:0}.modal-form[data-v-8d972708]{display:grid;gap:12px}.modal-field[data-v-8d972708]{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.modal-field input[data-v-8d972708]{font:inherit;width:100%;min-height:42px;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);box-sizing:border-box}.modal-field input[data-v-8d972708]:focus{border-color:var(--astraea-brand-primary);box-shadow:0 0 0 3px var(--astraea-brand-primary-subtle);outline:none}.modal-actions[data-v-8d972708]{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.product-primary-button.is-danger[data-v-8d972708]{background:var(--c-danger);border-color:var(--c-danger);color:#fff}.modal-error[data-v-8d972708]{color:var(--status-error);font-size:12.5px;margin:0}@media(max-width:390px){.auth-screen[data-v-8d972708]{padding:calc(8px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom))}.auth-card[data-v-8d972708]{padding:16px 14px 14px;gap:8px}.auth-brand[data-v-8d972708]{gap:2px;margin-bottom:0}.auth-title[data-v-8d972708]{font-size:21px}.auth-companion-picker[data-v-8d972708]{gap:6px}.auth-companion-tab[data-v-8d972708]{min-height:42px;padding:5px 6px;gap:6px}.auth-companion-tab img[data-v-8d972708]{width:32px;height:32px}.auth-companion-tab strong[data-v-8d972708]{font-size:12px}.auth-dialogue-card[data-v-8d972708]{padding:9px}.auth-mode-tabs[data-v-8d972708]{gap:4px;padding:3px}.auth-mode-tab[data-v-8d972708]{font-size:12px;padding:6px 10px}.auth-field[data-v-8d972708]{gap:5px}.auth-field input[data-v-8d972708]{min-height:38px;padding:8px 11px;font-size:14px}.auth-submit-btn[data-v-8d972708]{min-height:40px;font-size:13.5px}.modal-dialog[data-v-8d972708]{padding:20px 18px;gap:12px}.modal-title[data-v-8d972708]{font-size:18px}.modal-field input[data-v-8d972708]{min-height:40px;padding:8px 12px}}@media(max-width:480px){.auth-screen[data-v-8d972708]{padding:calc(8px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom))}.auth-card[data-v-8d972708]{padding:16px 14px 14px;border-radius:var(--radius-lg)}.auth-title[data-v-8d972708]{font-size:21px}.auth-companion-picker[data-v-8d972708]{gap:8px}.auth-companion-tab[data-v-8d972708]{padding:5px 6px;gap:6px}.auth-companion-tab img[data-v-8d972708]{width:36px;height:36px}.auth-companion-tab strong[data-v-8d972708]{font-size:12px}}:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:15px;line-height:1.5;letter-spacing:0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--astraea-brand-primary: #0f6f87;--astraea-brand-primary-hover: #0b576b;--astraea-brand-primary-active: #084454;--astraea-brand-primary-subtle: #e8f4f7;--astraea-brand-primary-border: #b8e0ea;--astraea-brand-gold: #b57a07;--astraea-brand-gold-hover: #9c6804;--astraea-brand-gold-subtle: #fef8eb;--astraea-brand-gold-border: #f7e0a8;--bg-app: #f5f8fa;--bg-surface: #ffffff;--bg-subtle: #edf2f6;--bg-elevated: #ffffff;--bg-inset: #e4ebf0;--border-subtle: #dbe4ea;--border-medium: #c5d3dc;--border-strong: #98adbd;--text-primary: #121e28;--text-secondary: #415261;--text-muted: #6e8192;--text-inverse: #ffffff;--status-success: #15794f;--status-success-bg: #eaf6f0;--status-success-border: #aee0c7;--status-warning: #b36406;--status-warning-bg: #fef5e6;--status-warning-border: #fad89d;--status-error: #bc2334;--status-error-bg: #fdf0f2;--status-error-border: #f8bac1;--status-info: #146499;--status-info-bg: #ebf4fc;--status-info-border: #badef8;--bubble-user-bg: #153043;--bubble-user-text: #f4f8fb;--bubble-char-bg: #ffffff;--bubble-char-text: #121e28;--bubble-char-border: #d7e2e9;--error: var(--status-error);--focus: #0f6f87;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(16, 32, 48, .04);--shadow-sm: 0 2px 4px rgba(16, 32, 48, .05), 0 1px 2px rgba(16, 32, 48, .03);--shadow-md: 0 4px 12px -2px rgba(16, 32, 48, .08), 0 2px 4px rgba(16, 32, 48, .03);--shadow-drawer: -6px 0 24px rgba(10, 24, 38, .12);--transition-fast: .12s cubic-bezier(.2, 0, 0, 1);--transition-normal: .2s cubic-bezier(.2, 0, 0, 1)}*{box-sizing:border-box}html,body,#app{min-width:320px;height:100%;margin:0;overflow:hidden;background:var(--bg-app);color:var(--text-primary)}body{font-family:inherit}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--astraea-brand-primary);outline-offset:2px}.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);height:100vh;height:100dvh;min-height:0;max-width:1440px;margin:0 auto;background:var(--bg-app)}.character-panel{display:flex;flex-direction:column;min-width:0;height:100%;border-right:1px solid var(--border-subtle);background:var(--bg-surface);overflow:hidden}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 16px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.brand-title-group{display:grid;gap:2px;min-width:0}.eyebrow{margin:0;color:var(--astraea-brand-primary);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.brand-row h1{margin:0;font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:0}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--status-success);box-shadow:0 0 0 2px var(--status-success-bg);flex-shrink:0}.catalog-controls{display:grid;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.catalog-search-wrap{position:relative;display:flex;align-items:center}.catalog-search-input{width:100%;min-width:0;height:34px;padding:6px 10px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:13px}.catalog-search-input::placeholder{color:var(--text-muted)}.catalog-filters-row{display:flex;gap:6px}.catalog-filter-select{flex:1;min-width:0;height:32px;padding:4px 8px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:12px}.catalog-tag-chips{display:flex;flex-wrap:wrap;gap:4px;max-height:58px;overflow-y:auto;overscroll-behavior:contain}.catalog-tag-chip{padding:2px 7px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-surface);color:var(--text-secondary);font-size:11px;line-height:1.4;white-space:nowrap}.catalog-tag-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.catalog-tag-chip.is-active{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary);font-weight:600}.character-list-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 10px}.character-list{display:grid;gap:6px}.character-item{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:inherit;text-align:left;position:relative;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.character-item:hover{background:var(--bg-subtle);border-color:var(--border-subtle)}.character-item.is-active{background:var(--astraea-brand-primary-subtle);border-color:var(--astraea-brand-primary-border);box-shadow:inset 3px 0 var(--astraea-brand-primary)}.character-item.is-active .character-meta strong{color:var(--astraea-brand-primary)}.character-meta{display:grid;gap:2px;min-width:0;flex:1}.character-meta-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.character-meta strong{font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.character-badges{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.character-kind-badge{padding:1px 5px;border-radius:var(--radius-xs);font-size:10px;font-weight:600;line-height:1.3}.character-kind-badge.is-official{background:var(--status-info-bg);color:var(--status-info);border:1px solid var(--status-info-border)}.character-kind-badge.is-private{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-medium)}.character-desc-line{margin:0;font-size:12px;line-height:1.4;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-star-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:14px;flex-shrink:0}.favorite-star-btn:hover{background:var(--bg-surface);color:var(--astraea-brand-gold)}.favorite-star-btn.is-favorite{color:var(--astraea-brand-gold)}.catalog-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-surface);font-size:12px;color:var(--text-secondary)}.catalog-pagination button{min-height:28px;padding:2px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-subtle);font-size:12px}.catalog-pagination button:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-surface)}.panel-state{padding:12px 14px;color:var(--text-secondary);font-size:13px;line-height:1.5}.panel-state p{margin:0 0 6px}.state-error{color:var(--status-error)}.text-button{min-height:32px;padding:4px 10px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--astraea-brand-primary);font-weight:650;font-size:13px}.text-button:hover:not(:disabled){background:var(--astraea-brand-primary-subtle)}.avatar{display:grid;flex:0 0 auto;place-items:center;width:40px;height:40px;border-radius:var(--radius-full);font-weight:700;font-size:15px;overflow:hidden;border:1px solid var(--border-subtle)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-blue{background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary);border-color:var(--astraea-brand-primary-border)}.avatar-warm{background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold);border-color:var(--astraea-brand-gold-border)}.avatar-deep{background:color-mix(in srgb,var(--astraea-brand-primary) 22%,var(--bg-subtle, transparent));color:var(--astraea-brand-primary);border-color:color-mix(in srgb,var(--astraea-brand-primary) 38%,transparent)}.avatar-sand{background:color-mix(in srgb,var(--astraea-brand-gold) 24%,var(--bg-subtle, transparent));color:var(--astraea-brand-gold);border-color:color-mix(in srgb,var(--astraea-brand-gold) 40%,transparent)}.chat-panel{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden;background:var(--bg-app)}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:8px 24px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0}.mobile-drawer-toggle,.mobile-drawer-close,.mobile-drawer-backdrop{display:none}.chat-person{display:flex;align-items:center;gap:12px;min-width:0}.chat-person-details{display:grid;gap:2px;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.chat-person-details{cursor:pointer;-webkit-user-select:none;user-select:none}.chat-person-details:hover strong,.chat-person-details:focus-visible strong{color:var(--astraea-brand-primary)}.chat-person-title-row{display:flex;align-items:center;gap:6px}.chat-detail-indicator{font-size:14px;line-height:1;color:var(--text-muted);transition:transform var(--transition-fast),color var(--transition-fast)}.chat-person-details:hover .chat-detail-indicator,.chat-person-details:focus-visible .chat-detail-indicator{color:var(--astraea-brand-primary);transform:translate(2px)}.chat-person-title-row strong{font-size:16px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-person small{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-life{display:inline-flex;align-items:center;margin-left:4px;position:relative}.character-life summary{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-full);background:var(--astraea-brand-primary-subtle);border:1px solid var(--astraea-brand-primary-border);color:var(--astraea-brand-primary);font-size:11.5px;font-weight:550;cursor:pointer;list-style:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.character-life summary::-webkit-details-marker{display:none}.character-life summary:before{content:"";display:inline-block;width:6px;height:6px;border-radius:var(--radius-full);background:var(--status-success);box-shadow:0 0 0 2px var(--status-success-bg)}.character-life[open] summary{background:var(--astraea-brand-primary);color:#fff}.character-life .life-description{position:absolute;top:calc(100% + 8px);left:0;z-index:100;min-width:240px;max-width:320px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-medium);box-shadow:0 8px 24px #0003;color:var(--text-secondary);font-size:12px;line-height:1.5}.chat-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.new-conv-button{min-height:32px;padding:0 14px;border-radius:var(--radius-full);border:1px solid var(--astraea-brand-primary-border);background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary);font-weight:650;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.new-conv-button:hover:not(:disabled){background:var(--astraea-brand-primary);color:#fff;border-color:var(--astraea-brand-primary);box-shadow:0 2px 10px #0284c747;transform:translateY(-1px)}.icon-button{display:grid;place-items:center;min-width:34px;min-height:34px;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:16px}.icon-button:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-subtle);color:var(--text-primary)}.status-banner{display:flex;align-items:center;justify-content:center;gap:10px;min-height:36px;padding:6px 16px;margin:8px auto 0;max-width:820px;width:calc(100% - 32px);border-radius:var(--radius-md);border:1px solid var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning);font-size:13px;text-align:center;box-shadow:var(--shadow-xs)}.status-banner.is-error{border-color:var(--status-error-border);background:var(--status-error-bg);color:var(--status-error)}.status-banner>span{min-width:0;max-height:min(120px,20dvh);overflow-y:auto;overflow-wrap:anywhere;overscroll-behavior:contain}.status-banner .text-button{flex:0 0 auto;white-space:nowrap}.message-viewport{display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:20px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:24px 20px;overscroll-behavior-y:contain}.message-row{display:flex;min-width:0;flex-shrink:0;width:100%;max-width:820px}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start;align-items:flex-start;gap:14px}.message-sender-avatar{flex:0 0 38px;width:38px;height:38px;margin-top:2px}.avatar-sm{width:38px;height:38px;font-size:14px}.message-content-group{display:flex;flex-direction:column;gap:4px;max-width:min(85%,720px)}.message-sender-meta{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);padding-left:2px}.message-bubble{max-width:100%;padding:13px 18px;border-radius:var(--radius-lg);line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap;font-size:15px;box-shadow:var(--shadow-sm);position:relative}.message-bubble.assistant{background:var(--bubble-char-bg);color:var(--bubble-char-text);border:1px solid var(--bubble-char-border);border-radius:4px 20px 20px}.message-bubble.user{max-width:min(80%,640px);background:var(--bubble-user-bg);color:var(--bubble-user-text);border-radius:20px 20px 4px;box-shadow:0 4px 14px #0284c740}.message-bubble.is-stopped,.message-bubble.is-error{border:1px dashed var(--status-error-border);background:var(--status-error-bg);color:var(--status-error)}.message-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.message-attachment-thumbnail{display:block;width:min(220px,44vw);max-height:220px;object-fit:cover;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-subtle)}.message-attachment-loading,.message-attachment-expired{display:grid;place-items:center;width:min(220px,44vw);min-height:72px;padding:10px;border:1px dashed var(--border-subtle);border-radius:10px;color:var(--text-muted);font-size:12px;background:var(--bg-subtle)}.attachment-error{color:var(--status-error)}.message-origin-badge{display:inline-block;margin-bottom:4px;padding:1px 7px;border-radius:var(--radius-xs);font-size:11px;font-weight:600;letter-spacing:.02em}.message-origin-badge.opening{background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary);border:1px solid var(--astraea-brand-primary-border)}.message-origin-badge.followup{background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold);border:1px solid var(--astraea-brand-gold-border)}.message-note{display:block;margin-top:8px;color:var(--text-muted);font-size:11px}.message-time{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.message-sender-meta .message-time{margin-left:auto;padding-left:8px}.message-time-row{display:flex;justify-content:flex-end;padding:3px 4px 0}.day-divider{display:flex;align-items:center;gap:10px;margin:16px 0 8px;color:var(--text-muted);font-size:11px;letter-spacing:.04em}.day-divider:before,.day-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.history-loader{display:flex;justify-content:center;padding:4px 0 10px}.history-loader-note{color:var(--text-muted);font-size:11.5px}.jump-to-latest{position:absolute;right:18px;bottom:calc(108px + env(safe-area-inset-bottom));z-index:5;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;box-shadow:var(--shadow-md)}.jump-to-latest:hover{border-color:var(--border-strong);color:var(--text-primary)}.unread-dot{flex:0 0 auto;width:9px;height:9px;margin-left:6px;border-radius:var(--radius-full);background:var(--astraea-brand-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--astraea-brand-primary) 18%,transparent)}.message-search{margin-bottom:10px}.message-search .catalog-search-input{width:100%}.stage-side-list{display:none}@media(min-width:1024px){.product-stage[data-stage-view=chat]{display:flex;align-items:stretch;overflow:hidden}.stage-side-list{display:block;flex:0 0 300px;width:300px;min-height:0;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--border-subtle);background:var(--bg-app)}.stage-side-list .page{padding:14px 10px calc(20px + env(safe-area-inset-bottom));gap:12px}.stage-side-list .conversation-row{padding:10px}.stage-side-list .conversation-snippet,.stage-side-list .conversation-badges{font-size:11.5px}}@media(max-width:1023px){.stage-side-list{display:none!important}}.typing-indicator{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;color:var(--astraea-brand-primary);font-size:13px}.typing-dot{width:5px;height:5px;border-radius:var(--radius-full);background:var(--astraea-brand-primary);opacity:.4;animation:astraeaWave 1.4s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes astraeaWave{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-3px);opacity:1}}.empty-state,.welcome-panel{display:grid;place-items:center;align-content:center;gap:12px;min-height:0;flex:1;padding:32px 20px;color:var(--text-secondary);text-align:center}.empty-state strong,.welcome-panel strong{font-size:18px;color:var(--text-primary);font-weight:700}.welcome-panel p{max-width:420px;margin:0;line-height:1.6}.welcome-open-drawer-btn{display:none}@media(max-width:768px){.welcome-open-drawer-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 20px;border-radius:var(--radius-md);border:1px solid var(--astraea-brand-primary-border);background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary);font-size:14px;font-weight:650;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.welcome-open-drawer-btn:hover{background:var(--astraea-brand-primary);color:#fff}}.composer{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 24px calc(14px + env(safe-area-inset-bottom));background:transparent;position:relative;flex-shrink:0}.composer-island{display:flex;align-items:flex-end;gap:10px;width:100%;max-width:860px;padding:6px 10px 6px 16px;border:1px solid var(--border-medium);border-radius:18px;background:var(--bg-surface);box-shadow:0 8px 30px #0000001a;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.composer-island:focus-within{border-color:var(--astraea-brand-primary);box-shadow:0 8px 30px #0284c729,0 0 0 2px #0284c71f}.pending-attachments{display:flex;flex-wrap:wrap;gap:8px;width:100%;max-width:860px}.pending-attachment{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) 22px;align-items:center;gap:6px;min-width:150px;max-width:240px;padding:4px 5px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface);font-size:11px}.pending-attachment img{width:54px;height:44px;object-fit:cover;border-radius:7px;background:var(--bg-subtle)}.pending-attachment-state{overflow-wrap:anywhere;color:var(--text-muted)}.pending-attachment-state.is-ready{color:var(--status-success)}.pending-attachment-state.is-error{color:var(--status-error)}.pending-attachment-remove{align-self:start;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:var(--bg-subtle);color:var(--text-secondary);font-size:16px;line-height:1}.pending-attachment-remove:hover{color:var(--status-error)}.image-attach-button{flex:0 0 34px;width:34px;height:34px;padding:0;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-subtle);color:var(--text-secondary);font-size:20px;line-height:1}.image-attach-button:hover:not(:disabled){border-color:var(--astraea-brand-primary);color:var(--astraea-brand-primary)}.image-attach-button:disabled{opacity:.45}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.composer-island textarea{flex:1;min-width:0;min-height:28px;max-height:140px;resize:none;overflow-y:auto;padding:8px 0;border:0;outline:none;background:transparent;color:var(--text-primary);font-size:15px;line-height:1.5}.composer-island textarea::placeholder{color:var(--text-muted)}.composer-footnote{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);letter-spacing:.02em}.send-button{min-width:72px;min-height:38px;padding:0 16px;border:0;border-radius:12px;background:var(--astraea-brand-primary);color:#fff;font-weight:650;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:4px;box-shadow:0 2px 8px #0284c74d;transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.send-button .send-icon{font-size:15px;font-weight:700}.send-button:hover:not(:disabled){background:var(--astraea-brand-primary-hover);box-shadow:0 4px 12px #0284c766;transform:translateY(-1px)}.send-button:active:not(:disabled){background:var(--astraea-brand-primary-active);transform:translateY(0)}.stop-button{background:var(--status-error)}.stop-button:hover:not(:disabled){background:#a31929}.authenticated-shell{height:100dvh;display:flex;flex-direction:column;min-width:0;overflow:hidden}.authenticated-shell>.app-shell{flex:1 1 0;min-height:0;height:100%}.account-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);font-size:13px;flex-shrink:0;z-index:10}.account-bar-info{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary)}.account-bar-info strong{color:var(--text-primary);font-weight:650}.account-bar-nav{display:flex;align-items:center;gap:6px;overflow-x:auto}.account-bar button{min-height:32px;padding:0 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;white-space:nowrap}.account-bar button:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-subtle);color:var(--text-primary)}.account-bar button.admin-entry-btn{border-color:var(--astraea-brand-primary-border);background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary)}.authenticated-content{flex:1;min-height:0;position:relative;overflow:hidden}.auth-screen{min-height:100%;height:100dvh;overflow-y:auto;display:grid;place-items:center;padding:24px 16px;background:var(--bg-app)}.auth-card{width:min(100%,420px);padding:32px 28px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-md);display:grid;gap:16px}.auth-eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--astraea-brand-primary);text-transform:uppercase}.auth-card h1{margin:0;font-size:22px;font-weight:700;color:var(--text-primary)}.auth-card p{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary)}.auth-card label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.auth-card input{width:100%;min-height:42px;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--text-primary)}.auth-card button[type=submit]{min-height:44px;border:0;border-radius:var(--radius-sm);background:var(--astraea-brand-primary);color:#fff;font-weight:650;font-size:14px;margin-top:4px}.auth-card button[type=submit]:hover:not(:disabled){background:var(--astraea-brand-primary-hover)}.auth-error{margin:0;padding:8px 12px;border-radius:var(--radius-xs);background:var(--status-error-bg);border:1px solid var(--status-error-border);color:var(--status-error);font-size:13px}.password-form{position:absolute;top:50px;right:20px;z-index:30;width:min(100% - 40px,360px);padding:20px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-md);display:grid;gap:12px}.password-form label{display:grid;gap:4px;font-size:13px;color:var(--text-secondary)}.password-form input{min-height:38px;padding:6px 10px;border:1px solid var(--border-medium);border-radius:var(--radius-xs);background:var(--bg-app)}.password-form button{min-height:38px;border:0;border-radius:var(--radius-xs);background:var(--status-error);color:#fff;font-weight:600;font-size:13px}.context-backdrop,.memory-backdrop,.trace-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;justify-content:flex-end;background:#0a18266b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.context-panel,.memory-panel,.trace-panel{display:flex;flex-direction:column;width:min(440px,100%);height:100%;min-width:0;overflow:hidden;background:var(--bg-surface);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-drawer)}.context-header,.memory-header,.trace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-shrink:0;padding:16px 20px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.context-heading,.memory-heading,.trace-heading{display:grid;gap:3px;min-width:0}.context-heading h2,.memory-heading h2,.trace-heading h2{margin:0;font-size:18px;font-weight:700;line-height:1.3;color:var(--text-primary);overflow-wrap:anywhere}.context-heading small,.memory-heading small,.trace-heading small{color:var(--text-muted);font-size:12px;line-height:1.5}.context-form{display:grid;gap:16px;align-content:start;flex:1;min-height:0;overflow-y:auto;padding:20px}.context-form label{display:grid;gap:6px;color:var(--text-secondary);font-size:13px;font-weight:600}.context-form input,.context-form textarea,.context-form select{width:100%;min-width:0;min-height:40px;padding:8px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);line-height:1.45}.context-form textarea{resize:vertical}.context-help{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5;font-weight:400;overflow-wrap:anywhere}.context-state{display:grid;place-items:center;flex:1;padding:24px;color:var(--text-secondary)}.context-error,.context-notice{margin:0;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.context-error{background:var(--status-error-bg);border:1px solid var(--status-error-border);color:var(--status-error)}.context-notice{background:var(--status-success-bg);border:1px solid var(--status-success-border);color:var(--status-success)}.context-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:12px}.context-save{min-height:40px;padding:0 18px;border:0;border-radius:var(--radius-sm);background:var(--astraea-brand-primary);color:#fff;font-weight:650;font-size:13px}.context-save:hover:not(:disabled){background:var(--astraea-brand-primary-hover)}.memory-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;flex-shrink:0;padding:10px 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.memory-segment{display:inline-flex;border:1px solid var(--border-medium);border-radius:var(--radius-sm);overflow:hidden}.memory-segment button{min-height:32px;padding:0 12px;border:0;background:var(--bg-surface);color:var(--text-secondary);font-size:12px}.memory-segment button+button{border-left:1px solid var(--border-subtle)}.memory-segment button.is-on{background:var(--astraea-brand-primary);color:#fff;font-weight:650}.memory-toggle{display:inline-flex;align-items:center;gap:6px;min-height:32px;color:var(--text-secondary);font-size:12px}.memory-toolbar-actions{display:inline-flex;gap:4px;margin-left:auto}.memory-notice{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;min-height:36px;padding:6px 16px;border-bottom:1px solid var(--status-success-border);background:var(--status-success-bg);color:var(--status-success);font-size:13px}.memory-notice.is-error{border-bottom-color:var(--status-error-border);background:var(--status-error-bg);color:var(--status-error)}.memory-body{display:grid;gap:12px;align-content:start;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 20px 24px}.memory-card{display:grid;gap:8px;padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-xs)}.memory-card.is-conflict{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.memory-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.memory-subject{min-width:0;font-weight:650;font-size:14px;overflow-wrap:anywhere}.memory-chip{padding:2px 8px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);font-size:11px;white-space:nowrap}.memory-chip[data-scope=conversation]{border-color:var(--status-info-border);background:var(--status-info-bg);color:var(--status-info)}.memory-chip[data-scope=relationship]{border-color:var(--astraea-brand-gold-border);background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold)}.memory-chip[data-tone=ok]{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--status-success)}.memory-chip[data-tone=warn]{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning)}.memory-value{margin:0;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px}.memory-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.memory-action{min-height:32px;padding:0 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600}.memory-action:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.memory-action.is-primary{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary);color:#fff}.memory-action.is-danger{border-color:var(--status-error-border);color:var(--status-error)}.trace-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;flex-shrink:0;padding:10px 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle)}.trace-scenarios{display:flex;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 100%}.trace-body{display:grid;gap:14px;align-content:start;flex:1;min-height:0;overflow-y:auto;padding:16px 20px 20px}.trace-chip{padding:2px 9px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);font-size:11px;white-space:nowrap}.trace-chip-button{min-height:30px;cursor:pointer}.trace-chip-button.is-on{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary);color:#fff;font-weight:650}.trace-chip[data-tone=ok]{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--status-success)}.trace-chip[data-tone=warn]{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning)}.trace-chip[data-tone=error]{border-color:var(--status-error-border);background:var(--status-error-bg);color:var(--status-error)}.trace-chip[data-tone=info]{border-color:var(--status-info-border);background:var(--status-info-bg);color:var(--status-info)}.trace-section{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--border-subtle)}.trace-section>h3{margin:0;font-size:13px;color:var(--text-secondary);font-weight:650}.trace-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:baseline;font-size:13px}.trace-row-label{color:var(--text-muted);font-size:12px}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--astraea-brand-primary: #38bdf8;--astraea-brand-primary-hover: #7dd3fc;--astraea-brand-primary-active: #bae6fd;--astraea-brand-primary-subtle: #082f49;--astraea-brand-primary-border: #0369a1;--astraea-brand-gold: #fbbf24;--astraea-brand-gold-hover: #fde68a;--astraea-brand-gold-subtle: #451a03;--astraea-brand-gold-border: #78350f;--bg-app: #080c14;--bg-surface: #0e1624;--bg-subtle: #162032;--bg-elevated: #1e2c42;--bg-inset: #090d16;--border-subtle: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .14);--border-strong: rgba(255, 255, 255, .24);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #080c14;--status-success: #34d399;--status-success-bg: #064e3b;--status-success-border: #059669;--status-warning: #fbbf24;--status-warning-bg: #451a03;--status-warning-border: #b45309;--status-error: #f87171;--status-error-bg: #450a0a;--status-error-border: #dc2626;--status-info: #38bdf8;--status-info-bg: #082f49;--status-info-border: #0284c7;--bubble-user-bg: #075985;--bubble-user-text: #ffffff;--bubble-char-bg: #141d2b;--bubble-char-text: #f8fafc;--bubble-char-border: rgba(56, 189, 248, .16)}.character-item.is-active{box-shadow:inset 3px 0 var(--astraea-brand-primary),0 2px 12px #00000040;background:var(--bg-subtle)}.message-bubble.assistant{background:var(--bubble-char-bg);border-color:var(--bubble-char-border);box-shadow:0 4px 16px #00000040}.message-bubble.user{background:var(--bubble-user-bg);box-shadow:0 4px 16px #0284c747}.memory-segment button.is-on,.trace-chip-button.is-on{background:var(--astraea-brand-primary);color:#080c14}.composer-island{background:#0f1726;border-color:#ffffff1f;box-shadow:0 8px 30px #00000059}.character-life summary{background:#38bdf81f;border-color:#38bdf840;color:#7dd3fc}.status-banner{background:#241604;border-color:#5c390b;color:#fde68a}.status-banner.is-error{background:#300c11;border-color:#6e1c25;color:#fca5a5}}@media(max-width:1024px){.app-shell{grid-template-columns:280px minmax(0,1fr)}.message-viewport{padding:16px 24px}}@media(max-width:768px){.app-shell{display:flex;flex-direction:column;position:relative;height:100%;flex:1 1 0;min-height:0;overflow:hidden}.mobile-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.character-panel{position:fixed;top:0;left:0;bottom:0;width:min(320px,86vw);height:100dvh;max-height:100dvh;z-index:1200;background:var(--bg-surface);box-shadow:4px 0 24px #0006;transform:translate(-100%);transition:transform .25s cubic-bezier(.16,1,.3,1);border-right:1px solid var(--border-medium);border-bottom:0;overflow-y:auto}.character-panel.is-mobile-open{transform:translate(0)}.mobile-drawer-close{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:20px;line-height:1}.chat-panel{width:100%;height:100%;flex:1 1 0;display:flex;flex-direction:column;min-height:0;overflow:hidden}.mobile-drawer-toggle{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:600;flex-shrink:0}.account-bar{min-height:38px;padding:0 10px;gap:8px;font-size:12px}.account-bar-info{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;flex-shrink:0}.account-bar-nav{display:flex;align-items:center;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;justify-content:flex-start}.account-bar-nav::-webkit-scrollbar{display:none}.account-bar button{min-height:40px;padding:0 8px;font-size:11px;flex-shrink:0;white-space:nowrap}.chat-header{padding:8px 12px;min-height:50px;gap:8px;flex-shrink:0}.chat-header-actions{margin-left:auto;gap:4px;overflow-x:auto;max-width:55%;scrollbar-width:none}.chat-header-actions::-webkit-scrollbar{display:none}.new-conv-button{min-height:30px;padding:0 10px;font-size:12px;white-space:nowrap}.message-viewport{padding:12px 14px;gap:14px;flex:1 1 0;min-height:0}.message-content-group{max-width:88%}.message-bubble{padding:11px 14px;font-size:14.5px}.message-bubble.user{max-width:88%}.composer{flex-shrink:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.composer-island{padding:4px 8px 4px 12px;border-radius:14px}.composer-island textarea{font-size:14px}.send-button{min-width:60px;min-height:36px;padding:0 12px;font-size:13px}.composer-footnote{display:none}.context-panel,.memory-panel,.trace-panel{width:100%;border-left:0}}@media(max-width:640px){.chat-header{display:flex;flex-wrap:wrap;align-items:center;padding:8px 12px 6px;min-height:auto;gap:6px}.chat-person{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}.chat-person .avatar{width:32px;height:32px;font-size:13px;flex-shrink:0}.chat-person-details{min-width:0;overflow:hidden}.chat-person-title-row{display:flex;align-items:center;gap:6px}.chat-person-title-row strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-person-title-row .character-kind-badge{font-size:9.5px;padding:1px 4px;flex-shrink:0}.chat-person small,.chat-person .character-life{display:none}.chat-header-actions{display:contents}.new-conv-button{order:2;min-height:28px;padding:0 10px;font-size:11.5px;font-weight:600;white-space:nowrap;flex-shrink:0}}@media(max-width:380px){.character-item{padding:8px 10px}.message-content-group,.message-bubble.user{max-width:92%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell{grid-template-columns:264px minmax(0,1fr);max-width:none}.character-panel{border-right-color:var(--border-medium)}.brand-row{padding:18px 16px 14px}.catalog-controls{background:transparent;padding:12px 12px 10px}.catalog-search-input,.catalog-filter-select{background:var(--bg-app);border-color:var(--border-subtle)}.character-list-wrap{padding:6px 8px}.character-list{gap:2px}.character-item{min-height:56px;padding:8px 9px;border-radius:8px}.character-item.is-active{box-shadow:inset 2px 0 var(--astraea-brand-primary)}.chat-header{min-height:64px;padding:10px clamp(18px,4vw,48px)}.chat-header-actions{gap:8px}.new-conv-button{min-height:40px;border-radius:8px;background:var(--astraea-brand-primary);color:#fff;border-color:var(--astraea-brand-primary);box-shadow:none}.new-conv-button:hover:not(:disabled){background:var(--astraea-brand-primary-hover);border-color:var(--astraea-brand-primary-hover);box-shadow:none;transform:none}.chat-actions-menu{position:relative}.chat-actions-menu summary{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 11px;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;list-style:none}.chat-actions-menu summary::-webkit-details-marker{display:none}.chat-actions-menu summary:after{content:"⌄";margin-left:6px;color:var(--text-muted)}.chat-actions-menu[open] summary{border-color:var(--astraea-brand-primary-border);color:var(--astraea-brand-primary)}.chat-actions-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:grid;min-width:150px;padding:5px;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-surface);box-shadow:var(--shadow-md)}.chat-actions-popover button{min-height:40px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);text-align:left;font-size:13px}.chat-actions-popover button:hover:not(:disabled),.chat-actions-popover button:focus-visible{background:var(--bg-subtle);color:var(--text-primary)}.message-viewport{align-items:stretch;gap:16px;padding:28px clamp(18px,5vw,72px) 20px}.message-row{max-width:760px;margin-inline:auto}.message-row.assistant{gap:10px}.message-sender-avatar,.avatar-sm{width:30px;height:30px}.message-sender-avatar{flex-basis:30px;margin-top:3px}.message-content-group{max-width:min(86%,680px)}.message-sender-meta{font-size:11px;font-weight:600;color:var(--text-muted)}.message-bubble{padding:10px 14px;border-radius:14px;box-shadow:none;font-size:15px;line-height:1.7}.message-bubble.assistant{border:1px solid var(--bubble-char-border);border-radius:4px 14px 14px}.message-bubble.user{border-radius:14px 14px 4px;box-shadow:none}.empty-state{flex:0 0 auto;margin:auto;padding:24px 0 10px}.companion-greeting{display:flex;align-items:flex-start;justify-content:center;gap:14px;width:min(100%,520px);text-align:left}.avatar-lg{width:48px;height:48px;font-size:18px}.greeting-copy{display:grid;gap:5px;min-width:0}.greeting-copy h2{margin:0;color:var(--text-primary);font-size:18px;font-weight:700}.greeting-copy p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.55}.greeting-suggestions{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:7px}.suggestion-chip{min-height:40px;padding:8px 0;border:0;border-bottom:1px solid var(--astraea-brand-primary-border);border-radius:0;background:transparent;color:var(--astraea-brand-primary);font-size:12px}.suggestion-chip:hover{background:transparent;border-color:var(--astraea-brand-primary);color:var(--astraea-brand-primary-hover);transform:none}.composer{gap:0;padding:12px clamp(18px,5vw,72px) calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle);background:var(--bg-surface)}.composer-island{max-width:760px;padding:5px 8px 5px 13px;border-radius:10px;background:var(--bg-app);box-shadow:none}.composer-island:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--astraea-brand-primary) 18%,transparent)}.send-button{min-width:66px;min-height:40px;border-radius:8px;box-shadow:none}.send-button:hover:not(:disabled){box-shadow:none;transform:none}.composer-footnote{justify-content:flex-start;width:min(100%,760px);margin:6px auto 0;padding-left:2px;letter-spacing:0}.status-banner{max-width:760px;margin:8px auto 0;box-shadow:none}.welcome-panel{background:var(--bg-app)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .new-conv-button,:root:not([data-theme]) .send-button{color:var(--text-inverse)}:root:not([data-theme]) .stop-button{color:#2b0b10}:root:not([data-theme]) .composer-island{background:var(--bg-inset);border-color:var(--border-medium)}:root:not([data-theme]) .message-bubble.assistant{box-shadow:none}}@media(max-width:768px){.chat-header{padding:8px 12px}.message-viewport{padding:18px 14px 14px}.composer{padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.composer-footnote{display:none}.chat-actions-popover{position:fixed;top:max(54px,calc(100dvh - 286px));right:10px;bottom:auto}.companion-greeting{width:min(100%,420px);padding:12px 8px}}@media(max-width:380px){.companion-greeting{gap:10px}.avatar-lg{width:42px;height:42px}}:root[data-theme=dark]{color-scheme:dark;--astraea-brand-primary: #38bdf8;--astraea-brand-primary-hover: #7dd3fc;--astraea-brand-primary-active: #bae6fd;--astraea-brand-primary-subtle: #082f49;--astraea-brand-primary-border: #0369a1;--astraea-brand-gold: #fbbf24;--astraea-brand-gold-hover: #fde68a;--astraea-brand-gold-subtle: #451a03;--astraea-brand-gold-border: #78350f;--bg-app: #080c14;--bg-surface: #0e1624;--bg-subtle: #162032;--bg-elevated: #1e2c42;--bg-inset: #090d16;--border-subtle: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .14);--border-strong: rgba(255, 255, 255, .24);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #080c14;--status-success: #34d399;--status-success-bg: #064e3b;--status-success-border: #059669;--status-warning: #fbbf24;--status-warning-bg: #451a03;--status-warning-border: #b45309;--status-error: #f87171;--status-error-bg: #450a0a;--status-error-border: #dc2626;--status-info: #38bdf8;--status-info-bg: #082f49;--status-info-border: #0284c7;--bubble-user-bg: #075985;--bubble-user-text: #ffffff;--bubble-char-bg: #141d2b;--bubble-char-text: #f8fafc;--bubble-char-border: rgba(56, 189, 248, .16)}:root[data-theme=dark] .character-item.is-active{box-shadow:inset 3px 0 var(--astraea-brand-primary),0 2px 12px #00000040;background:var(--bg-subtle)}:root[data-theme=dark] .message-bubble.assistant{background:var(--bubble-char-bg);border-color:var(--bubble-char-border);box-shadow:none}:root[data-theme=dark] .message-bubble.user{background:var(--bubble-user-bg);box-shadow:none}:root[data-theme=dark] .memory-segment button.is-on,:root[data-theme=dark] .trace-chip-button.is-on{background:var(--astraea-brand-primary);color:#080c14}:root[data-theme=dark] .composer-island{background:var(--bg-inset);border-color:var(--border-medium);box-shadow:0 8px 30px #00000059}:root[data-theme=dark] .character-life summary{background:#38bdf81f;border-color:#38bdf840;color:#7dd3fc}:root[data-theme=dark] .status-banner{background:#241604;border-color:#5c390b;color:#fde68a}:root[data-theme=dark] .status-banner.is-error{background:#300c11;border-color:#6e1c25;color:#fca5a5}:root[data-theme=dark] .new-conv-button,:root[data-theme=dark] .send-button,:root[data-theme=dark] .product-primary-button{color:var(--text-inverse)}:root[data-theme=dark] .stop-button{color:#2b0b10}.product-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;background:var(--bg-app);position:relative}.product-body{flex:1 1 0;min-height:0;display:flex}.product-rail{display:none}.product-stage{flex:1 1 0;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;position:relative}.product-stage:focus-visible{outline:none}.product-tabs{flex:0 0 auto;display:flex;align-items:stretch;gap:2px;padding:4px 8px calc(4px + env(safe-area-inset-bottom));background:var(--bg-surface);border-top:1px solid var(--border-subtle);z-index:30}@media(max-width:1023px){.product-tabs .nav-tab{gap:0;min-height:46px;font-size:12px;letter-spacing:.01em}.product-tabs .nav-tab .nav-tab-glyph{display:none}.product-tabs .nav-tab.is-active{background:transparent;box-shadow:inset 0 -2px 0 var(--astraea-brand-primary)}}.nav-tab{flex:1 1 0;display:grid;place-items:center;gap:2px;min-height:52px;padding:4px 6px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:11px;font-weight:600}.nav-tab .nav-tab-glyph{display:grid;place-items:center;width:30px;height:26px;color:currentColor}.nav-tab:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-secondary)}.nav-tab.is-active{color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle)}@media(min-width:1024px){.product-tabs{display:none}.product-rail{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:88px;padding:14px 10px calc(14px + env(safe-area-inset-bottom));border-right:1px solid var(--border-subtle);background:var(--bg-surface);z-index:30}.product-rail .rail-brand{display:grid;place-items:center;gap:2px;padding:4px 0 10px;color:var(--astraea-brand-primary)}.product-rail .rail-brand strong{font-size:15px;color:var(--text-primary);letter-spacing:.02em}.product-rail .rail-brand .eyebrow{font-size:8.5px}.rail-tab{display:grid;place-items:center;gap:3px;min-height:58px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:11px;font-weight:600}.rail-tab .nav-tab-glyph{height:22px}.rail-tab:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-secondary)}.rail-tab.is-active{background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary)}.rail-spacer{flex:1 1 0}.rail-theme-button{display:grid;place-items:center;gap:3px;min-height:52px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:10.5px}.rail-theme-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}}.offline-banner{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:4px 16px;background:var(--status-warning-bg);border-bottom:1px solid var(--status-warning-border);color:var(--status-warning);font-size:12.5px;text-align:center}.offline-banner button{min-height:26px;padding:0 8px;border:1px solid var(--status-warning-border);border-radius:var(--radius-full);background:transparent;color:inherit;font-size:11.5px}.page{width:min(100%,1080px);margin:0 auto;padding:20px clamp(16px,4vw,40px) calc(36px + env(safe-area-inset-bottom));display:grid;gap:22px;align-content:start}.page-header{display:grid;gap:6px}.page-title{margin:0;font-size:clamp(20px,3vw,26px);font-weight:750;letter-spacing:.01em;color:var(--text-primary);overflow-wrap:anywhere}.page-subtitle{margin:0;color:var(--text-secondary);font-size:13.5px;line-height:1.6}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.section-title{margin:0;font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:.01em}.state-page{display:grid;place-items:center;align-content:center;gap:10px;min-height:40dvh;padding:40px 20px;text-align:center;color:var(--text-secondary)}.state-page .state-title{font-size:16px;font-weight:700;color:var(--text-primary)}.state-page p{margin:0;font-size:13px;line-height:1.6;max-width:420px}.skeleton{border-radius:var(--radius-md);background:linear-gradient(100deg,var(--bg-subtle) 40%,var(--bg-inset) 50%,var(--bg-subtle) 60%);background-size:200% 100%;animation:skeletonGlow 1.6s linear infinite}@keyframes skeletonGlow{to{background-position:-200% 0}}.discover-hero{position:relative;overflow:hidden;display:grid;gap:6px;padding:clamp(18px,3vw,26px) 0;border-radius:0;border:0;border-bottom:1px solid var(--border-subtle);background:transparent}.discover-hero .page-title{position:relative}.discover-hero-sub{position:relative;margin:0;color:var(--text-secondary);font-size:13.5px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.character-card{position:relative;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-surface);overflow:hidden;transition:border-color var(--transition-fast),transform var(--transition-normal)}.character-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.character-card:focus-within{outline:2px solid var(--astraea-brand-primary);outline-offset:2px}.card-art{position:relative;display:block;width:100%;aspect-ratio:3 / 4;padding:0;border:0;overflow:hidden;text-align:left}.art-lake,.art-tide,.art-dusk,.art-dawn{background:var(--bg-inset)}.card-portrait{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}.card-art .avatar-xl{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:64px;height:64px;font-size:24px;font-weight:650;border:3px solid rgba(255,255,255,.82);box-shadow:0 6px 18px #06141e59}.card-scrim{position:absolute;left:0;right:0;bottom:0;height:36%;background:var(--c-surface, var(--bg-surface));border-top:1px solid color-mix(in srgb,var(--border-subtle) 85%,transparent);pointer-events:none}.card-badges-top{position:absolute;top:8px;left:8px;right:48px;display:flex;align-items:center;gap:6px;pointer-events:none;z-index:2}.card-badge-chip{display:inline-flex;align-items:center;padding:2px 7px;font-size:11px;font-weight:550;line-height:1.3;color:var(--c-ink, #efe7dc);background:var(--c-surface, var(--bg-surface));border:1px solid var(--border-subtle);border-radius:999px}.card-status-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;font-size:10.5px;line-height:1.3;color:var(--c-lamp, #f08a5d);background:var(--c-surface, var(--bg-surface));border:1px solid color-mix(in srgb,var(--c-lamp, #f08a5d) 30%,var(--border-subtle));border-radius:999px}.card-status-dot{width:5px;height:5px;border-radius:50%;background:var(--c-lamp, #f08a5d)}.card-meta-bottom{position:absolute;left:10px;right:10px;bottom:10px;display:flex;flex-direction:column;gap:3px;pointer-events:none;z-index:2}.card-title{display:flex;align-items:center;gap:6px;color:var(--c-ink, #efe7dc);font-size:14.5px}.card-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;letter-spacing:-.01em}.card-quote{font-size:11px;line-height:1.35;color:var(--c-ink-soft, rgba(239, 231, 220, .8));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-resume-dot{flex:0 0 auto;width:7px;height:7px;border-radius:var(--radius-full);background:var(--astraea-brand-gold)}.card-fab{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--c-surface, var(--bg-surface));color:var(--c-ink-soft, var(--text-secondary));font-size:16px}.card-fab:hover:not(:disabled),.card-fab.is-favorite{color:var(--astraea-brand-gold);background:var(--c-surface, var(--bg-surface))}.card-skeleton{aspect-ratio:3 / 4}.message-list{display:grid;gap:8px;width:min(100%,720px);margin:0 auto}.conversation-row{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.conversation-row:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.conversation-row.is-active{border-color:var(--astraea-brand-primary-border);background:var(--astraea-brand-primary-subtle)}.conversation-row:focus-visible{outline:2px solid var(--astraea-brand-primary);outline-offset:2px}.conversation-avatar{flex:0 0 46px;width:46px;height:46px;font-size:17px}.conversation-main{flex:1 1 0;display:grid;gap:3px;min-width:0}.conversation-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.conversation-heading{display:flex;align-items:baseline;gap:7px;flex:1 1 auto;min-width:0;overflow:hidden}.conversation-name{font-size:14px;font-weight:650;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-character-name{flex:0 0 auto;min-width:0;max-width:100%;color:var(--text-primary);font-size:14px;font-weight:700;white-space:nowrap;word-break:keep-all}.conversation-count{flex:0 0 auto;color:var(--text-muted);font-size:11px;white-space:nowrap}.conversation-title{display:block;min-width:0;overflow:hidden;color:var(--text-secondary);font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}.conversation-time{flex:0 0 auto;color:var(--text-muted);font-size:11px}.conversation-snippet{color:var(--text-secondary);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-snippet.is-empty{color:var(--text-muted)}.conversation-switch{flex:0 0 auto;min-height:32px;padding:0 9px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-size:11px;font-weight:650;white-space:nowrap}.conversation-switch:hover{border-color:var(--astraea-brand-primary-border);color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle)}.conversation-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.rel-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border:1px solid var(--astraea-brand-gold-border);border-radius:var(--radius-full);background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold);font-size:10.5px;font-weight:600;white-space:nowrap}.rel-chip.is-none{border-color:var(--border-subtle);background:var(--bg-subtle);color:var(--text-muted)}.life-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border:1px solid var(--status-success-border);border-radius:var(--radius-full);background:var(--status-success-bg);color:var(--status-success);font-size:10.5px;font-weight:600;white-space:nowrap}.relationship-entry{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:15px}.relationship-entry:hover:not(:disabled){border-color:var(--astraea-brand-gold-border);color:var(--astraea-brand-gold);background:var(--astraea-brand-gold-subtle)}.preview-skeleton{height:70px}.detail-hero{display:grid;gap:0;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-surface);overflow:hidden}.detail-band{height:116px;position:relative}.detail-band:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(200px 90px at 50% 130%,rgba(255,255,255,.14),transparent 70%)}.detail-identity{display:flex;align-items:flex-end;gap:16px;padding:0 22px;margin-top:-34px;position:relative}.avatar-xxl{width:72px;height:72px;font-size:27px;font-weight:650;border:3px solid var(--bg-surface);box-shadow:var(--shadow-sm)}.detail-id-main{display:grid;gap:4px;padding-bottom:6px;min-width:0}.detail-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-name{margin:0;font-size:22px;font-weight:750;color:var(--text-primary)}.detail-tagline{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.55}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;padding:16px 22px 20px}.product-primary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 22px;border:0;border-radius:10px;background:var(--astraea-brand-primary);color:#fff;font-weight:700;font-size:14px}.product-primary-button:hover:not(:disabled){background:var(--astraea-brand-primary-hover)}.product-ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--border-medium);border-radius:10px;background:transparent;color:var(--text-secondary);font-weight:600;font-size:13.5px}.product-ghost-button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-subtle)}.product-ghost-button.is-on{border-color:var(--astraea-brand-gold-border);background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold)}.detail-section{display:grid;gap:10px;padding:18px 20px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}.detail-section .section-title{font-size:14px}.detail-section p{margin:0;color:var(--text-secondary);font-size:13.5px;line-height:1.7;overflow-wrap:anywhere}.detail-tags{display:flex;flex-wrap:wrap;gap:6px}.story-head{display:grid;gap:10px}.story-stats{display:flex;flex-wrap:wrap;gap:8px}.story-stat{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);font-size:12px}.story-stat strong{color:var(--astraea-brand-primary);font-size:14px}.timeline{display:grid;gap:22px;width:min(100%,720px);margin:0 auto}.timeline-group{display:grid;gap:10px}.timeline-label{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px;font-weight:650;letter-spacing:.06em}.timeline-label:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.story-card{display:grid;gap:8px;padding:16px 18px;border:1px solid var(--border-subtle);border-left:3px solid var(--border-medium);border-radius:var(--radius-lg);background:var(--bg-surface)}.story-card.is-confirmed{border-left-color:var(--status-success)}.story-card.is-unconfirmed{border-left-color:var(--astraea-brand-gold)}.story-line{margin:0;font-size:14.5px;line-height:1.7;color:var(--text-primary);overflow-wrap:anywhere}.story-subject{color:var(--astraea-brand-primary);font-weight:650}.story-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--text-muted);font-size:11.5px}.confidence-dots{display:inline-flex;gap:3px;align-items:center}.confidence-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--border-strong)}.confidence-dot.is-on{background:var(--astraea-brand-primary)}.importance-mark{color:var(--astraea-brand-gold);letter-spacing:1px}.story-actions{display:flex;justify-content:flex-end;gap:8px}.story-actions .text-button{min-height:32px}.story-delete-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px dashed var(--status-error-border);border-radius:var(--radius-md);background:var(--status-error-bg);color:var(--status-error);font-size:12.5px}.story-delete-confirm .text-button{color:inherit}.source-detail{font-size:12px;color:var(--text-muted)}.source-detail summary{cursor:pointer;min-height:30px;display:inline-flex;align-items:center;color:var(--text-muted);font-size:11.5px;text-decoration:underline dotted}.source-detail div{display:grid;gap:4px;padding:8px 0 2px;line-height:1.6;overflow-wrap:anywhere}.onboarding-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg-app) 74%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.onboarding-card{display:grid;gap:14px;width:min(100%,470px);max-height:min(88dvh,760px);overflow-y:auto;overscroll-behavior:contain;padding:28px 26px;border:1px solid var(--border-medium);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:var(--shadow-md)}.onboarding-progress{display:flex;gap:6px}.onboarding-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--border-strong)}.onboarding-dot.is-on{background:var(--astraea-brand-primary)}.onboarding-title{margin:0;font-size:21px;font-weight:750;color:var(--text-primary)}.onboarding-hint{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6}.onboarding-field{display:grid;gap:6px}.onboarding-field>span{font-size:12.5px;font-weight:600;color:var(--text-secondary)}.onboarding-field input,.onboarding-field textarea{width:100%;min-width:0;min-height:42px;padding:9px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--text-primary);font:inherit}.onboarding-field textarea{min-height:88px;resize:vertical}.choice-list{display:grid;gap:8px}.choice-card{display:grid;gap:4px;padding:13px 14px;border:1.5px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-subtle);text-align:left}.choice-card strong{font-size:13.5px;color:var(--text-primary)}.choice-card span{font-size:12px;color:var(--text-secondary);line-height:1.5}.choice-card:hover:not(:disabled){border-color:var(--border-strong)}.choice-card.is-on{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle)}.choice-card.is-on strong{color:var(--astraea-brand-primary)}.mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:8px}.mini-card{display:grid;justify-items:center;gap:6px;padding:12px 8px;border:1.5px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-subtle);text-align:center}.mini-card .avatar-sm{width:40px;height:40px;font-size:15px}.mini-card strong{font-size:12.5px;color:var(--text-primary)}.mini-card.is-on{border-color:var(--astraea-brand-primary);background:var(--astraea-brand-primary-subtle)}.mini-card.is-on strong{color:var(--astraea-brand-primary)}.onboarding-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.onboarding-error{margin:0;padding:9px 12px;border-radius:var(--radius-sm);background:var(--status-error-bg);border:1px solid var(--status-error-border);color:var(--status-error);font-size:12.5px}.theme-segment{display:inline-flex;overflow:hidden;border:1px solid var(--border-medium);border-radius:10px}.theme-segment button{min-height:40px;padding:0 16px;border:0;background:transparent;color:var(--text-secondary);font-size:12.5px;font-weight:600}.theme-segment button.is-on{background:var(--astraea-brand-primary);color:#fff}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-row-label{display:grid;gap:2px;min-width:0}.profile-row-label strong{font-size:13.5px;color:var(--text-primary)}.profile-row-label span{font-size:12px;color:var(--text-muted);line-height:1.5}.voice-invite{display:flex;align-items:center;gap:12px;width:min(100%,760px);margin:6px auto 0;padding:12px 16px;border:1px solid var(--astraea-brand-primary-border);border-radius:var(--radius-lg);background:var(--astraea-brand-primary-subtle)}.voice-invite-glyph{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:var(--radius-full);background:var(--astraea-brand-primary);color:#fff}.voice-invite-main{flex:1;display:grid;gap:2px;min-width:0}.voice-invite-main strong{font-size:13.5px;color:var(--text-primary)}.voice-invite-main span{font-size:12px;color:var(--text-secondary);line-height:1.5}.voice-invite-actions{display:flex;gap:6px;flex-shrink:0}.voice-invite-actions button{min-height:34px;padding:0 12px;border:1px solid var(--astraea-brand-primary-border);border-radius:var(--radius-full);background:transparent;color:var(--astraea-brand-primary);font-size:12px;font-weight:600}.voice-invite-actions .primary{background:var(--astraea-brand-primary);color:#fff}.voice-mic-button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:0;border-radius:var(--radius-full);background:transparent;color:var(--text-muted)}.voice-mic-button:hover:not(:disabled){background:var(--bg-subtle);color:var(--astraea-brand-primary)}.voice-mic-button.is-active{background:var(--astraea-brand-primary-subtle);color:var(--astraea-brand-primary)}.voice-mic-button:disabled{opacity:.45;cursor:not-allowed}.voice-state-row{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle);font-size:12.5px;line-height:1.6;color:var(--text-secondary)}.voice-state-row.is-denied{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning)}.chat-back-btn{display:none;align-items:center;justify-content:center;gap:4px;min-width:38px;min-height:38px;padding:0 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:15px}.chat-back-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-subtle)}.message-viewport{background:radial-gradient(560px 280px at 14% -8%,color-mix(in srgb,var(--astraea-brand-primary) 7%,transparent),transparent 72%),radial-gradient(460px 240px at 90% 110%,color-mix(in srgb,var(--astraea-brand-gold) 6%,transparent),transparent 72%)}.memory-entry-button{display:inline-flex;align-items:center;gap:5px;min-height:38px;padding:0 12px;border:1px solid var(--astraea-brand-gold-border);border-radius:var(--radius-md);background:var(--astraea-brand-gold-subtle);color:var(--astraea-brand-gold);font-size:12.5px;font-weight:650}.memory-entry-button:hover:not(:disabled){background:var(--astraea-brand-gold);border-color:var(--astraea-brand-gold);color:#fff}@media(max-width:1023px){.chat-back-btn{display:inline-flex}.product-shell[data-view=chat] .product-tabs{display:none}}.product-stage[data-stage-view=chat]{overflow:hidden;display:flex}.product-stage[data-stage-view=chat] .chat-panel{flex:1 1 0;width:100%}@media(max-width:768px){.page{padding:16px 14px calc(28px + env(safe-area-inset-bottom));gap:18px}.detail-identity{padding:0 16px}.detail-actions{padding:14px 16px 18px}.conversation-row{padding:10px 12px;gap:10px}.onboarding-card{padding:22px 18px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.character-card{border-radius:12px}.card-art .avatar-xl{width:56px;height:56px;font-size:22px}.card-meta-bottom{left:8px;right:8px;bottom:8px}.card-title{font-size:13.5px}.card-quote{font-size:10.5px}.card-fab{width:32px;height:32px;font-size:15px}.page-header{padding:12px 0 14px}.page-title{font-size:26px}.discover-hero-sub{font-size:13px}}@media(max-width:390px){.page{padding:12px 12px calc(24px + env(safe-area-inset-bottom));gap:14px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.character-card{border-radius:10px}.card-art .avatar-xl{width:50px;height:50px;font-size:20px;border-width:2px}.card-badges-top{top:6px;left:6px;right:40px;gap:4px}.card-badge-chip{padding:2px 6px;font-size:10px}.card-status-chip{padding:2px 5px;font-size:9.5px;gap:3px}.card-status-dot{width:4px;height:4px}.card-meta-bottom{left:7px;right:7px;bottom:7px;gap:2px}.card-title{font-size:12.5px;gap:5px}.card-quote{font-size:10px}.card-resume-dot{width:6px;height:6px}.card-fab{top:6px;right:6px;width:30px;height:30px;font-size:14px}.page-header{padding:10px 0 12px}.page-title{font-size:24px}.discover-hero-sub{font-size:12px}.catalog-controls{gap:6px;padding:2px 0 8px;margin-bottom:8px}.catalog-search-input{min-height:38px;font-size:14px;padding:8px 12px}.catalog-filter-select{min-height:38px;font-size:13px;padding:6px 10px}.catalog-summary{font-size:12px}.detail-identity{padding:0 12px}.detail-actions{padding:12px 12px 16px}.conversation-row{padding:8px 10px;gap:8px}.onboarding-card{padding:18px 16px}}.xl-app,.xl-app[data-theme=night]{color-scheme:dark;--c-ground: #141210;--c-surface: #1d1a17;--c-raised: #26221e;--c-line: #3a342e;--c-ink: #efe7dc;--c-ink-soft: #b7ac9e;--c-ink-faint: #9a8f82;--c-lamp: #f08a5d;--c-lamp-fill: #f08a5d;--c-on-lamp: #1a1310;--c-lamp-wash: rgba(240, 138, 93, .12);--c-moon: #9db4d6;--c-ok: #8fc49a;--c-warn: #e5b862;--c-danger: #f08a80;--c-bubble-me: #3a2a20;--grain-opacity: .035;--shadow-sheet: 0 -12px 40px rgba(0, 0, 0, .45)}.xl-app[data-theme=day]{color-scheme:light;--c-ground: #f6f1e8;--c-surface: #fffcf6;--c-raised: #ffffff;--c-line: #e4daca;--c-ink: #2a241e;--c-ink-soft: #5e5448;--c-ink-faint: #716557;--c-lamp: #a9471f;--c-lamp-fill: #b34e26;--c-on-lamp: #ffffff;--c-lamp-wash: rgba(179, 78, 38, .08);--c-moon: #3f5f8a;--c-ok: #2f7a45;--c-warn: #8a5b0b;--c-danger: #b3261e;--c-bubble-me: #f3e3d3;--grain-opacity: .05;--shadow-sheet: 0 -12px 40px rgba(60, 40, 20, .12)}.xl-app{--bg-app: var(--c-ground);--bg-surface: var(--c-surface);--bg-subtle: var(--c-raised);--bg-elevated: var(--c-raised);--bg-inset: color-mix(in srgb, var(--c-ground) 76%, var(--c-ink) 24%);--border-subtle: var(--c-line);--border-medium: color-mix(in srgb, var(--c-line) 78%, var(--c-ink) 22%);--border-strong: color-mix(in srgb, var(--c-line) 58%, var(--c-ink) 42%);--text-primary: var(--c-ink);--text-secondary: var(--c-ink-soft);--text-muted: var(--c-ink-faint);--text-inverse: var(--c-on-lamp);--astraea-brand-primary: var(--c-lamp);--astraea-brand-primary-hover: color-mix(in srgb, var(--c-lamp) 82%, var(--c-ink) 18%);--astraea-brand-primary-active: color-mix(in srgb, var(--c-lamp) 70%, var(--c-ink) 30%);--astraea-brand-primary-subtle: var(--c-lamp-wash);--astraea-brand-primary-border: color-mix(in srgb, var(--c-lamp) 48%, var(--c-line) 52%);--astraea-brand-gold: var(--c-warn);--astraea-brand-gold-subtle: color-mix(in srgb, var(--c-warn) 14%, transparent);--astraea-brand-gold-border: color-mix(in srgb, var(--c-warn) 45%, var(--c-line) 55%);--status-success: var(--c-ok);--status-success-bg: color-mix(in srgb, var(--c-ok) 14%, transparent);--status-success-border: color-mix(in srgb, var(--c-ok) 45%, var(--c-line) 55%);--status-warning: var(--c-warn);--status-warning-bg: color-mix(in srgb, var(--c-warn) 14%, transparent);--status-warning-border: color-mix(in srgb, var(--c-warn) 45%, var(--c-line) 55%);--status-error: var(--c-danger);--status-error-bg: color-mix(in srgb, var(--c-danger) 14%, transparent);--status-error-border: color-mix(in srgb, var(--c-danger) 45%, var(--c-line) 55%);--bubble-user-bg: var(--c-lamp);--bubble-user-text: var(--c-on-lamp);--bubble-char-bg: var(--c-surface);--bubble-char-text: var(--c-ink);--bubble-char-border: var(--c-line);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--shadow-md: 0 8px 30px color-mix(in srgb, var(--c-ink) 12%, transparent);font-family:-apple-system,PingFang SC,HarmonyOS Sans SC,MiSans,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.xl-app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:var(--grain-opacity);background-image:radial-gradient(circle at 25% 35%,currentColor .5px,transparent .6px),radial-gradient(circle at 75% 65%,currentColor .5px,transparent .6px);background-size:3px 3px,5px 5px}.xl-app.product-shell{position:relative;isolation:isolate;background:var(--c-ground);color:var(--c-ink)}.xl-app.product-shell .product-body,.xl-app.product-shell .product-stage{background:var(--c-ground)}.xl-app.product-shell .product-rail,.xl-app.product-shell .product-tabs,.xl-app.product-shell .chat-header,.xl-app.product-shell .composer-island,.xl-app.product-shell .conversation-row,.xl-app.product-shell .character-card,.xl-app.product-shell .story-card,.xl-app.product-shell .choice-card,.xl-app.product-shell .detail-band{background:var(--c-surface);border-color:var(--c-line);color:var(--c-ink)}.xl-app.product-shell .product-rail{box-shadow:inset -1px 0 color-mix(in srgb,var(--c-line) 75%,transparent)}.xl-app.product-shell .rail-brand strong,.xl-app.product-shell .page-title,.xl-app.product-shell .section-title,.xl-app.product-shell .detail-name,.xl-app.product-shell .conversation-name,.xl-app.product-shell .chat-person strong,.xl-app.product-shell .message-sender-name{color:var(--c-ink)}.xl-app.product-shell .rail-brand strong,.xl-app.product-shell .page-title,.xl-app.product-shell .section-title,.xl-app.product-shell .detail-name{font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif}.xl-app.product-shell .rail-brand .eyebrow,.xl-app.product-shell .eyebrow,.xl-app.product-shell .page-subtitle,.xl-app.product-shell .conversation-snippet,.xl-app.product-shell .conversation-time,.xl-app.product-shell .chat-person small,.xl-app.product-shell .profile-row-label,.xl-app.product-shell .context-help{color:var(--c-ink-soft)}.xl-app.product-shell .rail-tab,.xl-app.product-shell .rail-theme-button,.xl-app.product-shell .nav-tab{color:var(--c-ink-faint);border-color:transparent;background:transparent}.xl-app.product-shell .rail-tab:hover,.xl-app.product-shell .rail-theme-button:hover,.xl-app.product-shell .nav-tab:hover{color:var(--c-ink);background:var(--c-lamp-wash)}.xl-app.product-shell .rail-tab.is-active,.xl-app.product-shell .nav-tab.is-active{color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app.product-shell .product-tabs{box-shadow:0 -8px 24px color-mix(in srgb,var(--c-ink) 8%,transparent)}.xl-app.product-shell .catalog-controls,.xl-app.product-shell .state-page,.xl-app.product-shell .context-state{background:color-mix(in srgb,var(--c-surface) 84%,var(--c-ground) 16%);border-color:var(--c-line)}.xl-app.product-shell .discover-hero{background:transparent;border-color:var(--c-line)}.xl-app.product-shell input,.xl-app.product-shell textarea,.xl-app.product-shell select,.xl-app.product-shell .catalog-search-input,.xl-app.product-shell .catalog-filter-select{background:var(--c-raised);color:var(--c-ink);border-color:var(--c-line)}.xl-app.product-shell input:focus,.xl-app.product-shell textarea:focus,.xl-app.product-shell select:focus,.xl-app.product-shell .catalog-search-input:focus{border-color:var(--c-lamp);box-shadow:0 0 0 3px var(--c-lamp-wash)}.xl-app.product-shell .product-primary-button,.xl-app.product-shell .send-button,.xl-app.product-shell .suggestion-chip:hover,.xl-app.product-shell .memory-entry-button{background:var(--c-lamp-fill);border-color:var(--c-lamp-fill);color:var(--c-on-lamp)}.xl-app.product-shell .product-primary-button:hover:not(:disabled),.xl-app.product-shell .send-button:hover:not(:disabled),.xl-app.product-shell .memory-entry-button:hover:not(:disabled){background:color-mix(in srgb,var(--c-lamp-fill) 84%,var(--c-ink) 16%)}.xl-app.product-shell .product-ghost-button,.xl-app.product-shell .text-button,.xl-app.product-shell .chat-back-btn,.xl-app.product-shell .new-conv-button,.xl-app.product-shell .suggestion-chip{color:var(--c-lamp);border-color:var(--c-line);background:transparent}.xl-app.product-shell .product-ghost-button:hover:not(:disabled),.xl-app.product-shell .chat-back-btn:hover:not(:disabled),.xl-app.product-shell .new-conv-button:hover:not(:disabled),.xl-app.product-shell .suggestion-chip:hover{background:var(--c-lamp-wash);border-color:color-mix(in srgb,var(--c-lamp) 55%,var(--c-line) 45%)}.xl-app.product-shell .message-bubble.user{background:var(--c-bubble-me);color:var(--c-ink);border-color:transparent}.xl-app.product-shell[data-theme=day] .message-bubble.user{color:var(--c-ink)}.xl-app.product-shell .message-bubble.assistant{background:var(--c-surface);color:var(--c-ink);border-color:var(--c-line)}.xl-app.product-shell .message-content-group{flex:0 1 min(86%,680px);width:min(86%,680px);min-width:0}.xl-app.product-shell .message-row.user{align-items:flex-end}.xl-app.product-shell .message-row.user .message-content-group{flex-basis:min(80%,640px);width:min(80%,640px);align-items:flex-end}.xl-app.product-shell .message-bubble{width:fit-content;min-width:0;max-width:100%;writing-mode:horizontal-tb;text-orientation:mixed;word-break:normal;overflow-wrap:anywhere}@media(max-width:768px){.xl-app.product-shell .message-content-group,.xl-app.product-shell .message-row.user .message-content-group{flex-basis:88%;width:88%}}.xl-app.product-shell .product-stage>:where(.page,.discover-page,.messages-page,.group-page,.market-page,.profile-page){animation:product-stage-enter .18s ease-out both}.xl-app.product-shell .message-row{animation:message-row-enter .16s ease-out both}.xl-app.product-shell :where(.context-backdrop,.memory-backdrop,.trace-backdrop,.followup-backdrop,.proactive-backdrop,.journal-backdrop,.privacy-backdrop,.modal-backdrop,.onboarding-backdrop){animation:surface-fade-in .16s ease-out both;overscroll-behavior:contain}.xl-app.product-shell :where(.context-panel,.memory-panel,.trace-panel,.followup-panel,.proactive-panel,.journal-panel,.privacy-panel,.modal-dialog,.onboarding-card){animation:surface-slide-in .22s cubic-bezier(.16,1,.3,1) both;transform-origin:right center}@keyframes product-stage-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes message-row-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes surface-fade-in{0%{opacity:0}to{opacity:1}}@keyframes surface-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.xl-app.product-shell[data-theme=day] .card-scrim{background:var(--c-surface);border-top-color:var(--c-line)}.xl-app.product-shell[data-theme=day] .card-badge-chip,.xl-app.product-shell[data-theme=day] .card-status-chip{background:var(--c-surface);border-color:var(--c-line)}.xl-app.product-shell[data-theme=day] .card-title,.xl-app.product-shell[data-theme=day] .card-quote{text-shadow:none}.xl-app.product-shell :where(.product-primary-button,.product-ghost-button,.send-button,.nav-tab,.rail-tab,.chat-back-btn,.new-conv-button,.memory-entry-button,.suggestion-chip,.conversation-row,.character-card){transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-normal),transform var(--transition-fast),opacity var(--transition-fast)}.xl-app.product-shell :where(.product-primary-button,.send-button,.product-ghost-button,.chat-back-btn,.new-conv-button,.memory-entry-button):active:not(:disabled){transform:translateY(1px) scale(.985)}.xl-app.product-shell .composer-island{box-shadow:0 8px 30px color-mix(in srgb,var(--c-ink) 10%,transparent)}.xl-app.product-shell .composer-island:focus-within{border-color:var(--c-lamp);box-shadow:0 0 0 3px var(--c-lamp-wash),0 8px 30px color-mix(in srgb,var(--c-ink) 10%,transparent)}.xl-app.product-shell .status-banner,.xl-app.product-shell .offline-banner,.xl-app.product-shell .context-notice,.xl-app.product-shell .life-chip,.xl-app.product-shell .rel-chip{background:color-mix(in srgb,var(--c-lamp) 12%,var(--c-surface) 88%);border-color:color-mix(in srgb,var(--c-lamp) 38%,var(--c-line) 62%);color:var(--c-ink-soft)}.xl-app.product-shell .status-banner.is-error,.xl-app.product-shell .context-error,.xl-app.product-shell .permission-denied{background:color-mix(in srgb,var(--c-danger) 13%,var(--c-surface) 87%);border-color:color-mix(in srgb,var(--c-danger) 44%,var(--c-line) 56%);color:var(--c-danger)}.xl-app.product-shell .character-kind-badge,.xl-app.product-shell .message-origin-badge,.xl-app.product-shell .card-tag{border-color:var(--c-line);background:var(--c-lamp-wash);color:var(--c-lamp)}.xl-app.product-shell .avatar{box-shadow:0 0 0 3px var(--c-lamp-wash)}.xl-app.product-shell :focus-visible{outline:2px solid var(--c-lamp);outline-offset:2px}.xl-app.product-shell .jump-to-latest{background:var(--c-surface);border-color:var(--c-line);color:var(--c-ink-soft);box-shadow:0 10px 28px color-mix(in srgb,var(--c-ink) 16%,transparent)}.xl-app.product-shell .jump-to-latest:hover{border-color:color-mix(in srgb,var(--c-lamp) 45%,var(--c-line) 55%);color:var(--c-ink)}.xl-app.product-shell .message-time,.xl-app.product-shell .day-divider,.xl-app.product-shell .history-loader-note{color:var(--c-ink-faint)}.xl-app.product-shell .day-divider:before,.xl-app.product-shell .day-divider:after{background:var(--c-line)}.seal{--tint: var(--c-lamp);position:relative;flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font:600 22px/1 "Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;color:var(--tint);background:color-mix(in srgb,var(--tint) 16%,var(--c-surface));border:1px solid color-mix(in srgb,var(--tint) 42%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--tint) 12%,transparent)}.seal.lg{width:88px;height:88px;border-radius:24px;font-size:38px}.seal.sm{width:36px;height:36px;border-radius:11px;font-size:16px}.lamp{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--c-ground);background:var(--c-lamp);z-index:2}.seal.lg .lamp{width:18px;height:18px;border-width:3px;right:-3px;bottom:-3px}.lamp.on{box-shadow:0 0 8px var(--c-lamp);animation:lamp-breathe 2.4s cubic-bezier(.2,.7,.2,1) infinite}.lamp.dim{opacity:.55;background:color-mix(in srgb,var(--c-lamp) 80%,var(--c-ink-faint) 20%)}.lamp.off{background:transparent;border:2px solid var(--c-ink-faint);outline:2px solid var(--c-ground);width:10px;height:10px;right:-1px;bottom:-1px}@keyframes lamp-breathe{0%,to{box-shadow:0 0 8px var(--c-lamp)}50%{box-shadow:0 0 2px var(--c-lamp)}}.xl-app.product-shell .chat-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--tint, var(--c-lamp)) 14%,transparent),transparent 220px),var(--c-ground)}.messages-group-pin{font-size:12px;font-weight:600;color:var(--c-ink-faint);padding:14px 16px 4px;letter-spacing:.08em}.conversation-state{display:block;color:var(--c-moon);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.typing-indicator .typing-dot{animation:typing-dot-wave 1.2s cubic-bezier(.2,.7,.2,1) infinite}.typing-indicator .typing-dot:nth-child(2){animation-delay:.15s}.typing-indicator .typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-dot-wave{0%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.detail-v2-hero{text-align:center;padding:24px 20px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--tint, var(--c-lamp)) 16%,transparent),transparent);border-bottom:1px solid var(--c-line)}.detail-v2-seal-wrap{display:inline-block;position:relative;margin:0 auto 12px}.detail-v2-name{margin:0;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-size:24px;font-weight:600;color:var(--c-ink)}.detail-v2-tagline{margin:6px 0 12px;color:var(--c-ink-soft);font-size:14px}.detail-v2-chips{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}.detail-v2-chip{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--c-line);color:var(--c-ink-soft);background:var(--c-surface)}.detail-v2-actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.detail-v2-tabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--c-line);background:var(--c-surface)}.detail-v2-tab{padding:12px 14px;font-size:14px;color:var(--c-ink-soft);text-decoration:none;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer;font-weight:500}.detail-v2-tab:hover{color:var(--c-ink)}.detail-v2-tab.is-active{color:var(--c-ink);border-color:var(--c-lamp);font-weight:600}.detail-v2-tab-content{padding:16px}.journal-section-title{font:600 13px/1 var(--font-sans);color:var(--c-ink-faint);letter-spacing:.12em;margin:18px 0 10px;text-transform:uppercase}.journal-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:14px;padding:14px 16px;margin-bottom:10px}.journal-card p{margin:0 0 8px;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-size:15px;color:var(--c-ink);line-height:1.5}.journal-card footer{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--c-ink-faint);flex-wrap:wrap}.journal-card footer .sp{flex:1 1 auto}.journal-card footer button{min-height:28px;padding:0 10px;font-size:12px;border-radius:6px;border:1px solid var(--c-line);background:var(--c-raised);color:var(--c-ink-soft);cursor:pointer}.journal-card footer button:hover{background:var(--c-lamp-wash);color:var(--c-ink);border-color:var(--c-lamp)}.journal-card footer button.forget{color:var(--c-danger);border-color:color-mix(in srgb,var(--c-danger) 40%,var(--c-line))}.journal-card footer button.forget:hover{background:color-mix(in srgb,var(--c-danger) 14%,var(--c-surface))}.relationship-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.relationship-stat-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:12px;padding:12px 14px}.relationship-stat-card small{display:block;color:var(--c-ink-faint);font-size:12px}.relationship-stat-card strong{display:block;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-size:18px;color:var(--c-ink);margin-top:4px}.xl-app.product-shell .profile-account-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:14px}.xl-app.product-shell .profile-account-header{display:flex;align-items:center;gap:14px}.xl-app.product-shell .profile-account-card .avatar.seal.sm{width:44px;height:44px;border-radius:12px;font-size:18px;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif;font-weight:700;background:var(--c-lamp-wash);color:var(--c-lamp);border:1px solid color-mix(in srgb,var(--c-lamp) 35%,transparent)}.xl-app.product-shell .profile-account-text{display:flex;flex-direction:column;min-width:0;gap:2px}.xl-app.product-shell .profile-account-name{font-size:16px;font-weight:600;color:var(--c-ink);font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,STSong,serif}.xl-app.product-shell .profile-account-status{font-size:12px;color:var(--c-ink-soft)}.xl-app.product-shell .profile-account-actions{display:flex;flex-wrap:wrap;gap:8px}.xl-app.product-shell .profile-account-actions .product-ghost-button{min-height:32px;padding:0 12px;font-size:13px;border-radius:8px}.xl-app.product-shell .product-ghost-button.is-danger{color:var(--c-danger);border-color:color-mix(in srgb,var(--c-danger) 40%,var(--c-line))}.xl-app.product-shell .product-ghost-button.is-danger:hover:not(:disabled){background:color-mix(in srgb,var(--c-danger) 12%,transparent);border-color:var(--c-danger);color:var(--c-danger)}@media(prefers-reduced-motion:reduce){.xl-app.product-shell *,.xl-app.product-shell *:before,.xl-app.product-shell *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:390px){.chat-header{min-height:48px;padding:8px 12px;gap:10px}.chat-header-inner{gap:10px}.chat-header .seal{width:36px;height:36px;font-size:15px}.chat-header-title{font-size:15px}.chat-header-subtitle{font-size:11px}.chat-header button{width:32px;height:32px;font-size:16px}.message-row{padding:0 12px;margin-bottom:8px}.message-bubble{padding:8px 12px;font-size:14px;line-height:1.5;max-width:82%}.message-bubble-footer{margin-top:4px;font-size:11px;gap:6px}.message-avatar{width:32px;height:32px;font-size:14px}.composer-island{min-height:40px;padding:6px 8px;gap:6px}.composer-field{font-size:14px;padding:6px 8px}.composer button{width:32px;height:32px;font-size:18px}.composer-outer{padding:10px 12px}.messages-group-pin{padding:10px 12px 3px;font-size:11px}.detail-v2-hero{padding:16px 16px 12px}.detail-v2-seal-wrap .seal.lg{width:72px;height:72px;font-size:28px}.detail-v2-name{font-size:20px}.detail-v2-tagline{font-size:13px;margin:4px 0 10px}.detail-v2-chips{gap:5px;margin-bottom:10px}.detail-v2-chip{font-size:11px;padding:2px 8px}.detail-v2-tab{padding:10px 12px;font-size:13px}.detail-v2-tab-content{padding:12px}.character-card .seal.lg{width:68px;height:68px;font-size:26px}.card-meta-bottom{padding:10px 12px}.card-title{font-size:15px}.card-quote{font-size:12px}.card-fab{width:32px;height:32px;font-size:16px;right:8px;bottom:8px}.catalog-controls{padding:10px 12px;gap:8px}.catalog-filter-chips{gap:6px}.catalog-filter-chip{padding:4px 10px;font-size:12px}.product-nav-bar{padding:6px 8px;gap:4px}.product-nav-item{padding:6px 10px;font-size:11px;gap:4px}.product-nav-item-icon{font-size:18px}.session-card{padding:10px 12px;gap:10px}.session-card .seal{width:40px;height:40px;font-size:16px}.session-card-title{font-size:14px}.session-card-preview{font-size:12px}.session-card-meta{font-size:11px}.journal-card{padding:10px 12px;margin-bottom:8px}.journal-card p{font-size:14px}.profile-account-card{padding:12px 14px!important;gap:10px!important}.profile-account-card .avatar.seal.sm{width:40px!important;height:40px!important;font-size:16px!important}.profile-account-name{font-size:15px!important}}@media(max-width:768px){.chat-header{min-height:52px;padding:10px 14px}.chat-header .seal{width:38px;height:38px}.message-row{padding:0 14px;margin-bottom:10px}.message-bubble{padding:9px 13px;max-width:80%}.composer-island{min-height:42px;padding:7px 10px}.composer-outer{padding:12px 14px}.detail-v2-hero{padding:18px 18px 14px}.detail-v2-seal-wrap .seal.lg{width:76px;height:76px}.detail-v2-name{font-size:22px}.character-card .seal.lg{width:76px;height:76px}.product-nav-bar{padding:8px 10px}.product-nav-item{padding:7px 12px;font-size:12px}}.xl-app{--c-ground: #f4f4f1;--c-surface: #ffffff;--c-raised: #fbfbf9;--c-line: #e3e3de;--c-ink: #20201f;--c-ink-soft: #6b6a65;--c-ink-faint: #96958f;--c-lamp: #8b5e4a;--c-lamp-fill: #8b5e4a;--c-on-lamp: #ffffff;--c-lamp-wash: rgba(139, 94, 74, .09);--c-moon: #60748b;--c-ok: #4e8964;--c-warn: #a77728;--c-danger: #b55e59;--c-bubble-me: #e9e0d9;--grain-opacity: 0;--shadow-sheet: 0 -16px 44px rgba(28, 26, 22, .18)}.xl-app[data-theme=night]{--c-ground: #151515;--c-surface: #1d1d1c;--c-raised: #242422;--c-line: #333330;--c-ink: #f1f0eb;--c-ink-soft: #b6b4ad;--c-ink-faint: #898781;--c-lamp: #d29a7b;--c-lamp-fill: #bc815f;--c-on-lamp: #211713;--c-lamp-wash: rgba(210, 154, 123, .12);--c-moon: #a4b6ce;--c-ok: #9ac7a6;--c-warn: #e2bd74;--c-danger: #ef9b94;--c-bubble-me: #3a2d27;--shadow-sheet: 0 -16px 44px rgba(0, 0, 0, .42)}.xl-app:before{display:none!important}.xl-app.product-shell{background:var(--c-ground);color:var(--c-ink)}.xl-app .product-body,.xl-app .product-stage{background:var(--c-ground)}.xl-app .product-rail,.xl-app .product-tabs{background:var(--c-surface);border-color:var(--c-line)}.xl-app .product-rail{width:132px;padding:22px 14px calc(18px + env(safe-area-inset-bottom));gap:8px}.xl-app .rail-brand{align-items:start;justify-items:start;padding:4px 8px 28px}.xl-app .rail-brand strong,.xl-app .page-title,.xl-app .detail-name,.xl-app .section-title,.xl-app .chat-person strong,.xl-app .conversation-name,.xl-app .message-sender-name{font-family:inherit;color:var(--c-ink)}.xl-app .rail-brand strong{font-size:18px;letter-spacing:.08em}.xl-app .rail-brand .eyebrow{color:var(--c-lamp);letter-spacing:.18em}.xl-app .rail-tab,.xl-app .rail-theme-button{min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 12px;border:1px solid transparent;border-radius:12px;color:var(--c-ink-soft);font-size:13px;font-weight:650}.xl-app .rail-tab.is-active{color:var(--c-lamp);background:var(--c-lamp-wash);border-color:color-mix(in srgb,var(--c-lamp) 22%,var(--c-line))}.xl-app .rail-tab:hover,.xl-app .rail-theme-button:hover{background:var(--c-lamp-wash);color:var(--c-ink)}.xl-app .product-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px #1e1c190f}.xl-app .nav-tab{min-height:48px;border-radius:12px;color:var(--c-ink-faint);font-size:12px;font-weight:650}.xl-app .nav-tab .nav-tab-glyph{display:grid;width:28px;height:22px}.xl-app .nav-tab.is-active{color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app[data-chat-open=false] .product-tabs{display:grid!important}.xl-app .page{width:min(100%,980px);padding:30px clamp(18px,4vw,56px) calc(44px + env(safe-area-inset-bottom));gap:22px}.xl-app .page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 0 18px;border-bottom:1px solid var(--c-line)}.xl-app .page-kicker,.xl-app .context-sheet-kicker{margin:0 0 6px;color:var(--c-lamp);font-size:10px;font-weight:750;letter-spacing:.18em}.xl-app .page-title{font-size:clamp(25px,5vw,34px);letter-spacing:-.035em}.xl-app .page-subtitle{margin-top:6px;color:var(--c-ink-soft);font-size:13px}.xl-app .page-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.xl-app .header-action-button{min-height:38px;padding:0 13px;border:1px solid var(--c-lamp);border-radius:10px;background:var(--c-lamp-fill);color:var(--c-on-lamp);font-size:12px;font-weight:700}.xl-app .header-action-button.is-soft{border-color:var(--c-line);background:transparent;color:var(--c-ink-soft)}.xl-app .header-action-button:hover{filter:brightness(1.04);transform:translateY(-1px)}.xl-app .card-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.xl-app .character-card{border:1px solid var(--c-line);border-radius:16px;background:var(--c-surface);box-shadow:none}.xl-app .character-card:hover{border-color:color-mix(in srgb,var(--c-lamp) 45%,var(--c-line));transform:translateY(-2px)}.xl-app .card-art{aspect-ratio:4 / 3;background:var(--c-raised)}.xl-app .card-scrim{height:42%;background:linear-gradient(to top,var(--c-surface) 30%,transparent);border-top:0}.xl-app .card-meta-bottom{bottom:12px;left:13px;right:13px}.xl-app .card-title{font-size:16px}.xl-app .card-quote{color:var(--c-ink-soft);font-size:12px}.xl-app .card-badge-chip,.xl-app .card-status-chip,.xl-app .card-fab{background:color-mix(in srgb,var(--c-surface) 88%,transparent);border-color:var(--c-line)}.xl-app .message-list{width:min(100%,760px);gap:0}.xl-app .messages-group-pin{padding:17px 4px 8px;color:var(--c-ink-faint);font-size:11px;letter-spacing:.08em}.xl-app .conversation-row{min-height:78px;padding:14px 4px;border:0;border-bottom:1px solid var(--c-line);border-radius:0;background:transparent}.xl-app .conversation-row:hover,.xl-app .conversation-row.is-active{background:var(--c-lamp-wash)}.xl-app .conversation-open{gap:14px;padding:0 10px;border-radius:12px}.xl-app .conversation-open:hover{background:transparent}.xl-app .conversation-avatar{width:50px;height:50px;flex-basis:50px}.xl-app .conversation-name{font-size:15px}.xl-app .conversation-character-name{color:var(--c-ink);font-size:15px}.xl-app .conversation-count{color:var(--c-ink-faint)}.xl-app .conversation-title{color:var(--c-ink-soft);font-size:12px}.xl-app .conversation-snippet{font-size:13px;color:var(--c-ink-soft)}.xl-app .conversation-state{color:var(--c-ink-faint);font-size:11px}.xl-app .conversation-badges{margin-top:0}.xl-app .rel-chip{padding:1px 7px;border-color:var(--c-line);background:transparent;color:var(--c-ink-faint);font-weight:550}.xl-app .conversation-more{width:40px;height:40px;border:0;background:transparent;color:var(--c-ink-faint);font-size:16px;border-radius:10px}.xl-app .conversation-more:hover{background:var(--c-lamp-wash);color:var(--c-lamp)}.xl-app .conversation-switch{border-color:var(--c-line);color:var(--c-ink-soft)}.xl-app .conversation-switch:hover{border-color:var(--c-lamp);color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app .message-search{max-width:760px;margin:-2px auto 0}.xl-app .catalog-search-input{min-height:42px;border-radius:12px}.xl-app .state-page{min-height:220px;padding:30px 18px;border:1px dashed var(--c-line);border-radius:16px;background:transparent}.xl-app .messages-empty-state{border-style:solid}.xl-app .empty-state-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--c-line);border-radius:50%;color:var(--c-lamp);font-size:27px}.xl-app .profile-revamp{width:min(100%,760px);padding-top:28px}.xl-app .profile-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--c-line)}.xl-app .profile-edit-button{min-height:36px;padding:0 13px;border:1px solid var(--c-line);border-radius:10px;background:transparent;color:var(--c-ink-soft);font-size:12px;font-weight:700}.xl-app .profile-edit-button:hover{border-color:var(--c-lamp);color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app .profile-account-row{display:flex;align-items:center;gap:13px;width:100%;padding:16px 0;border:0;border-bottom:1px solid var(--c-line);background:transparent;color:var(--c-ink);text-align:left}.xl-app .profile-identity-mark{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border:1px solid color-mix(in srgb,var(--c-lamp) 35%,var(--c-line));border-radius:14px;background:var(--c-lamp-wash);color:var(--c-lamp);font-size:22px;font-weight:750}.xl-app .profile-identity-copy{display:grid;gap:4px;min-width:0}.xl-app .profile-identity-copy strong{font-size:16px}.xl-app .profile-identity-copy small{color:var(--c-ink-soft);font-size:12px}.xl-app .profile-row-arrow{color:var(--c-ink-faint);font-size:18px}.xl-app .profile-account-row .profile-row-arrow{margin-left:auto}.xl-app .profile-section{overflow:hidden;border-bottom:1px solid var(--c-line);padding:18px 0 0}.xl-app .profile-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px}.xl-app .profile-section-head h2{margin:0;color:var(--c-ink);font-size:14px}.xl-app .profile-section-head p{margin:4px 0 0;color:var(--c-ink-soft);font-size:12px}.xl-app .profile-section-head>span{color:var(--c-ink-faint);font-size:12px}.xl-app .profile-character-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:18px}.xl-app .profile-character-item{display:flex;align-items:center;gap:9px;min-width:0;min-height:52px;padding:8px 10px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface);color:var(--c-ink);text-align:left;font-size:12px}.xl-app .profile-character-item:hover{border-color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app .profile-character-avatar{width:34px;height:34px;flex:0 0 34px;overflow:hidden;border-radius:50%;background:var(--c-lamp-wash)}.xl-app .profile-character-item>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xl-app .profile-character-item .profile-row-arrow{margin-left:auto}.xl-app .profile-setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:60px;padding:11px 0;border:0;border-top:1px solid var(--c-line);background:transparent;color:var(--c-ink);text-align:left}.xl-app .profile-setting-row>span:first-child{display:grid;gap:3px;min-width:0}.xl-app .profile-setting-row strong{font-size:13px}.xl-app .profile-setting-row small{color:var(--c-ink-soft);font-size:11px}.xl-app .profile-setting-row.is-action:hover{color:var(--c-lamp)}.xl-app .profile-setting-row.is-danger strong{color:var(--c-danger)}.xl-app .compact-theme{display:flex;padding:2px;border:1px solid var(--c-line);border-radius:9px;background:var(--c-raised)}.xl-app .compact-theme button{min-height:28px;padding:0 7px;border:0;border-radius:7px;background:transparent;color:var(--c-ink-faint);font-size:10px}.xl-app .compact-theme button.is-on{background:var(--c-lamp);color:var(--c-on-lamp)}.xl-app .profile-revamp .profile-footer{margin-top:12px}.xl-app .chat-panel{background:var(--c-ground)}.xl-app .chat-header{min-height:68px;padding:10px clamp(14px,4vw,28px);border-bottom:1px solid var(--c-line);background:var(--c-surface)}.xl-app .chat-person-details{border-radius:9px}.xl-app .chat-person-details:hover{background:var(--c-lamp-wash)}.xl-app .chat-header-actions{gap:8px}.xl-app .context-entry-button{min-height:38px;padding:0 13px;border:1px solid var(--c-line);border-radius:10px;background:transparent;color:var(--c-ink-soft);font-size:12px;font-weight:700}.xl-app .context-entry-button:hover{border-color:var(--c-lamp);color:var(--c-lamp);background:var(--c-lamp-wash)}.xl-app .message-viewport{background:var(--c-ground);background-image:none;padding:22px clamp(15px,5vw,56px) 18px}.xl-app .message-bubble{writing-mode:horizontal-tb!important;text-orientation:mixed;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;min-width:2em;border-radius:16px;box-shadow:none}.xl-app .message-bubble.user{background:var(--c-bubble-me);color:var(--c-ink)}.xl-app .message-bubble.assistant{background:var(--c-surface);border-color:var(--c-line)}.xl-app .composer{padding:10px clamp(14px,5vw,56px) calc(12px + env(safe-area-inset-bottom));background:var(--c-ground)}.xl-app .composer-island{min-width:0;border:1px solid var(--c-line);border-radius:15px;background:var(--c-surface);box-shadow:none}.xl-app .composer-island:focus-within{border-color:var(--c-lamp);box-shadow:0 0 0 3px var(--c-lamp-wash)}.xl-app .composer-island textarea{min-width:0;writing-mode:horizontal-tb;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.xl-app .send-button{min-width:64px;min-height:38px;border-radius:10px}.xl-app[data-chat-open=true] .product-tabs{display:none}.xl-app[data-chat-open=true] .product-stage{overflow:hidden}.context-sheet-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#14141275;animation:surface-fade-in .16s ease-out both}.context-sheet{width:min(100%,560px);max-height:min(760px,calc(100dvh - 32px));overflow:auto;padding:22px;border:1px solid var(--c-line);border-radius:22px 22px 16px 16px;background:var(--c-surface);color:var(--c-ink);box-shadow:var(--shadow-sheet);animation:surface-slide-up .22s cubic-bezier(.16,1,.3,1) both}.context-sheet-header{display:flex;justify-content:space-between;gap:14px;margin-bottom:18px}.context-sheet-header h2{margin:0;font-size:20px;letter-spacing:-.02em}.context-sheet-header p:last-child{margin:5px 0 0;color:var(--c-ink-soft);font-size:12px}.sheet-close-button{width:36px;height:36px;border:1px solid var(--c-line);border-radius:50%;background:transparent;color:var(--c-ink-soft);font-size:22px}.context-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.context-action{display:flex;align-items:flex-start;gap:10px;min-height:74px;padding:13px;border:1px solid var(--c-line);border-radius:13px;background:var(--c-raised);color:var(--c-ink);text-align:left}.context-action:hover:not(:disabled){border-color:var(--c-lamp);background:var(--c-lamp-wash);transform:translateY(-1px)}.context-action:disabled{opacity:.45;cursor:not-allowed}.context-action-primary{border-color:color-mix(in srgb,var(--c-lamp) 42%,var(--c-line))}.context-action-icon{flex:0 0 auto;width:24px;color:var(--c-lamp);font-size:18px;line-height:1.2}.context-action span:last-child{display:grid;gap:3px;min-width:0}.context-action strong{font-size:13px}.context-action small{color:var(--c-ink-soft);font-size:11px;line-height:1.35}.context-sheet-footer{display:flex;gap:8px;margin-top:16px}.context-secondary-action,.context-cancel-action{flex:1;min-height:42px;border-radius:10px;font-size:12px;font-weight:700}.context-secondary-action{border:1px solid var(--c-lamp);background:var(--c-lamp-fill);color:var(--c-on-lamp)}.context-cancel-action{border:1px solid var(--c-line);background:transparent;color:var(--c-ink-soft)}@keyframes surface-slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1023px){.xl-app .product-rail{display:none}.xl-app .product-body{min-height:0}.xl-app .product-stage{overflow-y:auto}.xl-app .page{padding-top:22px}.xl-app .chat-panel{height:100%}}@media(max-width:560px){.xl-app .page{padding-inline:16px;gap:18px}.xl-app .page-header{align-items:flex-start;padding-bottom:14px}.xl-app .page-header-actions{flex-direction:column;align-items:stretch}.xl-app .header-action-button{min-height:34px;padding-inline:10px}.xl-app .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.xl-app .card-title{font-size:14px}.xl-app .card-quote{font-size:10.5px}.xl-app .conversation-row{min-height:72px}.xl-app .conversation-avatar{width:46px;height:46px;flex-basis:46px}.xl-app .context-sheet-layer{padding:0}.xl-app .context-sheet{width:100%;max-height:calc(100dvh - 8px);border-radius:22px 22px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom))}.xl-app .context-sheet-grid{grid-template-columns:1fr}.xl-app .context-action{min-height:62px}.xl-app .context-sheet-footer{position:sticky;bottom:0;padding-top:8px;background:var(--c-surface)}.xl-app .profile-character-list{grid-template-columns:1fr}.xl-app .profile-setting-row{align-items:flex-start;flex-direction:column;gap:9px}.xl-app .profile-setting-row.is-action{flex-direction:row;align-items:center}.xl-app .compact-theme{align-self:stretch;justify-content:space-between}.xl-app .compact-theme button{flex:1}}@media(prefers-reduced-motion:reduce){.xl-app *,.xl-app *:before,.xl-app *:after{animation-duration:1ms!important;transition-duration:1ms!important}}
