.api-error-banner[data-v-b6c381e9]{position:sticky;top:0;z-index:var(--z-toast);display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--color-surface);border-bottom:1px solid var(--color-negative);color:var(--color-text-primary);font-size:var(--fs-md);line-height:1.4}.api-error-icon[data-v-b6c381e9]{flex:0 0 auto;color:var(--color-negative);font-size:var(--fs-xl);font-weight:700;line-height:1}.api-error-text[data-v-b6c381e9]{flex:1 1 auto;min-width:0}.api-error-detail[data-v-b6c381e9]{margin-left:var(--sp-2);color:var(--color-text-secondary);font-size:var(--fs-xs);overflow-wrap:anywhere;word-break:normal}.api-error-retry[data-v-b6c381e9]{flex:0 0 auto}.api-error-close[data-v-b6c381e9]{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ctl-h);height:var(--ctl-h);padding:0;border:none;border-radius:var(--r-2);background:transparent;color:var(--color-text-secondary);font-size:var(--fs-lg);line-height:1;cursor:pointer}.api-error-close[data-v-b6c381e9]:hover{background:var(--color-bg)}@media (max-width: 600px){.api-error-close[data-v-b6c381e9]{width:var(--ctl-h-mobile);height:var(--ctl-h-mobile)}}.session-list[data-v-16ba1c34]{position:relative}.session-search[data-v-16ba1c34]{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-2)}.session-search input[data-v-16ba1c34]{flex:1 1 auto;min-width:0;height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color var(--t)}.session-search input[data-v-16ba1c34]::placeholder{color:var(--color-text-secondary)}.session-search input[data-v-16ba1c34]:hover{border-color:var(--color-text-secondary)}.session-search input[data-v-16ba1c34]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-fill)}.search-clear[data-v-16ba1c34]{border:0;background:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--fs-sm);min-width:var(--ctl-h);min-height:var(--ctl-h)}.pin-toggle[data-v-16ba1c34]{width:var(--ctl-h);height:var(--ctl-h);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;line-height:1}.pin-toggle[data-v-16ba1c34]:hover{background:var(--color-bg)}.pin-toggle.on[data-v-16ba1c34]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.session-group-label[data-v-16ba1c34]{position:sticky;top:0;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);font-weight:600;color:var(--color-text-secondary);letter-spacing:.3px;background:var(--color-bg);border-bottom:1px solid var(--color-separator)}.pin-mark[data-v-16ba1c34]{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--color-text-secondary)}.session-loading-overlay[data-v-16ba1c34]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);background:var(--color-bg);opacity:.94}.spinner[data-v-16ba1c34]{width:24px;height:24px;border:2px solid var(--color-separator);border-top-color:var(--color-accent);border-radius:50%;animation:session-spin-16ba1c34 .8s linear infinite}.session-loading-overlay span[data-v-16ba1c34]{font-size:var(--fs-sm);color:var(--color-text-secondary)}@keyframes session-spin-16ba1c34{to{transform:rotate(360deg)}}@media (max-width: 600px){.session-search input[data-v-16ba1c34]{height:var(--ctl-h-mobile)}.pin-toggle[data-v-16ba1c34]{width:var(--ctl-h-mobile);height:var(--ctl-h-mobile)}}.message-row[data-v-4862adbb]{content-visibility:auto;contain-intrinsic-size:auto 200px}.bubble-text.collapsed[data-v-4862adbb]{cursor:pointer}.expand-btn[data-v-4862adbb],.collapse-btn[data-v-4862adbb]{display:block;margin-top:var(--sp-1);font-family:var(--font);font-size:var(--fs-xs);color:var(--color-accent);background:none;border:0;padding:0;cursor:pointer}.expand-btn[data-v-4862adbb]:hover,.collapse-btn[data-v-4862adbb]:hover{text-decoration:underline}.media-icon[data-v-4862adbb]{width:18px;height:18px;flex:0 0 auto;color:var(--color-text-secondary)}.media-retry[data-v-4862adbb]{margin-top:var(--sp-1);padding:2px var(--sp-2);font-family:var(--font);font-size:var(--fs-xs);color:var(--color-accent);background:none;border:1px solid var(--color-separator);border-radius:var(--r-2);cursor:pointer}.media-retry[data-v-4862adbb]:hover{background:var(--color-bg)}.lightbox[data-v-4862adbb]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toast);background:var(--color-scrim);display:flex;align-items:center;justify-content:center}.lightbox-img[data-v-4862adbb]{max-width:92vw;max-height:92vh;border-radius:var(--r-2)}.lightbox-close[data-v-4862adbb]{position:absolute;top:var(--sp-4);right:var(--sp-4);width:var(--row-h);height:var(--row-h);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-separator);border-radius:50%;background:var(--color-surface);color:var(--color-text-primary);font-size:var(--fs-lg);line-height:1;cursor:pointer}.lightbox-close[data-v-4862adbb]:hover{background:var(--color-bg)}.quote-block[data-v-4862adbb]{display:flex;flex-wrap:wrap;gap:2px 6px;align-items:baseline;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);border-left:3px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-bg);color:var(--color-text-secondary);font-family:var(--font);font-size:var(--fs-sm);max-width:100%}.quote-block .quote-who[data-v-4862adbb]{color:var(--color-text-secondary);font-weight:600;flex:0 0 auto}.quote-block .quote-text[data-v-4862adbb]{flex:1 1 auto;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;word-break:break-word}.quote-body[data-v-4862adbb]{white-space:pre-wrap;word-break:break-word}.record-card[data-v-4862adbb]{min-width:200px;max-width:100%;border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);overflow:hidden}.record-head[data-v-4862adbb]{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:var(--row-h);padding:var(--sp-2) var(--sp-3);background:var(--color-bg);border:0;cursor:pointer;font-family:var(--font);font-size:var(--fs-sm);color:var(--color-text-primary);text-align:left}.record-head[data-v-4862adbb]:hover{filter:brightness(.96)}.record-title[data-v-4862adbb]{flex:1 1 auto;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-count[data-v-4862adbb]{flex:0 0 auto;font-size:var(--fs-xs);color:var(--color-text-secondary)}.record-caret[data-v-4862adbb]{flex:0 0 auto;font-size:var(--fs-xs);color:var(--color-accent)}.record-items[data-v-4862adbb]{display:flex;flex-direction:column}.record-item[data-v-4862adbb]{padding:var(--sp-2) var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);color:var(--color-text-primary);border-top:1px solid var(--color-separator);white-space:pre-wrap;word-break:break-word}.record-item[data-v-4862adbb]:first-child{border-top:0}.card-link[data-v-4862adbb],.card-plain[data-v-4862adbb]{display:flex;flex-direction:column;gap:2px;min-width:200px;max-width:100%;padding:var(--sp-3);border-radius:var(--r-2);border:1px solid var(--color-separator);background:var(--color-surface);text-decoration:none;color:var(--color-text-primary);font-family:var(--font)}.card-link[data-v-4862adbb]:hover{filter:brightness(.96)}.card-title[data-v-4862adbb]{font-size:var(--fs-sm);font-weight:600;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta[data-v-4862adbb]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.record-item-meta[data-v-4862adbb]{display:flex;flex-wrap:wrap;gap:2px 6px;align-items:baseline;margin-bottom:2px}.record-item-name[data-v-4862adbb]{font-size:var(--fs-xs);font-weight:600;color:var(--color-text-secondary)}.record-item-time[data-v-4862adbb]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.record-item-text[data-v-4862adbb]{display:block;word-break:break-word}.card-desc[data-v-4862adbb]{font-size:var(--fs-xs);color:var(--color-text-secondary);word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-url[data-v-4862adbb]{font-size:var(--fs-xs);color:var(--color-accent);word-break:break-all}.message-list[data-v-a25208a9]{position:relative;height:100%}.message-scroll[data-v-a25208a9]{height:100%;overflow-y:auto;padding:var(--sp-3)}.load-older-btn[data-v-a25208a9]{text-align:center;padding:var(--sp-2);font-size:var(--fs-sm);color:var(--color-accent);cursor:pointer;-webkit-user-select:none;user-select:none}.load-older-btn[data-v-a25208a9]:hover{text-decoration:underline}.load-older-hint[data-v-a25208a9]{text-align:center;padding:var(--sp-2);font-size:var(--fs-xs);color:var(--color-text-secondary)}.time-divider[data-v-a25208a9]{text-align:center;margin:var(--sp-3) 0;font-size:var(--fs-xs);color:var(--color-text-secondary)}.msg-filter[data-v-a25208a9]{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;margin-bottom:var(--sp-2)}.msg-filter-btn[data-v-a25208a9]{height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-xs);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer}.msg-filter-btn[data-v-a25208a9]:hover{background:var(--color-bg)}.msg-filter-btn.on[data-v-a25208a9]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.msg-filter-clear[data-v-a25208a9]{font-size:var(--fs-xs);color:var(--color-accent);cursor:pointer;margin-left:var(--sp-1)}.msg-filter-clear[data-v-a25208a9]:hover{text-decoration:underline}.empty[data-v-a25208a9]{height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--fs-sm)}.jump-latest[data-v-a25208a9]{position:absolute;right:var(--sp-3);bottom:var(--sp-4);z-index:20;height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-xs);border-radius:var(--r-2);border:1px solid var(--color-accent-fill);cursor:pointer;color:#fff;background:var(--color-accent-fill)}.jump-latest[data-v-a25208a9]:hover{filter:brightness(.92)}@media (max-width: 600px){.msg-filter-btn[data-v-a25208a9],.jump-latest[data-v-a25208a9]{height:var(--ctl-h-mobile)}}.reply-composer[data-v-65c3dcb4]{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--color-separator);background:var(--color-surface)}.composer-hint[data-v-65c3dcb4]{color:var(--color-text-secondary);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-1);text-align:center}.composer-locked[data-v-65c3dcb4]{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--color-negative);border-radius:var(--r-2);background:var(--color-bg);color:var(--color-negative);font-size:var(--fs-sm)}.lock-msg[data-v-65c3dcb4]{font-weight:600}.lock-target[data-v-65c3dcb4]{color:var(--color-text-secondary);font-size:var(--fs-xs)}.composer-active textarea[data-v-65c3dcb4]{width:100%;min-height:64px;resize:vertical;box-sizing:border-box;border:1px solid var(--color-separator);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color var(--t)}.composer-active textarea[data-v-65c3dcb4]:hover{border-color:var(--color-text-secondary)}.composer-active textarea[data-v-65c3dcb4]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-fill)}.composer-foot[data-v-65c3dcb4]{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.quick-replies[data-v-65c3dcb4]{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2);align-items:center}.quick-reply[data-v-65c3dcb4]{height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-xs);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer}.quick-reply[data-v-65c3dcb4]:hover{background:var(--color-bg);color:var(--color-text-primary)}.quick-edit[data-v-65c3dcb4]{display:flex;gap:var(--sp-2);align-items:center;margin-top:var(--sp-2)}.quick-edit input[data-v-65c3dcb4]{flex:1 1 auto;min-width:0;height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);outline:none}.quick-edit input[data-v-65c3dcb4]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-fill)}.target-hint[data-v-65c3dcb4]{color:var(--color-text-secondary);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.composer-actions[data-v-65c3dcb4]{display:flex;align-items:center;gap:var(--sp-2)}.at-btn[data-v-65c3dcb4]{width:var(--ctl-h);height:var(--ctl-h);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font);font-size:var(--fs-md);font-weight:500;line-height:1;cursor:pointer}.at-btn[data-v-65c3dcb4]:hover{background:var(--color-bg)}.at-btn.on[data-v-65c3dcb4]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.at-chip[data-v-65c3dcb4]{display:inline-flex;align-items:center;padding:0 var(--sp-2);height:24px;border:1px solid var(--color-accent);border-radius:var(--r-2);color:var(--color-accent);font-size:var(--fs-xs)}.send-btn[data-v-65c3dcb4]{height:var(--ctl-h);padding:0 var(--sp-4);border:1px solid var(--color-accent-fill);border-radius:var(--r-2);background:var(--color-accent-fill);color:#fff;font-family:var(--font);font-size:var(--fs-sm);font-weight:500;cursor:pointer}.send-btn[data-v-65c3dcb4]:hover{filter:brightness(.92)}.send-btn[data-v-65c3dcb4]:disabled{background:var(--color-surface);border-color:var(--color-separator);color:var(--color-text-secondary);cursor:not-allowed;filter:none}.quote-bar[data-v-65c3dcb4]{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);padding:var(--sp-2);border-left:2px solid var(--color-accent);border-radius:var(--r-2);background:var(--color-bg);font-size:var(--fs-sm);color:var(--color-text-primary)}.quote-text[data-v-65c3dcb4]{flex:1;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-clear[data-v-65c3dcb4]{border:0;background:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--fs-sm)}.at-overlay[data-v-65c3dcb4]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-scrim);background:var(--color-scrim);display:flex;align-items:center;justify-content:center}.at-panel[data-v-65c3dcb4]{width:460px;max-width:92vw;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-3);color:var(--color-text-primary)}.at-panel-head[data-v-65c3dcb4]{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-separator);font-weight:600;font-size:var(--fs-sm)}.close-btn[data-v-65c3dcb4]{border:0;background:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--fs-sm);min-height:var(--ctl-h);padding:0 var(--sp-2)}.close-btn[data-v-65c3dcb4]:hover{color:var(--color-text-primary)}.muted[data-v-65c3dcb4]{color:var(--color-text-secondary);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4)}.at-member-list[data-v-65c3dcb4]{flex:1;overflow-y:auto;padding:var(--sp-1) 0}.at-member[data-v-65c3dcb4]{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:var(--sp-1) var(--sp-4);cursor:pointer;font-size:var(--fs-sm);border-bottom:1px solid var(--color-separator)}.at-member[data-v-65c3dcb4]:hover{background:var(--color-bg)}.at-member.sel[data-v-65c3dcb4]{background:var(--color-bg);box-shadow:inset 2px 0 0 var(--color-accent)}.at-nick[data-v-65c3dcb4]{font-weight:600;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary)}.at-wxid[data-v-65c3dcb4]{margin-left:auto;font-size:var(--fs-xs);color:var(--color-text-secondary);font-family:var(--font-mono)}.at-panel-foot[data-v-65c3dcb4]{display:flex;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--color-separator)}.quote-item[data-v-65c3dcb4]{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.quote-item-meta[data-v-65c3dcb4]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.quote-item-body[data-v-65c3dcb4]{font-size:var(--fs-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}@media (max-width: 600px){.quick-reply[data-v-65c3dcb4],.at-btn[data-v-65c3dcb4],.send-btn[data-v-65c3dcb4],.quick-edit input[data-v-65c3dcb4]{height:var(--ctl-h-mobile)}.at-btn[data-v-65c3dcb4]{width:var(--ctl-h-mobile)}.quick-edit input[data-v-65c3dcb4]{min-height:var(--ctl-h-mobile)}}.diag-summary[data-v-ffc349fe]{margin:0 0 var(--sp-3);padding:var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-bg);font-size:var(--fs-xs);color:var(--color-text-secondary)}.diag-row[data-v-ffc349fe]{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin:var(--sp-2) 0}.sc-item[data-v-ffc349fe]{display:grid;grid-template-columns:28px 1fr auto;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-separator);align-items:center}.sc-id[data-v-ffc349fe]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.sc-name[data-v-ffc349fe]{font-size:var(--fs-sm);color:var(--color-text-primary)}.sc-detail[data-v-ffc349fe]{grid-column:1 / -1;font-size:var(--fs-xs);color:var(--color-text-secondary);overflow-wrap:anywhere}.step-list[data-v-ffc349fe]{display:flex;flex-direction:column;gap:var(--sp-2)}.step[data-v-ffc349fe]{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-separator);font-size:var(--fs-xs);color:var(--color-text-secondary)}.step-kind[data-v-ffc349fe]{font-size:var(--fs-sm);color:var(--color-text-primary)}.diag-table[data-v-ffc349fe]{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}.diag-table th[data-v-ffc349fe],.diag-table td[data-v-ffc349fe]{text-align:left;padding:var(--sp-1) var(--sp-1);border-bottom:1px solid var(--color-separator);font-size:var(--fs-xs);color:var(--color-text-secondary)}.diag-table td[data-v-ffc349fe]:nth-child(2){color:var(--color-text-primary)}.small[data-v-ffc349fe]{font-size:var(--fs-xs)}.mono[data-v-ffc349fe]{font-family:var(--font-mono)}.audit-summary[data-v-94d7f89e]{margin:0 0 var(--sp-3);padding:var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-bg);font-size:var(--fs-xs);color:var(--color-text-secondary)}.audit-filters[data-v-94d7f89e]{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.audit-filters .input[data-v-94d7f89e]{flex:1 1 120px;min-width:100px}.audit-table[data-v-94d7f89e]{width:100%;border-collapse:collapse}.audit-table th[data-v-94d7f89e],.audit-table td[data-v-94d7f89e]{text-align:left;padding:var(--sp-2) var(--sp-1);border-bottom:1px solid var(--color-separator);font-size:var(--fs-xs);color:var(--color-text-secondary);vertical-align:top}.audit-table td[data-v-94d7f89e]:nth-child(2),.audit-table td[data-v-94d7f89e]:nth-child(3){color:var(--color-text-primary)}.result-cell[data-v-94d7f89e]{overflow-wrap:anywhere}.result-cell.is-ok[data-v-94d7f89e]{color:var(--color-positive)}.result-cell.is-fail[data-v-94d7f89e]{color:var(--color-negative)}.small[data-v-94d7f89e]{font-size:var(--fs-xs)}.mono[data-v-94d7f89e]{font-family:var(--font-mono)}.smc{display:flex;flex-direction:column;gap:var(--sp-2)}.smc-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.smc-summary{font-size:var(--fs-md);color:var(--color-text-primary);font-weight:600}.smc-tag-test{color:var(--color-positive)}.smc-tag-prod{color:var(--color-negative)}.smc-switch-info{margin:0;font-size:var(--fs-sm);color:var(--color-text-secondary)}.smc-ops{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.smc-audit{border-top:1px solid var(--color-separator);padding-top:var(--sp-2)}.smc-audit-title{font-size:var(--fs-xs);color:var(--color-text-secondary)}.smc-audit-list{margin:var(--sp-1) 0 0;padding-left:var(--sp-4);font-size:var(--fs-xs);color:var(--color-text-secondary)}.smc-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);z-index:var(--z-scrim);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.smc-modal{background:var(--color-surface);border-radius:var(--r-3);padding:var(--sp-5);width:min(520px,100%);max-height:86vh;overflow:auto;display:flex;flex-direction:column;gap:var(--sp-3)}.smc-modal-title{margin:0;font-size:var(--fs-lg);color:var(--color-negative)}.smc-modal-lead{margin:0;font-size:var(--fs-sm);color:var(--color-text-primary)}.smc-risk-list{margin:0;padding-left:var(--sp-5);font-size:var(--fs-sm);color:var(--color-text-secondary)}.smc-confirm-label{font-size:var(--fs-sm);color:var(--color-text-primary)}.smc-confirm-input{width:100%}.smc-modal-ops{display:flex;justify-content:flex-end;gap:var(--sp-3)}.account-admin[data-v-0b01079c]{padding:var(--sp-5) var(--sp-4) var(--sp-7);max-width:1040px;margin:0 auto}.admin-header[data-v-0b01079c]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.admin-header .title[data-v-0b01079c]{font-size:var(--fs-xl);font-weight:600;margin:0;color:var(--color-text-primary)}.head-ops[data-v-0b01079c]{display:flex;gap:var(--sp-2);flex-wrap:wrap}.admin-error[data-v-0b01079c],.admin-notice[data-v-0b01079c]{padding:var(--sp-3);border-radius:var(--r-2);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.admin-error[data-v-0b01079c]{border:1px solid var(--color-negative);color:var(--color-negative);background:var(--color-surface)}.admin-notice[data-v-0b01079c]{border:1px solid var(--color-positive);color:var(--color-positive);background:var(--color-surface)}.state-panel[data-v-0b01079c]{margin-bottom:var(--sp-4)}.state-head[data-v-0b01079c]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}.state-who[data-v-0b01079c]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.state-title[data-v-0b01079c]{font-size:var(--fs-lg);font-weight:600;line-height:1.2;margin:0;color:var(--color-text-primary)}.state-title.is-positive[data-v-0b01079c]{color:var(--color-positive)}.state-title.is-negative[data-v-0b01079c]{color:var(--color-negative)}.state-title.is-pending[data-v-0b01079c]{color:var(--color-pending)}.state-desc[data-v-0b01079c]{font-size:var(--fs-sm);line-height:1.45;color:var(--color-text-secondary);margin:var(--sp-2) 0 0;max-width:44ch}.state-visual[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;margin:var(--sp-6) 0 var(--sp-5)}.qr-box[data-v-0b01079c]{width:308px;height:308px;flex:0 0 auto;box-sizing:border-box;padding:33px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-separator);border-radius:var(--r-2);background:#fff;overflow:visible}.qr-box canvas[data-v-0b01079c],.qr-box svg[data-v-0b01079c]{display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%}.qr-box img[data-v-0b01079c]{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain}.verify-block[data-v-0b01079c]{margin:var(--sp-4) 0 var(--sp-5);padding:var(--sp-4);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-bg)}.verify-head[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.verify-body[data-v-0b01079c]{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:flex-start}.verify-qr[data-v-0b01079c]{width:220px;height:220px;padding:24px}.verify-side[data-v-0b01079c]{flex:1 1 240px;min-width:200px}.verify-hint[data-v-0b01079c]{font-size:var(--fs-sm);color:var(--color-text-secondary);line-height:1.6;margin:0 0 var(--sp-3)}.verify-url[data-v-0b01079c]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);line-height:1.5;color:var(--color-text-primary);word-break:break-all;padding:var(--sp-2) var(--sp-3);border:1px dashed var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);margin:0}.verify-wait[data-v-0b01079c]{font-size:var(--fs-sm);color:var(--color-text-secondary);margin:0 0 var(--sp-3)}.verify-warn[data-v-0b01079c]{font-size:var(--fs-sm);line-height:1.6;color:var(--color-pending);margin:0 0 var(--sp-3)}.state-count[data-v-0b01079c]{font-size:var(--fs-2xl);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.state-count.is-warn[data-v-0b01079c]{color:var(--color-pending)}.state-act[data-v-0b01079c]{margin-bottom:var(--sp-3)}.state-foot[data-v-0b01079c]{display:flex;gap:var(--sp-4);flex-wrap:wrap}.link-btn[data-v-0b01079c]{border:0;background:none;padding:0;color:var(--color-accent);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;min-height:var(--row-h);display:inline-flex;align-items:center}.link-btn[data-v-0b01079c]:hover{text-decoration:underline}.new-row[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}.new-row .input[data-v-0b01079c]{flex:1 1 220px;min-width:0}.list-head[data-v-0b01079c]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);margin:var(--sp-5) 0 var(--sp-2)}.list-title[data-v-0b01079c]{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-primary)}.list-count[data-v-0b01079c]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.acc-list[data-v-0b01079c]{list-style:none;margin:0;padding:0}.acc-card[data-v-0b01079c]{background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-3);margin-bottom:var(--sp-3);position:relative}.acc-card.is-selected[data-v-0b01079c]{border-color:var(--color-accent)}.acc-card.is-selected[data-v-0b01079c]:before{content:"";position:absolute;left:0;top:var(--sp-3);bottom:var(--sp-3);width:2px;border-radius:var(--r-1);background:var(--color-accent)}.acc-row[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-2);min-height:69px;padding:var(--sp-3) var(--sp-4)}.acc-main[data-v-0b01079c]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);border:0;background:none;padding:0;cursor:pointer;text-align:left}.acc-nick[data-v-0b01079c]{font-size:var(--fs-md);font-weight:600;line-height:1.3;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.acc-wxid[data-v-0b01079c]{font-size:var(--fs-xs);line-height:1.5;color:var(--color-text-secondary);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.acc-tag[data-v-0b01079c],.acc-act[data-v-0b01079c]{flex:0 0 auto}.acc-more[data-v-0b01079c]{flex:0 0 auto;height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer}.acc-more[data-v-0b01079c]:hover{background:var(--color-bg)}.more-menu[data-v-0b01079c]{position:absolute;right:var(--sp-4);top:calc(var(--sp-3) + 69px - var(--sp-3));z-index:5;min-width:200px;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-2);padding:var(--sp-1) 0}.more-item[data-v-0b01079c]{min-height:var(--row-h);padding:var(--sp-1) var(--sp-4);border:0;background:none;text-align:left;font-family:var(--font);font-size:var(--fs-sm);color:var(--color-text-primary);cursor:pointer}.more-item[data-v-0b01079c]:hover{background:var(--color-bg)}.more-item[data-v-0b01079c]:disabled{color:var(--color-text-secondary);cursor:not-allowed}.more-item.is-danger[data-v-0b01079c]{color:var(--color-negative)}.more-note[data-v-0b01079c]{display:block;font-size:var(--fs-xs);color:var(--color-text-secondary)}.test-fold[data-v-0b01079c]{margin:var(--sp-3) 0}.fold-head[data-v-0b01079c]{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--sp-2);background:none;border:0;padding:0;min-height:auto;cursor:pointer;text-align:left}.fold-hint[data-v-0b01079c]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.op-list[data-v-0b01079c]{list-style:none;margin:var(--sp-2) 0 0;padding:0}.op-row[data-v-0b01079c]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--color-separator)}.op-row.is-test[data-v-0b01079c]{opacity:.72}.tag-test[data-v-0b01079c]{color:var(--color-text-secondary)}.test-fold .link-btn[data-v-0b01079c]{min-height:auto;padding:0}.op-summary[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.op-sep[data-v-0b01079c]{color:var(--color-text-secondary)}.op-bind-btn[data-v-0b01079c]{flex:0 0 auto}.op-block[data-v-0b01079c]{border-top:1px solid var(--color-separator);padding-top:var(--sp-3);margin-top:var(--sp-3)}.op-head[data-v-0b01079c]{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.op-name[data-v-0b01079c]{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-primary)}.chk[data-v-0b01079c]{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--color-text-secondary)}.op-accounts[data-v-0b01079c]{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}.chip-x[data-v-0b01079c]{margin-left:var(--sp-1);font-size:var(--fs-xs);min-height:auto}.admin-table[data-v-0b01079c]{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}.admin-table th[data-v-0b01079c],.admin-table td[data-v-0b01079c]{text-align:left;padding:var(--sp-2) var(--sp-1);border-bottom:1px solid var(--color-separator);font-size:var(--fs-sm);color:var(--color-text-secondary)}.admin-table td[data-v-0b01079c]{color:var(--color-text-primary)}.small[data-v-0b01079c]{font-size:var(--fs-xs)}.mono[data-v-0b01079c]{font-family:var(--font-mono)}.confirm-scrim[data-v-0b01079c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drawer);background:var(--color-scrim);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.confirm-box[data-v-0b01079c]{width:420px;max-width:100%}.confirm-ops[data-v-0b01079c]{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-4)}@media (max-width: 600px){.account-admin[data-v-0b01079c]{padding:var(--sp-4) var(--sp-4) var(--sp-6)}.admin-header[data-v-0b01079c]{flex-direction:column;align-items:flex-start}.acc-row[data-v-0b01079c]{flex-wrap:wrap;min-height:var(--ctl-h-mobile)}.acc-main[data-v-0b01079c]{flex:1 1 100%;min-height:var(--ctl-h-mobile);justify-content:center}.acc-more[data-v-0b01079c],.acc-act[data-v-0b01079c]{min-height:var(--ctl-h-mobile)}.acc-more[data-v-0b01079c]{padding:0 var(--sp-4)}.state-visual[data-v-0b01079c]{margin:var(--sp-5) 0}.qr-box[data-v-0b01079c]{width:100%;max-width:308px;height:auto;aspect-ratio:1}.more-menu[data-v-0b01079c]{position:static;width:100%;margin:0 var(--sp-4) var(--sp-3);min-width:0}}.group-sns-panel[data-v-e39f5910]{padding:var(--sp-4);max-width:1100px}.panel-header[data-v-e39f5910]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.panel-header .title[data-v-e39f5910]{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-primary)}.header-account[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);max-width:100%;overflow-wrap:anywhere}.panel-error[data-v-e39f5910]{color:var(--color-negative);background:var(--color-surface);border:1px solid var(--color-negative);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);margin-bottom:var(--sp-3)}.risk-banner[data-v-e39f5910]{background:var(--color-surface);border:1px solid var(--color-negative);border-left:4px solid var(--color-negative);color:var(--color-negative);padding:var(--sp-3);border-radius:var(--r-2);font-size:var(--fs-sm);margin-bottom:var(--sp-4);line-height:1.5}.panel-section[data-v-e39f5910]{margin-bottom:var(--sp-5)}.section-title[data-v-e39f5910]{font-size:var(--fs-sm);color:var(--color-text-secondary);margin:var(--sp-3) 0 var(--sp-2);font-weight:600;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.count-badge[data-v-e39f5910]{background:var(--color-bg);padding:0 var(--sp-2);border-radius:var(--r-3);font-size:var(--fs-xs);color:var(--color-text-secondary)}.muted[data-v-e39f5910]{color:var(--color-text-secondary);font-size:var(--fs-sm);padding:var(--sp-2) 0}.empty[data-v-e39f5910]{color:var(--color-text-secondary);font-size:var(--fs-sm);padding:var(--sp-3) 0}.tag-cloud[data-v-e39f5910]{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tag-chip[data-v-e39f5910]{background:var(--color-bg);color:var(--color-accent);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-3);font-size:var(--fs-sm);cursor:default;max-width:100%;overflow-wrap:anywhere}.group-grid[data-v-e39f5910]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3)}.group-card[data-v-e39f5910]{border:1px solid var(--color-separator);border-radius:var(--r-2);padding:var(--sp-3);cursor:pointer;background:var(--color-surface);color:var(--color-text-primary);min-width:0;min-height:var(--row-h)}.group-card[data-v-e39f5910]:hover{background:var(--color-bg)}.group-card.active[data-v-e39f5910]{border-color:var(--color-accent);background:var(--color-bg)}.group-name[data-v-e39f5910]{font-weight:600;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-peer[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);font-family:var(--font-mono);margin-top:var(--sp-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-meta[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);margin-top:var(--sp-1)}.member-list[data-v-e39f5910]{max-height:260px;overflow-y:auto;border:1px solid var(--color-separator);border-radius:var(--r-1)}.member-row[data-v-e39f5910]{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:baseline;min-width:0;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--color-separator);font-size:var(--fs-sm)}.member-row[data-v-e39f5910]>*{min-width:0}.member-nick[data-v-e39f5910]{font-weight:600;color:var(--color-text-primary);overflow-wrap:anywhere}.member-wxid[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);font-family:var(--font-mono);overflow-wrap:anywhere}.member-inviter[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);margin-left:auto;overflow-wrap:anywhere}.risk-block[data-v-e39f5910]{background:var(--color-surface);border:1px solid var(--color-separator);border-left:4px solid var(--color-negative);padding:var(--sp-3);border-radius:var(--r-2);margin-top:var(--sp-3)}.risk-block-title[data-v-e39f5910]{color:var(--color-negative);font-weight:600;font-size:var(--fs-sm);margin-bottom:var(--sp-2)}.risk-ops[data-v-e39f5910]{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.risk-ops .input[data-v-e39f5910]{flex:1 1 180px;min-width:0}.risk-note[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary);margin-top:var(--sp-2)}.input.mono[data-v-e39f5910]{font-family:var(--font-mono)}.textarea[data-v-e39f5910]{height:auto;min-height:72px;resize:vertical;flex:1 1 100%}.sns-unavailable[data-v-e39f5910]{background:var(--color-surface);border:1px solid var(--color-pending);color:var(--color-pending);padding:var(--sp-3);border-radius:var(--r-2)}.sns-unavailable-title[data-v-e39f5910]{font-weight:600;font-size:var(--fs-sm)}.sns-unavailable-sub[data-v-e39f5910]{font-size:var(--fs-xs);margin-top:var(--sp-1)}.sns-list[data-v-e39f5910]{display:flex;flex-direction:column;gap:var(--sp-3)}.sns-card[data-v-e39f5910]{display:flex;gap:var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);padding:var(--sp-3);min-width:0}.sns-avatar[data-v-e39f5910]{width:34px;height:34px;border-radius:50%;background:var(--color-accent-fill);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sns-body[data-v-e39f5910]{flex:1 1 auto;min-width:0}.sns-nick[data-v-e39f5910]{font-weight:600;font-size:var(--fs-sm);color:var(--color-text-primary);overflow-wrap:anywhere}.sns-content[data-v-e39f5910]{font-size:var(--fs-sm);margin:var(--sp-1) 0;color:var(--color-text-primary);overflow-wrap:anywhere}.sns-time[data-v-e39f5910]{font-size:var(--fs-xs);color:var(--color-text-secondary)}.sns-post[data-v-e39f5910]{margin-top:var(--sp-3)}@media (max-width: 600px){.group-sns-panel[data-v-e39f5910]{padding:var(--sp-3)}.panel-header[data-v-e39f5910]{align-items:flex-start}.panel-header .btn[data-v-e39f5910]{margin-left:auto}.group-grid[data-v-e39f5910]{grid-template-columns:1fr}.member-list[data-v-e39f5910]{max-height:44vh}.risk-ops .input[data-v-e39f5910]{flex:1 1 100%}.risk-ops .btn[data-v-e39f5910]{flex:1 1 auto}}.contacts-panel[data-v-9c3f8105]{width:var(--mid-w);flex:0 0 auto;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--color-bg);color:var(--color-text-primary);border-right:1px solid var(--color-separator)}.contacts-head[data-v-9c3f8105]{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-separator)}.contacts-title[data-v-9c3f8105]{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);min-width:0;font-size:var(--fs-md);font-weight:600;color:var(--color-text-primary)}.contacts-stat[data-v-9c3f8105]{font-size:var(--fs-xs);font-weight:400;color:var(--color-text-secondary);overflow-wrap:anywhere}.contacts-stat.warn[data-v-9c3f8105]{color:var(--color-negative)}.contacts-search[data-v-9c3f8105]{flex:1 1 160px;min-width:0}.contacts-partial[data-v-9c3f8105]{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--color-surface);border-bottom:1px solid var(--color-separator);color:var(--color-text-primary);font-size:var(--fs-sm)}.contacts-partial.warn[data-v-9c3f8105]{color:var(--color-pending)}.contacts-error[data-v-9c3f8105]{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin:var(--sp-3) var(--sp-4)}.contacts-error-msg[data-v-9c3f8105]{flex:1 1 160px;min-width:0;color:var(--color-negative);font-size:var(--fs-sm)}.contacts-empty[data-v-9c3f8105],.contacts-hint[data-v-9c3f8105]{margin:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--color-text-secondary)}.contacts-hint.small[data-v-9c3f8105]{margin:var(--sp-2) var(--sp-4);font-size:var(--fs-xs)}.contacts-list[data-v-9c3f8105]{flex:1 1 auto;min-height:0;overflow-y:auto}.contact-item[data-v-9c3f8105]{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--row-h);padding:0 var(--sp-4);border-bottom:1px solid var(--color-separator);cursor:pointer;transition:background-color var(--t)}.contact-item[data-v-9c3f8105]:hover{background:var(--color-surface)}.contact-item.noclick[data-v-9c3f8105]{cursor:default}.contact-item.noclick[data-v-9c3f8105]:hover{background:transparent}.contact-item.noclick .contact-name[data-v-9c3f8105]{color:var(--color-text-secondary);font-weight:400}.contact-avatar[data-v-9c3f8105]{width:var(--sp-6);height:var(--sp-6);flex:0 0 auto;border-radius:var(--r-1);object-fit:cover;background:var(--color-surface)}.contact-avatar.placeholder[data-v-9c3f8105]{display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--fs-md);font-weight:500}.contact-main[data-v-9c3f8105]{flex:1 1 auto;min-width:0}.contact-line1[data-v-9c3f8105]{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0}.contact-name[data-v-9c3f8105]{flex:1 1 auto;min-width:72px;font-size:var(--fs-md);font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-remark[data-v-9c3f8105]{flex:0 1 auto;max-width:40%;min-width:0;font-size:var(--fs-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-type[data-v-9c3f8105]{flex:0 0 auto}.contact-type.nocontent[data-v-9c3f8105]{color:var(--color-negative)}@media (max-width: 1119px){.contact-type[data-v-9c3f8105]:not(.nocontent){display:none}}.contact-wxid[data-v-9c3f8105]{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contacts-more[data-v-9c3f8105]{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}@media (max-width: 900px){.contacts-panel[data-v-9c3f8105]{width:100%;max-height:40vh;border-right:0;border-bottom:1px solid var(--color-separator)}}.app[data-density=compact]{--row-h: 36px}.app[data-density=compact] .session-item,.app[data-density=compact] .account-item{padding:var(--sp-1) var(--sp-3)}.app[data-density=compact] .message-scroll{padding:var(--sp-2) var(--sp-3)}.app[data-density=compact] .message-row{margin-bottom:var(--sp-2)}.app[data-density=compact] .bubble{padding:var(--sp-1) var(--sp-2)}.app[data-density=compact] .session-group-label{padding:var(--sp-1) var(--sp-3) 0}.app ::-webkit-scrollbar{width:8px;height:8px}.app ::-webkit-scrollbar-thumb{background:var(--color-separator);border-radius:var(--r-1)}.app ::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.chat-empty{text-align:center}.session-list .empty,.message-list .empty{color:var(--color-text-secondary)}:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--color-bg: #F5F5F7;--color-surface: #FFFFFF;--color-text-primary: #1D1D1F;--color-text-secondary: #6E6E73;--color-separator: #E3E3E8;--color-accent: #0066CC;--color-accent-fill: #0066CC;--color-positive: #1B7F3B;--color-pending: #A85500;--color-negative: #C9142B;--color-danger-fill: #C9142B;--color-scrim: rgba(0, 0, 0, .4);--fs-xs: 11px;--fs-sm: 13px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 22px;--fs-2xl: 28px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-1: 6px;--r-2: 8px;--r-3: 12px;--t: .12s ease-out;--topbar-h: 52px;--ctl-h: 32px;--ctl-h-input: 36px;--ctl-h-mobile: 44px;--row-h: 44px;--sidebar-w: 280px;--mid-w: 360px;--z-scrim: 40;--z-drawer: 41;--z-toast: 50;color-scheme:light;--bg: var(--color-bg);--panel: var(--color-surface);--border: var(--color-separator);--text: var(--color-text-primary);--text-2: var(--color-text-secondary);--accent: var(--color-accent);--in-bubble: var(--color-surface);--hover: var(--color-bg);--active: var(--color-bg);--online: var(--color-positive);--offline: var(--color-text-secondary);--danger: var(--color-negative);--accent-weak: var(--color-accent-fill);--background: var(--color-bg);--foreground: var(--color-text-primary);--muted-foreground: var(--color-text-secondary);--muted: var(--color-bg);--muted-2: var(--color-bg);--hover-strong: var(--color-bg);--input-bg: var(--color-surface);--input-border: var(--color-separator);--bubble-in: var(--color-surface);--bubble-self: var(--color-accent-fill);--media-bg: var(--color-bg);--topbar-bg: var(--color-surface);--topbar-fg: var(--color-text-primary);--composer-bg: var(--color-surface);--panel-soft-bg: var(--color-bg)}:root[data-theme=dark],.app[data-theme=dark]{--color-bg: #000000;--color-surface: #1C1C1E;--color-text-primary: #FFFFFF;--color-text-secondary: #A1A1A6;--color-separator: #38383A;--color-accent: #0A84FF;--color-accent-fill: #0066CC;--color-positive: #30D158;--color-pending: #FF9F0A;--color-negative: #FF453A;--color-danger-fill: #C9142B;--color-scrim: rgba(0, 0, 0, .4);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #000000;--color-surface: #1C1C1E;--color-text-primary: #FFFFFF;--color-text-secondary: #A1A1A6;--color-separator: #38383A;--color-accent: #0A84FF;--color-accent-fill: #0066CC;--color-positive: #30D158;--color-pending: #FF9F0A;--color-negative: #FF453A;--color-danger-fill: #C9142B;--color-scrim: rgba(0, 0, 0, .4);color-scheme:dark}}html.no-anim,html.no-anim *,html.no-anim *:before,html.no-anim *:after{transition:none!important;animation-duration:1ms!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (min-width: 1360px){:root{--sidebar-w: 280px;--mid-w: 360px}}@media (min-width: 1120px) and (max-width: 1359px){:root{--sidebar-w: 248px;--mid-w: 320px}}@media (min-width: 901px) and (max-width: 1119px){:root{--sidebar-w: 216px;--mid-w: 288px}}.btn,.btn-secondary,.btn-primary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);box-sizing:border-box;height:var(--ctl-h);padding:0 var(--sp-3);border-radius:var(--r-2);border:1px solid var(--color-separator);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font);font-size:var(--fs-sm);font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color var(--t),border-color var(--t),color var(--t),filter var(--t)}.btn:hover,.btn-secondary:hover{background:var(--color-bg)}.btn:active,.btn-secondary:active{filter:brightness(.96)}.btn-primary{background:var(--color-accent-fill);border-color:var(--color-accent-fill);color:#fff}.btn-primary:hover{filter:brightness(.92)}.btn-primary:active{filter:brightness(.84)}.btn-danger{background:var(--color-danger-fill);border-color:var(--color-danger-fill);color:#fff}.btn-danger:hover{filter:brightness(.92)}.btn-danger:active{filter:brightness(.84)}.btn:disabled,.btn-secondary:disabled,.btn-primary:disabled,.btn-danger:disabled,.btn[aria-disabled=true],.btn-primary[aria-disabled=true],.btn-danger[aria-disabled=true]{background:var(--color-surface);border-color:var(--color-separator);color:var(--color-text-secondary);cursor:not-allowed;filter:none}.btn[aria-busy=true]:before,.btn-primary[aria-busy=true]:before,.btn-danger[aria-busy=true]:before{content:"";width:12px;height:12px;flex:0 0 auto;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .8s linear infinite}.btn[aria-busy=true]{cursor:progress}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn:focus-visible,.btn-secondary:focus-visible,.btn-primary:focus-visible,.btn-danger:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.btn-sm,.btn.tiny,.btn.risk,.btn.retry{height:var(--ctl-h);padding:0 var(--sp-3);font-size:var(--fs-sm)}.tag,.status-pill{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);line-height:1.5;color:var(--color-text-primary);background:none;border:0;padding:0;white-space:nowrap}.tag .dot,.status-pill .dot,.status-dot{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:currentColor}.dot-online{color:var(--color-positive)}.dot-offline{color:var(--color-text-secondary)}.dot-busy,.dot-logging_in{color:var(--color-pending)}.dot-challenge{color:var(--color-accent)}.dot-fail{color:var(--color-negative)}.dot-wait{background:transparent;color:var(--color-pending);box-shadow:inset 0 0 0 1.5px var(--color-pending)}.tag .tnum{font-variant-numeric:tabular-nums}.tag .dot,.status-pill .dot{width:8px;height:8px;box-sizing:border-box;border-radius:50%;background:currentColor}.tag .dot.dot-offline,.status-pill .dot.dot-offline{background:transparent;border:1.5px solid currentColor}.tag .dot.dot-busy,.tag .dot.dot-logging_in,.status-pill .dot.dot-busy,.status-pill .dot.dot-logging_in{background:transparent;border:0 solid currentColor;border-top-width:1.5px;border-left-width:1.5px}.tag .dot.dot-challenge,.status-pill .dot.dot-challenge{border-radius:1px;transform:rotate(45deg)}.tag .dot.dot-fail,.status-pill .dot.dot-fail{border-radius:1px}.tag .dot.dot-wait,.status-pill .dot.dot-wait{background:transparent;border:0;box-shadow:inset 0 0 0 1.5px var(--color-pending)}.status-dot{display:inline-flex;align-items:center;gap:var(--sp-1);flex:0 0 auto;width:auto;height:auto;padding:0 var(--sp-2) 0 var(--sp-1);border:1px solid var(--color-separator);border-radius:var(--r-1);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--fs-xs);line-height:1.5;white-space:nowrap}.status-dot:before{content:"";width:8px;height:8px;box-sizing:border-box;flex:0 0 auto;border-radius:50%;background:currentColor}.status-dot.online{color:var(--color-positive);border-color:currentColor}.status-dot.online:after{content:"在线"}.status-dot.offline:before{background:transparent;border:1.5px solid currentColor}.status-dot.offline:after{content:"离线"}.status-dot.busy,.status-dot.logging_in{color:var(--color-pending);border-color:currentColor}.status-dot.busy:before,.status-dot.logging_in:before{background:transparent;border:0 solid currentColor;border-top-width:1.5px;border-left-width:1.5px}.status-dot.busy:after,.status-dot.logging_in:after{content:"登录中"}.status-dot.challenge,.status-dot.need_verify{color:var(--color-accent);border-color:currentColor}.status-dot.challenge:before,.status-dot.need_verify:before{border-radius:1px;transform:rotate(45deg)}.status-dot.challenge:after,.status-dot.need_verify:after{content:"需验证"}.status-dot.fail{color:var(--color-negative);border-color:currentColor}.status-dot.fail:before{border-radius:1px}.status-dot.fail:after{content:"失败"}.card{position:relative;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-3);padding:var(--sp-4)}.card+.card{margin-top:var(--sp-3)}.card.is-selected{border-color:var(--color-accent)}.card.is-selected:before{content:"";position:absolute;left:0;top:var(--sp-3);bottom:var(--sp-3);width:2px;border-radius:var(--r-1);background:var(--color-accent)}.card.is-empty{border-style:dashed;min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);text-align:center;color:var(--color-text-secondary);font-size:var(--fs-sm)}.card.is-error{border-color:var(--color-negative)}.card.is-error .card-title{color:var(--color-negative)}.card-title{font-size:var(--fs-md);font-weight:600;line-height:1.3;color:var(--color-text-primary)}.card-meta{font-size:var(--fs-xs);color:var(--color-text-secondary);line-height:1.5}.card[aria-busy=true] .card-title,.card .skeleton-line{display:block;height:var(--sp-2);margin:var(--sp-2) 0;border-radius:var(--r-1);background:var(--color-separator);color:transparent}.card[aria-busy=true] .card-title{width:40%}.card .skeleton-line:nth-child(2){width:80%}.card .skeleton-line:nth-child(3){width:60%}.input,input.input,textarea.input{box-sizing:border-box;height:var(--ctl-h-input);padding:0 var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font);font-size:var(--fs-sm);outline:none;transition:border-color var(--t),background-color var(--t)}.input::placeholder{color:var(--color-text-secondary)}.input:hover{border-color:var(--color-text-secondary)}.input:focus,.input:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-fill)}.input.is-error,.input[aria-invalid=true]{border-color:var(--color-negative)}.input:disabled{background:var(--color-bg);color:var(--color-text-secondary);border-color:var(--color-separator);cursor:not-allowed}.field-error{font-size:var(--fs-xs);color:var(--color-negative);line-height:1.5;margin-top:var(--sp-2)}.field-note{font-size:var(--fs-xs);color:var(--color-text-secondary);line-height:1.5;margin-top:var(--sp-2)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-scrim);background:var(--color-scrim);opacity:0;pointer-events:none;transition:opacity var(--t)}.drawer-scrim.is-open{opacity:1;pointer-events:auto}.drawer{position:fixed;z-index:var(--z-drawer);top:0;bottom:0;right:0;width:420px;max-width:100vw;display:flex;flex-direction:column;background:var(--color-surface);border-left:1px solid var(--color-separator);border-radius:var(--r-3) 0 0 var(--r-3);transform:translate(100%);transition:transform .2s ease-out}.drawer.is-open{transform:translate(0)}.drawer-head,.drawer-foot{flex:0 0 auto;padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);border-bottom:1px solid var(--color-separator)}.drawer-foot{border-bottom:0;border-top:1px solid var(--color-separator)}.drawer-title{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-primary)}.drawer-body{flex:1 1 auto;overflow-y:auto;padding:var(--sp-3) var(--sp-4)}.drawer-kv{display:grid;grid-template-columns:96px 1fr;gap:var(--sp-2);margin:0;padding:var(--sp-2) 0;border-bottom:1px solid var(--color-separator);font-size:var(--fs-sm);align-items:start}.drawer-kv dt{font-size:var(--fs-xs);color:var(--color-text-secondary);line-height:1.5}.drawer-kv dd{margin:0;color:var(--color-text-primary);font-size:var(--fs-sm);overflow-wrap:anywhere}.drawer-kv dd.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}.drawer-section{border-bottom:1px solid var(--color-separator)}.drawer-section>summary{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:0 var(--sp-1);cursor:pointer;list-style:none;font-size:var(--fs-sm);font-weight:500;color:var(--color-text-primary)}.drawer-section>summary::-webkit-details-marker{display:none}.drawer-section>summary .sec-id{font-size:var(--fs-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.drawer-section>summary .sec-arrow{margin-left:auto;color:var(--color-text-secondary);transition:transform var(--t)}.drawer-section[open]>summary .sec-arrow{transform:rotate(90deg)}@media (max-width: 600px){.drawer{top:auto;left:0;right:0;bottom:0;width:100%;height:88vh;border-left:0;border-top:1px solid var(--color-separator);border-radius:var(--r-3) var(--r-3) 0 0;transform:translateY(100%)}.drawer.is-open{transform:translateY(0)}}.toast-host{position:fixed;left:50%;bottom:var(--sp-5);transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2);max-width:420px;width:calc(100% - var(--sp-6));pointer-events:none}.toast{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-3);font-size:var(--fs-sm);color:var(--color-text-primary);opacity:0;transform:translateY(8px);transition:opacity .16s ease-out,transform .16s ease-out;pointer-events:auto}.toast.is-in{opacity:1;transform:translateY(0)}.toast-ok{border-color:var(--color-positive)}.toast-ok .toast-icon{color:var(--color-positive)}.toast-warn{border-color:var(--color-pending)}.toast-warn .toast-icon{color:var(--color-pending)}.toast-err{border-color:var(--color-negative)}.toast-err .toast-icon{color:var(--color-negative)}.toast-msg{line-height:1.45}.toast-sub{display:block;font-size:var(--fs-xs);color:var(--color-text-secondary);margin-top:var(--sp-1)}.toast-act{border:0;background:none;color:var(--color-accent);font-size:var(--fs-sm);font-weight:500;cursor:pointer;padding:var(--sp-2)}@media (max-width: 600px){.toast-host{bottom:var(--sp-4);width:calc(100% - var(--sp-6))}.toast-act{min-height:var(--ctl-h-mobile);padding:0 var(--sp-3)}}@media (max-width: 600px){.btn,.btn-secondary,.btn-primary,.btn-danger,.btn-sm,.btn.tiny,.btn.risk,.btn.retry{height:var(--ctl-h-mobile);padding:0 var(--sp-4)}.input,input.input,textarea.input{height:var(--ctl-h-mobile)}.tag,.status-pill{font-size:var(--fs-sm)}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs-sm);line-height:1.5;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font);font-size:var(--fs-sm)}.topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:0 var(--sp-4);background:var(--color-surface);color:var(--color-text-primary);border-bottom:1px solid var(--color-separator)}.topbar-left{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.logo{display:flex;flex-direction:column;justify-content:center;gap:2px;white-space:nowrap}.logo-brand{font-size:var(--fs-md);font-weight:600;letter-spacing:.4px;line-height:1.1}.logo-sub{font-size:var(--fs-xs);font-weight:400;letter-spacing:.3px;color:var(--color-text-secondary);line-height:1.1}.brand-switch{font-size:var(--fs-xs);font-weight:500;color:var(--color-text-secondary);text-decoration:none;padding:2px 0 0;white-space:nowrap}.brand-switch:hover{color:var(--color-accent)}.topbar-account{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:var(--fs-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-online{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--color-text-secondary);background:none;border:0;padding:0}.topbar-online:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.topbar-online.on{color:var(--color-positive)}.topbar-online.off{color:var(--color-text-secondary)}.topbar-right{display:flex;align-items:center;gap:var(--sp-2);min-width:0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:1px}.topbar-right::-webkit-scrollbar{height:4px}.nav-btn{height:var(--ctl-h);padding:0 var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);font-weight:500;line-height:1;border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;transition:background-color var(--t),border-color var(--t),color var(--t)}.nav-btn:hover{background:var(--color-bg)}.nav-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.nav-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.topbar-icon{width:var(--ctl-h);height:var(--ctl-h);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--t),border-color var(--t),color var(--t)}.topbar-icon:hover{background:var(--color-bg)}.topbar-icon.on{border-color:var(--color-accent);color:var(--color-accent)}.topbar-icon svg{width:16px;height:16px;display:block}.admin-view{flex:1 1 auto;overflow:auto}.search-bar{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.search-bar input{width:240px;max-width:100%;height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font);font-size:var(--fs-sm);outline:none;transition:border-color var(--t)}.search-bar input::placeholder{color:var(--color-text-secondary)}.search-bar input:focus{border-color:var(--color-accent)}.search-btn{height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--color-accent-fill);border-radius:var(--r-2);background:var(--color-accent-fill);color:#fff;font-family:var(--font);font-size:var(--fs-sm);font-weight:500;cursor:pointer;white-space:nowrap}.search-btn:hover{filter:brightness(.92)}.search-btn:disabled{background:var(--color-surface);border-color:var(--color-separator);color:var(--color-text-secondary);cursor:not-allowed;filter:none}.search-count{font-size:var(--fs-xs);color:var(--color-text-secondary);white-space:nowrap}.layout{display:flex;flex:1 1 auto;overflow:hidden;min-height:0}.account-list{width:var(--sidebar-w);flex:0 0 auto;background:var(--color-surface);border-right:1px solid var(--color-separator);display:flex;flex-direction:column;overflow-y:auto;min-width:0}.account-header,.session-header{padding:var(--sp-3) var(--sp-3) var(--sp-2);display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:600}.account-header .count,.session-header .count{background:var(--color-bg);color:var(--color-text-secondary);padding:0 var(--sp-2);border-radius:var(--r-1);font-weight:400;font-variant-numeric:tabular-nums}.account-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"st nick count" ".  wxid count";align-items:center;column-gap:var(--sp-2);row-gap:0;min-height:var(--row-h);padding:var(--sp-2) var(--sp-3);cursor:pointer;border-bottom:1px solid var(--color-separator);transition:background-color var(--t)}.account-item:hover{background:var(--color-bg)}.account-item.active{background:var(--color-bg);box-shadow:inset 2px 0 0 var(--color-accent)}.account-item>.status-dot{grid-area:st}.account-item.active>.status-dot{background:var(--color-surface)}.account-nick{grid-area:nick;font-weight:600;font-size:var(--fs-md);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.account-wxid{grid-area:wxid;font-size:var(--fs-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.account-count{grid-area:count;align-self:center;font-size:var(--fs-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex:0 0 auto}.filter-section{margin-top:auto;padding:var(--sp-3);border-top:1px solid var(--color-separator);display:flex;flex-direction:column;gap:var(--sp-2)}.filter-label{font-size:var(--fs-xs);color:var(--color-text-secondary);font-weight:600}.filter-btn{display:block;width:100%;min-height:var(--ctl-h);text-align:left;padding:0 var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;transition:background-color var(--t),border-color var(--t),color var(--t)}.filter-btn:hover{background:var(--color-bg)}.filter-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.session-list{width:var(--mid-w);flex:0 0 auto;background:var(--color-bg);border-right:1px solid var(--color-separator);display:flex;flex-direction:column;overflow-y:auto;min-width:0}.session-item{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--row-h);padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:background-color var(--t)}.session-item:hover{background:var(--color-surface)}.session-item.active{background:var(--color-surface);box-shadow:inset 2px 0 0 var(--color-accent)}.avatar{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--r-1);font-size:var(--fs-md);font-weight:600}.avatar.group{background:var(--color-separator);color:var(--color-text-primary)}.avatar.single{background:var(--color-accent-fill);color:#fff}.session-main{flex:1 1 auto;min-width:0}.session-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.session-title{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.session-time{flex:0 0 auto;font-size:var(--fs-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.session-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-1)}.session-preview{font-size:var(--fs-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.unread-badge{flex:0 0 auto;min-width:16px;height:16px;padding:0 var(--sp-1);border-radius:var(--r-2);background:var(--color-danger-fill);color:#fff;font-size:var(--fs-xs);line-height:16px;text-align:center;font-variant-numeric:tabular-nums}.empty{padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--color-text-secondary);font-size:var(--fs-sm)}.chat-pane{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;background:var(--color-surface)}.chat-header{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);border-bottom:1px solid var(--color-separator);background:var(--color-surface);min-width:0}.chat-title{font-size:var(--fs-md);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-peer{font-size:var(--fs-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.chat-type{flex:0 0 auto;font-size:var(--fs-xs);color:var(--color-text-secondary)}.chat-type:before{content:"";display:inline-block;width:6px;height:6px;margin-right:var(--sp-1);border-radius:50%;background:currentColor}.chat-type.group{color:var(--color-text-secondary)}.chat-type.single{color:var(--color-positive)}.chat-perspective{margin-left:auto;display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--color-text-secondary);white-space:nowrap}.perspective-dot{width:6px;height:6px;border-radius:50%}.perspective-dot.on{background:var(--color-positive)}.perspective-dot.off{background:var(--color-text-secondary)}.message-list{flex:1 1 auto;overflow:hidden;position:relative;min-height:0}.message-scroll{height:100%;overflow-y:auto;padding:var(--sp-4)}.message-row{display:flex;margin-bottom:var(--sp-4)}.message-row.self{justify-content:flex-end}.message-body{max-width:70%;min-width:0}.message-sender{font-size:var(--fs-xs);color:var(--color-text-secondary);margin-bottom:var(--sp-1)}.bubble{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);font-size:var(--fs-sm);line-height:1.5;word-break:break-word;white-space:pre-wrap;background:var(--color-surface);border:1px solid var(--color-separator);color:var(--color-text-primary)}.message-row.self .bubble{background:var(--color-accent-fill);border-color:var(--color-accent-fill);color:#fff}.bubble.is-media{display:flex;align-items:center;gap:var(--sp-3);min-width:160px;min-height:56px;background:var(--color-bg);color:var(--color-text-primary)}.message-row.self .bubble.is-media{background:var(--color-bg);border-color:var(--color-separator);color:var(--color-text-primary)}.media-placeholder{display:flex;align-items:center;gap:var(--sp-2)}.media-icon{font-size:var(--fs-lg)}.media-label{font-weight:600;font-size:var(--fs-sm);color:var(--color-text-primary)}.media-note{font-size:var(--fs-xs);color:var(--color-text-secondary)}.message-time{font-size:var(--fs-xs);color:var(--color-text-secondary);margin-top:var(--sp-1);font-variant-numeric:tabular-nums}.message-row.self .message-time{text-align:right}.media-img{max-width:260px;max-height:260px;border-radius:var(--r-2);display:block}.media-audio{max-width:240px;height:36px}.media-video{max-width:300px;max-height:260px;border-radius:var(--r-2)}.reply-composer{flex:0 0 auto;border-top:1px solid var(--color-separator);padding:var(--sp-3) var(--sp-4);background:var(--color-surface)}.composer-hint{color:var(--color-text-secondary);font-size:var(--fs-sm);padding:var(--sp-5) 0;text-align:center}.composer-locked{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--color-bg);border:1px dashed var(--color-negative);border-radius:var(--r-2);color:var(--color-negative)}.lock-msg{font-weight:600;font-size:var(--fs-sm)}.lock-target{font-size:var(--fs-xs);color:var(--color-text-secondary);word-break:break-all}.composer-active textarea{width:100%;min-height:64px;resize:vertical;border:1px solid var(--color-separator);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color var(--t)}.composer-active textarea:hover{border-color:var(--color-text-secondary)}.composer-active textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-fill)}.composer-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.target-hint{font-size:var(--fs-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-family:var(--font-mono)}.send-btn{height:var(--ctl-h);padding:0 var(--sp-4);border:1px solid var(--color-accent-fill);border-radius:var(--r-2);background:var(--color-accent-fill);color:#fff;font-family:var(--font);font-size:var(--fs-sm);font-weight:500;cursor:pointer}.send-btn:hover{filter:brightness(.92)}.send-btn:disabled{background:var(--color-surface);border-color:var(--color-separator);color:var(--color-text-secondary);cursor:not-allowed;filter:none}.chat-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-5);text-align:center;color:var(--color-text-secondary)}.chat-empty-title{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-primary)}.chat-empty-sub{font-size:var(--fs-sm);color:var(--color-text-secondary)}.chat-load-fail{margin:var(--sp-3);padding:var(--sp-3);border:1px solid var(--color-negative);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-negative);font-size:var(--fs-sm)}.chat-load-fail .chat-retry{margin-left:var(--sp-2);height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--color-negative);border-radius:var(--r-2);background:transparent;color:var(--color-negative);font-size:var(--fs-sm);cursor:pointer}.chat-loading{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-xs);color:var(--color-text-secondary)}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-scrim);display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-6) var(--sp-4) 0;background:var(--color-scrim)}.search-panel{width:640px;max-width:100%;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--r-3)}.search-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-separator);font-weight:600;font-size:var(--fs-sm);color:var(--color-text-primary)}.close-btn{min-height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--color-separator);border-radius:var(--r-2);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--fs-sm);cursor:pointer}.close-btn:hover{background:var(--color-bg)}.search-list{overflow-y:auto}.search-item{display:grid;grid-template-columns:48px 1fr auto;grid-template-areas:"type peer time" "type content content";gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) var(--sp-4);cursor:pointer;border-bottom:1px solid var(--color-separator)}.search-item:hover{background:var(--color-bg)}.search-item-type{grid-area:type;align-self:center;font-size:var(--fs-xs);color:var(--color-accent)}.search-item-peer{grid-area:peer;font-weight:600;font-size:var(--fs-sm);color:var(--color-text-primary)}.search-item-time{grid-area:time;font-size:var(--fs-xs);color:var(--color-text-secondary);text-align:right;font-variant-numeric:tabular-nums}.search-item-content{grid-area:content;font-size:var(--fs-xs);color:var(--color-text-secondary)}.search-empty{padding:var(--sp-5);text-align:center;color:var(--color-text-secondary)}.error-toast{position:fixed;left:50%;bottom:var(--sp-5);transform:translate(-50%);z-index:var(--z-toast);max-width:420px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-negative);border-radius:var(--r-3);background:var(--color-surface);color:var(--color-negative);font-size:var(--fs-sm)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-separator);border-radius:var(--r-1)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}::-webkit-scrollbar-track{background:transparent}@media (max-width: 900px){.layout{flex-direction:column}.account-list{display:none}.session-list{width:100%;max-height:40vh;border-right:0;border-bottom:1px solid var(--color-separator)}.chat-pane{flex:1 1 auto;min-height:0}.search-bar input{width:160px}}@media (max-width: 600px){.topbar{height:auto;flex-wrap:wrap;padding:var(--sp-2) var(--sp-4);gap:var(--sp-2)}.topbar-left{flex:1 1 100%}.topbar-right{flex:1 1 100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--sp-1)}.topbar-right::-webkit-scrollbar{height:4px}.nav-btn,.topbar-icon,.search-btn,.close-btn{min-height:var(--ctl-h-mobile)}.topbar-icon{width:var(--ctl-h-mobile);height:var(--ctl-h-mobile)}.search-bar{flex:1 1 auto;min-width:140px}.search-bar input{width:100%;min-width:0;height:var(--ctl-h-mobile)}.account-item,.session-item,.filter-btn{min-height:var(--ctl-h-mobile)}.message-scroll{padding:var(--sp-3)}.message-body{max-width:82%}.composer-active textarea{min-height:72px}.send-btn,.chat-load-fail .chat-retry{min-height:var(--ctl-h-mobile)}.search-panel{max-height:84vh}.search-item{grid-template-columns:40px 1fr auto}}
