/* 微信朋友圈（页面 / 设置 / Char 资料与好友手机朋友圈等）— 自 style.css 拆出；#chat-page 内嵌时的玻璃覆盖仍保留在 style.css */
html[data-appearance="dark"] .wechat-moments-settings-panel.modal-content {
    background: linear-gradient(180deg, rgba(36, 36, 40, 0.98) 0%, rgba(24, 24, 28, 0.99) 100%) !important;
    color: #f5f5f7;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* 朋友圈自动发 / 配额 / 转发 / 转发选好友 / 朋友圈专用 API（布局同主动发消息好友选择：紧凑卡片，不占满整屏） */
#wechat-moments-auto-friend-picker-modal .modal-content.api-settings-modal-content,
#wechat-moments-auto-quota-modal .modal-content.api-settings-modal-content,
#wechat-moments-forward-settings-modal .modal-content.api-settings-modal-content,
#wechat-moments-forward-friend-picker-modal .modal-content.api-settings-modal-content,
#wechat-moments-api-settings-modal .modal-content.api-settings-modal-content {
    padding: 0;
    width: min(92vw, 360px);
    max-height: 82vh;
    display: flex;
    flex-direction: column;
}
#wechat-moments-auto-friend-picker-modal .modal-content.api-settings-modal-content .settings-content,
#wechat-moments-auto-quota-modal .modal-content.api-settings-modal-content .settings-content,
#wechat-moments-forward-settings-modal .modal-content.api-settings-modal-content .settings-content,
#wechat-moments-forward-friend-picker-modal .modal-content.api-settings-modal-content .settings-content,
#wechat-moments-api-settings-modal .modal-content.api-settings-modal-content .settings-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
#wechat-moments-auto-friend-picker-modal .modal-content.api-settings-modal-content .settings-content::-webkit-scrollbar,
#wechat-moments-auto-quota-modal .modal-content.api-settings-modal-content .settings-content::-webkit-scrollbar,
#wechat-moments-forward-settings-modal .modal-content.api-settings-modal-content .settings-content::-webkit-scrollbar,
#wechat-moments-forward-friend-picker-modal .modal-content.api-settings-modal-content .settings-content::-webkit-scrollbar,
#wechat-moments-api-settings-modal .modal-content.api-settings-modal-content .settings-content::-webkit-scrollbar {
    width: 0;
    height: 0;
}

/* 「朋友圈设置」内部入口打开的所有子弹窗（朋友圈 API / 自动发圈选好友 / 每位条数 /
   自动转发配置 / 一键清除确认）都必须叠在「朋友圈设置」弹窗之上。
   HTML/JS 已尽量保证它们与 #wechat-moments-settings-modal 同级且顺序靠后，
   这里再显式提高 z-index 作为双重保险：不同浏览器（Safari / Via / 夸克 / 雨见 / 搜狗 等）
   对同 z-index 兄弟节点的绘制顺序处理不完全一致，真机上曾出现选好友弹窗被压在设置面板下方。 */
#wechat-moments-api-settings-modal.modal,
#wechat-moments-auto-friend-picker-modal.modal,
#wechat-moments-auto-quota-modal.modal,
#wechat-moments-clear-all-confirm-modal.modal,
#wechat-moments-forward-settings-modal.modal {
    z-index: 1005;
    align-items: center;
    justify-content: center;
}

/* 自动转发的「选择好友」子弹窗从自动转发配置弹窗内打开，须再叠上一层 */
#wechat-moments-forward-friend-picker-modal.modal {
    z-index: 1010;
    align-items: center;
    justify-content: center;
}

#wechat-moments-api-settings-modal.modal {
    background-color: rgba(0, 0, 0, 0.42);
}

/* ============================================================
   朋友圈专用 API 设置 · 韩式极简风格
   黑 / 灰 / 白三色体系，细边框、大圆角、克制留白；仅作用于本弹窗
   （#wechat-moments-api-settings-modal），不影响其余弹窗复用的同名通用类
   （.setting-input / .btn-save / .fetch-models-btn 等）。
   全部 token 化为自定义属性，深色模式只需在下方覆盖变量即可整体换肤。
   ============================================================ */
#wechat-moments-api-settings-modal {
    --km-bg: #f6f6f5;
    --km-card: #ffffff;
    --km-text: #262626;
    --km-text-soft: #86868b;
    --km-text-faint: #b6b6ba;
    --km-border: rgba(0, 0, 0, 0.07);
    --km-border-strong: rgba(0, 0, 0, 0.14);
    --km-input-bg: #fafaf9;
    --km-ink: #262626;
    --km-ink-hover: #3d3d3d;
    --km-ink-contrast: #ffffff;
    --km-chip-bg: rgba(0, 0, 0, 0.045);
    --km-chip-bg-hover: rgba(0, 0, 0, 0.08);
    --km-hover-tint: rgba(0, 0, 0, 0.035);
    --km-focus-ring: rgba(0, 0, 0, 0.06);
    --km-ring-soft: rgba(0, 0, 0, 0.04);
    --km-shadow-modal: 0 14px 34px rgba(0, 0, 0, 0.1);
    --km-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.03);
    --km-shadow-save: 0 4px 14px rgba(0, 0, 0, 0.16);
}

html[data-appearance="dark"] #wechat-moments-api-settings-modal {
    --km-bg: #1c1c1e;
    --km-card: #242426;
    --km-text: #f2f2f3;
    --km-text-soft: #98989c;
    --km-text-faint: #6c6c70;
    --km-border: rgba(255, 255, 255, 0.08);
    --km-border-strong: rgba(255, 255, 255, 0.17);
    --km-input-bg: #1f1f22;
    --km-ink: #f2f2f3;
    --km-ink-hover: #e2e2e3;
    --km-ink-contrast: #1c1c1e;
    --km-chip-bg: rgba(255, 255, 255, 0.08);
    --km-chip-bg-hover: rgba(255, 255, 255, 0.14);
    --km-hover-tint: rgba(255, 255, 255, 0.06);
    --km-focus-ring: rgba(255, 255, 255, 0.1);
    --km-ring-soft: rgba(255, 255, 255, 0.08);
    --km-shadow-modal: 0 14px 34px rgba(0, 0, 0, 0.5);
    --km-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.2);
    --km-shadow-save: 0 4px 14px rgba(0, 0, 0, 0.4);
}

/* 弹窗外壳：小屏适配 + 隐形滚动，扁平细边框大圆角替代原毛玻璃卡片 */
#wechat-moments-api-settings-modal .modal-content.api-settings-modal-content {
    padding: 0;
    width: min(92vw, 360px);
    max-width: 360px;
    max-height: min(86vh, 640px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--km-bg);
    border: 1px solid var(--km-border);
    border-radius: 24px;
    box-shadow: var(--km-shadow-modal);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* 头部：居中标题 + 圆形返回按钮 */
#wechat-moments-api-settings-modal .settings-header {
    flex: 0 0 auto;
    background: var(--km-bg);
    border-bottom: 1px solid var(--km-border);
    padding: 16px 18px;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

#wechat-moments-api-settings-modal .settings-header h1 {
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: 0.2px;
    color: var(--km-text);
}

#wechat-moments-api-settings-modal .back-btn {
    left: 14px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--km-chip-bg);
    color: var(--km-text);
    font-size: 17px;
    transition: background 0.2s ease;
}

#wechat-moments-api-settings-modal .back-btn:hover {
    background: var(--km-chip-bg-hover);
}

/* 内容区 */
#wechat-moments-api-settings-modal .settings-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: var(--km-bg);
    padding: 14px 14px 18px;
}
#wechat-moments-api-settings-modal .settings-content::-webkit-scrollbar {
    width: 0;
    height: 0;
}

/* 分组卡片：细边框 + 大圆角 + 极浅阴影，卡片间保持克制的呼吸间距 */
#wechat-moments-api-settings-modal .settings-group {
    background: var(--km-card);
    border: 1px solid var(--km-border);
    border-radius: 18px;
    box-shadow: var(--km-shadow-card);
    padding: 16px 15px;
    margin: 0 0 12px;
    overflow: hidden;
}
#wechat-moments-api-settings-modal .settings-group:last-child {
    margin-bottom: 0;
}

#wechat-moments-api-settings-modal .setting-group-title {
    padding: 0;
    margin: 0 0 4px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: none;
    color: var(--km-text-soft);
}

#wechat-moments-api-settings-modal .settings-group > .setting-description {
    margin: 0 0 14px;
    padding: 0;
    font-size: 12px;
    line-height: 1.6;
    color: var(--km-text-faint);
}

/* 设置项：垂直排列，细分隔线代替卡片式分块，保持轻盈 */
#wechat-moments-api-settings-modal .setting-item {
    padding: 12px 0;
    margin: 0;
    border-bottom: 1px solid var(--km-border);
    background: transparent;
    flex-wrap: nowrap;
}
#wechat-moments-api-settings-modal .setting-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}
#wechat-moments-api-settings-modal .setting-item.vertical-layout {
    gap: 8px;
}
#wechat-moments-api-settings-modal .setting-item.wechat-moments-api-fetch-item {
    gap: 10px;
}

#wechat-moments-api-settings-modal .setting-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--km-text);
    flex: none;
    width: 100%;
}

#wechat-moments-api-settings-modal .setting-item .setting-description {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--km-text-faint);
}

/* 输入框：细边框浅底色，聚焦时以主色描边呈现克制的强调 */
#wechat-moments-api-settings-modal .setting-input {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--km-border);
    border-radius: 12px;
    background: var(--km-input-bg);
    color: var(--km-text);
    font-size: 14px;
    font-weight: 400;
    box-shadow: none;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
#wechat-moments-api-settings-modal .setting-input::placeholder {
    color: var(--km-text-faint);
}
#wechat-moments-api-settings-modal .setting-input:hover {
    border-color: var(--km-border-strong);
}
#wechat-moments-api-settings-modal .setting-input:focus {
    outline: none;
    border-color: var(--km-ink);
    background: var(--km-card);
    box-shadow: 0 0 0 3px var(--km-focus-ring);
}

/* 拉取模型 / 模型列表 / 连接状态 / 清空入口 */
#wechat-moments-api-settings-modal .fetch-models-btn {
    width: 100%;
    margin: 0;
    padding: 11px 12px;
    border: 1px solid var(--km-border-strong);
    border-radius: 999px;
    background: var(--km-card);
    color: var(--km-text);
    font-size: 13.5px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: none;
}
#wechat-moments-api-settings-modal .fetch-models-btn:hover:not(:disabled) {
    background: var(--km-hover-tint);
    transform: none;
}
#wechat-moments-api-settings-modal .fetch-models-btn:disabled {
    opacity: 0.4;
}

#wechat-moments-api-settings-modal .models-list {
    width: 100%;
    max-height: min(180px, 32vh);
    margin: 0;
    border: 1px solid var(--km-border);
    border-radius: 12px;
    background: var(--km-card);
}
#wechat-moments-api-settings-modal .models-list:empty {
    display: none;
    border: none;
    margin: 0;
}
#wechat-moments-api-settings-modal .model-item {
    padding: 10px 13px;
    font-size: 13.5px;
    color: var(--km-text);
    border-bottom-color: var(--km-border);
}
#wechat-moments-api-settings-modal .model-item:hover {
    background: var(--km-hover-tint);
}

#wechat-moments-api-settings-modal .connection-status.wechat-connection-status {
    width: 100%;
    margin: 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--km-border);
    font-size: 12px;
    color: var(--km-text-soft);
}
#wechat-moments-api-settings-modal .status-indicator {
    width: 7px;
    height: 7px;
    background-color: var(--km-text-faint);
    box-shadow: 0 0 0 3px var(--km-ring-soft);
}
#wechat-moments-api-settings-modal .status-indicator.connecting {
    background-color: var(--km-text-soft);
    animation: pulse 1.4s infinite;
}
#wechat-moments-api-settings-modal .status-indicator.connected {
    background-color: var(--km-ink);
    box-shadow: 0 0 0 3px var(--km-focus-ring);
}
#wechat-moments-api-settings-modal .status-indicator.error {
    background-color: var(--km-text);
    box-shadow: 0 0 0 3px var(--km-focus-ring);
}

#wechat-moments-api-settings-modal .wechat-clear-api-btn {
    width: 100%;
    margin: 2px 0 0;
    padding: 9px 12px;
    background: transparent;
    border: 1px dashed var(--km-border-strong);
    border-radius: 12px;
    color: var(--km-text-soft);
    font-size: 12px;
}
#wechat-moments-api-settings-modal .wechat-clear-api-btn:hover {
    background: var(--km-hover-tint);
    color: var(--km-text);
}

/* 底部操作区：脱离卡片外观，仅保留一对药丸按钮，呼应极简留白 */
#wechat-moments-api-settings-modal .settings-group--footer {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 2px 0 0;
    overflow: visible;
}
#wechat-moments-api-settings-modal .wechat-api-settings-footer.add-command-footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: 0;
    padding: 12px 0 0;
    width: 100%;
    max-width: 100%;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    gap: 10px;
    justify-content: center;
    flex-wrap: nowrap;
}
#wechat-moments-api-settings-modal .btn-cancel,
#wechat-moments-api-settings-modal .btn-save {
    flex: 1;
    max-width: none;
    min-height: 44px;
    height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0.2px;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
#wechat-moments-api-settings-modal .btn-cancel {
    background: transparent;
    border: 1px solid var(--km-border-strong);
    color: var(--km-text);
}
#wechat-moments-api-settings-modal .btn-cancel:hover {
    background: var(--km-hover-tint);
}
#wechat-moments-api-settings-modal .btn-save {
    background: var(--km-ink);
    border: 1px solid var(--km-ink);
    color: var(--km-ink-contrast);
    box-shadow: var(--km-shadow-save);
}
#wechat-moments-api-settings-modal .btn-save:hover {
    background: var(--km-ink-hover);
    border-color: var(--km-ink-hover);
}
#wechat-moments-api-settings-modal .btn-cancel:active,
#wechat-moments-api-settings-modal .btn-save:active {
    transform: scale(0.97);
}

@media (max-width: 360px) {
    #wechat-moments-api-settings-modal .settings-content {
        padding-left: 12px;
        padding-right: 12px;
    }
}

.wechat-moments-auto-status {
    margin-top: 6px;
    font-size: 12px;
    color: #666;
}

.wechat-moments-forward-dropdown {
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    background: #fff;
    padding: 11px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 14px;
    color: #1f1f1f;
    cursor: pointer;
}

.wechat-moments-forward-dropdown.is-open {
    border-color: #07c160;
    background: #f4fff8;
}

.wechat-moments-forward-friend-list {
    margin-top: 10px;
    max-height: 220px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    background: #fff;
}

/* 独立「自动转发 · 选择好友」子弹窗内：列表可用更多纵向空间 */
#wechat-moments-forward-friend-picker-modal .wechat-moments-forward-friend-list {
    max-height: min(48vh, 380px);
}

.wechat-moments-forward-name-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    font-size: 14px;
    color: #222;
}

.wechat-moments-forward-name-row + .wechat-moments-forward-name-row {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.wechat-moments-forward-empty {
    padding: 16px;
    font-size: 13px;
    color: #888;
    text-align: center;
}

.wechat-moments-forward-fields {
    display: grid;
    gap: 12px;
    font-size: 13px;
    color: #333;
}

.wechat-moments-forward-check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wechat-moments-forward-time-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* 朋友圈设置：磨砂玻璃面板、底部主操作、分区与层级字重 */
#wechat-moments-settings-modal.wechat-moments-settings-modal-root.modal {
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.42);
}

#wechat-moments-settings-modal .wechat-moments-settings-panel.modal-content {
    padding: 0;
    width: min(92vw, 384px);
    max-width: 384px;
    max-height: min(88vh, 640px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 16px;
    background: rgb(252, 253, 255);
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

#wechat-moments-settings-modal .wechat-moments-settings-header {
    flex: 0 0 auto;
    padding: 16px 20px 12px;
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

#wechat-moments-settings-modal .wechat-moments-settings-heading {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #141414;
    letter-spacing: 0.03em;
}

#wechat-moments-settings-modal .wechat-moments-settings-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 14px 10px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

#wechat-moments-settings-modal .wechat-moments-settings-body::-webkit-scrollbar {
    width: 0;
    height: 0;
}

#wechat-moments-settings-modal .wechat-moments-settings-lead {
    margin: 0 0 14px;
    padding: 0 2px;
    font-size: 12px;
    line-height: 1.55;
    color: #909090;
}

#wechat-moments-settings-modal .wechat-moments-settings-section {
    margin-bottom: 12px;
    padding: 12px 12px 10px;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

#wechat-moments-settings-modal .wechat-moments-settings-section:last-child {
    margin-bottom: 4px;
}

#wechat-moments-settings-modal .wechat-moments-settings-section-title {
    margin: 0 0 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    font-size: 13px;
    font-weight: 700;
    color: #111;
    letter-spacing: 0.04em;
}

#wechat-moments-settings-modal .wechat-moments-settings-toggle-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

#wechat-moments-settings-modal .wechat-moments-settings-toggle-row--last {
    border-bottom: none;
    padding-bottom: 2px;
}

#wechat-moments-settings-modal .wechat-moments-settings-toggle-text {
    flex: 1;
    min-width: 0;
}

#wechat-moments-settings-modal .wechat-moments-settings-item-title {
    font-size: 14px;
    font-weight: 600;
    color: #1f1f1f;
    line-height: 1.35;
}

#wechat-moments-settings-modal .wechat-moments-settings-item-hint {
    margin: 5px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #8e8e8e;
}

#wechat-moments-settings-modal .wechat-moments-settings-block + .wechat-moments-settings-block {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.07);
}

#wechat-moments-settings-modal .wechat-moments-settings-status-line {
    margin: 8px 0 0;
    font-size: 12px;
    font-weight: 500;
}

#wechat-moments-settings-modal .wechat-moments-settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

#wechat-moments-settings-modal .wechat-moments-settings-action-btn {
    flex: 1 1 auto;
    min-width: 0;
    padding: 9px 12px;
    font-size: 13px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: rgba(255, 255, 255, 0.9);
    color: #333;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

#wechat-moments-settings-modal .wechat-moments-settings-action-btn--primary {
    border-color: rgba(7, 193, 96, 0.45);
    background: rgba(7, 193, 96, 0.12);
    color: #059a4f;
    font-weight: 600;
}

#wechat-moments-settings-modal .wechat-moments-settings-action-btn--danger {
    border-color: rgba(220, 80, 70, 0.45);
    background: rgba(220, 80, 70, 0.1);
    color: #c0392b;
    font-weight: 600;
}

#wechat-moments-settings-modal .wechat-moments-settings-action-btn:active {
    opacity: 0.92;
}

#wechat-moments-settings-modal .wechat-moments-settings-footer {
    flex: 0 0 auto;
    display: flex;
    gap: 10px;
    padding: 12px 14px 16px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(248, 250, 252, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

#wechat-moments-settings-modal .wechat-moments-settings-footer-btn {
    flex: 1;
    padding: 11px 14px;
    font-size: 15px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-weight: 600;
    transition: opacity 0.15s ease, transform 0.1s ease;
}

#wechat-moments-settings-modal .wechat-moments-settings-footer-btn--cancel {
    background: rgba(0, 0, 0, 0.06);
    color: #444;
}

#wechat-moments-settings-modal .wechat-moments-settings-footer-btn--save {
    background: linear-gradient(180deg, #2ed573 0%, #07c160 100%);
    color: #fff;
    box-shadow: 0 2px 8px rgba(7, 193, 96, 0.35);
}

#wechat-moments-settings-modal .wechat-moments-settings-footer-btn:active {
    opacity: 0.92;
    transform: scale(0.99);
}
.moments-icon {
    background: linear-gradient(135deg, #ffd93d 0%, #ff9500 100%);
}

/* 朋友圈页面（微信式：封面顶Fullscreen、状态栏叠图、工具栏在状态栏下；动态流白底） */
.moments-page {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    flex-direction: column;
    /* 透明以便动态流磨砂下层能透出发现页 / 全局背景图 */
    background: transparent;
    z-index: 99;
    --moments-glass-text: #2d2b55;
    --moments-glass-muted: rgba(45, 43, 85, 0.58);
    --moments-glass-accent: #667eea;
    --moments-glass-accent-2: #764ba2;
    --moments-glass-bg: rgba(255, 255, 255, 0.56);
    --moments-glass-bg-strong: rgba(255, 255, 255, 0.74);
    --moments-glass-border: rgba(255, 255, 255, 0.66);
    --moments-glass-shadow: rgba(45, 43, 85, 0.1);
}

.moments-page.show {
    display: flex;
}

/* 与 .status-bar 同公式：顶 padding(max(12,safe)) + 底 12 + 内容行约 22，再下移 10px 躲开时间行；整体再上移 8px 对齐视觉 */
.moments-floating-toolbar {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(max(12px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) + 12px + 22px + 10px - 8px);
    z-index: 150;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px 14px;
    pointer-events: none;
}

.moments-floating-toolbar > * {
    pointer-events: auto;
}

.moments-toolbar-back {
    position: relative;
    width: 40px;
    height: 40px;
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.58));
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.24);
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.24), rgba(118, 75, 162, 0.18));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 4px 14px rgba(45, 43, 85, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.34);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease, opacity 0.18s ease;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
}

/* 视觉尺寸保持 40px，但把真实触摸热区扩到 48px，满足 iPhone/Android 单手点按容错。
   伪元素属于 button 自身，不依赖 click 冒泡，在 Safari、Via 与各厂商 WebView 中均可命中。 */
.moments-toolbar-back::before {
    content: "";
    position: absolute;
    inset: -4px;
}

.moments-toolbar-back:active {
    opacity: 0.86;
    transform: scale(0.98);
}

.moments-toolbar-right {
    display: flex;
    align-items: center;
    gap: 14px;
}

.moments-toolbar-icon-btn {
    width: 40px;
    height: 40px;
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.58));
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.24);
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.24), rgba(118, 75, 162, 0.18));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 4px 14px rgba(45, 43, 85, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.34);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease, opacity 0.18s ease;
}

.moments-toolbar-icon-btn:active {
    opacity: 0.86;
    transform: scale(0.98);
}

@-webkit-keyframes moments-refresh-spin {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes moments-refresh-spin {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.moments-refresh-icon-spin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.moments-toolbar-icon-btn.is-moments-refresh-loading,
.moments-toolbar-icon-btn.is-loading {
    pointer-events: none;
    opacity: 0.88;
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.36), rgba(118, 75, 162, 0.28));
    cursor: wait;
}

.moments-toolbar-icon-btn.is-moments-refresh-loading .moments-refresh-icon-spin,
.moments-toolbar-icon-btn.is-loading .moments-refresh-icon-spin,
#moments-refresh-btn.is-loading .moments-refresh-icon-spin,
#wechat-char-fmom-refresh-btn.is-loading .moments-refresh-icon-spin {
    -webkit-animation: moments-refresh-spin 0.75s linear infinite;
    animation: moments-refresh-spin 0.75s linear infinite;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    will-change: transform;
}

.moments-line-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: block;
}

.moments-line-icon--md {
    width: 28px;
    height: 28px;
}

.moments-page-body {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    padding: 0;
    background: transparent;
    overscroll-behavior: contain;
}

.moments-ins-scroll {
    flex: 1;
    min-height: 0;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
    touch-action: pan-y;
    overscroll-behavior-y: contain;
    padding-bottom: 20px;
    background: transparent;
}

.moments-ins-scroll::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

/* 名片区：仅封面；头像在右下角「压」在封面与动态流分界上 */
.moments-ins-hero {
    position: relative;
    z-index: 1;
}

.moments-cover-wrap {
    position: relative;
    height: clamp(157px, calc(36vw + 25px), 225px);
    overflow: visible;
    cursor: pointer;
}

.moments-cover-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        radial-gradient(circle at 78% 12%, rgba(255, 255, 255, 0.26) 0, rgba(255, 255, 255, 0) 34%),
        linear-gradient(180deg, rgba(45, 43, 85, 0.08) 0%, rgba(45, 43, 85, 0.02) 44%, rgba(45, 43, 85, 0.26) 100%);
}

.moments-cover-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 78% 8%, rgba(255, 255, 255, 0.34) 0, transparent 28%),
        radial-gradient(circle at 14% 82%, rgba(118, 75, 162, 0.2) 0, transparent 36%),
        linear-gradient(135deg, #e8e0f0 0%, #d4e4f7 32%, #c8e6f5 62%, #e0d8f0 100%);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.moments-cover-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
    z-index: 1;
}

.moments-cover-bg.has-cover {
    background-color: #2a2a2a;
}

.moments-cover-hint {
    position: absolute;
    left: 12px;
    bottom: 14px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.92);
    text-shadow: 0 1px 6px rgba(45, 43, 85, 0.34);
    pointer-events: none;
    max-width: 60%;
    z-index: 3;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* 昵称在封面右下角，头像左侧（微信惯例） */
.moments-cover-bottom-meta {
    position: absolute;
    right: 12px;
    bottom: 0;
    transform: translateY(calc(25% + 18px));
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 10px;
    z-index: 3;
}

/* 主朋友圈封面区：头像与昵称可点进本人资料 */
#moments-page .moments-ins-hero:not(.wechat-char-fmom-hero) .moments-ins-avatar-wrap,
#moments-page .moments-ins-hero:not(.wechat-char-fmom-hero) .moments-ins-nickname {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.moments-ins-nickname {
    font-size: 16px;
    font-weight: 700;
    color: var(--moments-glass-text, #2d2b55);
    text-shadow: none;
    margin-bottom: 6px;
    max-width: 42vw;
    text-align: right;
    line-height: 1.25;
    word-break: break-word;
    padding: 6px 10px;
    border-radius: 12px;
    background: var(--moments-glass-bg-strong, rgba(255, 255, 255, 0.74));
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.58), rgba(102, 126, 234, 0.14), rgba(118, 75, 162, 0.1));
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 4px 16px var(--moments-glass-shadow, rgba(45, 43, 85, 0.1)), inset 0 1px 0 rgba(255, 255, 255, 0.44);
}

/* 微信式方头像，约 1/4 落在封面下、3/4 在封面上 */
.moments-ins-avatar-wrap {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    border: 2px solid rgba(255, 255, 255, 0.78);
    box-shadow: 0 6px 18px rgba(45, 43, 85, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.32);
    overflow: hidden;
    background: rgba(246, 248, 255, 0.92);
    flex-shrink: 0;
}

.moments-ins-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.moments-ins-avatar-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 600;
    color: #7a8fb6;
    background: linear-gradient(135deg, rgba(255, 235, 244, 0.92), rgba(228, 238, 255, 0.94));
}

/* 动态流区域：底层透明；单条动态为 #F4F4F4 @ 55% 不透明 + 磨砂，兼顾背景透出与可读性 */
.moments-feed-container {
    position: relative;
    z-index: 0;
    background: transparent;
    padding: 46px 10px 8px;
    min-height: 120px;
}

.moments-feed {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.moments-post-card {
    padding: 14px 12px 16px;
    margin: 0 2px;
    border-radius: 18px;
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    background: var(--moments-glass-bg, rgba(255, 255, 255, 0.56));
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.52), rgba(232, 224, 240, 0.26), rgba(212, 228, 247, 0.24));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 5px 18px var(--moments-glass-shadow, rgba(45, 43, 85, 0.1)), inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

.moments-post-card:last-child {
    margin-bottom: 4px;
}

/* 每条：左方头像 + 右内容（微信排布） */
.moments-post-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.moments-post-avatar-col {
    flex-shrink: 0;
    width: 46px;
}

.moments-post-main {
    flex: 1;
    min-width: 0;
}

.moments-post-avatar {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    object-fit: cover;
    display: block;
    box-shadow: 0 3px 10px rgba(45, 43, 85, 0.1);
}

.moments-post-avatar-placeholder {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.24), rgba(118, 75, 162, 0.18));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #5a6ae0;
    box-shadow: 0 3px 10px rgba(45, 43, 85, 0.1);
}

.moments-post-name {
    font-size: 15px;
    font-weight: 700;
    color: #5a6ae0;
    margin-bottom: 5px;
    line-height: 1.3;
}

.moments-post-content {
    font-size: 15px;
    color: var(--moments-glass-text, #2d2b55);
    line-height: 1.55;
    word-break: break-word;
    margin-bottom: 8px;
}

.moments-post-polaroid-host {
    margin: 8px 0 10px;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* 拍立得相框内图片：绝对铺满；min 尺寸防止个别引擎在 object-fit 前按固有像素渲染 */
.wechat-polaroid-imgbox > .wechat-polaroid-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    -webkit-object-fit: cover;
    object-position: center;
    display: block;
    z-index: 0;
}

/* 规范③拍立得：朋友圈与聊天共用同一套外框与取景框尺寸，避免聊天内缺样式导致取景框塌陷、与正文并排挤压 */
.moments-post-polaroid-host .wechat-polaroid-wrap,
.moments-polaroid-in-feed.wechat-polaroid-wrap,
#chat-page .chat-message-bubble .wechat-polaroid-wrap {
    width: 260px;
    max-width: 100%;
    background: #fcfbf9;
    padding: 14px 14px 22px 14px;
    margin: 0;
    border-radius: 2px;
    box-shadow: 0 4px 12px rgba(170, 160, 140, 0.08), 0 20px 40px rgba(170, 160, 140, 0.12);
    border: 1px solid rgba(230, 225, 215, 0.6);
    font-family: -apple-system, "PingFang SC", sans-serif;
    box-sizing: border-box;
}

.moments-post-polaroid-host .wechat-polaroid-imgbox,
.moments-polaroid-in-feed .wechat-polaroid-imgbox,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-imgbox {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    min-height: 220px;
    flex-shrink: 0;
    position: relative;
    background: #e8e6e3 linear-gradient(180deg, #eceae7 0%, #ddd9d4 100%);
    overflow: hidden;
    box-sizing: border-box;
}

/* 不支持 aspect-ratio 的内置浏览器：用 padding 百分比顶出 3:4 取景框，避免高度塌陷导致图按固有像素显示成一小块 */
@supports not (aspect-ratio: 1 / 1) {
    .moments-post-polaroid-host .wechat-polaroid-imgbox,
    .moments-polaroid-in-feed .wechat-polaroid-imgbox,
    #chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-imgbox {
        aspect-ratio: unset;
        height: 0;
        min-height: 0;
        padding-bottom: 133.3333333333%;
    }
}

.moments-post-polaroid-host .wechat-polaroid-imgbox::after,
.moments-polaroid-in-feed .wechat-polaroid-imgbox::after,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-imgbox::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.03), inset 0 3px 8px rgba(0, 0, 0, 0.04);
    pointer-events: none;
    z-index: 1;
}

.moments-post-polaroid-host .wechat-polaroid-img,
.moments-polaroid-in-feed .wechat-polaroid-img,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-img {
    filter: contrast(1.05) brightness(0.98) saturate(0.85) sepia(12%);
}

/* 仅朋友圈动态（.moments-post-polaroid-host）：强制 cover + 四边贴合；宽高不用 !important，留给 momentsPolaroidSyncImgLayout 写像素覆盖畸形 WebKit */
.moments-post-polaroid-host .wechat-polaroid-imgbox > .wechat-polaroid-img {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100%;
    height: 100%;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    -webkit-object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    box-sizing: border-box !important;
    z-index: 0;
}

/* 聊天窗口拍立得：!important 铺满取景框。
   朋友圈动态不使用本段：同类元素带 .moments-polaroid-in-feed，若写进此处会阻断 momentsPolaroidSyncImgLayout 的像素同步（!important 压过内联宽高），部分 WebKit 仍按固有尺寸居中导致「取景框里只有一小张图」。 */
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-imgbox > .wechat-polaroid-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    -webkit-object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    z-index: 0;
}

.moments-post-polaroid-host .wechat-polaroid-text,
.moments-polaroid-in-feed .wechat-polaroid-text,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-text {
    margin-top: 18px;
    padding: 0 2px;
}

.moments-post-polaroid-host .wechat-polaroid-line,
.moments-polaroid-in-feed .wechat-polaroid-line,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-line {
    width: 16px;
    height: 1px;
    background: #c8c3bc;
    margin-bottom: 10px;
}

.moments-post-polaroid-host .wechat-polaroid-caption,
.moments-polaroid-in-feed .wechat-polaroid-caption,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-caption {
    font-size: 13px;
    color: #55504b;
    line-height: 1.7;
    font-weight: 300;
    letter-spacing: 0.5px;
    text-align: justify;
    min-height: calc(1.7em * 2);
    box-sizing: border-box;
}

.moments-post-polaroid-host .wechat-polaroid-meta,
.moments-polaroid-in-feed .wechat-polaroid-meta,
#chat-page .chat-message-bubble .wechat-polaroid-wrap .wechat-polaroid-meta {
    margin-top: 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
    font-size: 10.5px;
    color: #b5b0a8;
    letter-spacing: 1px;
    display: flex;
    justify-content: space-between;
}

/* 表情图（[发送表情:]）尺寸远超 emoji：在动态正文里一律独占一行摆放，
   即使模型把指令夹在句子中间，渲染层也强制另起一排；颜文字/emoji 为纯文本不受影响 */
.moments-post-content .chat-emoji {
    max-width: 75px;
    max-height: 75px;
    width: auto;
    height: auto;
    display: block;
    margin: 6px 0 2px;
}

/* 时间 + 右下角「··」；展开为微信式深色条（赞 / 评论 / 收藏） */
.moments-post-meta-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
    min-height: 26px;
    width: 100%;
    box-sizing: border-box;
}

.moments-post-time-inline {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 12px;
    color: var(--moments-glass-muted, rgba(45, 43, 85, 0.58));
    background: var(--moments-glass-bg-strong, rgba(255, 255, 255, 0.74));
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.12), rgba(118, 75, 162, 0.08));
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 2px 8px rgba(45, 43, 85, 0.08);
}

.moments-post-more-wrap {
    position: relative;
    flex-shrink: 0;
    z-index: 4;
}

.moments-post-more-btn {
    width: 34px;
    height: 22px;
    padding: 0;
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    border-radius: 999px;
    background: var(--moments-glass-bg-strong, rgba(255, 255, 255, 0.74));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(45, 43, 85, 0.08);
}

.moments-post-more-btn:active {
    opacity: 0.85;
}

.moments-post-more-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #667eea;
}

.moments-post-menu {
    display: none;
    position: absolute;
    right: 100%;
    margin-right: 8px;
    bottom: 0;
    z-index: 60;
    width: max-content;
    flex-direction: row;
    align-items: stretch;
    background: rgba(255, 255, 255, 0.78);
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.18), rgba(118, 75, 162, 0.14));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    border-radius: 14px;
    max-width: min(calc(100vw - 16px), 420px);
    max-width: min(calc(100dvw - 16px), 420px);
    overflow-x: auto;
    overflow-y: hidden;
    transform: translateX(var(--moments-post-menu-shift-x, 0px));
    transform-origin: right bottom;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 8px 22px rgba(45, 43, 85, 0.16);
}

#chat-page .moments-post-menu {
    background: rgba(132, 151, 189, 0.9) !important;
    border-color: rgba(255, 255, 255, 0.28) !important;
    border-radius: 12px !important;
    max-width: min(calc(100vw - 16px), 420px);
    max-width: min(calc(100dvw - 16px), 420px);
    overflow-x: auto;
    overflow-y: hidden;
    transform: translateX(var(--moments-post-menu-shift-x, 0px));
    -webkit-overflow-scrolling: touch;
}

.moments-post-menu::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.moments-post-menu.is-open {
    display: flex;
}

.moments-post-menu-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex: 0 0 auto;
    padding: 7px 9px;
    min-height: 34px;
    border: none;
    background: transparent;
    color: var(--moments-glass-text, #2d2b55);
    font-size: 12px;
    white-space: nowrap;
    cursor: pointer;
    border-right: 1px solid rgba(102, 126, 234, 0.16);
    font-weight: 700;
}

#chat-page .moments-post-menu-item {
    flex: 0 0 auto;
    background: transparent !important;
    border: none !important;
    border-right: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #f7f9fc !important;
}

.moments-post-menu-item:last-child {
    border-right: none;
}

#chat-page .moments-post-menu-item:last-child {
    border-right: none !important;
}

.moments-post-menu-item:active {
    background: rgba(255, 255, 255, 0.34);
}

.moments-post-menu-item.moments-post-menu-item--danger {
    color: #e53935;
}

#chat-page .moments-post-menu-item.moments-post-menu-item--danger {
    color: #e53935 !important;
}

.moments-post-menu-item.moments-post-menu-item--danger:active {
    background: rgba(229, 57, 53, 0.12);
}

.moments-menu-ico {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.moments-post-images {
    display: grid;
    gap: 4px;
    margin-bottom: 8px;
}

.moments-post-images--n1 {
    grid-template-columns: 1fr;
}

.moments-post-images--n1 img {
    width: 100%;
    max-height: 280px;
    object-fit: cover;
    border-radius: 10px;
}

.moments-post-images--n2 {
    grid-template-columns: 1fr 1fr;
}

.moments-post-images--n2 img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 8px;
}

.moments-post-images--n3,
.moments-post-images--n4,
.moments-post-images--n5,
.moments-post-images--n6,
.moments-post-images--n7,
.moments-post-images--n8,
.moments-post-images--n9 {
    grid-template-columns: repeat(3, 1fr);
}

.moments-post-images--n3 img,
.moments-post-images--n4 img,
.moments-post-images--n5 img,
.moments-post-images--n6 img,
.moments-post-images--n7 img,
.moments-post-images--n8 img,
.moments-post-images--n9 img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 6px;
}

.moments-post-social-box {
    background: var(--moments-glass-bg-strong, rgba(255, 255, 255, 0.74));
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.12), rgba(118, 75, 162, 0.08));
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 14px;
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    padding: 9px 11px;
    margin-top: 6px;
    font-size: 13px;
    color: var(--moments-glass-muted, rgba(45, 43, 85, 0.58));
    line-height: 1.5;
    box-shadow: 0 3px 12px rgba(45, 43, 85, 0.08);
}

.moments-post-social-box .moments-comment-line {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.moments-post-social-box .moments-comment-author {
    font-weight: 600;
    color: #385898;
}

/* 朋友圈「楼中楼」评论结构 */
.moments-threads {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.moments-likes-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding-bottom: 6px;
    margin-bottom: 6px;
    border-bottom: 1px solid rgba(194, 209, 235, 0.48);
    color: #5b6d8f;
}

.moments-like-icon {
    color: #667eea;
    font-size: 12px;
    line-height: 1;
}

.moments-like-names {
    color: #5a6ae0;
    font-weight: 600;
}

.moments-like-count {
    color: #9aa7c1;
    font-size: 0.92em;
}

.moments-thread {
    display: block;
}

.moments-thread-line {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    align-items: baseline;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.moments-thread-label {
    color: #5b6d8f;
}

.moments-thread-author {
    font-weight: 600;
    color: #5a6ae0;
}

.moments-thread-relation {
    font-weight: 500;
    color: #9aa7c1;
    font-size: 0.92em;
}

.moments-thread-replyto {
    font-weight: 500;
    color: #9aa7c1;
}

.moments-thread-text {
    color: var(--moments-glass-text, #2d2b55);
    word-break: break-word;
}

.moments-thread-reply {
    margin-left: 14px;
    padding-left: 8px;
    border-left: 2px solid rgba(194, 209, 235, 0.52);
    margin-top: 3px;
}

.moments-post-like-strip {
    color: #262626;
    margin-bottom: 6px;
}

.moments-post-like-strip:last-child {
    margin-bottom: 0;
}

.moments-post-like-icon {
    color: #ed4956;
    margin-right: 4px;
}

.moments-post-comments {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    padding-top: 6px;
    margin-top: 6px;
}

.moments-post-comments:first-child {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

.moments-post-comment-line {
    margin-top: 4px;
    word-break: break-word;
}

.moments-post-comment-line:first-child {
    margin-top: 0;
}

.moments-post-comment-author {
    font-weight: 600;
    color: #385898;
}

.moments-post-comment-relation {
    font-weight: 500;
    color: #8a8d91;
    font-size: 0.92em;
}

.moments-post-comment-replyto {
    font-weight: 500;
    color: #8a8d91;
}

.moments-empty {
    text-align: center;
    padding: 40px 20px;
    margin: 8px 4px 0;
    border-radius: 18px;
    background: var(--moments-glass-bg, rgba(255, 255, 255, 0.56));
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.52), rgba(232, 224, 240, 0.26), rgba(212, 228, 247, 0.24));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid var(--moments-glass-border, rgba(255, 255, 255, 0.66));
    box-shadow: 0 5px 18px var(--moments-glass-shadow, rgba(45, 43, 85, 0.1));
}

.moments-empty-text {
    font-size: 16px;
    color: #666;
    margin-bottom: 8px;
}

.moments-empty-hint {
    font-size: 13px;
    color: #888;
}

/* 发朋友圈模态框 */
.post-moments-modal-content {
    max-width: 360px;
    width: 92%;
    padding: 0;
}

/*
 * 发朋友圈弹层：模板初始挂在 #wechat-discover-page 内时会被 .moments-page 全屏层盖住，
 * 须提升为 #app 直接子节点。position:absolute 铺满小手机坐标系，兼容 iOS Safari / Via /
 * 国产浏览器 WebView 下 fixed + overflow:hidden 错位问题（与音乐播放列表弹层同源）。
 */
#app > #post-moments-modal.modal,
#app > #post-moments-modal.moments-overlay-modal.modal {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2850;
    box-sizing: border-box;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

#app > #post-moments-modal.modal.show,
#app > #post-moments-modal.moments-overlay-modal.modal.show {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: max(20px, calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 12px)) 16px max(16px, var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
}

#app > #post-moments-modal.modal.show .post-moments-modal-content {
    max-height: min(
        88vh,
        calc(100% - max(20px, calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 12px)) - max(16px, var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))) - 24px)
    );
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

#app > #post-moments-modal .post-moments-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.post-moments-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
}

.post-moments-header h3 {
    margin: 0;
    font-size: 17px;
}

.post-moments-cancel,
.post-moments-publish {
    font-size: 15px;
    background: none;
    border: none;
    cursor: pointer;
}

.post-moments-cancel { color: #666; }
.post-moments-publish { color: #07c160; font-weight: 500; }

.post-moments-body {
    padding: 16px;
}

.post-moments-body textarea {
    width: 100%;
    min-height: 120px;
    border: none;
    font-size: 15px;
    resize: none;
    outline: none;
    box-sizing: border-box;
}

.moments-image-upload-area {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.moments-image-add {
    width: 72px;
    height: 72px;
    border: 1px dashed #ccc;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: #999;
    cursor: pointer;
}

.moments-image-previews {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.moments-image-previews img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
}

/* 朋友圈评论弹窗 */
.moments-comment-modal-content {
    max-width: 360px;
    width: 92%;
    padding: 0;
}

.moments-comment-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
}

.moments-comment-title {
    font-size: 17px;
    font-weight: 600;
    color: #111;
}

.moments-comment-cancel,
.moments-comment-send {
    font-size: 15px;
    background: none;
    border: none;
    cursor: pointer;
}

.moments-comment-cancel { color: #666; }
.moments-comment-send { color: #07c160; font-weight: 500; }

.moments-comment-input {
    width: 100%;
    min-height: 100px;
    padding: 16px;
    border: none;
    font-size: 15px;
    resize: vertical;
    outline: none;
    box-sizing: border-box;
}

/* 朋友圈留言互动菜单（回复/编辑/删除）——居中卡片式，兼容各主流浏览器/机型 WebView */
.moments-comment-action-sheet {
    width: 86%;
    max-width: 320px;
    margin: 0 auto;
    padding: 0;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.2);
}

.moments-comment-action-preview {
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.5;
    color: #8a8a99;
    text-align: center;
    word-break: break-word;
    border-bottom: 1px solid #f0f0f0;
    background: #fafafa;
}

.moments-comment-action-preview:empty {
    display: none;
}

.moments-comment-action-item,
.moments-comment-action-cancel {
    display: block;
    width: 100%;
    padding: 15px 16px;
    border: none;
    background: #fff;
    font-size: 16px;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.moments-comment-action-item {
    color: #1a1a1a;
    border-bottom: 1px solid #f0f0f0;
}

.moments-comment-action-item:active {
    background: #f2f2f5;
}

.moments-comment-action-item--danger {
    color: #fa5151;
}

.moments-comment-action-cancel {
    color: #576b95;
    font-weight: 500;
}

.moments-comment-action-cancel:active {
    background: #f2f2f5;
}
/* 朋友圈打开：状态栏叠在封面上；隐藏「发现」标题与列表；底部 Tab 在朋友圈内不显示（否则 flex 会把它挤到顶部） */
#wechat-discover-page.wechat-discover-moments-open .wechat-me-header,
#wechat-discover-page.wechat-discover-moments-open .discover-content {
    display: none;
}

#wechat-discover-page.wechat-discover-moments-open .status-bar {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    /* 去除状态栏底部细灰线：朋友圈打开时它会浮在封面图上，形成一条若隐若现的横线影响观感 */
    border-bottom: 0 !important;
    box-shadow: none !important;
    position: relative;
    z-index: 200;
}

/* 暗色主题同理：发现页状态栏在朋友圈展开时也不应保留底部分割线 */
html[data-appearance="dark"] #wechat-discover-page.wechat-discover-moments-open .status-bar {
    border-bottom: 0 !important;
    box-shadow: none !important;
}

#wechat-discover-page.wechat-discover-moments-open .status-left {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

#wechat-discover-page.wechat-discover-moments-open .status-icon {
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.35));
}

/* 朋友圈封面（可能是用户上传图片）：图标改为白色并加阴影 */
#wechat-discover-page.wechat-discover-moments-open .status-right {
    color: #fff !important;
}

#wechat-discover-page.wechat-discover-moments-open .status-icon-svg {
    color: rgba(255, 255, 255, 0.95) !important;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
}

#wechat-discover-page.wechat-discover-moments-open .wechat-bottom-nav {
    display: none !important;
}
html.wechat-global-bg-on .moments-page-body {
    background: transparent !important;
}

html.wechat-global-bg-on .moments-page {
    background: transparent !important;
}

html.wechat-global-bg-on #wechat-discover-page.wechat-discover-moments-open .status-bar {
    background: transparent !important;
}

html.wechat-global-bg-on .moments-feed-container {
    background: transparent !important;
}

html.wechat-global-bg-on .moments-post-card {
    background: rgba(244, 244, 244, 0.55) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
}
/* ========== 好友资料 · 好友朋友圈（Char）========== */
/* 必须高于 #chat-page 内全屏磨砂(≈2400)、查找记录(2425)、子模态(2500)，否则线下模式顶栏仍会叠在好友资料之上 */
#app .wechat-char-moments-host {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 2700;
    background: #ededed;
    flex-direction: column;
    overflow: hidden;
}

#app .wechat-char-moments-host.is-visible {
    display: flex;
}

#app .wechat-char-moments-host.wechat-char-moments-host--animate {
    animation: wechatCharHostIn 0.3s ease-out both;
}

@keyframes wechatCharHostIn {
    from {
        opacity: 0.85;
        transform: translateX(10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.moments-post-avatar--char,
.moments-post-avatar-placeholder.moments-post-avatar--char {
    cursor: pointer;
}

#app .wechat-char-profile-shell {
    flex: 1;
    display: none;
    flex-direction: column;
    min-height: 0;
    background: #f5f5f5;
}

#app .wechat-char-profile-top {
    position: relative;
    flex-shrink: 0;
    width: 100%;
}

#app .wechat-char-profile-hero {
    width: 100%;
    min-height: 220px;
    box-sizing: border-box;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

#app .wechat-char-profile-hero.has-photo {
    box-shadow: inset 0 -48px 70px rgba(0, 0, 0, 0.25);
}

#app .wechat-char-profile-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    padding: calc(max(12px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) + 6px) 10px 10px;
    /* 只抬高导航按钮，不抬高整个 hero；否则 body 向上重叠的 40px 会被背景图遮住。 */
    z-index: 6;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.48), rgba(0, 0, 0, 0.08) 55%, transparent);
}

#app .wechat-char-profile-nav .moments-toolbar-back {
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    min-width: 44px;
    min-height: 44px;
}

#app .wechat-char-profile-back {
    border-color: rgba(255, 255, 255, 0.35);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    #app .wechat-char-profile-nav .moments-toolbar-back {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(40, 44, 52, 0.72);
    }
}

#app .wechat-char-profile-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 24px;
    margin-top: -40px;
    position: relative;
    z-index: 2;
}

#app .wechat-char-profile-card {
    margin: 0 12px 0;
    padding: 16px 14px 8px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    position: relative;
    z-index: 1;
}

#app .wechat-char-profile-name {
    font-size: 20px;
    font-weight: 700;
    color: #111;
    margin-bottom: 14px;
}

/* User 本人资料：首行名称 + 右侧方形朋友圈头像。仅覆盖本人资料页，不影响 Char 资料布局。 */
#app .wechat-user-profile-card {
    padding-top: 12px;
}

#app #wechat-user-profile-hero {
    cursor: default;
}

#app .wechat-user-profile-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 88px;
    padding: 0 0 12px;
}

#app .wechat-user-profile-name-button,
#app .wechat-user-profile-avatar-button {
    border: 0;
    font: inherit;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
}

#app .wechat-user-profile-name-button {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 56px;
    padding: 8px 6px 8px 0;
    background: transparent;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    cursor: pointer;
}

#app .wechat-user-profile-name-button .wechat-char-profile-name {
    max-width: 100%;
    margin: 0;
    overflow: hidden;
    color: #111;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#app .wechat-user-profile-edit-hint {
    margin-top: 6px;
    color: #a0a0a6;
    font-size: 12px;
    line-height: 1.3;
}

#app .wechat-user-profile-avatar-button {
    position: relative;
    flex: 0 0 76px;
    width: 76px;
    height: 76px;
    padding: 0;
    overflow: hidden;
    border: 3px solid #fff;
    border-radius: 10px;
    background: linear-gradient(145deg, #eef1f5, #dfe4ea);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.16);
    cursor: pointer;
}

#app .wechat-user-profile-avatar-button img,
#app .wechat-user-profile-avatar-button > #wechat-user-profile-avatar-placeholder {
    width: 100%;
    height: 100%;
}

#app .wechat-user-profile-avatar-button img {
    display: block;
    object-fit: cover;
}

#app .wechat-user-profile-avatar-button img[hidden] {
    display: none;
}

#app .wechat-user-profile-avatar-button > #wechat-user-profile-avatar-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #667080;
    font-size: 26px;
    font-weight: 700;
}

#app .wechat-user-profile-avatar-button > #wechat-user-profile-avatar-placeholder[hidden] {
    display: none;
}

#app .wechat-user-profile-avatar-badge {
    position: absolute;
    right: 4px;
    bottom: 4px;
    padding: 2px 5px;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.62);
    color: #fff;
    font-size: 9px;
    line-height: 1.4;
    pointer-events: none;
}

#app .wechat-user-profile-name-button:active,
#app .wechat-user-profile-avatar-button:active {
    opacity: 0.74;
}

#app .wechat-user-profile-name-button:focus-visible,
#app .wechat-user-profile-avatar-button:focus-visible {
    outline: 2px solid #576b95;
    outline-offset: 2px;
}

#app .wechat-char-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-top: 1px solid #f0f0f0;
    font-size: 15px;
}

@media (max-width: 360px) {
    #app .wechat-user-profile-summary {
        gap: 10px;
    }

    #app .wechat-user-profile-avatar-button {
        flex-basis: 68px;
        width: 68px;
        height: 68px;
    }
}

#app .wechat-char-row--tap:active {
    opacity: 0.72;
}

#app .wechat-char-k {
    color: #888;
    flex-shrink: 0;
    margin-right: 12px;
}

#app .wechat-char-v {
    color: #333;
    text-align: right;
    word-break: break-all;
}

#app .wechat-char-row--moments .wechat-char-k {
    color: #111;
    font-weight: 500;
}

#app .wechat-char-chevron {
    color: #c7c7c7;
    font-size: 22px;
    font-weight: 300;
    line-height: 1;
}

#app .wechat-char-profile-actions {
    display: flex;
    gap: 12px;
    padding: 20px 16px;
}

#app .wechat-char-btn {
    flex: 1;
    padding: 12px 10px;
    border-radius: 8px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    font-weight: 600;
}

#app .wechat-char-btn--primary {
    background: #07c160;
    color: #fff;
}

#app .wechat-char-btn--outline {
    background: #fff;
    color: #07c160;
    border: 1px solid rgba(7, 193, 96, 0.45);
}

#app .wechat-char-btn:active {
    opacity: 0.88;
}

#app .wechat-char-fmom-shell.moments-page {
    background: transparent;
}

#app .wechat-char-fmom-cover-bg--tap {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

#app .wechat-char-fmom-meta {
    pointer-events: none;
}

#app .wechat-char-feed-meta {
    justify-content: space-between;
}

#app .wechat-char-feed-hint {
    font-size: 12px;
    color: #8e8e8e;
}

#app .wechat-char-detail-shell {
    flex: 1;
    display: none;
    flex-direction: column;
    min-height: 0;
    background: #ededed;
    position: relative;
}

#app .wechat-char-detail-nav {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: calc(max(12px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) + 8px) 10px 10px;
    background: #ededed;
    border-bottom: 1px solid #e2e2e2;
}

#app .wechat-char-detail-nav .moments-toolbar-back {
    position: relative;
    top: auto;
    left: auto;
    border-color: rgba(0, 0, 0, 0.12);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: none;
}

#app .wechat-char-detail-title {
    font-size: 17px;
    font-weight: 600;
    color: #111;
}

#app .wechat-char-detail-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 10px 12px 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

#app .wechat-char-detail-scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
}

#app .wechat-char-detail-inner {
    background: #fff;
    border-radius: 10px;
    padding: 12px 12px 14px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

#app .wechat-char-detail-timebar {
    margin-top: 4px;
    justify-content: flex-start;
}

#app .wechat-char-dtl-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    width: 100%;
    max-width: 100%;
    margin: 10px 0 6px;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
    border: none;
    box-shadow: none;
    pointer-events: auto;
}

#app .wechat-char-dtl-btn {
    border: none;
    background: rgba(0, 0, 0, 0.06);
    color: #333;
    font-size: 11px;
    padding: 5px 9px;
    border-radius: 14px;
    cursor: pointer;
    font-weight: 600;
    line-height: 1.2;
}

#app .wechat-char-dtl-btn:active {
    opacity: 0.82;
}

#app .wechat-char-dtl-btn.is-on {
    background: rgba(7, 193, 96, 0.2);
    color: #07a050;
}

#app .wechat-char-dtl-btn--danger {
    background: rgba(250, 81, 81, 0.14);
    color: #d32f2f;
}

/* 微信号/地区编辑弹层（须高于 .wechat-char-moments-host:2700，否则资料页内点击后弹层被盖住） */
.wechat-char-field-edit-modal.modal {
    z-index: 2800;
    align-items: center;
    justify-content: center;
    padding: max(16px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 16px max(16px, var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
    box-sizing: border-box;
    /* 避免与内层滚动抢占纵向触控；表单区独自 overflow */
    overflow: hidden;
}

.wechat-char-field-edit-panel.modal-content {
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
    border-radius: 14px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    max-height: min(420px, calc(100vh - max(32px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))) - 48px));
}

/* 「你的行程」：面板为纵向 flex，表单区收敛高度并内部滚动（避免仅裁切、触控无法下滑） */
.user-itinerary-modal-panel.wechat-char-field-edit-panel.modal-content {
    display: flex;
    flex-direction: column;
    max-height: min(560px, calc(100vh - max(32px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))) - 48px));
}

.user-itinerary-modal-panel .wechat-char-field-edit-head {
    flex: 0 0 auto;
}

.wechat-char-field-edit-body {
    padding: 16px 14px 20px;
    background: #fff;
}

.wechat-char-field-edit-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border-bottom: 1px solid #eee;
    background: #fafafa;
}

.wechat-char-field-edit-htitle {
    font-size: 16px;
    font-weight: 600;
    color: #111;
}

.wechat-char-field-edit-hbtn {
    border: none;
    background: transparent;
    font-size: 15px;
    color: #576b95;
    cursor: pointer;
    padding: 4px 6px;
}

.wechat-char-field-edit-hbtn--ok {
    color: #07c160;
    font-weight: 600;
}

.wechat-char-field-edit-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #f7f7f7;
}

#phone-page .phone-app-panel--friend-wechat-moments {
    position: relative;
}

#phone-page .phone-app-panel--friend-wechat-moments .phone-app-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 20;
    border-bottom: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: none;
}

#phone-page .phone-app-panel--friend-wechat-moments .phone-app-back {
    pointer-events: auto;
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.18);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

#phone-page .phone-app-panel--friend-wechat-moments .phone-app-title {
    visibility: hidden;
    pointer-events: none;
}

/* 朋友圈顶栏：右侧操作区与返回键同排；仅在有可见刷新按钮时响应点击 */
#phone-page .phone-app-panel--friend-wechat-moments .phone-app-actions {
    visibility: visible;
    pointer-events: none;
}

#phone-page .phone-app-panel--friend-wechat-moments .phone-app-action-btn:not([hidden]) {
    pointer-events: auto;
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.18);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.24);
    /* 与 .phone-app-back 同尺寸：36×32 / 圆角 12 */
    width: 36px;
    height: 32px;
    border-radius: 12px;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

#phone-page .phone-app-panel--friend-wechat-moments .phone-app-action-btn:not([hidden]) svg {
    display: block;
    width: 16px;
    height: 16px;
}

.friend-phone-wechat-body--moments {
    padding: 0;
    background: #f6f7fb;
}

/* User行程编辑模态框美化 */
.user-itinerary-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.user-itinerary-modal-body::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Opera */
}

.user-itinerary-cancel-btn {
    color: #666 !important;
    font-weight: 500 !important;
}

.user-itinerary-ok-btn {
    color: #111 !important;
    font-weight: 600 !important;
}

.user-itinerary-clear-btn {
    width: 100%;
    padding: 10px;
    background: #f5f5f5;
    border: none;
    border-radius: 4px;
    color: #666;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.user-itinerary-clear-btn:hover {
    background: #ebebeb;
}

.user-itinerary-clear-btn:active {
    background: #e0e0e0;
    transform: scale(0.98);
}

.friend-phone-wechat-moments-page {
    min-height: 100%;
    background: #f6f7fb;
}

.friend-phone-wechat-moments-hero {
    position: relative;
    z-index: 1;
    height: 176px;
    background: linear-gradient(145deg, #607083, #354150);
    /* meta 使用 bottom 负值探入下方 feed；须叠在 feed 白底之上，否则头像/昵称被裁切 */
}

.friend-phone-wechat-moments-cover {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, #607083, #354150);
    background-size: cover;
    background-position: center;
}

.friend-phone-wechat-moments-meta {
    position: absolute;
    right: 16px;
    bottom: -24px;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.friend-phone-wechat-moments-name {
    color: #fff;
    font-size: 18px;
    font-weight: 750;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.24);
    padding-bottom: 8px;
    max-width: 150px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.friend-phone-wechat-moments-avatar {
    width: 58px;
    height: 58px;
    border-radius: 10px;
    border: 3px solid #fff;
    font-size: 22px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
}

.friend-phone-wechat-feed-container {
    position: relative;
    z-index: 0;
    padding-top: 40px;
    background: #fff;
}

.friend-phone-wechat-empty {
    padding: 42px 16px;
}

.friend-phone-wechat-moment-card {
    cursor: pointer;
    /* 性能（渐进增强）：视口外卡片跳过布局/绘制；不支持的旧浏览器自动忽略 */
    content-visibility: auto;
    contain-intrinsic-size: auto 240px;
}

.friend-phone-wechat-moment-card.is-detail {
    cursor: default;
    content-visibility: visible;
}

.friend-phone-wechat-post-avatar {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    font-size: 16px;
}

.friend-phone-wechat-post-meta {
    align-items: center;
}

.friend-phone-wechat-post-fav {
    border: none;
    border-radius: 6px;
    background: #eef7f1;
    color: #07a553;
    font-size: 12px;
    padding: 5px 8px;
    cursor: pointer;
}

.friend-phone-wechat-detail-page {
    min-height: 100%;
    padding: 10px 0 18px;
    background: #fff;
}
