    .chat-browser-tab {
        position: relative;
        z-index: 2;
        height: 36px;
        min-width: 120px;
        max-width: 200px;
        margin: 0;
        padding: 0 30px 0 13px;
        display: inline-flex;
        align-items: center;
        border-radius: 10px 10px 0 0;
        border: 0;
        background: var(--chat-tab-rest-bg);
        color: var(--chat-tab-muted);
        font-size: 12px;
        font-weight: 500;
        letter-spacing: 0.02em;
        box-shadow: none;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
        -webkit-tap-highlight-color: transparent;
        flex: 0 1 auto;
        align-self: flex-end;
        overflow: visible;
        outline: none;
        user-select: none;
        transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
    }
    .chat-browser-tab:not(.active):hover { background: var(--chat-tab-rest-hover); }
    .chat-browser-tab:not(.active)::before { content: none; }
    .chat-browser-tab:not(.active)::after { content: none; }
    .chat-browser-tabs > .chat-browser-tab:first-of-type::before { content: none; }
    .chat-browser-tab-label {
        position: relative;
        z-index: 2;
        min-width: 0;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        line-height: 1;
    }
    .chat-browser-tab.active {
        z-index: 8;
        background: var(--chat-tab-active-bg);
        color: #28313b;
        box-shadow: 0 -1px 8px rgba(60, 66, 76, 0.06);
    }
    .chat-browser-tab.active::before,
    .chat-browser-tab.active::after {
        content: '';
        position: absolute;
        bottom: 0;
        width: 8px;
        height: 8px;
        background: transparent;
        pointer-events: none;
    }
    .chat-browser-tab.active::before {
        left: -8px;
        border-radius: 0 0 8px 0;
        box-shadow: 2px 2px 0 0 var(--chat-tab-active-bg);
    }
    .chat-browser-tab.active::after {
        right: -8px;
        border-radius: 0 0 0 8px;
        box-shadow: -2px 2px 0 0 var(--chat-tab-active-bg);
    }
    .chat-browser-tab:active { opacity: 0.72; transform: none; }
    .chat-browser-tab-close {
        position: absolute;
        z-index: 3;
        right: 10px;
        top: 50%;
        width: 14px;
        height: 14px;
        transform: translateY(-50%);
        border-radius: 50%;
        opacity: 0.42;
        transition: opacity 0.18s ease, background 0.18s ease;
    }
    .chat-browser-tab:hover .chat-browser-tab-close { opacity: 0.74; }
    .chat-browser-tab-close::before,
    .chat-browser-tab-close::after {
        content: '';
        position: absolute;
        left: 3.25px;
        top: 6.25px;
        width: 7.5px;
        height: 1px;
        border-radius: 999px;
        background: #69737f;
    }
    .chat-browser-tab-close::before { transform: rotate(45deg); }
    .chat-browser-tab-close::after { transform: rotate(-45deg); }
    .chat-browser-add {
        position: relative;
        z-index: 3;
        width: 28px;
        height: 36px;
        margin-left: 4px;
        margin-bottom: 0;
        padding: 0;
        border: 0;
        border-radius: 999px 999px 0 0;
        background: transparent;
        color: #4f5964;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        appearance: none;
        -webkit-appearance: none;
        flex: 0 0 28px;
        box-shadow: none;
        outline: none;
        transition: opacity 0.18s ease, background 0.18s ease;
    }
    .chat-browser-add::before,
    .chat-browser-add::after { content: none; }
    .chat-browser-add:active { opacity: 0.58; background: transparent; transform: none; }
    .chat-browser-add svg {
        width: 18px;
        height: 18px;
        stroke: currentColor;
        stroke-width: 1.85;
        fill: none;
        stroke-linecap: round;
        stroke-linejoin: round;
        vector-effect: non-scaling-stroke;
    }
    .chat-browser-bar {
        min-height: 44px;
        display: grid;
        grid-template-columns: 30px 30px 30px minmax(0, 1fr) 30px;
        align-items: center;
        gap: 7px;
        padding: 8px 9px;
        border-radius: 0;
        border: 0;
        border-bottom: 1px solid rgba(210, 215, 221, 0.88);
        background: #ffffff;
        box-shadow: 0 1px 4px rgba(72, 80, 90, 0.08);
        position: relative;
        z-index: 2;
    }
    .chat-browser-btn {
        width: 30px;
        height: 30px;
        padding: 0;
        border: 0;
        background: transparent;
        color: #67717e;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        border-radius: 999px;
        -webkit-tap-highlight-color: transparent;
        appearance: none;
        -webkit-appearance: none;
        box-shadow: none;
        outline: none;
        transition: background 0.18s ease, opacity 0.18s ease, color 0.18s ease;
    }
    .chat-browser-back { transform: none; color: #5b6470; }
    .chat-browser-forward { color: #7b8490; opacity: 1; }
    .chat-refresh-btn {
        width: 30px;
        height: 30px;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: transparent;
        box-shadow: none;
        color: #69737f;
        appearance: none;
        -webkit-appearance: none;
        outline: none;
    }
    .chat-browser-btn:hover,
    .chat-refresh-btn:hover { background: #f3f4f6; }
    .chat-browser-btn:active,
    .chat-refresh-btn:active { background: #eef0f2; opacity: 0.76; transform: none; }
    .chat-browser-btn:focus,
    .chat-refresh-btn:focus { outline: none; }
    .chat-browser-btn svg,
    .chat-more-btn svg,
    .chat-refresh-btn svg {
        width: 18px;
        height: 18px;
        min-width: 18px;
        min-height: 16px;
        overflow: visible;
        stroke: currentColor;
        stroke-width: 2;
        fill: none;
        stroke-linecap: round;
        stroke-linejoin: round;
        flex: 0 0 20px;
        vector-effect: non-scaling-stroke;
    }
    .chat-refresh-btn svg {
        width: 17px;
        height: 17px;
        min-width: 17px;
        min-height: 17px;
        stroke-width: 2;
    }
    .chat-url-field {
        width: 100%;
        min-width: 0;
        height: 31px;
        border-radius: 999px;
        background: #f1f3f4;
        border: 1px solid transparent;
        box-shadow: none;
        display: flex;
        align-items: center;
        padding: 0 13px 0 31px;
        color: #535d69;
        font-size: 12px;
        letter-spacing: 0.03em;
        overflow: hidden;
        white-space: nowrap;
        cursor: text;
        outline: none;
        user-select: text;
        -webkit-user-select: text;
        caret-color: #4a4e59;
        box-sizing: border-box;
        appearance: none;
        -webkit-appearance: none;
        background-image:
            radial-gradient(circle at 14px 50%, #afc5b7 0 3.5px, transparent 4px),
            radial-gradient(circle at 14px 50%, rgba(175, 197, 183, 0.16) 0 7px, transparent 7.5px);
        background-repeat: no-repeat;
        transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    }
    .chat-url-field::placeholder {
        color: #9aa3af;
        opacity: 1;
    }
    .chat-url-field::-webkit-search-decoration,
    .chat-url-field::-webkit-search-cancel-button,
    .chat-url-field::-webkit-search-results-button,
    .chat-url-field::-webkit-search-results-decoration { display: none; }
    .chat-url-field:focus {
        background-color: transparent;
        border-color: rgba(190, 198, 207, 0.88);
        box-shadow: none;
    }
    .chat-url-field::before { content: none; }
    .chat-more-btn { color: #525c68; }

    .chat-contact-zone {
        position: relative;
        min-height: 420px;
        padding: 24px 18px 112px;
    }
    .chat-contact-list {
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        align-items: stretch;
        width: calc(100% + 48px);
        margin-left: -24px;
        margin-right: -24px;
    }
    .chat-contact-list.has-items { display: grid; }
    .chat-contact-card {
        position: relative;
        min-height: 194px;
        padding: 17px;
        width: 100%;
        box-sizing: border-box;
        border-radius: 31px;
        border: 1px solid rgba(188, 195, 204, 0.26);
        background: #fffdf8;
        box-shadow:
            0 14px 31px rgba(72, 80, 90, 0.055),
            inset 0 1px 0 rgba(255, 255, 255, 0.86);
        display: flex;
        flex-direction: column;
        gap: 12px;
        font: inherit;
        text-align: left;
        cursor: pointer;
        overflow: hidden;
        -webkit-tap-highlight-color: transparent;
        transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
    }
    .chat-contact-card:active {
        transform: translateY(1px);
        border-color: rgba(174, 182, 193, 0.42);
        box-shadow: 0 10px 24px rgba(72, 80, 90, 0.055), inset 0 1px 0 rgba(255, 255, 255, 0.86);
    }
    .chat-contact-card::before {
        content: '';
        position: absolute;
        right: 17px;
        bottom: 17px;
        width: 41px;
        height: 41px;
        border-radius: 50%;
        border: 1px dashed rgba(154, 160, 171, 0.26);
        opacity: 0.72;
        pointer-events: none;
    }
    .chat-contact-card::after {
        content: '';
        position: absolute;
        left: 17px;
        right: 17px;
        bottom: 61px;
        border-top: 1px dashed rgba(180, 185, 195, 0.38);
        pointer-events: none;
    }
    .chat-contact-top {
        position: relative;
        z-index: 1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 28px;
    }
    .chat-contact-tag {
        font-family: "Courier New", Courier, monospace;
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.14em;
        color: #a0a7b1;
        white-space: nowrap;
    }
    .chat-contact-arrow {
        position: relative;
        width: 28px;
        height: 28px;
        border: 1px solid rgba(204, 210, 218, 0.74);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 5px 12px rgba(76, 84, 96, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.96);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #8f98a4;
        flex: 0 0 auto;
        padding: 0;
        font: inherit;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
    }
    .chat-contact-arrow:active {
        background: #e2e5ea;
        color: #68717e;
        transform: translateY(1px);
        box-shadow: inset 0 1px 2px rgba(95, 104, 116, 0.10);
    }
    .chat-contact-arrow::before {
        content: '';
        width: 6px;
        height: 6px;
        border-top: 1.4px solid currentColor;
        border-right: 1.4px solid currentColor;
        transform: translateX(-1px) rotate(45deg);
    }
    .chat-contact-avatar {
        position: relative;
        z-index: 1;
        width: 62px;
        height: 62px;
        border-radius: 22px;
        background: #f1f2f3;
        border: 2px solid rgba(255, 255, 255, 0.92);
        box-shadow:
            0 7px 16px rgba(104, 112, 124, 0.075),
            inset 0 0 0 1px rgba(190, 197, 207, 0.16);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #b7bdc6;
        font-family: Georgia, "Times New Roman", serif;
        font-style: italic;
        font-size: 17px;
        letter-spacing: 0.05em;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        overflow: hidden;
        flex: 0 0 auto;
    }
    .chat-contact-avatar.has-image { color: transparent; }
    .chat-contact-avatar.is-group { border-radius: 20px; }
    .chat-contact-info {
        position: relative;
        z-index: 1;
        min-width: 0;
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        gap: 7px;
    }
    .chat-contact-name {
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 19px;
        line-height: 1.12;
        font-style: italic;
        letter-spacing: -0.02em;
        color: #3f4751;
        margin: 0;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .chat-contact-note {
        font-size: 12px;
        line-height: 1.45;
        color: #8d96a2;
        letter-spacing: 0.04em;
        max-width: 100%;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        min-height: 35px;
        white-space: normal;
        word-break: break-word;
    }
    .chat-contact-meta {
        position: relative;
        z-index: 1;
        min-height: 26px;
        margin-top: auto;
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 10px;
        color: #a5acb6;
    }
    .chat-contact-group {
        min-width: 0;
        max-width: calc(100% - 34px);
        display: inline-flex;
        align-items: center;
        gap: 7px;
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.12em;
        color: #8d96a2;
        text-transform: uppercase;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .chat-contact-group::before {
        content: '';
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: #b5c7d3;
        box-shadow: 0 0 0 3px rgba(181, 199, 211, 0.15);
        flex: 0 0 auto;
    }
    .chat-contact-mini-mark {
        width: 26px;
        height: 12px;
        border-radius: 999px;
        border: 1px solid rgba(154, 160, 171, 0.24);
        flex: 0 0 auto;
    }
    @media (max-width: 340px) {
        .chat-contact-list { gap: 10px; width: calc(100% + 40px); margin-left: -20px; margin-right: -20px; }
        .chat-contact-card { min-height: 182px; padding: 15px; border-radius: 28px; }
        .chat-contact-avatar { width: 58px; height: 58px; border-radius: 20px; }
        .chat-contact-name { font-size: 19px; }
        .chat-contact-note { font-size: 11px; }
    }

    .chat-ta-profile-view {
        padding: max(38px, calc(env(safe-area-inset-top) + 22px)) 22px max(42px, calc(env(safe-area-inset-bottom) + 34px));
        background: transparent;
    }
    .chat-app-page.ta-profile-open .chat-bottom-dock,
    .chat-ta-profile-view.active ~ .chat-bottom-dock {
        display: none;
    }
    .chat-ta-profile-hero {
        position: relative;
        min-height: 266px;
        margin: 0 0 18px;
        border-radius: 32px;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
        isolation: isolate;
    }
    .chat-ta-profile-hero::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: -1px;
        z-index: 1;
        height: 76%;
        pointer-events: none;
        border-radius: 0 0 32px 32px;
        background: linear-gradient(180deg, rgba(252,251,247,0) 0%, rgba(252,251,247,0.05) 30%, rgba(252,251,247,0.42) 66%, var(--chat-paper) 100%);
    }
    .chat-ta-profile-bg {
        position: absolute;
        inset: 0;
        border-radius: inherit;
        overflow: hidden;
        background-image:
            radial-gradient(circle at 18% 16%, rgba(255,255,255,0.86) 0%, rgba(255,255,255,0.24) 32%, transparent 58%),
            radial-gradient(circle at 84% 18%, rgba(217,226,232,0.84) 0%, rgba(217,226,232,0.17) 31%, transparent 60%),
            linear-gradient(135deg, #e9edf1 0%, #f6eee8 62%, #fffdf8 100%);
        -webkit-mask-image: linear-gradient(to bottom, #000 66%, rgba(0,0,0,0.62) 78%, transparent 100%);
        mask-image: linear-gradient(to bottom, #000 66%, rgba(0,0,0,0.62) 78%, transparent 100%);
    }
    .chat-ta-profile-bg::before {
        content: '';
        position: absolute;
        inset: 0;
        opacity: 0.34;
        background-image:
            linear-gradient(rgba(128, 137, 148, 0.052) 1px, transparent 1px),
            linear-gradient(90deg, rgba(128, 137, 148, 0.042) 1px, transparent 1px);
        background-size: 24px 24px;
    }
    .chat-ta-profile-hero.has-custom-bg .chat-ta-profile-bg {
        background-image:
            linear-gradient(180deg, rgba(255,255,255,0.18) 0%, rgba(252,251,247,0.34) 58%, rgba(252,251,247,0.72) 100%),
            var(--ta-profile-bg-image);
        background-size: cover, cover;
        background-position: center, center;
        background-repeat: no-repeat, no-repeat;
    }
    .chat-ta-profile-star {
        position: absolute;
        z-index: 3;
        top: 26px;
        right: 20px;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 0;
        background: transparent;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        transition: background 0.16s ease, transform 0.16s ease;
    }
    .chat-ta-profile-star:active {
        background: rgba(119, 126, 136, 0.18);
        transform: translateY(1px);
    }
    .chat-ta-profile-star span {
        width: 20px;
        height: 20px;
        display: block;
        background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 2.25c1.08 3.82 2.78 5.85 6.6 7.03-3.82 1.08-5.52 3.11-6.6 6.97-1.08-3.86-2.78-5.89-6.6-6.97 3.82-1.18 5.52-3.21 6.6-7.03Zm5.25 10.7c.45 1.58 1.12 2.42 2.7 2.88-1.58.45-2.25 1.3-2.7 2.88-.45-1.58-1.12-2.43-2.7-2.88 1.58-.46 2.25-1.3 2.7-2.88Z'/%3E%3C/svg%3E");
        filter: drop-shadow(0 2px 10px rgba(92, 99, 110, 0.10));
        transform: translateY(-0.5px);
    }
    .chat-ta-profile-main {
        position: relative;
        z-index: 2;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 16px;
        padding: 56px 20px 18px;
    }
    .chat-ta-profile-avatar-wrap {
        position: relative;
        width: 76px;
        height: 76px;
        flex: 0 0 auto;
    }
    .chat-ta-profile-avatar {
        position: relative;
        z-index: 2;
        width: 76px;
        height: 76px;
        border-radius: 24px;
        background: #eef0f2;
        border: 2px solid rgba(255,255,255,0.92);
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        color: #b4bbc4;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 19px;
        font-style: italic;
        letter-spacing: 0.06em;
        box-shadow: 0 12px 24px rgba(82, 90, 102, 0.12), inset 0 0 0 1px rgba(184, 191, 201, 0.14);
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-ta-profile-avatar:active { opacity: 0.72; }
    .chat-ta-profile-avatar.has-image { color: transparent; }
    .chat-ta-profile-avatar-mark {
        position: absolute;
        z-index: 1;
        left: 0;
        bottom: 0;
        width: 76px;
        height: 76px;
        border-radius: 24px;
        border: 1.6px solid rgba(134, 145, 158, 0.30);
        box-shadow: 0 5px 14px rgba(96, 106, 118, 0.055);
        transform: translate(-2px, 2px) rotate(-10deg);
        transform-origin: left bottom;
        pointer-events: none;
    }
    .chat-ta-profile-copy { min-width: 0; align-self: center; padding-right: 42px; }
    .chat-ta-profile-name {
        margin: 0;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(26px, 7.2vw, 32px);
        line-height: 0.98;
        letter-spacing: -0.035em;
        font-style: italic;
        font-weight: 400;
        color: #303740;
    }
    .chat-ta-profile-id {
        margin-top: 9px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.13em;
        color: #8d96a2;
    }
    .chat-ta-profile-signature {
        position: absolute;
        z-index: 3;
        left: 20px;
        right: 20px;
        bottom: 20px;
        min-height: 44px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 34px;
        align-items: center;
        gap: 10px;
        padding: 6px 6px 6px 16px;
        border-radius: 999px;
        background: rgba(255,255,255,0.86);
        border: 0;
        color: #7f8996;
        box-shadow: 0 10px 22px rgba(76, 84, 96, 0.075), inset 0 1px 0 rgba(255,255,255,0.90);
        font-size: 12px;
        line-height: 1.35;
        letter-spacing: 0.04em;
    }
    .chat-ta-profile-signature > span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        cursor: pointer;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-ta-profile-arrow {
        width: 34px;
        height: 34px;
        border-radius: 50%;
        border: 0;
        background: #f0f2f4;
        color: #626c78;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        cursor: pointer;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
        -webkit-tap-highlight-color: transparent;
        transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
    }
    .chat-ta-profile-arrow:active { background: #e2e5ea; color: #505a66; transform: translateY(1px); }
    .chat-ta-profile-arrow span {
        width: 8px;
        height: 8px;
        border-top: 1.5px solid currentColor;
        border-right: 1.5px solid currentColor;
        transform: translateX(-1px) rotate(45deg);
    }
    .chat-ta-profile-actions {
        display: flex;
        flex-direction: column;
        gap: 8px;
        background: transparent;
    }
    .chat-ta-profile-action-group,
    .chat-ta-profile-danger-stack {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        padding-top: 0;
        opacity: 1;
    }
    .chat-ta-profile-danger-stack { margin-top: 2px; opacity: 0.78; }
    .chat-ta-profile-row {
        position: relative;
        width: 100%;
        min-height: 46px;
        padding: 0 14px;
        border: 0;
        border-radius: 16px;
        background: rgba(255,255,255,0.42);
        color: #68717D;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        text-align: left;
        font: inherit;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        appearance: none;
        -webkit-appearance: none;
        box-shadow: inset 0 0 0 1px rgba(150,158,168,0.10);
    }
    .chat-ta-profile-row span {
        min-width: 0;
        font-size: 12px;
        line-height: 1.15;
        letter-spacing: 0.035em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-ta-profile-row i {
        display: block;
        width: 7px;
        height: 7px;
        flex: 0 0 7px;
        border-top: 1.2px solid currentColor;
        border-right: 1.2px solid currentColor;
        transform: rotate(45deg);
        opacity: 0.32;
    }
    .chat-ta-profile-row:active { background: rgba(255,255,255,0.62); opacity: 0.72; }
    .chat-ta-profile-danger-stack .chat-ta-profile-row {
        width: 100%;
        min-height: 46px;
        justify-content: center;
        text-align: center;
        padding: 0 14px;
        border-radius: 16px;
        background: transparent;
        box-shadow: inset 0 0 0 1px rgba(150,158,168,0.14);
    }
    .chat-ta-profile-danger-stack .chat-ta-profile-row span { text-align: center; }
    .chat-ta-profile-danger-stack .chat-ta-profile-row i { display: none; }
    .chat-ta-profile-row.is-danger-soft span { color: #78686a; }
    .chat-ta-profile-row.is-danger span { color: #9c4d54; }
    @media (max-width: 340px) {
        .chat-ta-profile-view { padding-left: 18px; padding-right: 18px; }
        .chat-ta-profile-main { gap: 12px; padding-top: 52px; padding-left: 18px; padding-right: 18px; }
        .chat-ta-profile-avatar-wrap,
        .chat-ta-profile-avatar,
        .chat-ta-profile-avatar-mark { width: 68px; height: 68px; border-radius: 22px; }
        .chat-ta-profile-avatar-mark { transform: translate(-1px, 1px) rotate(-10deg); }
        .chat-ta-profile-copy { padding-right: 38px; }
        .chat-ta-profile-signature { left: 16px; right: 16px; }
    }

    .chat-dynamic-view {
        padding: 0 0 max(112px, calc(env(safe-area-inset-bottom) + 106px));
        background: #FCFBF7;
    }


    .chat-app-page.thread-open .chat-bottom-dock,
    .chat-thread-view.active ~ .chat-bottom-dock {
        display: none;
    }
    .chat-thread-view {
        --chat-bubble-me: #000;
        --chat-bubble-ta: #ffffff;
        --chat-text-me: #ffffff;
        --chat-text-ta: #000000;
        --chat-bubble-radius-ta: 18px;
        --chat-bubble-radius-me: 18px;
        --chat-thread-font-size: 12px;
        --chat-avatar-display-ta: inline-flex;
        --chat-avatar-display-me: inline-flex;
        --chat-avatar-frame-display: block;
        --chat-avatar-ta-scale: 1;
        --chat-avatar-ta-x: 0px;
        --chat-avatar-ta-y: 0px;
        --chat-avatar-ta-rotate: 0deg;
        --chat-avatar-me-scale: 1;
        --chat-avatar-me-x: 0px;
        --chat-avatar-me-y: 0px;
        --chat-avatar-me-rotate: 0deg;
        padding: 0;
        overflow: hidden;
        color: var(--chat-ink);
        background: transparent;
        isolation: isolate;
    }
    .chat-thread-bg {
        position: absolute;
        inset: 0;
        z-index: -2;
        background: transparent;
        background-image: none;
        transform: none;
        pointer-events: none;
    }
    .chat-thread-view.has-custom-bg .chat-thread-bg {
        background-image: var(--chat-thread-bg-image);
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }
    .chat-thread-view::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background: transparent;
    }
    .chat-thread-topbar {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        z-index: 6;
        height: 0;
        min-height: 0;
        padding: 0;
        display: block;
        overflow: visible;
        pointer-events: none;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .chat-thread-topbar::before,
    .chat-thread-topbar::after {
        content: none;
    }
    .chat-glass-btn {
        border: 0;
        background: #fff;
        color: rgba(31, 36, 42, 0.92);
        box-shadow: 0 10px 24px rgba(76, 72, 64, 0.08);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        appearance: none;
        -webkit-appearance: none;
        outline: none;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        pointer-events: auto;
        transition: transform 0.16s ease, background 0.16s ease, opacity 0.16s ease;
    }
    .chat-glass-btn:active { transform: scale(0.94); background: #F6F4EF; }
    .chat-thread-plus:active { background: #fff; }
    .chat-thread-back {
        position: absolute;
        left: 20px;
        top: max(24px, calc(env(safe-area-inset-top) + 20px));
        width: 44px;
        height: 44px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .chat-thread-back svg {
        width: 25px;
        height: 25px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.85;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-thread-identity {
        position: absolute;
        left: 0;
        right: 0;
        top: max(20px, calc(env(safe-area-inset-top) + 16px));
        transform: none;
        width: auto;
        min-width: 0;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 5px;
        pointer-events: none;
        text-align: center;
        color: var(--chat-ink);
        text-shadow: none;
    }
    .chat-thread-avatar {
        width: 44px;
        height: 44px;
        pointer-events: auto;
        border-radius: 50%;
        border: 0;
        background: rgba(235,242,244,0.86);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        box-shadow: 0 9px 20px rgba(76, 72, 64, 0.09);
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(74,96,107,0.62);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 14px;
        font-style: italic;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-thread-avatar:active { opacity: 0.76; }
    .chat-thread-avatar.has-image { color: transparent; }
    .chat-thread-avatar.is-group { border-radius: 18px; }
    .chat-thread-name {
        max-width: min(76vw, 260px);
        min-width: 0;
        box-sizing: content-box;
        padding: 0 0.12em;
        pointer-events: auto;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 15px;
        line-height: 1.1;
        font-style: italic;
        font-weight: 700;
        letter-spacing: -0.02em;
    }
    .chat-thread-name.is-typing {
        max-width: min(76vw, 260px);
        font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
        font-size: 12px;
        font-style: normal;
        font-weight: 500;
        letter-spacing: 0.01em;
        color: rgba(52, 57, 65, 0.58);
    }
    .chat-thread-actions {
        position: absolute;
        right: 20px;
        top: max(24px, calc(env(safe-area-inset-top) + 20px));
        justify-self: auto;
        height: 46px;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        overflow: visible;
        border-radius: 999px;
        border: 0;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        pointer-events: auto;
    }
    .chat-thread-actions .chat-glass-btn {
        width: 44px;
        height: 44px;
        border: 0;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 10px 24px rgba(76, 72, 64, 0.08);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
        text-align: center;
        vertical-align: middle;
    }
    .chat-thread-search svg {
        width: 23px;
        height: 23px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.1;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-thread-more span,
    .chat-thread-more span::before,
    .chat-thread-more span::after {
        display: block;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: currentColor;
    }
    .chat-thread-more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .chat-thread-more span { position: relative; margin: 0; flex: 0 0 auto; }
    .chat-thread-more span::before,
    .chat-thread-more span::after { content: ''; position: absolute; left: 0; }
    .chat-thread-more span::before { top: -7px; }
    .chat-thread-more span::after { top: 7px; }

    .chat-thread-more-menu {
        position: absolute;
        top: 54px;
        right: 0;
        width: min(178px, calc(100vw - 40px));
        padding: 10px;
        border-radius: 24px;
        background:
            linear-gradient(180deg, rgba(255,255,255,0.96), rgba(250,248,244,0.92));
        border: 1px solid rgba(47,51,58,0.08);
        box-shadow: 0 18px 42px rgba(60, 54, 48, 0.14);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        display: grid;
        gap: 4px;
        opacity: 0;
        transform: translateY(-6px) scale(0.98);
        transform-origin: top right;
        pointer-events: none;
        visibility: hidden;
        transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    }
    .chat-thread-more-menu.show {
        opacity: 1;
        transform: translateY(0) scale(1);
        pointer-events: auto;
        visibility: visible;
    }
    .chat-thread-more-menu::before {
        content: '';
        position: absolute;
        top: -5px;
        right: 18px;
        width: 10px;
        height: 10px;
        border-left: 1px solid rgba(47,51,58,0.08);
        border-top: 1px solid rgba(47,51,58,0.08);
        background: rgba(255,255,255,0.96);
        transform: rotate(45deg);
    }
    .chat-thread-more-menu button {
        position: relative;
        z-index: 1;
        width: 100%;
        border: 0;
        border-radius: 16px;
        padding: 11px 12px;
        background: transparent;
        color: rgba(36, 39, 45, 0.86);
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: baseline;
        gap: 8px;
        text-align: left;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-thread-more-menu button:active,
    .chat-thread-more-menu button:hover {
        background: rgba(243, 239, 232, 0.72);
    }
    .chat-thread-more-menu strong {
        min-width: 0;
        font-size: 13px;
        line-height: 1.15;
        font-weight: 600;
        letter-spacing: 0.01em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-thread-more-menu span {
        font-family: Georgia, "Times New Roman", serif;
        font-size: 9px;
        line-height: 1;
        font-style: italic;
        color: rgba(47,51,58,0.38);
        white-space: nowrap;
    }
    .chat-thread-messages {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        z-index: 2;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
        touch-action: pan-y;
        scrollbar-width: none;
        padding: max(96px, calc(env(safe-area-inset-top) + 88px)) 12px max(96px, calc(env(safe-area-inset-bottom) + 88px)) 15px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        background: transparent;
    }
    .chat-thread-messages::-webkit-scrollbar { display: none; }
    .chat-thread-date,
    .chat-thread-empty {
        align-self: center;
        margin: 4px 0 8px;
        color: rgba(52, 57, 65, 0.42);
        text-shadow: none;
        font-size: 13px;
        line-height: 1;
        letter-spacing: 0.05em;
    }
    .chat-thread-empty { margin-top: 24px; color: rgba(52, 57, 65, 0.36); font-size: 12px; }
    .chat-thread-fold-row {
        width: 100%;
        display: flex;
        justify-content: center;
        margin: 0 0 6px;
        flex: 0 0 auto;
    }
    .chat-thread-fold-toggle { cursor: pointer; }
    button.chat-thread-bubble.is-system-text {
        border: 0;
        appearance: none;
        -webkit-appearance: none;
        font-family: inherit;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    button.chat-thread-bubble.is-system-text:active { opacity: 0.68; }
    .chat-thread-row {
        width: 100%;
        display: flex;
        align-items: flex-end;
        gap: 7px;
        flex: 0 0 auto;
        min-width: 0;
        overflow: visible;
    }
    .chat-thread-row.is-me {
        justify-content: flex-start;
        flex-direction: row-reverse;
        padding-left: 8px;
        padding-right: 0;
        box-sizing: border-box;
    }
    .chat-thread-row.is-ta {
        justify-content: flex-start;
        flex-direction: row;
        padding-left: 0;
        padding-right: 0;
        box-sizing: border-box;
    }
    .chat-thread-message-avatar {
        width: 45px;
        height: 45px;
        flex: 0 0 45px;
        box-sizing: border-box;
        border-radius: 50%;
        overflow: visible;
        background: #EEF1F3;
        color: rgba(52, 57, 65, 0.48);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 11px;
        font-style: italic;
        line-height: 1;
        box-shadow: none;
        border: 0;
        position: relative;
    }
    .chat-thread-row.is-ta .chat-thread-message-avatar { display: var(--chat-avatar-display-ta); }
    .chat-thread-row.is-me .chat-thread-message-avatar { display: var(--chat-avatar-display-me); }
    .chat-thread-message-avatar.has-image {
        color: transparent;
    }
    .chat-thread-message-avatar .avatar-img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        object-fit: cover;
        opacity: 0;
        transform-origin: center;
        pointer-events: none;
    }
    .chat-thread-message-avatar.has-image .avatar-img { opacity: 1; }
    .chat-thread-row.is-ta .chat-thread-message-avatar .avatar-img {
        transform-origin: left center;
        transform: translate(var(--chat-avatar-ta-x), var(--chat-avatar-ta-y)) scale(var(--chat-avatar-ta-scale)) rotate(var(--chat-avatar-ta-rotate));
    }
    .chat-thread-row.is-me .chat-thread-message-avatar .avatar-img {
        transform-origin: right center;
        transform: translate(var(--chat-avatar-me-x), var(--chat-avatar-me-y)) scale(var(--chat-avatar-me-scale)) rotate(var(--chat-avatar-me-rotate));
    }
    .chat-thread-message-avatar .avatar-fallback {
        position: relative;
        z-index: 1;
        color: rgba(52, 57, 65, 0.48);
    }
    .chat-thread-message-avatar.has-image .avatar-fallback { opacity: 0; }
    .chat-thread-message-avatar .avatar-frame {
        position: absolute;
        inset: -3px;
        z-index: 2;
        display: var(--chat-avatar-frame-display);
        border-radius: 50%;
        pointer-events: none;
        border: 1px solid rgba(255,255,255,0.70);
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--mist-film {
        inset: -4px;
        border-color: rgba(180, 187, 188, 0.48);
        box-shadow: 0 0 0 1px rgba(255,255,255,0.82) inset;
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--pearl-line {
        inset: -5px;
        border-color: rgba(238, 232, 220, 0.90);
        box-shadow: 0 0 0 1px rgba(173, 165, 152, 0.24);
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--rain-glass {
        inset: -5px;
        border-color: rgba(166, 177, 183, 0.40);
        backdrop-filter: blur(1px);
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--soft-lace {
        inset: -5px;
        border-style: dotted;
        border-color: rgba(196, 188, 178, 0.64);
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--black-ribbon {
        inset: -4px;
        border-color: rgba(20, 20, 20, 0.74);
    }
    .chat-thread-message-avatar .avatar-frame.chat-avatar-frame--black-ribbon::after {
        content: '';
        position: absolute;
        left: 50%;
        bottom: -3px;
        width: 11px;
        height: 5px;
        border-top: 1px solid rgba(20,20,20,0.62);
        transform: translateX(-50%);
    }
    .chat-thread-msg-stack {
        max-width: min(calc(100% - 52px), calc(22em + 24px));
        display: flex;
        flex-direction: column;
        gap: 0;
        overflow: visible;
        min-width: 0;
    }
    .chat-thread-row.is-me .chat-thread-msg-stack { align-items: flex-end; }
    .chat-thread-row.is-ta .chat-thread-msg-stack { align-items: flex-start; }
    .chat-thread-line {
        position: relative;
        max-width: min(100%, calc(22em + 24px));
        display: flex;
        align-items: flex-end;
        gap: 6px;
        min-width: 0;
        overflow: visible;
    }
    .chat-thread-row.is-me .chat-thread-line { justify-content: flex-end; }
    .chat-thread-row.is-ta .chat-thread-line { justify-content: flex-start; }
    .chat-thread-line .chat-thread-bubble {
        min-width: 0;
        max-width: 100%;
    }
    .chat-thread-bubble {
        max-width: 100%;
        min-height: 34px;
        box-sizing: border-box;
        padding: 7px 12px;
        border-radius: var(--chat-bubble-radius-ta);
        border: 0;
        background: var(--chat-bubble-ta);
        color: #000;
        text-shadow: none;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        font-size: var(--chat-thread-font-size);
        line-height: 1.34;
        letter-spacing: 0;
        white-space: pre-wrap;
        overflow-wrap: normal;
        word-break: normal;
        flex: 0 1 auto;
        position: relative;
        z-index: 1;
    }
    .chat-thread-bubble.is-text {
        width: fit-content;
        max-width: min(calc(22em + 24px), calc(100vw - 118px));
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        text-align: left;
        white-space: pre;
        overflow-wrap: normal;
        word-break: keep-all;
    }
    .chat-thread-row.is-ta .chat-thread-bubble {
        background: var(--chat-bubble-ta);
        color: var(--chat-text-ta);
        border-radius: var(--chat-bubble-radius-ta);
    }
    .chat-thread-row.is-me .chat-thread-bubble {
        background: var(--chat-bubble-me);
        color: var(--chat-text-me);
        border-radius: var(--chat-bubble-radius-me);
    }
    .chat-thread-row.is-ta .chat-thread-bubble::before {
        content: "";
        position: absolute;
        width: 12px;
        height: 15px;
        bottom: -15px;
        left: -7px;
        background: var(--chat-bubble-ta);
        clip-path: path("M 11,16 Q 10,0 1,1 Q 6.6,3 1,19 L 19,16");
        transform: rotate(19deg) scaleY(-1);
        transform-origin: top left;
        z-index: -1;
    }
    .chat-thread-row.is-me .chat-thread-bubble::after {
        content: "";
        position: absolute;
        width: 12px;
        height: 15px;
        bottom: -15px;
        right: 6px;
        background: var(--chat-bubble-me);
        clip-path: path("M 15,13 Q 12,0 2,2 Q 7,3 5,22 L 13,12");
        transform: rotate(-2deg) scale(-1);
        transform-origin: top right;
        z-index: -1;
    }
    .chat-style-decoration-layer {
        position: absolute;
        inset: 0;
        pointer-events: none;
        overflow: hidden;
        z-index: 2;
    }
    .chat-style-global-decoration {
        position: absolute;
        max-width: 140px;
        transform-origin: center;
        user-select: none;
    }
    .chat-style-bubble-decoration {
        position: absolute;
        max-width: 96px;
        transform-origin: center;
        user-select: none;
        pointer-events: none;
    }
    .chat-thread-row.is-ta .chat-style-bubble-decoration { left: 0; top: 0; }
    .chat-thread-row.is-me .chat-style-bubble-decoration { right: 0; top: 0; }
    .chat-thread-time {
        position: absolute;
        bottom: 1px;
        display: inline-flex;
        align-items: flex-end;
        color: rgba(52, 57, 65, 0.34);
        font-size: 10px;
        line-height: 1;
        text-shadow: none;
        white-space: nowrap;
        pointer-events: none;
        letter-spacing: 0.01em;
        flex: 0 0 auto;
        margin: 0;
        padding: 0;
    }
    .chat-thread-row.is-me .chat-thread-time { left: -33px; }
    .chat-thread-row.is-ta .chat-thread-time { right: -33px; }
    .chat-thread-bubble.is-sticker {
        width: 150px;
        height: 150px;
        padding: 0;
        overflow: hidden;
        border-radius: 14px;
        background: transparent;
        box-shadow: none;
    }
    .chat-thread-row.is-ta .chat-thread-bubble.is-sticker::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-sticker::after { display: none; }
    .chat-thread-sticker-img {
        width: 150px;
        height: 150px;
        display: block;
        border-radius: 14px;
        object-fit: cover;
        background: #fff;
    }

    .chat-thread-bubble.is-photo-card,
    .chat-thread-bubble.is-image-card {
        width: 170px;
        height: 170px;
        min-height: 170px;
        padding: 0;
        overflow: hidden;
        border-radius: 15px;
        background: transparent;
        box-shadow: none;
    }
    .chat-thread-bubble.is-location-card {
        width: 180px;
        height: 140px;
        min-height: 140px;
        padding: 0;
        overflow: hidden;
        border-radius: 16px;
        background: transparent;
        box-shadow: none;
    }
    .chat-thread-row.is-ta .chat-thread-bubble.is-sticker,
    .chat-thread-row.is-me .chat-thread-bubble.is-sticker,
    .chat-thread-row.is-ta .chat-thread-bubble.is-photo-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-photo-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-image-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-image-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-location-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-location-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-redpacket-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-redpacket-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-transfer-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-transfer-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-stock-inquiry-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-stock-inquiry-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-diary-forward-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-diary-forward-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-schedule-forward-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-schedule-forward-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-chat-record-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-chat-record-card,
    .chat-thread-row.is-ta .chat-thread-bubble.is-account-impersonation-card,
    .chat-thread-row.is-me .chat-thread-bubble.is-account-impersonation-card {
        background: transparent;
        color: inherit;
        padding: 0;
        border: 0;
        box-shadow: none;
        text-shadow: none;
    }
    .chat-thread-row.is-ta .chat-thread-bubble.is-photo-card::before,
    .chat-thread-row.is-ta .chat-thread-bubble.is-image-card::before,
    .chat-thread-row.is-ta .chat-thread-bubble.is-location-card::before,
    .chat-thread-row.is-ta .chat-thread-bubble.is-redpacket-card::before,
    .chat-thread-row.is-ta .chat-thread-bubble.is-transfer-card::before,
    .chat-thread-row.is-ta .chat-thread-bubble.is-stock-inquiry-card::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-photo-card::after,
    .chat-thread-row.is-me .chat-thread-bubble.is-image-card::after,
    .chat-thread-row.is-me .chat-thread-bubble.is-location-card::after,
    .chat-thread-row.is-me .chat-thread-bubble.is-redpacket-card::after,
    .chat-thread-row.is-me .chat-thread-bubble.is-transfer-card::after,
    .chat-thread-row.is-me .chat-thread-bubble.is-stock-inquiry-card::after,
    .chat-thread-row.is-ta .chat-thread-bubble.is-diary-forward-card::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-diary-forward-card::after,
    .chat-thread-row.is-ta .chat-thread-bubble.is-schedule-forward-card::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-schedule-forward-card::after,
    .chat-thread-row.is-ta .chat-thread-bubble.is-chat-record-card::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-chat-record-card::after,
    .chat-thread-row.is-ta .chat-thread-bubble.is-account-impersonation-card::before,
    .chat-thread-row.is-me .chat-thread-bubble.is-account-impersonation-card::after { content: none; display: none; }
    .chat-thread-media-card {
        position: relative;
        width: 170px;
        height: 170px;
        padding: 0;
        border: 0;
        border-radius: 15px;
        overflow: hidden;
        display: block;
        background: #F6F7F9;
        color: #000;
        appearance: none;
        -webkit-appearance: none;
        box-shadow: 0 10px 24px rgba(52, 57, 65, 0.09);
        -webkit-tap-highlight-color: transparent;
    }
    .chat-thread-media-card img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        border-radius: inherit;
    }
    .chat-thread-photo-front,
    .chat-thread-photo-back {
        position: absolute;
        inset: 0;
        display: block;
        border-radius: inherit;
        transition: opacity 0.22s ease;
    }
    .chat-thread-photo-front { opacity: 1; }
    .chat-thread-photo-back {
        opacity: 0;
        box-sizing: border-box;
        padding: 13px 12px;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        background: #ffffff;
        color: #000;
        font-size: 12px;
        line-height: 1.48;
        letter-spacing: 0.03em;
        text-align: left;
        white-space: pre-wrap;
        overflow-wrap: anywhere;
        word-break: break-word;
    }
    .chat-thread-photo-back::-webkit-scrollbar { display: none; }
    .chat-thread-photo-card.is-flipped .chat-thread-photo-front { opacity: 0; }
    .chat-thread-photo-card.is-flipped .chat-thread-photo-back { opacity: 1; }
    .chat-thread-location-card {
        position: relative;
        width: 180px;
        height: 140px;
        box-sizing: border-box;
        border-radius: 18px;
        overflow: hidden;
        background: #fffaf3;
        color: #000;
        box-shadow: 0 13px 28px rgba(52, 57, 65, 0.105);
        border: 1px solid rgba(52,57,65,0.06);
        isolation: isolate;
    }
    .chat-thread-location-card::before {
        content: "";
        position: absolute;
        inset: 0;
        background:
            radial-gradient(circle at 16% 10%, rgba(255, 222, 225, 0.38), transparent 30px),
            radial-gradient(circle at 90% 4%, rgba(213, 229, 255, 0.44), transparent 34px);
        z-index: 0;
        pointer-events: none;
    }
    .chat-thread-location-card::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        border-radius: inherit;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.70);
        z-index: 6;
    }
    .chat-thread-location-copy {
        position: relative;
        z-index: 5;
        height: 46px;
        box-sizing: border-box;
        padding: 9px 13px 5px;
        text-align: left;
        background: #ffffff;
        border-bottom: 1px solid rgba(52,57,65,0.045);
        backdrop-filter: none;
    }
    .chat-thread-location-name {
        color: #000;
        font-size: 12px;
        line-height: 1.16;
        font-weight: 650;
        letter-spacing: 0.01em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-thread-location-detail {
        margin-top: 4px;
        color: rgba(52,57,65,0.48);
        font-size: 9.5px;
        line-height: 1.1;
        letter-spacing: 0.04em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-thread-location-map {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 94px;
        overflow: hidden;
        background:
            linear-gradient(130deg, rgba(232,244,232,0.92) 0%, rgba(248,239,224,0.95) 45%, rgba(233,239,250,0.94) 100%);
    }
    .chat-thread-location-map::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image:
            linear-gradient(rgba(255,255,255,0.52) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255,255,255,0.48) 1px, transparent 1px);
        background-size: 16px 16px;
        opacity: 0.74;
        z-index: 0;
    }
    .chat-thread-location-map::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
            radial-gradient(circle at 54% 43%, rgba(255,255,255,0.62), transparent 32px),
            linear-gradient(180deg, rgba(255,255,255,0.03), rgba(52,57,65,0.025));
        pointer-events: none;
        z-index: 5;
    }
    .chat-thread-map-block {
        position: absolute;
        display: block;
        border-radius: 10px;
        border: 1px solid rgba(255,255,255,0.72);
        box-shadow: 0 7px 16px rgba(52,57,65,0.045);
        z-index: 1;
    }
    .chat-thread-map-block.b1 { width: 48px; height: 25px; left: 8px; top: 8px; transform: rotate(-8deg); background: rgba(255, 219, 224, 0.74); }
    .chat-thread-map-block.b2 { width: 41px; height: 31px; right: 11px; top: 12px; transform: rotate(7deg); background: rgba(213, 227, 255, 0.78); }
    .chat-thread-map-block.b3 { width: 54px; height: 25px; left: 62px; bottom: 9px; transform: rotate(12deg); background: rgba(224, 240, 214, 0.78); }
    .chat-thread-map-block.b4 { width: 32px; height: 21px; left: 20px; bottom: 19px; transform: rotate(20deg); background: rgba(255, 239, 190, 0.76); }
    .chat-thread-map-block.b5 { width: 35px; height: 21px; right: 35px; bottom: 13px; transform: rotate(-13deg); background: rgba(232, 220, 246, 0.74); }
    .chat-thread-map-water {
        position: absolute;
        left: -16px;
        top: 56px;
        width: 216px;
        height: 19px;
        border-radius: 999px;
        background: linear-gradient(90deg, rgba(200, 225, 238, 0.48), rgba(213, 236, 231, 0.46));
        transform: rotate(-9deg);
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.42);
        z-index: 1;
    }
    .chat-thread-map-road {
        position: absolute;
        display: block;
        border-radius: 999px;
        background: rgba(255,252,246,0.96);
        box-shadow: 0 0 0 1px rgba(52,57,65,0.025), 0 4px 9px rgba(52,57,65,0.025);
        transform-origin: center;
        z-index: 2;
    }
    .chat-thread-map-road.r1 { width: 174px; height: 8px; left: -24px; top: 25px; transform: rotate(-17deg); }
    .chat-thread-map-road.r2 { width: 162px; height: 8px; right: -32px; bottom: 20px; transform: rotate(17deg); }
    .chat-thread-map-road.r3 { width: 100px; height: 7px; left: 62px; top: 47px; transform: rotate(69deg); opacity: 0.98; }
    .chat-thread-map-road.r4 { width: 88px; height: 6px; left: -1px; bottom: 15px; transform: rotate(-44deg); opacity: 0.90; }
    .chat-thread-map-road.r5 { width: 114px; height: 6px; left: 31px; top: 42px; transform: rotate(10deg); opacity: 0.74; }
    .chat-thread-map-route {
        position: absolute;
        left: 30px;
        top: 44px;
        width: 122px;
        height: 4px;
        border-radius: 999px;
        background: repeating-linear-gradient(90deg, rgba(252, 143, 134, 0.78) 0 8px, transparent 8px 13px);
        transform: rotate(8deg);
        z-index: 3;
        opacity: 0.88;
        box-shadow: 0 0 0 2px rgba(255,255,255,0.28);
    }
    .chat-thread-map-dot {
        position: absolute;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: rgba(52,57,65,0.23);
        box-shadow: 0 0 0 4px rgba(255,255,255,0.54);
        z-index: 4;
    }
    .chat-thread-map-dot.p1 { left: 24px; top: 22px; }
    .chat-thread-map-dot.p2 { right: 27px; top: 50px; }
    .chat-thread-map-dot.p3 { left: 65px; bottom: 17px; }
    .chat-thread-map-dot.p4 { right: 53px; top: 19px; opacity: 0.72; }
    .chat-thread-map-label {
        position: absolute;
        left: 11px;
        bottom: 8px;
        z-index: 4;
        padding: 2px 6px;
        border-radius: 999px;
        background: rgba(255,255,255,0.76);
        color: rgba(52,57,65,0.38);
        font-size: 7px;
        line-height: 1.2;
        letter-spacing: 0.16em;
        box-shadow: 0 3px 8px rgba(52,57,65,0.035);
    }
    .chat-thread-location-pin {
        position: absolute;
        left: 50%;
        top: 50%;
        width: 18px;
        height: 18px;
        border-radius: 50% 50% 50% 0;
        background: #000;
        transform: translate(-50%, -45%) rotate(-45deg);
        box-shadow: 0 7px 16px rgba(52,57,65,0.25), 0 0 0 5px rgba(255,255,255,0.40), 0 0 0 9px rgba(255, 219, 224, 0.30);
        z-index: 5;
    }
    .chat-thread-location-pin::before {
        content: "";
        position: absolute;
        width: 7px;
        height: 7px;
        border-radius: 50%;
        left: 5.5px;
        top: 5.5px;
        background: #fffaf3;
    }
    .chat-image-preview-overlay {
        position: fixed;
        inset: 0;
        z-index: 10050;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        padding: max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
        background: rgba(17, 18, 20, 0.72);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
    .chat-image-preview-overlay.show {
        opacity: 1;
        pointer-events: auto;
    }
    .chat-image-preview-overlay img {
        display: block;
        max-width: min(92vw, 430px);
        max-height: min(86vh, 760px);
        width: auto;
        height: auto;
        object-fit: contain;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 26px 70px rgba(0,0,0,0.34);
        transform: translateY(12px) scale(0.985);
        opacity: 0;
        transition: transform 0.22s ease, opacity 0.22s ease;
    }
    .chat-image-preview-overlay.show img {
        transform: translateY(0) scale(1);
        opacity: 1;
    }

    .chat-thread-sticker-panel {
        position: absolute;
        left: 20px;
        right: 20px;
        bottom: calc(var(--one-visual-bottom-gap, 0px) + var(--chat-composer-bottom-gap, 20px) + 66px);
        z-index: 9;
        box-sizing: border-box;
        padding: 12px;
        border-radius: 24px;
        border: 1px solid rgba(52, 57, 65, 0.08);
        background: rgba(248, 249, 251, 0.98);
        box-shadow: 0 6px 15px rgba(40, 44, 52, 0.035), 0 1px 0 rgba(255,255,255,0.86) inset;
        max-height: 292px;
        overflow: hidden;
        opacity: 0;
        transform: translateY(12px) scale(0.985);
        transform-origin: right bottom;
        pointer-events: none;
        transition: opacity 0.18s ease, transform 0.18s ease;
    }
    .chat-thread-sticker-panel.show {
        opacity: 1;
        transform: translateY(0) scale(1);
        pointer-events: auto;
    }
    .chat-thread-sticker-tabs {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        scrollbar-width: none;
        padding-bottom: 10px;
    }
    .chat-thread-sticker-tabs::-webkit-scrollbar { display: none; }
    .chat-thread-sticker-tab {
        flex: 0 0 auto;
        height: 28px;
        padding: 0 12px;
        border-radius: 999px;
        border: 1px solid rgba(52,57,65,0.08);
        background: #fff;
        color: rgba(52,57,65,0.66);
        font-size: 11px;
        line-height: 1;
        appearance: none;
        -webkit-appearance: none;
    }
    .chat-thread-sticker-tab.active {
        background: #000;
        border-color: #000;
        color: #fff;
    }
    .chat-thread-sticker-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
        max-height: 214px;
        overflow-y: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .chat-thread-sticker-grid::-webkit-scrollbar { display: none; }
    .chat-thread-sticker-item {
        width: 100%;
        min-height: 84px;
        border: 0;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 3px 8px rgba(76, 72, 64, 0.028);
        overflow: hidden;
        padding: 6px 5px 7px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 5px;
        appearance: none;
        -webkit-appearance: none;
    }
    .chat-thread-sticker-item img {
        width: 52px;
        height: 52px;
        flex: 0 0 52px;
        display: block;
        object-fit: cover;
        border-radius: 11px;
        background: #f7f6f1;
    }
    .chat-thread-sticker-desc {
        width: 100%;
        min-height: 14px;
        color: rgba(52,57,65,0.58);
        font-size: 10px;
        line-height: 1.25;
        text-align: center;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        pointer-events: none;
    }
    .chat-thread-sticker-empty {
        display: none;
        padding: 26px 10px 28px;
        text-align: center;
        color: rgba(52,57,65,0.42);
        font-size: 12px;
        line-height: 1.6;
    }
    .chat-thread-sticker-empty.show { display: block; }
    .chat-thread-view.sticker-panel-open .chat-thread-messages {
        padding-bottom: max(328px, calc(env(safe-area-inset-bottom) + 318px));
    }
    .chat-thread-attach-panel {
        position: absolute;
        left: 20px;
        right: 20px;
        bottom: calc(var(--one-visual-bottom-gap, 0px) + var(--chat-composer-bottom-gap, 20px) + 66px);
        z-index: 8;
        box-sizing: border-box;
        padding: 14px 14px 12px;
        border-radius: 28px;
        border: 1px solid rgba(52, 57, 65, 0.08);
        background: rgba(248, 249, 251, 0.98);
        box-shadow: 0 6px 15px rgba(40, 44, 52, 0.035), 0 1px 0 rgba(255,255,255,0.86) inset;
        height: 172px;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        scrollbar-width: none;
        opacity: 0;
        transform: translateY(12px) scale(0.985);
        transform-origin: left bottom;
        pointer-events: none;
        transition: opacity 0.18s ease, transform 0.18s ease;
    }
    .chat-thread-attach-panel::-webkit-scrollbar { display: none; }
    .chat-thread-attach-panel.show {
        opacity: 1;
        transform: translateY(0) scale(1);
        pointer-events: auto;
    }
    .chat-thread-attach-panel::before { content: none; display: none; }
    .chat-thread-attach-grid {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px 10px;
        align-content: start;
    }
    .chat-thread-tool {
        min-width: 0;
        border: 0;
        background: transparent;
        color: #000;
        padding: 0;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 7px;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
        outline: none;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-thread-tool-icon {
        width: 48px;
        height: 48px;
        aspect-ratio: 1 / 1;
        flex: 0 0 48px;
        box-sizing: border-box;
        border-radius: 16px;
        background: #fff;
        border: 1px solid rgba(52, 57, 65, 0.08);
        box-shadow: 0 3px 8px rgba(76, 72, 64, 0.032), 0 1px 0 rgba(255,255,255,0.86) inset;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        transition: transform 0.16s ease, background 0.16s ease, opacity 0.16s ease;
    }
    .chat-thread-tool-icon svg {
        width: 22px;
        height: 22px;
        min-width: 22px;
        min-height: 22px;
        max-width: 22px;
        max-height: 22px;
        display: inline-block;
        flex: 0 0 22px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.75;
        stroke-linecap: round;
        stroke-linejoin: round;
        overflow: visible;
        transform: none;
        transform-origin: center;
        shape-rendering: geometricPrecision;
        stroke-miterlimit: 10;
    }
    .chat-thread-tool-icon svg * {
        vector-effect: non-scaling-stroke;
    }
    .chat-thread-tool-icon .chat-tool-svg {
        width: 22px;
        height: 22px;
        min-width: 22px;
        min-height: 22px;
        max-width: 22px;
        max-height: 22px;
        display: block;
        flex: 0 0 22px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.75;
        stroke-linecap: round;
        stroke-linejoin: round;
        overflow: visible;
        transform: none;
        transform-origin: center;
        shape-rendering: geometricPrecision;
        stroke-miterlimit: 10;
    }
    .chat-thread-tool-icon .chat-tool-svg .chat-tool-fill {
        fill: currentColor;
        stroke: none;
    }

    .chat-thread-tool-icon i {
        width: 22px;
        height: 22px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        line-height: 1;
        color: #000;
        font-style: normal;
        font-family: "Font Awesome 6 Free";
        font-weight: 900;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        transform: none;
    }
    .chat-thread-tool-label {
        display: block;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: rgba(52, 57, 65, 0.64);
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.02em;
    }
    .chat-thread-tool:active .chat-thread-tool-icon {
        transform: translateY(1px) scale(0.96);
        background: #EEF0F3;
    }

    .chat-thread-plus.is-open {
        background: #fff;
        color: rgba(31, 36, 42, 0.92);
        transform: rotate(45deg);
    }
    .chat-thread-view.attach-open .chat-thread-messages {
        padding-bottom: max(218px, calc(env(safe-area-inset-bottom) + 208px));
    }
    .chat-thread-composer {
        position: absolute;
        left: 0;
        right: 0;
        bottom: var(--one-visual-bottom-gap, 0px);
        z-index: 7;
        min-height: 64px;
        padding: 8px 20px var(--chat-composer-bottom-gap, 20px);
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) 96px;
        align-items: end;
        gap: 10px;
        pointer-events: none;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .chat-thread-plus {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 28px;
        line-height: 1;
        font-weight: 300;
        color: rgba(31, 36, 42, 0.90);
    }
    .chat-thread-input {
        width: 100%;
        min-height: 44px;
        max-height: 92px;
        box-sizing: border-box;
        resize: none;
        overflow-y: hidden;
        border-radius: 999px;
        border: 0;
        background: #FFFFFF;
        color: rgba(31, 36, 42, 0.86);
        box-shadow: 0 9px 20px rgba(76, 72, 64, 0.055), inset 0 1px 0 rgba(255,255,255,0.95);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        padding: 11px 18px;
        outline: none;
        font-size: 16px;
        line-height: 1.42;
        pointer-events: auto;
        scrollbar-width: none;
    }
    .chat-thread-input::placeholder { color: rgba(52,57,65,0.42); }
    .chat-thread-input::-webkit-scrollbar { display: none; }
    .chat-thread-input.is-multiline { border-radius: 22px; }
    .chat-thread-sendbar {
        height: 44px;
        border-radius: 999px;
        border: 0;
        background: #000;
        display: grid;
        grid-template-columns: 48px 48px;
        align-items: center;
        overflow: hidden;
        box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        pointer-events: auto;
    }
    .chat-thread-emoji,
    .chat-thread-send {
        width: 48px;
        height: 44px;
        border: 0;
        background: transparent;
        color: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        appearance: none;
        -webkit-appearance: none;
    }
    .chat-thread-emoji svg {
        width: 27px;
        height: 27px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.75;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .modal-round-action {
        width: 52px;
        min-width: 52px;
        height: 52px;
        grid-template-columns: 44px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        padding: 4px;
        background: #FFFFFF;
        box-shadow: 0 10px 22px rgba(52,57,65,0.12), inset 0 1px 0 rgba(255,255,255,0.96);
    }
    .modal-round-action-icon {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        background: #111111;
        color: #FFFFFF;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .modal-media-form {
        gap: 12px;
    }
    .modal-media-field {
        position: relative;
        display: block;
        width: 100%;
    }
    .modal-media-field > span {
        display: block;
        margin: 0 0 8px;
        color: #8a909b;
        font-size: 10px;
        letter-spacing: 0.8px;
        text-transform: uppercase;
    }
    .modal-media-textarea {
        min-height: 132px;
        max-height: 30vh;
        resize: none;
        padding-bottom: 64px;
    }
    .modal-media-center-action {
        position: absolute;
        left: 50%;
        bottom: 12px;
        transform: translateX(-50%);
    }
    .modal-capture-action {
        margin: 0 auto;
    }
    .modal-capture-step audio {
        width: 100%;
        display: none;
    }
    .modal-camera-preview {
        width: 100%;
        height: min(42vh, 300px);
        border-radius: 18px;
        overflow: hidden;
        background: #111;
        position: relative;
        box-shadow: 0 14px 34px rgba(52,57,65,0.13);
    }
    .modal-camera-preview video,
    .modal-camera-preview img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .modal-camera-preview img {
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.18s ease;
    }
    .modal-camera-preview img.show { opacity: 1; }
    .footer-btn-side {
        width: 38px;
        height: 38px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #333;
        font-size: 22px;
        flex-shrink: 0;
        border-radius: 50%;
        cursor: pointer;
    }
    .footer-btn-side:active { background: #f5f5f5; }
    .chat-thread-send.footer-btn-side {
        width: 36px;
        height: 36px;
        margin: auto;
        border-radius: 50%;
        background: #fff;
        color: #000;
        font-size: 17px;
        box-shadow: none;
    }
    .chat-thread-send .fas {
        font-size: 17px;
        line-height: 1;
        transform: none;
    }
    .chat-thread-emoji:active { background: rgba(255,255,255,0.14); }
    .chat-thread-send:active { background: #ECECEC; }
    @media (max-width: 360px) {
        .chat-thread-back { left: 18px; top: max(22px, calc(env(safe-area-inset-top) + 18px)); width: 44px; height: 44px; }
        .chat-thread-actions { right: 18px; top: max(22px, calc(env(safe-area-inset-top) + 18px)); height: 44px; gap: 7px; }
        .chat-thread-actions .chat-glass-btn { width: 44px; height: 44px; }
        .chat-thread-identity { top: max(18px, calc(env(safe-area-inset-top) + 14px)); width: auto; height: auto; gap: 5px; }
        .chat-thread-avatar { width: 44px; height: 44px; }
        .chat-thread-name { max-width: min(76vw, 240px); font-size: 14px; }
        .chat-thread-messages { top: 0; padding: max(92px, calc(env(safe-area-inset-top) + 84px)) 12px max(92px, calc(env(safe-area-inset-bottom) + 84px)) 15px; }
        .chat-thread-composer { grid-template-columns: 44px minmax(0, 1fr) 90px; gap: 10px; padding-left: 18px; padding-right: 18px; }
        .chat-thread-attach-panel { left: 18px; right: 18px; bottom: calc(var(--one-visual-bottom-gap, 0px) + var(--chat-composer-bottom-gap, 20px) + 62px); padding: 12px 12px; border-radius: 24px; height: 168px; }
        .chat-thread-attach-grid { gap: 12px 8px; }
        .chat-thread-tool-icon { width: 46px; height: 46px; flex-basis: 46px; border-radius: 16px; }
        .chat-thread-tool-icon svg { width: 22px; height: 22px; min-width: 22px; min-height: 22px; max-width: 22px; max-height: 22px; flex-basis: 22px; }
        .chat-thread-tool-icon i { width: 22px; height: 22px; font-size: 19px; font-family: "Font Awesome 6 Free"; font-weight: 900; }
        .chat-thread-tool-label { font-size: 10px; }
        .chat-thread-plus { width: 44px; height: 44px; }
        .chat-thread-sendbar { grid-template-columns: 45px 45px; }
        .chat-thread-emoji { width: 45px; }
        .chat-thread-send { width: 34px; height: 34px; }
    }

    .chat-dyn-hero {
        position: relative;
        min-height: 312px;
        padding: max(32px, calc(env(safe-area-inset-top) + 18px)) 24px 0;
        overflow: hidden;
        background: transparent;
    }
    .chat-dyn-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: 1;
        opacity: 0.36;
        pointer-events: none;
        background-image:
            linear-gradient(120deg, transparent 0 44%, rgba(255,255,255,0.46) 44% 46%, transparent 46% 100%),
            linear-gradient(rgba(255,255,255,0.24) 1px, transparent 1px);
        background-size: 160px 160px, 38px 38px;
    }
    .chat-dyn-hero-bg {
        position: absolute;
        inset: 0;
        z-index: 0;
        background-image:
            linear-gradient(180deg, rgba(252,251,247,0) 0%, rgba(252,251,247,0.18) 58%, #FCFBF7 100%),
            radial-gradient(circle at 22% 28%, rgba(255,255,255,0.72) 0%, transparent 34%),
            radial-gradient(circle at 78% 22%, rgba(216,185,190,0.52) 0%, transparent 32%),
            linear-gradient(132deg, #DDE5EA 0%, #F1E7DF 54%, #F8F2EA 100%);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-dyn-hero-bg.has-image {
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
    }
    .chat-dyn-hero-bg:active { opacity: 0.9; }
    .chat-dyn-profile {
        position: absolute;
        left: 24px;
        right: 24px;
        bottom: 18px;
        text-align: center;
        z-index: 2;
        color: #343941;
    }
    .chat-dyn-avatar {
        width: 96px;
        height: 96px;
        margin: 0 auto 14px;
        border-radius: 50%;
        background: #EFF1F2;
        border: 2px solid rgba(252,251,247,0.9);
        box-shadow: 0 16px 28px rgba(85,92,99,0.10), inset 0 0 0 1px rgba(255,255,255,0.66);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
    }
    .chat-dyn-name {
        font-size: 17px;
        font-weight: 600;
        margin-bottom: 7px;
        letter-spacing: 0.02em;
    }
    .chat-dyn-signature {
        display: inline-block;
        border: 0;
        background: transparent;
        padding: 0;
        font-family: inherit;
        color: #7F8791;
        font-size: 12px;
        letter-spacing: 0.04em;
        cursor: pointer;
    }
    .chat-dyn-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: end;
        margin: 18px 24px 0;
        border-bottom: 1px solid rgba(150,158,168,0.20);
    }
    .chat-dyn-tab {
        position: relative;
        height: 48px;
        border: 0;
        background: transparent;
        color: #8C95A3;
        font-size: 13px;
        letter-spacing: 0.08em;
        cursor: pointer;
    }
    .chat-dyn-tab.active { color: #333940; }
    .chat-dyn-tab.active::after {
        content: '';
        position: absolute;
        left: 50%;
        bottom: -1px;
        width: 48px;
        height: 2px;
        transform: translateX(-50%);
        border-radius: 999px;
        background: var(--one-quality-button, #111111);
    }
    .chat-dyn-empty-wrap { position: relative; min-height: 280px; }

    .chat-me-view {
        padding-top: max(60px, calc(env(safe-area-inset-top) + 44px));
    }
    .chat-me-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 22px;
    }
    .chat-me-identity {
        min-width: 0;
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        gap: 16px;
    }
    .chat-me-copy {
        min-width: 0;
        min-height: 84px;
        padding-top: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    .chat-me-name {
        max-width: 168px;
        box-sizing: content-box;
        padding-right: 0.12em;
        margin-right: -0.06em;
        font-family: var(--one-global-font-family, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif);
        font-size: clamp(21px, 5.9vw, 25px);
        line-height: 1.04;
        font-style: normal;
        font-weight: 400;
        letter-spacing: -0.028em;
        color: #23272E;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-me-signature {
        margin: 7px 0 0;
        max-width: 192px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #646B76;
        font-size: 12.5px;
        line-height: 1.32;
        font-weight: 400;
        letter-spacing: 0.018em;
        text-align: left;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
        appearance: none;
        -webkit-appearance: none;
    }
    .chat-me-follow-row {
        margin-top: 10px;
        display: flex;
        align-items: center;
        gap: 7px;
        min-width: 0;
        opacity: 1;
    }
    .chat-me-follow-avatars {
        display: inline-flex;
        align-items: center;
        padding-left: 0;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-me-follow-avatars i {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #6F7884;
        font-size: 7.2px;
        font-weight: 600;
        letter-spacing: -0.02em;
        width: 25px;
        height: 25px;
        margin-left: -8px;
        border-radius: 50%;
        background: #ECEFF2;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        border: 0;
        box-shadow: none;
        overflow: hidden;
        opacity: 1;
        filter: none;
        mix-blend-mode: normal;
    }
    .chat-me-follow-avatars i:first-child { margin-left: 0; }
    .chat-me-follow-avatars i:nth-child(2) { background-color: #F4F0EA; }
    .chat-me-follow-avatars i:nth-child(3) { background-color: #EEF1EA; font-size: 6.8px; }
    .chat-me-follow-avatars i.has-image {
        background-color: transparent;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        color: transparent;
        opacity: 1;
        filter: none;
        mix-blend-mode: normal;
    }
    .chat-me-follow-copy {
        min-width: 0;
        color: #777F89;
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.018em;
        white-space: nowrap;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-me-follow-avatars:active,
    .chat-me-follow-copy:active { opacity: 0.68; }

    .chat-me-avatar-frame {
        position: relative;
        flex: 0 0 84px;
        width: 84px;
        height: 84px;
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        background: #F5F4F0;
        border: 1px solid rgba(255,255,255,0.82);
        box-shadow: 0 10px 22px rgba(90,98,108,0.08), inset 0 0 0 1px rgba(74,78,89,0.04);
        padding: 0;
        transform: none;
    }
    .chat-me-avatar-frame::before,
    .chat-me-avatar-frame::after {
        content: '';
        position: absolute;
        inset: -2px;
        box-sizing: border-box;
        border-radius: 50%;
        pointer-events: none;
        z-index: 1;
    }
    .chat-me-avatar-frame::before {
        border: 1px solid rgba(74,78,89,0.24);
    }
    .chat-me-avatar-frame::after {
        inset: 5px;
        border: 1px solid rgba(255,255,255,0.72);
    }
    .chat-me-avatar {
        position: relative;
        z-index: 2;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        background: #EDEFF1;
        border: 0;
        box-shadow: none;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        transform: none;
        overflow: hidden;
    }
    .chat-me-avatar.has-image {
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }
    .chat-me-status-pill {
        flex: 0 0 auto;
        min-width: 78px;
        height: 32px;
        margin-top: 0;
        padding: 0 7px 0 12px;
        border: 0;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        background: #171717;
        color: #FCFBF7;
        box-shadow: none;
        font-family: var(--one-global-font-family, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif);
        font-size: 12px;
        line-height: 1;
        font-weight: 600;
        letter-spacing: 0.04em;
        cursor: pointer;
        pointer-events: auto;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-me-status-plus {
        position: relative;
        width: 20px;
        height: 20px;
        border-radius: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        box-shadow: none;
        flex: 0 0 20px;
    }
    .chat-me-status-plus::before,
    .chat-me-status-plus::after {
        content: '';
        position: absolute;
        left: 50%;
        top: 50%;
        width: 12px;
        height: 1.5px;
        border-radius: 999px;
        background: currentColor;
        transform: translate(-50%, -50%);
    }
    .chat-me-status-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
    .chat-me-status-pill:active { transform: translateY(1px); opacity: 0.82; }

    .chat-me-poem {
        position: relative;
        margin: 10px 0 24px;
        padding: 26px 16px 16px;
        border-radius: 24px;
        background: rgba(255,255,255,0.64);
        border: 1px solid rgba(255,255,255,0.78);
        box-shadow: 0 14px 32px rgba(88,94,104,0.055);
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .chat-me-poem::before {
        content: 'ONE';
        position: absolute;
        top: -10px;
        right: 4px;
        padding: 5px 7px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.18);
        border: 1px solid rgba(52, 57, 65, 0.035);
        color: rgba(52, 57, 65, 0.22);
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        opacity: 0.66;
        font-size: 8.5px;
        line-height: 1;
        font-weight: 650;
        letter-spacing: 0.12em;
        text-transform: uppercase;
    }
    .chat-me-poem-original {
        margin: 0;
        padding: 0;
        border-radius: 0;
        background: transparent;
        border: 0;
        white-space: pre-line;
        color: #333940;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(14px, 3.85vw, 16px);
        line-height: 1.58;
        font-style: normal;
        font-weight: 400;
        letter-spacing: -0.018em;
    }
    .chat-me-translate-meta {
        align-self: flex-start;
        margin-top: 0;
        padding: 7px 11px;
        border-radius: 999px;
        background: rgba(255,255,255,0.76);
        border: 1px solid rgba(255,255,255,0.84);
        display: flex;
        align-items: center;
        gap: 8px;
        color: #848D99;
        font-size: 9.5px;
        line-height: 1.1;
        letter-spacing: 0.045em;
    }
    .chat-me-verify {
        position: relative;
        width: 13px;
        height: 13px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: var(--one-quality-button, #111111);
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.20);
    }
    .chat-me-verify::before {
        content: '';
        width: 5px;
        height: 3px;
        border-left: 1.3px solid #FCFBF7;
        border-bottom: 1.3px solid #FCFBF7;
        transform: rotate(-45deg) translate(0, -1px);
    }
    .chat-me-poem-translation {
        margin: 0;
        padding: 0;
        border-radius: 0;
        background: transparent;
        border: 0;
        white-space: pre-line;
        color: #68717D;
        font-size: 12px;
        line-height: 1.76;
        letter-spacing: 0.025em;
    }
    .chat-me-edit-copy {
        cursor: text;
        -webkit-tap-highlight-color: transparent;
        transition: opacity 0.18s ease;
    }
    .chat-me-edit-copy:active {
        opacity: 0.68;
    }

    .chat-preset-card {
        position: relative;
        min-height: 224px;
        border-radius: 30px;
        padding: 22px 20px 20px;
        margin: 0 0 28px;
        overflow: hidden;
        background:
            linear-gradient(135deg, rgba(255,255,255,0.72), rgba(246,244,239,0.62)),
            #FCFBF7;
        border: 1px solid rgba(255,255,255,0.68);
        box-shadow:
            0 12px 30px rgba(96,103,112,0.075),
            inset 0 1px 0 rgba(255,255,255,0.92);
    }
    .chat-preset-card::before {
        content: '';
        position: absolute;
        left: 20px;
        right: 20px;
        top: 18px;
        height: 1px;
        background: linear-gradient(90deg, rgba(74,78,89,0.24), rgba(181,199,211,0.22), transparent);
        pointer-events: none;
    }
    .chat-preset-card::after {
        content: 'PRESET';
        position: absolute;
        right: 18px;
        bottom: 18px;
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.22em;
        color: rgba(74,78,89,0.22);
        pointer-events: none;
    }
    .chat-preset-motion {
        position: absolute;
        right: -78px;
        top: 28px;
        width: 230px;
        height: 152px;
        opacity: 0.18;
        pointer-events: none;
        overflow: visible;
    }
    .chat-preset-motion g { transform-box: fill-box; transform-origin: center; }
    .chat-preset-edit-btn {
        position: absolute;
        top: 16px;
        right: 16px;
        z-index: 4;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        border: 1px solid rgba(74,78,89,0.13);
        background: #FFFFFF;
        color: #4A4E59;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        box-shadow: 0 8px 18px rgba(70,73,79,0.07), inset 0 1px 0 rgba(255,255,255,0.94);
        -webkit-tap-highlight-color: transparent;
    }
    .chat-preset-edit-btn svg {
        width: 15px;
        height: 15px;
        stroke: currentColor;
        stroke-width: 1.35;
        fill: none;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-preset-edit-btn:active { opacity: 0.62; transform: none; }
    .chat-preset-kicker {
        position: relative;
        z-index: 2;
        max-width: calc(100% - 58px);
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: #8C95A3;
        margin: 20px 0 12px;
    }
    .chat-preset-title {
        position: relative;
        z-index: 2;
        max-width: min(238px, calc(100% - 36px));
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(22px, 6.2vw, 26px);
        line-height: 1.04;
        font-style: italic;
        font-weight: 400;
        letter-spacing: -0.018em;
        color: var(--one-quality-soft-ink, #211F1C);
    }
    .chat-preset-details {
        position: relative;
        z-index: 2;
        width: 100%;
        margin-top: 24px;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
        border: 0;
    }
    .chat-preset-row {
        min-height: 58px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 7px;
        padding: 0 10px;
        border: 1px solid rgba(150,158,168,0.13);
        border-radius: 18px;
        background: rgba(255,255,255,0.46);
        font-size: 11px;
        letter-spacing: 0.08em;
    }
    .chat-preset-row:last-child { border-bottom: 1px solid rgba(150,158,168,0.13); }
    .chat-preset-row span {
        color: #A0A7B0;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.12em;
    }
    .chat-preset-row strong {
        color: #4A4E59;
        font-size: 11px;
        line-height: 1.12;
        font-weight: 500;
        white-space: normal;
    }
    .chat-preset-foot {
        position: relative;
        z-index: 2;
        margin-top: 18px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        color: #8C95A3;
        font-size: 10.5px;
        letter-spacing: 0.12em;
    }
    .chat-preset-line {
        flex: 1;
        height: 1px;
        background: linear-gradient(90deg, rgba(74,78,89,0.24), rgba(181,199,211,0.28), transparent);
    }

    .chat-me-tools {
        display: flex;
        flex-direction: column;
        gap: 0;
        margin-top: 4px;
        border-top: 1px solid rgba(150,158,168,0.16);
    }
    .chat-me-tool {
        position: relative;
        min-height: 62px;
        width: 100%;
        border: 0;
        border-bottom: 1px solid rgba(150,158,168,0.16);
        border-radius: 0;
        background: transparent;
        color: #68717D;
        display: grid;
        grid-template-columns: 34px minmax(0, 1fr) 18px;
        align-items: center;
        gap: 12px;
        padding: 13px 0 14px 10px;
        cursor: pointer;
        text-align: left;
        overflow: hidden;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-me-tool::before {
        content: none;
        display: none;
    }
    .chat-me-tool::after {
        content: '';
        position: absolute;
        inset: 7px 0;
        background: linear-gradient(90deg, rgba(150,150,150,0.025), transparent 62%);
        opacity: 0;
        transform: translateX(-6px);
        transition: opacity 0.24s ease, transform 0.24s ease;
        pointer-events: none;
    }
    .chat-me-tool:hover::before,
    .chat-me-tool:focus-visible::before,
    .chat-me-tool:active::before { content: none; }
    .chat-me-tool:hover::after,
    .chat-me-tool:focus-visible::after,
    .chat-me-tool:active::after {
        opacity: 1;
        transform: translateX(0);
    }
    .chat-me-tool:hover .chat-me-tool-copy,
    .chat-me-tool:focus-visible .chat-me-tool-copy,
    .chat-me-tool:active .chat-me-tool-copy { transform: none; }
    .chat-me-tool:hover .chat-me-tool-num,
    .chat-me-tool:focus-visible .chat-me-tool-num,
    .chat-me-tool:active .chat-me-tool-num { color: #343941; }
    .chat-me-tool:hover .chat-me-tool-arrow,
    .chat-me-tool:focus-visible .chat-me-tool-arrow,
    .chat-me-tool:active .chat-me-tool-arrow {
        opacity: 0.72;
        transform: translateX(0) rotate(45deg);
    }
    .chat-me-tool-num {
        display: block;
        align-self: center;
        padding-top: 0;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.08em;
        color: #B0B6C0;
        position: relative;
        z-index: 1;
    }
    .chat-me-tool-copy {
        min-width: 0;
        display: block;
        transition: transform 0.24s ease;
        position: relative;
        z-index: 1;
    }
    .chat-me-tool-title {
        display: block;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 17px;
        line-height: 1.08;
        font-weight: 400;
        font-style: italic;
        letter-spacing: -0.025em;
        color: #4F5864;
        margin-bottom: 4px;
    }
    .chat-me-tool-subtitle {
        display: block;
        color: #B4BAC4;
        font-family: "Courier New", Courier, monospace;
        font-size: 8.5px;
        line-height: 1;
        letter-spacing: 0.16em;
    }
    .chat-me-tool-arrow {
        justify-self: end;
        width: 7px;
        height: 7px;
        opacity: 0.28;
        transform: translateX(-3px) rotate(45deg);
        transition: opacity 0.22s ease, transform 0.22s ease;
        border-top: 1.2px solid currentColor;
        border-right: 1.2px solid currentColor;
        color: #8A93A0;
        font-size: 0;
        line-height: 0;
        position: relative;
        z-index: 1;
    }
    .chat-me-tool:active { transform: none; }
    .chat-me-name,
    .chat-me-id {
        -webkit-tap-highlight-color: transparent;
        cursor: pointer;
    }
    .chat-me-name:active,
    .chat-me-id:active { opacity: 0.66; }

    .chat-app-page.asset-open .chat-bottom-dock,
    .chat-assets-view.active ~ .chat-bottom-dock {
        display: none;
    }
    .chat-assets-view {
        padding: max(38px, calc(env(safe-area-inset-top) + 22px)) 24px max(40px, calc(env(safe-area-inset-bottom) + 30px));
        color: var(--chat-ink);
    }
    .chat-assets-head {
        padding: 6px 0 18px;
        border: 0;
        background: transparent;
    }
    .chat-assets-kicker {
        margin-bottom: 9px;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.22em;
        color: #9AA2AD;
        text-transform: uppercase;
    }
    .chat-assets-title {
        margin: 0;
        display: inline-block;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(24px, 6.8vw, 29px);
        line-height: 1.03;
        letter-spacing: -0.035em;
        font-style: italic;
        font-weight: 400;
        color: var(--one-quality-soft-ink, #211F1C);
        cursor: pointer;
        -webkit-tap-highlight-color: var(--one-quality-soft-ink, #211F1C);
    }
    .chat-assets-title:active { opacity: 0.66; }
    .chat-assets-subtitle {
        max-width: 236px;
        margin: 13px 0 0;
        color: #8A93A0;
        font-size: 11px;
        line-height: 1.7;
        letter-spacing: 0.045em;
    }
    .chat-assets-panel {
        position: relative;
        min-height: 196px;
        box-sizing: border-box;
        margin-top: 16px;
        padding: 20px 20px 18px;
        border-radius: 30px;
        overflow: hidden;
        background:
            radial-gradient(circle at 14% 8%, rgba(255,255,255,0.88), transparent 42%),
            radial-gradient(circle at 88% 18%, rgba(213,229,255,0.38), transparent 46%),
            linear-gradient(138deg, #FFFFFF 0%, #F6F2EA 100%);
        border: 1px solid rgba(255,255,255,0.82);
        box-shadow: 0 16px 34px rgba(74,78,89,0.08), inset 0 1px 0 rgba(255,255,255,0.94);
        isolation: isolate;
    }
    .chat-assets-panel::before {
        content: '';
        position: absolute;
        left: 20px;
        right: 20px;
        top: 18px;
        height: 1px;
        background: linear-gradient(90deg, rgba(74,78,89,0.24), rgba(181,199,211,0.22), transparent);
        pointer-events: none;
    }
    .chat-assets-panel::after {
        content: 'ASSET';
        position: absolute;
        right: 18px;
        bottom: 18px;
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.22em;
        color: rgba(74,78,89,0.18);
        pointer-events: none;
    }
    .chat-assets-panel-top {
        position: relative;
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-top: 12px;
    }
    .chat-assets-chip,
    .chat-assets-panel-date {
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.18em;
        color: #9AA2AD;
    }
    .chat-assets-chip {
        min-height: 24px;
        padding: 0 10px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        background: rgba(255,255,255,0.62);
        box-shadow: inset 0 0 0 1px rgba(74,78,89,0.055);
    }
    .chat-assets-balance {
        position: relative;
        z-index: 2;
        display: flex;
        align-items: flex-start;
        gap: 6px;
        margin-top: 24px;
        color: #343941;
    }
    .chat-assets-currency {
        padding-top: 8px;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 19px;
        line-height: 1;
        color: #6E7682;
    }
    .chat-assets-balance strong {
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(44px, 12vw, 58px);
        line-height: 0.86;
        font-weight: 400;
        letter-spacing: -0.07em;
        font-style: italic;
    }
    .chat-assets-panel-copy {
        position: relative;
        z-index: 2;
        margin-top: 10px;
        color: #8A93A0;
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.12em;
    }
    .chat-assets-actions {
        position: absolute;
        z-index: 3;
        right: 18px;
        top: 77px;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 10px;
    }
    .chat-assets-action {
        position: relative;
        min-width: 0;
        height: auto;
        border: 0;
        border-radius: 0;
        padding: 0 0 5px;
        background: transparent;
        color: #6C7480;
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.12em;
        box-shadow: none;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-assets-action::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 1px;
        background: currentColor;
        opacity: 0.32;
        transform: scaleX(0.44);
        transform-origin: left center;
        transition: opacity 0.18s ease, transform 0.18s ease;
    }
    .chat-assets-action.is-primary {
        background: transparent;
        color: #343941;
        box-shadow: none;
    }
    .chat-assets-action.is-primary::after,
    .chat-assets-action:active::after { opacity: 0.82; transform: scaleX(1); }
    .chat-assets-action:active { transform: translateY(1px); }
    .chat-assets-shortcuts {
        margin: 18px -4px 0;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }
    .chat-assets-shortcut {
        min-width: 0;
        min-height: 78px;
        border: 0;
        border-radius: 0;
        padding: 0 2px;
        background: transparent;
        color: #68717D;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        font-size: 11px;
        line-height: 1.18;
        letter-spacing: 0.04em;
        text-align: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-assets-shortcut-icon {
        width: 48px;
        height: 48px;
        border-radius: 18px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background:
            linear-gradient(145deg, rgba(255,255,255,0.82), rgba(247,243,236,0.74));
        box-shadow: inset 0 0 0 1px rgba(74,78,89,0.065), 0 10px 20px rgba(74,78,89,0.055);
    }

    .chat-assets-shortcut[data-asset-action="quickpay"] .chat-assets-shortcut-icon {
        background: linear-gradient(145deg, rgba(255,255,255,0.86), rgba(242,242,242,0.78));
        box-shadow: inset 0 0 0 1px rgba(74,78,89,0.07), 0 10px 20px rgba(74,78,89,0.05);
    }

    .chat-assets-shortcut svg {
        width: 21px;
        height: 21px;
        stroke: #4F5864;
        stroke-width: 1.55;
        fill: none;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-assets-shortcut:active .chat-assets-shortcut-icon { transform: translateY(1px); }
    .chat-assets-bills {
        margin-top: 26px;
    }
    .chat-assets-bills-head {
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 16px;
        padding-bottom: 13px;
        border-bottom: 1px solid rgba(150,158,168,0.16);
    }
    .chat-assets-bills-head h3 {
        margin: 0;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 22px;
        line-height: 1;
        font-style: italic;
        font-weight: 400;
        letter-spacing: -0.04em;
        color: #4F5864;
    }
    .chat-assets-bills-head span {
        color: #B4BAC4;
        font-family: "Courier New", Courier, monospace;
        font-size: 8.5px;
        line-height: 1;
        letter-spacing: 0.16em;
    }
    .chat-assets-bill-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding-top: 14px;
    }
    .chat-assets-bill-list:not(.has-bills) {
        display: none;
    }
    .chat-assets-bill-item {
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        min-height: 62px;
        padding: 12px 0;
        border-bottom: 1px solid rgba(150,158,168,0.12);
    }
    .chat-assets-bill-mark {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #F4F5F6;
        box-shadow: inset 0 0 0 1px rgba(79,88,100,0.08);
    }
    .chat-assets-bill-mark span {
        color: #68717D;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 15px;
        line-height: 1;
        font-style: italic;
    }
    .chat-assets-bill-copy {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
    .chat-assets-bill-line {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 10px;
        min-width: 0;
    }
    .chat-assets-bill-line strong {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: #3F4650;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: 0.02em;
    }
    .chat-assets-bill-line time {
        flex-shrink: 0;
        color: #AEB5BE;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        letter-spacing: 0.05em;
    }
    .chat-assets-bill-copy p {
        margin: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: #9AA2AE;
        font-size: 11px;
        line-height: 1.2;
    }
    .chat-assets-bill-amount {
        color: #4E5661;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 15px;
        line-height: 1;
        font-weight: 500;
        white-space: nowrap;
    }
    .chat-assets-bill-item.is-in .chat-assets-bill-amount { color: #556B5E; }
    .chat-assets-bill-item.is-out .chat-assets-bill-amount { color: #7A5D56; }
    .chat-assets-bill-item.is-in .chat-assets-bill-mark { background: #EEF4EF; }
    .chat-assets-bill-item.is-out .chat-assets-bill-mark { background: #F5F0ED; }
    .chat-assets-bill-empty {
        min-height: 160px;
        display: none;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        color: #A3AAB5;
        text-align: center;
    }
    .chat-assets-bill-empty.show {
        display: flex;
    }
    .chat-assets-bill-empty strong {
        color: #7E8793;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.08em;
    }
    .chat-assets-bill-empty span {
        color: #B3BAC4;
        font-size: 11px;
        line-height: 1.5;
        letter-spacing: 0.05em;
    }



    .chat-pay-pass-modal {
        padding: 0;
        align-items: stretch;
        justify-content: flex-end;
        background: rgba(30, 30, 35, 0.32);
    }
    .chat-pay-pass-modal.show .chat-pay-pass-dialog {
        transform: none;
    }
    .chat-pay-pass-dialog {
        width: 100%;
        max-width: none;
        height: 100%;
        min-height: 100%;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        pointer-events: none;
        transform: none;
    }
    .chat-pay-pass-content {
        width: 100%;
        min-height: 100%;
        padding: 0;
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        align-items: stretch;
        justify-items: center;
        gap: 0;
        pointer-events: none;
    }
    .chat-pay-pass-card {
        width: min(348px, calc(100% - 56px));
        min-height: 178px;
        box-sizing: border-box;
        margin: 0 auto;
        align-self: center;
        justify-self: center;
        padding: 27px 27px 25px;
        border-radius: 10px;
        background: #FFFFFF;
        box-shadow: 0 16px 36px rgba(31,34,40,0.11), inset 0 0 0 1px rgba(74,78,89,0.05);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 22px;
        pointer-events: auto;
    }
    .chat-pay-pass-title {
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 20px;
        line-height: 1;
        letter-spacing: -0.01em;
        color: #343941;
        font-style: italic;
        font-weight: 400;
    }
    .chat-pay-pass-display {
        width: 100%;
        min-height: 76px;
        box-sizing: border-box;
        padding: 0;
        border-radius: 0;
        background: transparent;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 18px;
        box-shadow: none;
    }
    .chat-pay-pass-display > span {
        color: #7F8791;
        font-size: 13px;
        line-height: 1;
        letter-spacing: 0.14em;
    }
    .chat-pay-pass-dots {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 16px;
        width: min(256px, 100%);
        align-items: center;
        justify-items: center;
    }
    .chat-pay-pass-dots i {
        width: 18px;
        height: 18px;
        border-radius: 50%;
        box-sizing: border-box;
        background: transparent;
        border: 1px solid rgba(52,57,65,0.22);
        transition: background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
    }
    .chat-pay-pass-dots i.is-filled {
        background: var(--one-quality-button, #111111);
        border-color: var(--one-quality-button, #111111);
        transform: scale(0.92);
    }
    .chat-pay-pass-keypad {
        width: 100%;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0;
        margin: 0;
        padding: 0 0 env(safe-area-inset-bottom);
        background: #EEF0F3;
        border-top: 1px solid rgba(74,78,89,0.12);
        pointer-events: auto;
    }
    .chat-pay-pass-keypad button {
        height: 58px;
        border: 0;
        border-right: 1px solid rgba(74,78,89,0.11);
        border-bottom: 1px solid rgba(74,78,89,0.11);
        border-radius: 0;
        background: #FFFFFF;
        color: #343941;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 20px;
        line-height: 1;
        box-shadow: none;
        -webkit-tap-highlight-color: transparent;
        cursor: pointer;
    }
    .chat-pay-pass-keypad button:nth-child(3n) {
        border-right: 0;
    }
    .chat-pay-pass-keypad button:nth-child(n+10) {
        border-bottom: 0;
    }
    .chat-pay-pass-keypad button:active {
        transform: none;
        background: #F7F8FA;
    }
    .chat-pay-pass-keypad button.is-empty {
        background: #F5F6F8;
        box-shadow: none;
        pointer-events: none;
    }
    .chat-pay-pass-keypad button.is-delete {
        color: #6E7682;
        background: #F5F6F8;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .chat-pay-pass-keypad button.is-delete svg {
        width: 25px;
        height: 25px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-pay-pass-actions {
        display: none;
    }

    .chat-quickpay-dialog {
        max-width: 320px;
        border-radius: 26px;
        background: #ffffff;
        box-shadow: 0 18px 54px rgba(31,34,40,0.15);
    }
    .chat-quickpay-content {
        padding: 25px 20px 20px;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .chat-quickpay-kicker {
        text-align: center;
        color: #A0A7B1;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.22em;
    }
    .chat-quickpay-title {
        text-align: center;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 20px;
        line-height: 1;
        letter-spacing: -0.03em;
        color: #343941;
        font-style: italic;
    }
    .chat-quickpay-copy {
        margin: 0 auto 4px;
        max-width: 210px;
        color: #87909D;
        font-size: 11px;
        line-height: 1.7;
        letter-spacing: 0.05em;
        text-align: center;
    }
    .chat-quickpay-switch {
        min-height: 64px;
        border: 0;
        border-radius: 18px;
        padding: 0 12px 0 16px;
        background: #F3F3F3;
        color: #4F5864;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        box-shadow: inset 0 0 0 1px rgba(74,78,89,0.07);
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-quickpay-switch-copy {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
    .chat-quickpay-switch-copy strong {
        color: #343941;
        font-size: 14px;
        line-height: 1;
        letter-spacing: 0.04em;
    }
    .chat-quickpay-switch-copy em {
        color: #9AA2AD;
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.12em;
        font-style: normal;
    }
    .chat-quickpay-knob {
        position: relative;
        width: 50px;
        height: 28px;
        border-radius: 999px;
        background: #D9DEE5;
        transition: background 0.2s ease;
        flex: 0 0 auto;
    }
    .chat-quickpay-knob::before {
        content: '';
        position: absolute;
        width: 22px;
        height: 22px;
        border-radius: 50%;
        left: 3px;
        top: 3px;
        background: #ffffff;
        box-shadow: 0 4px 10px rgba(74,78,89,0.16);
        transition: transform 0.2s ease;
    }
    .chat-quickpay-switch.is-on .chat-quickpay-knob {
        background: var(--one-quality-button, #111111);
    }
    .chat-quickpay-switch.is-on .chat-quickpay-knob::before {
        transform: translateX(22px);
    }

    .chat-app-page.preset-open .chat-bottom-dock,
    .chat-mask-preset-view.active ~ .chat-bottom-dock {
        display: none;
    }
    .chat-mask-preset-view {
        padding: max(38px, calc(env(safe-area-inset-top) + 22px)) 24px max(40px, calc(env(safe-area-inset-bottom) + 30px));
        background: transparent;
        color: var(--chat-ink);
    }
    .chat-mask-preset-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 16px;
        padding: 8px 0 26px;
        min-height: 98px;
        border: 0;
        background: transparent;
    }
    .chat-mask-preset-title-wrap {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 9px;
    }
    .chat-mask-preset-title {
        margin: 0;
        width: fit-content;
        max-width: 100%;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(24px, 6.8vw, 29px);
        line-height: 1.03;
        font-weight: 400;
        letter-spacing: -0.035em;
        color: var(--one-quality-soft-ink, #211F1C);
        cursor: pointer;
        -webkit-tap-highlight-color: var(--one-quality-soft-ink, #211F1C);
    }
    .chat-mask-preset-title:active { opacity: 0.58; }
    .chat-mask-preset-subtitle {
        margin: 0;
        max-width: 210px;
        color: var(--chat-muted);
        font-size: 11px;
        line-height: 1.65;
        letter-spacing: 0.075em;
    }
    .chat-mask-preset-actions {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        padding-top: 0;
    }
    .chat-mask-preset-icon {
        width: 38px;
        height: 38px;
        padding: 0;
        border: 1px solid rgba(150,158,168,0.18);
        border-radius: 50%;
        background: rgba(255,255,255,0.72);
        color: #6F7782;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        box-shadow: 0 8px 18px rgba(74,78,89,0.065);
    }
    .chat-mask-preset-icon.is-manage {
        background: #111111;
        border-color: #111111;
        color: #ffffff;
        box-shadow: 0 10px 22px rgba(17,17,17,0.18);
    }
    .chat-mask-preset-icon svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.55;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    .chat-mask-preset-icon.active,
    .chat-mask-preset-icon:active { opacity: 0.58; transform: none; }
    .chat-mask-preset-list {
        display: flex;
        flex-direction: column;
        gap: 0;
        border-top: 1px solid rgba(150,158,168,0.16);
    }
    .chat-mask-preset-card {
        position: relative;
        width: 100%;
        min-height: 82px;
        padding: 14px 0;
        border: 0;
        border-radius: 0;
        border-bottom: 1px solid rgba(150,158,168,0.16);
        background: transparent;
        display: grid;
        grid-template-columns: 44px 50px minmax(0, 1fr) 18px;
        align-items: center;
        gap: 12px;
        text-align: left;
        cursor: pointer;
        color: #5B6470;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-mask-preset-card::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        width: 1px;
        height: 0;
        background: linear-gradient(180deg, rgba(150,150,150,0.48), rgba(181,199,211,0.48));
        transform: translateY(-50%);
        transition: height 0.22s ease;
    }
    .chat-mask-preset-card:active::before,
    .chat-mask-preset-list.manage .chat-mask-preset-card::before { height: calc(100% - 22px); }
    .chat-mask-preset-card-no {
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        letter-spacing: 0.08em;
        color: #B0B6C0;
    }
    .chat-mask-preset-card-avatar {
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background: #F2F3F4 center / cover no-repeat;
        color: #C1C5CA;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 19px;
        font-style: italic;
        box-shadow: 0 7px 18px rgba(120, 130, 140, 0.08);
        overflow: hidden;
    }
    .chat-mask-preset-card-avatar.has-image { color: transparent; }
    .chat-mask-preset-card-copy {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
    .chat-mask-preset-card-copy strong {
        color: #414750;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 19px;
        line-height: 1.05;
        font-weight: 400;
        font-style: italic;
        letter-spacing: -0.025em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-mask-preset-card-copy em {
        color: #8C95A3;
        font-size: 11px;
        line-height: 1.42;
        font-style: normal;
        letter-spacing: 0.035em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-mask-preset-card-copy small {
        color: #B4BAC4;
        font-family: "Courier New", Courier, monospace;
        font-size: 8.5px;
        line-height: 1;
        letter-spacing: 0.12em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .chat-mask-preset-card-delete {
        position: relative;
        width: 8px;
        height: 8px;
        justify-self: end;
        opacity: 0.24;
        transform: rotate(45deg);
        border-top: 1.2px solid currentColor;
        border-right: 1.2px solid currentColor;
        color: #8A93A0;
    }
    .chat-mask-preset-list.manage .chat-mask-preset-card-delete {
        width: 12px;
        height: 12px;
        border: 0;
        opacity: 0.72;
        transform: none;
    }
    .chat-mask-preset-list.manage .chat-mask-preset-card-delete::before,
    .chat-mask-preset-list.manage .chat-mask-preset-card-delete::after {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        width: 12px;
        height: 1px;
        background: #9C5F5F;
        transform: rotate(45deg);
    }
    .chat-mask-preset-list.manage .chat-mask-preset-card-delete::after { transform: rotate(-45deg); }
    .chat-mask-preset-empty {
        min-height: 330px;
        display: none;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        text-align: center;
        color: var(--chat-muted);
        gap: 14px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .chat-mask-preset-empty::before {
        content: '';
        width: 32px;
        height: 1px;
        background: var(--chat-line-strong);
        opacity: 0.22;
    }
    .chat-mask-preset-empty.show { display: flex; }
    .chat-mask-preset-empty strong {
        color: var(--chat-ink);
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 24px;
        line-height: 1.05;
        font-weight: 400;
        letter-spacing: -0.035em;
        opacity: 0.78;
    }
    .chat-mask-preset-empty span {
        max-width: 230px;
        color: var(--chat-muted);
        font-size: 11.5px;
        line-height: 1.88;
        letter-spacing: 0.055em;
        opacity: 0.82;
    }
    .chat-mask-preset-modal { z-index: 13000; letter-spacing: 0.12em; }
    .chat-mask-preset-dialog .modal-content { padding-top: 63px; }
    .chat-mask-preset-avatar::before { content: 'Me'; }

    .chat-app-page.sticker-open .chat-bottom-dock,
    .chat-sticker-view.active ~ .chat-bottom-dock {
        display: none;
    }
    .chat-sticker-view {
        padding: max(38px, calc(env(safe-area-inset-top) + 22px)) 24px max(40px, calc(env(safe-area-inset-bottom) + 30px));
        background: transparent;
        color: var(--chat-ink);
    }
    .chat-sticker-head {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 18px;
        min-height: 104px;
        padding: 8px 0 24px;
        margin-bottom: 8px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }
    .chat-sticker-head::before,
    .chat-sticker-head::after { content: none; }
    .chat-sticker-head-copy {
        position: relative;
        z-index: 2;
        min-width: 0;
        padding-top: 0;
    }
    .chat-sticker-kicker {
        color: var(--chat-muted);
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        margin-bottom: 18px;
        white-space: nowrap;
        opacity: 0.86;
    }
    .chat-sticker-title {
        width: fit-content;
        max-width: 100%;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(24px, 6.8vw, 29px);
        line-height: 1.03;
        font-style: normal;
        font-weight: 400;
        letter-spacing: -0.035em;
        color: var(--one-quality-soft-ink, #211F1C);
        cursor: pointer;
        -webkit-tap-highlight-color: var(--one-quality-soft-ink, #211F1C);
    }
    .chat-sticker-title:active { opacity: 0.58; }
    .chat-sticker-subtitle {
        max-width: 226px;
        margin: 18px 0 0;
        color: var(--chat-muted);
        font-size: 11.5px;
        line-height: 1.82;
        letter-spacing: 0.055em;
        opacity: 0.9;
    }
    .chat-sticker-stamp { display: none; }
    .chat-sticker-manage {
        position: relative;
        z-index: 3;
        align-self: start;
        min-height: 30px;
        padding: 0 1px;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: var(--chat-muted);
        font-size: 11px;
        letter-spacing: 0.16em;
        cursor: pointer;
        box-shadow: none;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-sticker-manage::after {
        content: '';
        position: absolute;
        left: 1px;
        right: 1px;
        bottom: 3px;
        height: 1px;
        background: var(--chat-line-strong);
        opacity: 0.38;
    }
    .chat-sticker-manage:active,
    .chat-sticker-action:active,
    .chat-sticker-tab:active,
    .chat-sticker-card-actions button:active,
    .chat-sticker-select:active { opacity: 0.62; transform: none; }
    .chat-sticker-control {
        position: sticky;
        top: 0;
        z-index: 4;
        margin: 0 0 28px;
        padding: 0 0 18px;
        border: 0;
        border-radius: 0;
        background: linear-gradient(180deg, rgba(252,251,247,0.96), rgba(252,251,247,0.76));
        box-shadow: none;
    }
    .chat-sticker-tabs {
        position: relative;
        display: flex;
        gap: 22px;
        overflow-x: auto;
        scrollbar-width: none;
        padding: 0 0 14px;
        margin-bottom: 20px;
        border: 0;
    }
    .chat-sticker-tabs::-webkit-scrollbar { display: none; }
    .chat-sticker-tab {
        position: relative;
        flex: 0 0 auto;
        height: 24px;
        min-width: 0;
        border-radius: 0;
        border: 0;
        background: transparent;
        color: var(--chat-muted);
        padding: 0;
        font-size: 11px;
        letter-spacing: 0.12em;
        cursor: pointer;
        box-shadow: none;
        -webkit-tap-highlight-color: transparent;
        opacity: 0.82;
    }
    .chat-sticker-tab::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: -6px;
        height: 1px;
        background: var(--chat-line-strong);
        opacity: 0;
    }
    .chat-sticker-tab.active {
        background: transparent;
        color: var(--chat-ink);
        border-color: transparent;
        box-shadow: none;
        opacity: 1;
    }
    .chat-sticker-tab.active::after { opacity: 0.48; }
    .chat-sticker-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        margin: 0;
    }
    .chat-sticker-action {
        min-width: 0;
        min-height: 38px;
        padding: 0 13px;
        border: 0;
        border-radius: 999px;
        background: rgba(252,251,247,0.62);
        color: var(--chat-muted);
        font-size: 11px;
        letter-spacing: 0.12em;
        cursor: pointer;
        box-shadow: none;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-sticker-action.primary {
        background: var(--chat-ink);
        border-color: transparent;
        color: var(--chat-paper);
        box-shadow: none;
    }
    #chatStickerAddGroupBtn,
    #chatStickerAddBtn {
        border-radius: 0;
    }
    .chat-sticker-action.is-manage-only { display: none; }
    .chat-app-page.sticker-manage .chat-sticker-action.is-manage-only { display: inline-flex; align-items: center; justify-content: center; }
    .chat-sticker-action.danger { color: #9C5F5F; background: rgba(252,251,247,0.52); }
    .chat-sticker-action:disabled {
        opacity: 0.36;
        cursor: default;
    }
    .chat-sticker-empty {
        position: relative;
        min-height: 330px;
        display: none;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        text-align: center;
        color: var(--chat-muted);
        gap: 14px;
        border-radius: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }
    .chat-sticker-empty::before {
        content: '';
        width: 32px;
        height: 1px;
        border: 0;
        border-radius: 0;
        background: var(--chat-line-strong);
        opacity: 0.22;
        box-shadow: none;
        transform: none;
    }
    .chat-sticker-empty.show { display: flex; }
    .chat-sticker-empty strong {
        color: var(--chat-ink);
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 24px;
        line-height: 1.05;
        font-style: normal;
        font-weight: 400;
        letter-spacing: -0.035em;
        opacity: 0.78;
    }
    .chat-sticker-empty span {
        max-width: 230px;
        color: var(--chat-muted);
        font-size: 11.5px;
        line-height: 1.88;
        letter-spacing: 0.055em;
        opacity: 0.82;
    }
    .chat-sticker-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px 12px;
        align-items: start;
    }
    .chat-sticker-card {
        position: relative;
        min-height: 0;
        border-radius: 0;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
        overflow: visible;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-sticker-card::before,
    .chat-sticker-card::after { content: none; }
    .chat-sticker-card-top { display: none; }
    .chat-sticker-card-top i { font-style: normal; }
    .chat-sticker-preview {
        position: relative;
        z-index: 1;
        width: 100%;
        aspect-ratio: 1 / 1;
        border-radius: 15px;
        border: 0;
        background: transparent;
        overflow: hidden;
        box-shadow: none;
    }
    .chat-sticker-img {
        width: 100%;
        height: 100%;
        border-radius: 15px;
        background: transparent center / contain no-repeat;
    }
    .chat-sticker-desc {
        position: relative;
        z-index: 2;
        margin: 8px 0 0;
        min-height: 28px;
        color: var(--chat-muted);
        font-size: 10px;
        line-height: 1.42;
        letter-spacing: 0.035em;
        text-align: center;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        opacity: 0.88;
    }
    .chat-sticker-select {
        display: none;
        position: absolute;
        z-index: 5;
        right: -2px;
        top: -4px;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        border: 1px solid var(--chat-line-strong);
        background: rgba(252,251,247,0.88);
        box-shadow: none;
        cursor: pointer;
    }
    .chat-sticker-grid.manage .chat-sticker-select { display: inline-flex; }
    .chat-sticker-card.selected .chat-sticker-select {
        background: var(--chat-ink);
        border-color: var(--chat-ink);
    }
    .chat-sticker-card.selected .chat-sticker-select::after {
        content: '';
        width: 6px;
        height: 3px;
        margin: 5px auto 0;
        border-left: 1px solid var(--chat-paper);
        border-bottom: 1px solid var(--chat-paper);
        transform: rotate(-45deg);
    }
    .chat-sticker-card.selected .chat-sticker-preview { opacity: 0.72; }
    .chat-sticker-card-actions {
        display: none;
        position: relative;
        z-index: 4;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 3px;
        margin-top: 8px;
        padding-top: 0;
        border-top: 0;
    }
    .chat-sticker-grid.manage .chat-sticker-card {
        min-height: 0;
        border-color: transparent;
        box-shadow: none;
    }
    .chat-sticker-grid.manage .chat-sticker-card-actions { display: grid; }
    .chat-sticker-card-actions button {
        min-width: 0;
        height: 22px;
        border-radius: 999px;
        border: 0;
        background: rgba(252,251,247,0.62);
        color: var(--chat-muted);
        font-size: 8.5px;
        letter-spacing: 0.02em;
        padding: 0;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-sticker-card-actions button[data-sticker-delete] { color: #9C5F5F; }
    .chat-sticker-modal {
        --chat-paper: #FCFBF7;
        --chat-ink: #343941;
        --chat-muted: #8C95A3;
        --chat-line-strong: rgba(74, 78, 89, 0.34);
    }
    .chat-sticker-modal .modal-box {
        max-width: 320px;
    }
    .chat-sticker-modal .modal-content {
        max-height: min(72vh, 560px);
        overflow-y: auto;
        scrollbar-width: none;
    }
    .chat-sticker-modal .modal-content::-webkit-scrollbar { display: none; }
    .chat-sticker-modal-copy {
        margin-top: -8px;
        font-size: 12px;
        line-height: 1.7;
    }
    .chat-sticker-field {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .chat-sticker-group-select {
        appearance: none;
        -webkit-appearance: none;
        background-image: linear-gradient(45deg, transparent 50%, #9aa0ab 50%), linear-gradient(135deg, #9aa0ab 50%, transparent 50%);
        background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
        background-size: 5px 5px, 5px 5px;
        background-repeat: no-repeat;
        padding-right: 34px;
    }
    .chat-sticker-field span {
        color: var(--chat-muted);
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.18em;
    }
    .chat-sticker-input,
    .chat-sticker-textarea {
        width: 100%;
        box-sizing: border-box;
        color: #5d636e;
        user-select: text;
        -webkit-user-select: text;
    }
    .chat-sticker-textarea {
        min-height: 148px;
        resize: none;
        line-height: 1.68;
        font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    .btn-danger.chat-contact-delete {
        color: #9C5F5F;
        background: transparent;
        border: 0;
        font-size: 15px;
        cursor: pointer;
    }
    .chat-contact-delete[hidden] { display: none; }
    .chat-contact-actions { gap: 0; }
    .chat-contact-action-spacer { display: none; }

    /* Chat APP：Ta 添加入口复用全局弹窗骨架，只保留必要表单结构 */
    .chat-choice-modal,
    .chat-news-start-modal,
    .chat-import-policy-modal,
    .chat-news-char-modal,
    .chat-contact-modal,
    .chat-group-modal,
    .chat-sticker-modal {
        z-index: 13000;
    }
    .chat-choice-modal.show,
    .chat-news-start-modal.show,
    .chat-import-policy-modal.show,
    .chat-news-char-modal.show,
    .chat-contact-modal.show,
    .chat-group-modal.show,
    .chat-sticker-modal.show {
        display: flex;
        opacity: 1;
    }

    /* 添加到 Ta：回到全局弹窗尺寸、圆角、分割线节奏 */
    .chat-choice-dialog {
        max-width: 320px;
        background: #ffffff;
        border-radius: 22px;
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
    }
    .chat-choice-dialog .modal-content {
        padding: 24px 20px 20px;
        gap: 18px;
    }
    .chat-choice-title {
        font-family: "Georgia", "Times New Roman", "Songti SC", serif;
        font-size: 17px;
        line-height: 1.12;
        font-style: italic;
        font-weight: 400;
        letter-spacing: 0.04em;
        color: #4a4e59;
        text-align: center;
        margin-bottom: 0;
    }
    .chat-choice-list {
        display: flex;
        flex-direction: column;
        border-top: 1px solid #f0f2f5;
        border-bottom: 1px solid #f0f2f5;
    }
    .chat-choice-item {
        width: 100%;
        min-height: 54px;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #4a4e59;
        display: grid;
        grid-template-columns: 28px minmax(0, 1fr);
        align-items: center;
        gap: 14px;
        padding: 10px 2px;
        text-align: left;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-choice-item + .chat-choice-item { border-top: 1px solid #f0f2f5; }
    .chat-choice-item:active {
        background: transparent;
        transform: none;
    }
    .chat-choice-dialog .modal-actions button:active { background: transparent; }
    .chat-choice-mark {
        width: 28px;
        height: auto;
        border-radius: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        color: #a6adb7;
        position: relative;
        overflow: visible;
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.08em;
    }
    .chat-choice-mark::after { content: none; }
    .chat-choice-mark svg { display: none; }
    .chat-choice-copy strong {
        display: block;
        font-size: 14px;
        line-height: 1.1;
        font-weight: 400;
        color: #343941;
        margin-bottom: 5px;
    }
    .chat-choice-copy span {
        display: block;
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.16em;
        color: #9aa0ab;
        text-transform: uppercase;
    }

    .chat-news-start-dialog,
    .chat-news-char-dialog {
        max-width: 328px;
        background: #fffdf9;
        border-radius: 28px;
        overflow: hidden;
        box-shadow: 0 18px 54px rgba(67, 73, 83, 0.14);
    }
    .chat-news-start-dialog .modal-content,
    .chat-news-char-dialog .modal-content {
        padding: 24px 20px 20px;
        gap: 16px;
    }
    .chat-news-start-kicker,
    .chat-news-char-head span {
        display: block;
        margin-top: 4px;
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.18em;
        color: #9ca3af;
        text-align: center;
    }
    .chat-news-start-title,
    .chat-news-char-head strong {
        display: block;
        margin-top: 0;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 20px;
        line-height: 1.05;
        font-weight: 400;
        font-style: italic;
        letter-spacing: -0.035em;
        color: #343941;
        text-align: center;
    }
    .chat-news-start-options {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 4px;
    }
    .chat-news-start-card {
        min-height: 76px;
        border: 0;
        border-radius: 22px;
        padding: 14px 16px;
        background:
            radial-gradient(circle at 12% 18%, rgba(255,255,255,0.92), transparent 38%),
            linear-gradient(135deg, rgba(239,242,245,0.86), rgba(253,246,239,0.96));
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
        text-align: left;
        color: #343941;
        cursor: pointer;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.72), 0 10px 22px rgba(73,79,90,0.05);
        -webkit-tap-highlight-color: transparent;
    }
    .chat-news-start-card:active { transform: translateY(1px); background: rgba(242,244,247,0.92); }
    .chat-news-start-no {
        width: 38px;
        height: 38px;
        border-radius: 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: rgba(255,255,255,0.62);
        color: #a2a9b3;
        font-size: 10.5px;
        letter-spacing: 0.08em;
    }
    .chat-news-start-copy strong {
        display: block;
        font-size: 15px;
        line-height: 1.1;
        font-weight: 600;
        color: #343941;
        margin-bottom: 7px;
    }
    .chat-news-start-copy em {
        display: block;
        font-style: normal;
        font-size: 11px;
        line-height: 1.35;
        letter-spacing: 0.04em;
        color: #89929e;
    }
    .chat-news-char-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        max-height: min(56vh, 356px);
        overflow-y: auto;
        overflow-x: hidden;
        padding: 2px 2px 6px;
        scrollbar-width: none;
        -ms-overflow-style: none;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
    .chat-news-char-grid::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
    .chat-news-char-card {
        position: relative;
        min-height: 166px;
        border: 0;
        border-radius: 24px;
        padding: 12px;
        background:
            linear-gradient(180deg, rgba(255,255,255,0.86), rgba(255,250,244,0.94)),
            radial-gradient(circle at 20% 12%, rgba(218,228,236,0.72), transparent 44%);
        color: #343941;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        cursor: pointer;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.78), 0 12px 22px rgba(70,76,86,0.055);
        overflow: hidden;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-news-char-card:active { transform: translateY(1px); opacity: 0.82; }
    .chat-news-char-no {
        position: absolute;
        top: 12px;
        right: 12px;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        letter-spacing: 0.08em;
        color: #b0b6c0;
    }
    .chat-news-char-avatar {
        width: 58px;
        height: 58px;
        border-radius: 19px;
        margin-bottom: 12px;
        background: #eef0f2;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #b3bac4;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 16px;
        font-style: italic;
        box-shadow: 0 9px 18px rgba(82,90,102,0.08), inset 0 0 0 1px rgba(255,255,255,0.78);
    }
    .chat-news-char-avatar.is-group { border-radius: 18px; }
    .chat-news-char-name {
        display: block;
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: 19px;
        line-height: 1.05;
        font-style: italic;
        font-weight: 400;
        letter-spacing: -0.04em;
        color: #303640;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-bottom: 7px;
    }
    .chat-news-char-note {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        min-height: 30px;
        color: #87909d;
        font-size: 11px;
        line-height: 1.42;
        letter-spacing: 0.03em;
    }
    .chat-news-char-meta {
        margin-top: auto;
        padding-top: 12px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        color: #a4abb5;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        letter-spacing: 0.09em;
    }
    .chat-news-char-meta i {
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: rgba(52,57,65,0.08);
        position: relative;
        flex: 0 0 auto;
    }
    .chat-news-char-meta i::after {
        content: '';
        position: absolute;
        left: 6px;
        top: 5px;
        width: 6px;
        height: 6px;
        border-top: 1.2px solid #6f7783;
        border-right: 1.2px solid #6f7783;
        transform: rotate(45deg);
    }
    .chat-news-char-empty {
        display: none;
        min-height: 142px;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: #929aa6;
        font-size: 12px;
        letter-spacing: 0.04em;
    }
    .chat-news-char-empty.show { display: flex; }


    .chat-group-modal { z-index: 13000; }
    .chat-group-modal.show { display: flex; opacity: 1; }
    .chat-group-dialog {
        max-width: 320px;
        background: #ffffff;
        border-radius: 22px;
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
    }
    .chat-group-dialog .modal-content {
        padding: 24px 20px 18px;
        gap: 16px;
    }
    .chat-group-title {
        font-family: "Georgia", "Times New Roman", "Songti SC", serif;
        font-size: 17px;
        line-height: 1.12;
        font-style: italic;
        font-weight: 400;
        letter-spacing: 0.04em;
        color: #4a4e59;
        text-align: center;
    }
    .chat-group-field {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .chat-group-field span {
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.18em;
        color: #9aa0ab;
        text-transform: uppercase;
    }
    .chat-group-input {
        width: 100%;
        min-height: 44px;
        border-radius: 14px;
        border: 1px solid transparent;
        background: #f4f5f8;
        color: #4a4e59;
        outline: none;
        padding: 0 14px;
        font-size: 16px;
        user-select: text;
        -webkit-user-select: text;
    }
    .chat-group-input:focus {
        background: transparent;
        border-color: rgba(17,17,17,0.34);
        box-shadow: none;
    }
    .chat-group-list {
        border-top: 1px solid #f0f2f5;
        border-bottom: 1px solid #f0f2f5;
    }
    .chat-group-row {
        min-height: 44px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        border-bottom: 1px solid #f0f2f5;
        color: #4a4e59;
        font-size: 13px;
    }
    .chat-group-row:last-child { border-bottom: 0; }
    .chat-group-row em {
        color: #AAB0BA;
        font-style: normal;
        font-size: 10.5px;
        letter-spacing: 0.12em;
    }
    .chat-group-delete {
        border: 0;
        background: transparent;
        color: #9aa0ab;
        font-size: 11px;
        letter-spacing: 0.12em;
        cursor: pointer;
        padding: 8px 0 8px 12px;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-group-delete:active { opacity: 0.55; }

    /* 添加 / 编辑 Ta：全局纸面弹窗骨架 */
    .chat-contact-dialog {
        --chat-contact-paper: #ffffff;
        --chat-contact-field: #f4f5f8;
        --chat-contact-ink: #4a4e59;
        --chat-contact-muted: #9aa0ab;
        --chat-contact-line: #f0f2f5;
        max-width: 320px;
        max-height: min(78vh, 620px);
        margin-top: 38px;
        background: var(--chat-contact-paper);
        border-radius: 22px;
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
        position: relative;
        overflow: visible;
        display: flex;
        flex-direction: column;
    }
    .chat-contact-dialog::before { content: none; }
    .chat-contact-dialog .modal-content {
        padding: 63px 20px 18px;
        gap: 15px;
        overflow-y: auto;
        scrollbar-width: none;
        border-radius: 22px 22px 0 0;
        background: var(--chat-contact-paper);
        min-height: 0;
        flex: 1 1 auto;
    }
    .chat-contact-dialog .modal-content::-webkit-scrollbar { display: none; }

    /* 添加 / 编辑 Ta：页面化创建长期实体，跟随聊天页纸面颜色 */
    .chat-ta-form-view,
    .chat-ta-import-view {
        --chat-contact-paper: var(--chat-paper, #FCFBF7);
        --chat-contact-field: transparent;
        --chat-contact-ink: var(--chat-ink, #343941);
        --chat-contact-muted: var(--chat-muted, #8C95A3);
        --chat-contact-line: var(--chat-line, rgba(117,124,135,0.20));
        counter-reset: chatTaSection;
        background: transparent;
        color: var(--chat-ink, #343941);
    }
    .chat-ta-form-head {
        display: grid;
        grid-template-columns: 54px minmax(0, 1fr) auto;
        align-items: center;
        gap: 14px;
        margin: 0 0 22px;
    }
    .chat-ta-form-back {
        border: 0;
        background: transparent;
        color: #5B606A;
        padding: 8px 0;
        text-align: left;
        font-family: "Courier New", Courier, monospace;
        font-size: 11px;
        line-height: 1;
        letter-spacing: 0.12em;
        text-decoration: underline;
        text-underline-offset: 3px;
        cursor: pointer;
    }
    .chat-ta-form-title-copy {
        min-width: 0;
        text-align: center;
    }
    .chat-ta-form-title-copy h1 {
        margin: 0;
        color: var(--one-quality-ink, #111111);
        font-family: Georgia, "Times New Roman", "Songti SC", serif;
        font-size: clamp(21px, 6.2vw, 26px);
        font-style: normal;
        font-weight: 500;
        letter-spacing: -0.015em;
        line-height: 1.04;
    }
    .chat-ta-form-title-copy p {
        margin: 8px 0 0;
        color: #9BA2AD;
        font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
    }
    .chat-ta-form-save {
        min-width: 58px;
        min-height: 34px;
        border: 1px solid rgba(17,17,17,0.18);
        background: #111111;
        color: #FFFFFF;
        border-radius: 0;
        padding: 0 13px;
        font-size: 11px;
        letter-spacing: 0.12em;
        cursor: pointer;
        box-shadow: 0 10px 24px rgba(0,0,0,0.10);
    }
    .chat-ta-form-save[disabled],
    .chat-ta-form-create[disabled] {
        opacity: 0.52;
        cursor: default;
    }
    .chat-ta-form-visual,
    .chat-ta-form-card,
    .chat-ta-import-warning {
        counter-increment: chatTaSection;
        position: relative;
        overflow: visible;
        margin: 0;
        padding: 23px 0 25px;
        background: transparent;
        border: 0;
        border-top: 1px solid var(--chat-line, rgba(117,124,135,0.20));
        box-shadow: none;
        backdrop-filter: none;
    }
    .chat-ta-form-visual::before,
    .chat-ta-form-card::before,
    .chat-ta-import-warning::before {
        content: counter(chatTaSection, decimal-leading-zero);
        position: absolute;
        right: 0;
        top: 22px;
        color: rgba(52,57,65,0.34);
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.14em;
    }
    .chat-ta-form-visual::after {
        content: 'IDENTITY';
        position: absolute;
        left: 0;
        top: 22px;
        color: var(--chat-muted, #8C95A3);
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.18em;
    }
    .chat-ta-import-visual::after { content: 'SOURCE'; }
    .chat-ta-form-visual {
        padding-top: 96px;
        text-align: center;
    }
    .chat-ta-import-visual { padding-top: 100px; }
    .chat-ta-form-avatar.chat-contact-avatar-picker {
        top: 20px;
        left: 50%;
        width: 72px;
        height: 72px;
        min-width: 72px;
        min-height: 72px;
        transform: translateX(-50%);
        box-shadow: 0 12px 32px rgba(98, 104, 116, 0.12);
    }
    .chat-ta-form-avatar.chat-contact-avatar-picker::after {
        inset: -4px;
        border-width: 2px;
        clip-path: none;
        border-color: rgba(255,255,255,0.88);
        box-shadow: 0 0 0 1px rgba(74,78,89,0.06);
    }
    .chat-ta-form-random,
    .chat-ta-import-file {
        min-height: 32px;
        margin: 0 auto 16px;
        border: 0;
        border-bottom: 1px solid var(--chat-line-strong, rgba(74,78,89,0.34));
        background: transparent;
        color: var(--chat-ink, #343941);
        border-radius: 0;
        padding: 0 2px 6px;
        font-size: 10px;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        cursor: pointer;
        box-shadow: none;
    }
    .chat-ta-import-file {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        min-width: 142px;
    }
    .chat-ta-form-name-grid,
    .chat-ta-form-grid-two {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        text-align: left;
    }
    .chat-ta-form-card {
        display: grid;
        gap: 15px;
    }
    .chat-ta-form-card-title {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 7px;
        padding: 0 54px 2px 0;
    }
    .chat-ta-form-card-title span,
    .chat-import-policy-kicker,
    .chat-ta-import-warning span {
        color: var(--chat-muted, #8C95A3);
        font-size: 10.5px;
        line-height: 1;
        letter-spacing: 0.18em;
    }
    .chat-ta-form-card-title strong {
        color: var(--chat-ink, #343941);
        font-size: 15px;
        line-height: 1.18;
        font-weight: 400;
        letter-spacing: 0.035em;
    }
    .chat-ta-form-textarea {
        min-height: 132px;
    }
    .chat-ta-profile-complete {
        justify-self: start;
        min-height: 32px;
        border: 0;
        border-bottom: 1px solid var(--chat-line-strong, rgba(74,78,89,0.34));
        border-radius: 0;
        background: transparent;
        color: var(--chat-ink, #343941);
        padding: 0 1px 6px;
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        cursor: pointer;
        box-shadow: none;
    }
    .chat-ta-profile-complete:disabled {
        opacity: 0.46;
        cursor: progress;
    }
    .chat-ta-profile-complete:active {
        opacity: 0.72;
        transform: translateY(1px);
    }
    .chat-ta-form-create {
        width: 100%;
        min-height: 48px;
        margin: 4px 0 18px;
        border: 0;
        border-radius: 0;
        background: var(--one-quality-button, #111111);
        color: #FFFFFF;
        font-size: 12px;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        cursor: pointer;
        box-shadow: var(--one-quality-button-shadow, 0 12px 28px rgba(0,0,0,0.12));
    }
    .chat-ta-import-warning {
        display: grid;
        gap: 10px;
        padding-right: 54px;
    }
    .chat-ta-import-warning strong {
        color: var(--chat-ink, #343941);
        font-size: 14px;
        font-weight: 400;
        line-height: 1.72;
    }
    .chat-ta-import-warning p {
        margin: 0;
        color: var(--chat-muted, #8C95A3);
        font-size: 11px;
        line-height: 1.75;
        letter-spacing: 0.03em;
    }
    .chat-import-policy-dialog {
        width: min(314px, calc(100vw - 44px));
        border-radius: 24px;
        background: rgba(255,255,255,0.96);
        box-shadow: 0 20px 60px rgba(38,42,50,0.16);
    }
    .chat-import-policy-title {
        margin-top: 8px;
        color: var(--one-quality-soft-ink, #211F1C);
        font-size: 18px;
        font-weight: 400;
        letter-spacing: 0.06em;
    }
    .chat-import-policy-copy {
        margin: 18px 0 0;
        color: #242830;
        font-size: 14px;
        line-height: 1.8;
        font-weight: 400;
    }
    .chat-import-policy-note {
        margin: 12px 0 0;
        color: #8E96A3;
        font-size: 11px;
        line-height: 1.7;
        letter-spacing: 0.04em;
    }
    .chat-ta-form-view.is-saving-contact,
    .chat-ta-import-view.is-saving-contact {
        cursor: progress;
    }
    @media (min-width: 560px) {
        .chat-ta-form-name-grid,
        .chat-ta-form-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .chat-ta-form-view,
        .chat-ta-import-view { padding-left: max(24px, calc((100vw - 560px) / 2)); padding-right: max(24px, calc((100vw - 560px) / 2)); }
    }

    /* 初始头像使用桌面第一页中间左侧组件头像占位逻辑：灰底 + Ta 文案 */
    .chat-contact-avatar-picker {
        width: 82px;
        height: 82px;
        min-width: 82px;
        min-height: 82px;
        margin: 0;
        border-radius: 50%;
        border: 0;
        box-sizing: border-box;
        background: #F2F3F4;
        box-shadow: 0 7px 18px rgba(120, 130, 140, 0.08);
        position: absolute;
        top: -41px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 3;
        flex: 0 0 82px;
        overflow: visible;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
    }
    .chat-contact-avatar-picker:active { opacity: 0.82; }
    .chat-contact-avatar-picker::before {
        content: 'Ta';
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: #F3F4F5;
        color: #C1C5CA;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 25px;
        font-style: italic;
        letter-spacing: 0.06em;
        z-index: 2;
        overflow: hidden;
    }
    .chat-contact-avatar-picker.has-image::before { display: none; }
    .chat-contact-avatar-picker::after {
        content: '';
        position: absolute;
        inset: -3px;
        border-radius: inherit;
        border: 3px solid #ffffff;
        box-shadow: 0 -1px 0 rgba(74, 78, 89, 0.10);
        pointer-events: none;
        z-index: 4;
        clip-path: inset(0 0 50% 0);
    }
    .chat-contact-avatar-picker.is-group {
        border-radius: 28px;
    }
    .chat-contact-avatar-picker.is-group::before { content: '群'; font-size: 19px; font-style: normal; }
    .chat-contact-avatar-picker.chat-mask-preset-avatar::before { content: 'Me'; font-size: 25px; font-style: italic; }
    .chat-contact-form-note {
        margin: -1px 0 1px;
        text-align: center;
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.22em;
        color: #b0b6c0;
        font-family: "Courier New", Courier, monospace;
        text-transform: uppercase;
    }
    .chat-contact-field {
        display: flex;
        flex-direction: column;
        gap: 9px;
        padding: 0;
        border: 0;
    }
    .chat-contact-field + .chat-contact-field { padding-top: 1px; }
    .chat-contact-field span,
    .chat-contact-option-title {
        font-size: 10px;
        line-height: 1;
        letter-spacing: 0.18em;
        color: var(--chat-contact-muted);
        text-transform: uppercase;
    }
    .chat-contact-input,
    .chat-contact-textarea {
        width: 100%;
        border: 1px solid transparent;
        border-radius: 14px;
        background: var(--chat-contact-field);
        color: #4a4e59;
        outline: none;
        padding: 13px 14px;
        font-size: 16px;
        line-height: 1.45;
        user-select: text;
        -webkit-user-select: text;
        transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    }
    .chat-contact-textarea {
        min-height: 92px;
        resize: vertical;
    }
    .chat-ta-opening-textarea {
        min-height: 72px;
    }
    .chat-contact-select {
        appearance: none;
        -webkit-appearance: none;
        background-image: linear-gradient(45deg, transparent 50%, #9aa0ab 50%), linear-gradient(135deg, #9aa0ab 50%, transparent 50%);
        background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
        background-size: 5px 5px, 5px 5px;
        background-repeat: no-repeat;
        padding-right: 34px;
    }
    .chat-contact-input.is-required-missing,
    .chat-contact-textarea.is-required-missing,
    .chat-contact-select.is-required-missing {
        border-color: #111111;
        background-color: #ffffff;
        box-shadow: 0 0 0 3px rgba(17,17,17,0.08);
    }
    .chat-contact-input::placeholder,
    .chat-contact-textarea::placeholder { color: #aeb4be; }
    .chat-contact-input:focus,
    .chat-contact-textarea:focus {
        background: transparent;
        border-color: rgba(17,17,17,0.34);
        box-shadow: none;
    }
    .chat-ta-form-view .chat-contact-field,
    .chat-ta-import-view .chat-contact-field {
        gap: 8px;
    }
    .chat-ta-form-view .chat-contact-input,
    .chat-ta-form-view .chat-contact-textarea,
    .chat-ta-import-view .chat-contact-input,
    .chat-ta-import-view .chat-contact-textarea {
        border: 0;
        border-bottom: 1px solid var(--chat-line, rgba(117,124,135,0.20));
        border-radius: 0;
        background: transparent;
        color: var(--chat-ink, #343941);
        padding: 10px 0 11px;
        box-shadow: none;
    }
    .chat-ta-form-view .chat-contact-input:focus,
    .chat-ta-form-view .chat-contact-textarea:focus,
    .chat-ta-import-view .chat-contact-input:focus,
    .chat-ta-import-view .chat-contact-textarea:focus {
        border-bottom-color: var(--chat-line-strong, rgba(74,78,89,0.34));
        background: transparent;
        box-shadow: none;
    }
    .chat-ta-form-view .chat-contact-select,
    .chat-ta-import-view .chat-contact-select {
        padding-right: 30px;
        background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%;
    }
    .chat-ta-form-view .chat-contact-input.is-required-missing,
    .chat-ta-form-view .chat-contact-textarea.is-required-missing,
    .chat-ta-form-view .chat-contact-select.is-required-missing,
    .chat-ta-import-view .chat-contact-input.is-required-missing,
    .chat-ta-import-view .chat-contact-textarea.is-required-missing,
    .chat-ta-import-view .chat-contact-select.is-required-missing {
        border-bottom-color: #111111;
        background: transparent;
        box-shadow: inset 0 -1px 0 rgba(17,17,17,0.08);
    }
    .chat-contact-checks,
    .chat-preset-options {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        padding-top: 1px;
    }
    .chat-preset-options .chat-contact-select {
        flex: 1 1 100%;
    }
    .chat-contact-chip,
    .chat-preset-chip {
        min-height: 32px;
        border: 1px solid #eef0f3;
        border-radius: 999px;
        background: #f8f8f8;
        color: #6b7280;
        padding: 0 12px;
        font-size: 11px;
        letter-spacing: 0.06em;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
    }
    .chat-contact-chip input,
    .chat-preset-chip input {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }
    .chat-contact-chip:has(input:checked),
    .chat-preset-chip:has(input:checked) {
        background: #4a4e59;
        border-color: #4a4e59;
        color: #ffffff;
    }
    .chat-contact-option-empty {
        width: 100%;
        min-height: 32px;
        display: flex;
        align-items: center;
        color: #aeb4be;
        font-size: 11px;
        letter-spacing: 0.06em;
        line-height: 1.45;
    }
    .chat-contact-note-lines {
        margin-top: -2px;
        color: #aeb4be;
        font-size: 10px;
        line-height: 1.6;
        letter-spacing: 0.04em;
    }
    .chat-contact-import-line {
        display: none;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 0 0 2px;
    }
    .chat-contact-modal.is-import-contact .chat-contact-import-line { display: grid; }
    .chat-contact-import-btn {
        min-height: 42px;
        border: 1px solid var(--chat-contact-line);
        border-radius: 14px;
        background: var(--chat-contact-field);
        color: var(--chat-contact-ink);
        font-size: 12px;
        letter-spacing: 0.12em;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .chat-contact-import-btn:active { background: #ffffff; }
    .chat-contact-import-name {
        color: #aeb4be;
        font-size: 10px;
        line-height: 1.45;
        letter-spacing: 0.06em;
        text-align: center;
    }


    .chat-bottom-dock {
        position: absolute;
        left: 50%;
        bottom: max(18px, env(safe-area-inset-bottom));
        z-index: 5;
        width: min(294px, calc(100% - 48px));
        height: 70px;
        transform: translateX(-50%);
        border-radius: 999px;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        align-items: center;
        gap: 10px;
        padding: 8px;
        background: rgba(252,251,247,0.88);
        border: 1px solid rgba(255,255,255,0.72);
        box-shadow: 0 18px 42px rgba(70, 73, 79, 0.13), inset 0 1px 0 rgba(255,255,255,0.86);
    }
    .chat-dock-btn {
        width: 54px;
        height: 54px;
        justify-self: center;
        border: 0;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        color: #88919E;
        cursor: pointer;
        transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
    }
    .chat-dock-btn svg { width: 21px; height: 21px; stroke: currentColor; stroke-width: 1.55; fill: none; stroke-linecap: round; stroke-linejoin: round; }
    .chat-dock-dynamic-icon { overflow: visible; }
    .chat-dock-dynamic-icon path,
    .chat-dock-dynamic-icon circle { vector-effect: non-scaling-stroke; }
    .chat-dock-dynamic-icon path { stroke-width: 1.42; }
    .chat-dock-dynamic-icon circle { stroke-width: 1.36; }
    .chat-dock-btn.active {
        color: #2F333A;
        background: #FFFFFF;
        box-shadow: 0 8px 18px rgba(74,78,89,0.09), inset 0 0 0 1px rgba(255,255,255,0.9);
    }
    .chat-dock-btn:active { transform: scale(0.94); }
    /* 聊天提示统一复用设置页居中系统通知样式，避免另起一套黑色 toast。 */

    body.show-phone-shell .chat-app-page {
        left: var(--one-shell-stage-center-x, 50%);
        top: var(--one-shell-stage-center-y, 50%);
        right: auto;
        bottom: auto;
        width: var(--one-shell-base-width, 390px);
        height: var(--one-shell-base-height, 912px);
        border-radius: calc(var(--one-shell-scale, 1) * 38px);
        overflow: hidden;
        transform: translate(-50%, -48%) scale(var(--one-shell-scale, 1));
        transform-origin: center center;
    }
    body.show-phone-shell .chat-app-page.show { transform: translate(-50%, -50%) scale(var(--one-shell-scale, 1)); }
    body.shell-switching .chat-app-page { transition: none; }
    @media (max-width: 365px) {
        .chat-view { padding-left: 20px; padding-right: 20px; }
        .chat-browser-tab { min-width: 104px; max-width: 142px; }
        .chat-me-head { gap: 10px; }
        .chat-me-identity { gap: 12px; }
        .chat-me-avatar-frame { flex-basis: 76px; width: 76px; height: 76px; }
        .chat-me-copy { min-height: 76px; }
        .chat-me-name { max-width: 124px; padding-right: 0.12em; }
        .chat-me-signature { max-width: 136px; }
        .chat-me-follow-copy { font-size: 9px; }
        .chat-me-status-pill { min-width: 76px; height: 30px; margin-top: 0; padding: 0 7px 0 12px; gap: 7px; letter-spacing: 0.04em; }
        .chat-me-tools { margin-top: 4px; }
        .chat-me-tool { min-height: 58px; padding-top: 12px; padding-bottom: 13px; padding-left: 10px; grid-template-columns: 30px minmax(0, 1fr) 16px; gap: 10px; }
        .chat-me-tool-title { font-size: 16px; }
        .chat-me-tool-subtitle { font-size: 7.5px; letter-spacing: 0.14em; }
        .chat-assets-shortcuts { gap: 6px; }
        .chat-assets-shortcut-icon { width: 44px; height: 44px; border-radius: 16px; }
        .chat-assets-shortcut { font-size: 10px; }
        .chat-assets-actions { right: 16px; top: 76px; }
        .chat-assets-action { min-width: 0; padding: 0 0 5px; }
    }

    /* 简讯页弹窗统一回全局弹窗骨架 */
    .chat-news-start-dialog,
    .chat-news-char-dialog {
        max-width: 320px;
        background: #ffffff;
        border-radius: 22px;
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
    }
    .chat-news-start-dialog .modal-content,
    .chat-news-char-dialog .modal-content {
        padding: 24px 20px 20px;
        gap: 12px;
    }
    .chat-news-start-title,
    .chat-news-char-head strong {
        font-family: "Georgia", "Times New Roman", "Songti SC", serif;
        font-size: 17px;
        line-height: 1.08;
        font-style: italic;
        font-weight: 400;
        letter-spacing: 0.02em;
        color: #4a4e59;
        text-align: center;
        margin-top: 0;
    }
    .chat-news-start-kicker,
    .chat-news-char-head span {
        display: block;
        margin-top: 3px;
        font-family: "Courier New", Courier, monospace;
        font-size: 9px;
        line-height: 1;
        font-style: normal;
        font-weight: 400;
        letter-spacing: 0.18em;
        color: #a4abb5;
        text-align: center;
        text-transform: uppercase;
    }
    .chat-news-start-card {
        min-height: 54px;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        border-top: 1px solid #f0f2f5;
        padding: 10px 2px;
    }
    .chat-news-start-card:last-child { border-bottom: 1px solid #f0f2f5; }
    .chat-news-start-no {
        width: 28px;
        height: auto;
        border-radius: 0;
        background: transparent;
        color: #a6adb7;
        justify-content: flex-start;
    }
    .chat-news-start-copy strong {
        font-size: 14px;
        line-height: 1.08;
        font-weight: 400;
        color: #343941;
        margin-bottom: 3px;
    }
    .chat-news-start-copy em { font-size: 9px; line-height: 1; letter-spacing: 0.14em; text-transform: uppercase; }
    .chat-news-char-card {
        background: #fff;
        border: 1px solid #f0f2f5;
        box-shadow: none;
    }
    .chat-news-char-avatar { box-shadow: none; }

/* ==========================================================================
   [ASSETS EXTENSION] 银行卡 / 充值提现 / 股市模拟
   ========================================================================== */
.chat-app-page.asset-open .chat-bottom-dock,
.chat-bankcard-view.active ~ .chat-bottom-dock,
.chat-stock-view.active ~ .chat-bottom-dock { display: none; }

.chat-assets-action.is-disabled {
    opacity: 0.38;
    filter: grayscale(1);
}

.chat-bankcard-view,
.chat-stock-view {
    padding: max(42px, calc(env(safe-area-inset-top) + 26px)) 24px max(40px, calc(env(safe-area-inset-bottom) + 30px));
    background: transparent;
    color: var(--chat-ink);
    overflow-y: auto;
}
.chat-bankcard-head,
.chat-stock-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 18px;
    padding: 6px 0 18px;
}
.chat-bankcard-title,
.chat-stock-title {
    margin: 0;
    display: inline-block;
    font-family: Georgia, "Times New Roman", "Songti SC", serif;
    font-size: clamp(24px, 6.8vw, 29px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-style: italic;
    font-weight: 400;
    color: var(--one-quality-soft-ink, #211F1C);
    cursor: pointer;
    -webkit-tap-highlight-color: var(--one-quality-soft-ink, #211F1C);
}
.chat-bankcard-title:active,
.chat-stock-title:active { opacity: 0.66; }

.chat-bankcard-title-wrap,
.chat-stock-title-wrap {
    min-width: 0;
}
.chat-bankcard-title-wrap .chat-assets-kicker,
.chat-stock-title-wrap .chat-assets-kicker {
    margin: 10px 0 0;
}
.chat-bankcard-title-wrap .chat-assets-subtitle,
.chat-stock-title-wrap .chat-assets-subtitle {
    margin-top: 7px;
}
.chat-bankcard-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 24px;
    padding-right: 2px;
}
.chat-bankcard-icon {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #ffffff;
    color: rgba(52,57,65,0.74);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(74,78,89,0.07), 0 10px 22px rgba(74,78,89,0.08);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.chat-bankcard-icon:first-child { background: var(--one-quality-button, #111111); color: #fff; }
.chat-bankcard-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.chat-bankcard-icon:active { transform: translateY(1px); }
.chat-bankcard-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 6px;
}
.chat-bankcard-list:not(.has-cards) {
    display: none;
}
.chat-bankcard-list.has-cards {
    display: flex;
}
.chat-bankcard-empty {
    min-height: 260px;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #A3AAB5;
    text-align: left;
}
.chat-bankcard-empty.show { display: flex; }
.chat-bankcard-empty strong {
    color: #7E8793;
    font-size: 14px;
    letter-spacing: 0.08em;
}
.chat-bankcard-empty span {
    color: #B3BAC4;
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

/* One Phone 资产页纸感：细线账本、低饱和卡面、轻金属芯片 */
.chat-bankcard-list {
    display: flex;
    flex-direction: row;
    gap: 14px;
    margin: -6px -24px 0;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 46px;
    padding: 30px 46px 62px;
    -webkit-overflow-scrolling: touch;
}
.chat-bankcard-list:not(.has-cards) { display: none; }
.chat-bankcard-list.has-cards { display: flex; }
.chat-bank-card {
    flex: 0 0 min(336px, calc(100vw - 92px));
    width: min(336px, calc(100vw - 92px));
    height: 194px;
    border-radius: 18px;
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    scroll-snap-align: start;
    color: #2B2924;
    background:
        radial-gradient(circle at 1px 1px, rgba(29,28,26,0.045) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #FFFDF8 0%, #F6F1E8 100%);
    border: 0.5px solid rgba(188,163,127,0.46);
    box-shadow: 0 18px 38px rgba(76, 62, 45, 0.10), inset 0 1px 0 rgba(255,255,255,0.72);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    isolation: isolate;
}
.chat-bank-card:active { transform: scale(0.985); box-shadow: 0 10px 28px rgba(76, 62, 45, 0.10), inset 0 1px 0 rgba(255,255,255,0.72); }
.chat-bank-card::before,
.chat-bank-card::after {
    content: '';
    position: absolute;
    pointer-events: none;
    z-index: 0;
}
.chat-bank-card::before {
    inset: 12px;
    border: 0.5px solid rgba(188,163,127,0.34);
    border-radius: 12px;
}
.chat-bank-card::after {
    right: -38px;
    top: -42px;
    width: 156px;
    height: 156px;
    border-radius: 50%;
    border: 0.5px dashed rgba(188,163,127,0.42);
    opacity: 0.72;
}
.chat-bank-card > * { position: relative; z-index: 1; }
.chat-bank-card-seal {
    position: absolute;
    right: 18px;
    bottom: 16px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 0.5px solid rgba(188,163,127,0.42);
    display: grid;
    place-items: center;
    opacity: 0.56;
}
.chat-bank-card-seal span {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 0.5px dashed currentColor;
    opacity: 0.5;
}
.chat-bank-card-top,
.chat-bank-card-bottom,
.chat-bank-card-number-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
}
.chat-bank-card-bank {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.chat-bank-card-bank em,
.chat-bank-card-number-row span,
.chat-bank-card-balance span,
.chat-bank-card-mark {
    font-style: normal;
    font-family: "Courier New", Courier, monospace;
    font-size: 8.5px;
    line-height: 1;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(140,122,95,0.82);
}
.chat-bank-card-bank strong {
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: Georgia, "Times New Roman", "Songti SC", serif;
    font-size: 19px;
    line-height: 1;
    font-weight: 400;
    letter-spacing: -0.02em;
    color: currentColor;
}
.chat-bank-card-chip {
    width: 40px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(145deg, rgba(244,223,169,0.96), rgba(176,143,82,0.88));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.65), inset 0 -1px 0 rgba(86,67,38,0.18), 0 6px 16px rgba(86,67,38,0.12);
    position: relative;
    overflow: hidden;
    flex: 0 0 auto;
}
.chat-bank-card-chip::before,
.chat-bank-card-chip::after {
    content: '';
    position: absolute;
    background: rgba(86,67,38,0.18);
}
.chat-bank-card-chip::before { left: 0; right: 0; top: 50%; height: 0.5px; }
.chat-bank-card-chip::after { top: 0; bottom: 0; left: 50%; width: 0.5px; }
.chat-bank-card-chip i {
    position: absolute;
    inset: 6px 9px;
    border: 0.5px solid rgba(86,67,38,0.20);
    border-radius: 4px;
}
.chat-bank-card-number-row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 8px;
    border-top: 0;
    border-bottom: 0;
    padding: 8px 0 9px;
    margin: 0;
    min-width: 0;
}
.chat-bank-card-number-row span {
    flex: 0 0 auto;
    max-width: 100%;
}
.chat-bank-card-number-row b,
.chat-bank-card-number {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: visible;
    text-overflow: clip;
    text-align: left;
    font-family: "Courier New", Courier, monospace;
    font-size: 15px;
    line-height: 1.22;
    font-weight: 400;
    letter-spacing: 0.075em;
    color: currentColor;
    text-shadow: none;
    white-space: normal;
    overflow-wrap: anywhere;
}
.chat-bank-card-balance {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}
.chat-bank-card-balance strong {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 24px;
    line-height: 0.95;
    letter-spacing: -0.025em;
    font-weight: 500;
    font-family: Georgia, "Times New Roman", "Songti SC", serif;
    color: currentColor;
}
.chat-bank-card-mark {
    align-self: flex-end;
    padding: 5px 7px;
    border: 0.5px solid rgba(188,163,127,0.42);
    background: rgba(255,255,255,0.32);
    color: rgba(140,122,95,0.78);
}
.chat-bank-card-delete {
    display: none;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 58px;
    height: 26px;
    border: 0.5px solid rgba(188,163,127,0.52);
    border-radius: 999px;
    background: rgba(255,255,255,0.72);
    color: currentColor;
    font-size: 9px;
    letter-spacing: 0.14em;
    cursor: pointer;
    z-index: 3;
}
.chat-bankcard-view.is-manage .chat-bank-card-delete { display: block; }
.chat-bank-card.bk-black {
    color: #E7D4A8;
    background:
        radial-gradient(circle at 1px 1px, rgba(255,255,255,0.055) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #2D2B27 0%, #11100F 100%);
    border-color: rgba(188,163,127,0.50);
    box-shadow: 0 22px 44px rgba(17,16,15,0.20), inset 0 1px 0 rgba(255,255,255,0.08);
}
.chat-bank-card.bk-black .chat-bank-card-bank em,
.chat-bank-card.bk-black .chat-bank-card-number-row span,
.chat-bank-card.bk-black .chat-bank-card-balance span,
.chat-bank-card.bk-black .chat-bank-card-mark { color: rgba(231,212,168,0.66); }
.chat-bank-card.bk-black::before { border-color: rgba(231,212,168,0.28); }
.chat-bank-card.bk-platinum {
    color: #34312B;
    background:
        radial-gradient(circle at 1px 1px, rgba(29,28,26,0.04) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #FFFDF8 0%, #F2EDE2 100%);
}
.chat-bank-card.bk-gold {
    color: #4A3B25;
    background:
        radial-gradient(circle at 1px 1px, rgba(74,59,37,0.045) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #FBF0D9 0%, #E8D4AD 100%);
    border-color: rgba(168,126,59,0.40);
}
.chat-bank-card.bk-blue {
    color: #25303B;
    background:
        radial-gradient(circle at 1px 1px, rgba(37,48,59,0.045) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #F6F8F8 0%, #DDE7EA 100%);
    border-color: rgba(103,132,143,0.34);
}
.chat-bank-card.bk-cyber {
    color: #2F382F;
    background:
        radial-gradient(circle at 1px 1px, rgba(47,56,47,0.045) 1px, transparent 1.2px) 0 0 / 13px 13px,
        linear-gradient(145deg, #F8F7F1 0%, #DDE5D8 100%);
    border-color: rgba(116,135,108,0.34);
}

@media (max-width: 360px) {
    .chat-bankcard-list {
        margin-left: -18px;
        margin-right: -18px;
        padding-left: 36px;
        padding-right: 36px;
        scroll-padding-left: 36px;
    }
    .chat-bank-card {
        flex-basis: min(316px, calc(100vw - 72px));
        width: min(316px, calc(100vw - 72px));
    }
    .chat-bank-card-number-row b,
    .chat-bank-card-number {
        font-size: 13px;
        letter-spacing: 0.05em;
    }
}

/* v329 340px ordered photo card */
.chat-thread-msg-stack {
        max-width: min(calc(100% - 52px), 340px);
    }
    .chat-thread-bubble.is-photo-card,
    .chat-thread-bubble.is-image-card,
    .chat-thread-media-card {
        width: min(340px, 100%);
        height: auto;
        min-height: 0;
        aspect-ratio: 1 / 1;
    }
