.lovemi-font-modal {
    position: absolute;
    inset: 0;
    /* 旅行约会/自驾游本身使用 100k~2147483001 的独立浮层栈；字体菜单必须稳定浮在其上。 */
    z-index: 2147483600;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(10px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 10px max(10px, var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
    box-sizing: border-box;
}

.lovemi-font-mask {
    position: absolute;
    inset: 0;
    background: rgba(20, 16, 24, 0.48);
}

.lovemi-font-panel {
    position: relative;
    width: 100%;
    max-width: 440px;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 18px;
    background: rgba(255, 252, 253, 0.97);
    box-shadow: 0 24px 70px rgba(39, 24, 34, 0.25);
    color: #332b31;
}

.lovemi-font-header {
    display: grid;
    grid-template-columns: 40px 1fr 40px;
    align-items: center;
    min-height: 54px;
    padding: 2px 10px;
    border-bottom: 1px solid rgba(95, 68, 82, 0.1);
    text-align: center;
}

.lovemi-font-header button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font-size: 30px;
    line-height: 1;
}

.lovemi-font-header h3 { margin: 0; font-size: 17px; }
.lovemi-font-header p { margin: 3px 0 0; color: #927d88; font-size: 11px; }
.lovemi-font-body {
    overflow-y: auto;
    padding: 10px;
    overscroll-behavior: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.lovemi-font-body::-webkit-scrollbar { display: none; width: 0; height: 0; }

.lovemi-font-priority-tip {
    margin-bottom: 9px;
    padding: 8px 10px;
    border-radius: 12px;
    background: #fff1f5;
    color: #9a586b;
    font-size: 12px;
    line-height: 1.55;
}

.lovemi-font-card {
    margin-bottom: 9px;
    padding: 11px;
    border: 1px solid #eadfe4;
    border-radius: 16px;
    background: #fff;
}

.lovemi-font-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.lovemi-font-card-head h4 { margin: 0; font-size: 15px; }
.lovemi-font-card-head p { margin: 3px 0 0; color: #97858e; font-size: 11px; line-height: 1.4; }
.lovemi-font-state { flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; background: #f8edf1; color: #b0647a; font-size: 10px; }
.lovemi-font-source-label { display: grid; grid-template-columns: 66px 1fr; align-items: center; gap: 8px; margin-top: 8px; color: #6d5e65; font-size: 12px; }

.lovemi-font-source,
.lovemi-font-url-row input {
    width: 100%;
    min-height: 38px;
    box-sizing: border-box;
    border: 1px solid #dfd2d8;
    border-radius: 10px;
    background: #fff;
    color: #3c3338;
    padding: 0 10px;
    font: inherit;
}

.lovemi-font-local-row { display: flex; align-items: center; gap: 9px; margin-top: 8px; }
.lovemi-font-pick { flex: 0 0 auto; min-height: 36px; padding: 0 12px; border: 1px solid #dcaabd; border-radius: 10px; background: #fff7fa; color: #a6526d; }
.lovemi-font-file-name { min-width: 0; overflow: hidden; color: #8b7982; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.lovemi-font-url-row { margin-top: 8px; }
.lovemi-font-url-row small { display: block; margin-top: 5px; color: #a08e97; font-size: 10px; line-height: 1.45; }
.lovemi-font-size-setting { margin-top: 9px; }
.lovemi-font-size-head { display: flex; align-items: center; justify-content: space-between; color: #6d5e65; font-size: 12px; }
.lovemi-font-size-head button { border: 0; background: transparent; color: #a6526d; padding: 3px 0 3px 8px; font-size: 11px; }
.lovemi-font-size-head button:disabled { color: #b9aeb3; }
.lovemi-font-size-row { display: grid; grid-template-columns: 32px minmax(80px, 1fr) 32px 58px; align-items: center; gap: 7px; margin-top: 5px; }
.lovemi-font-size-row button { width: 32px; height: 32px; border: 1px solid #dfd2d8; border-radius: 9px; background: #fff8fa; color: #9e5369; font-size: 17px; line-height: 1; }
.lovemi-font-size-row input { width: 100%; min-width: 0; accent-color: #d77f9b; }
.lovemi-font-size-row output { color: #8b6673; font-size: 11px; text-align: right; white-space: nowrap; }
.lovemi-font-size-setting small { display: block; margin-top: 4px; color: #a08e97; font-size: 10px; line-height: 1.4; }
.lovemi-font-color-setting { margin-top: 9px; }
.lovemi-font-color-head { display: flex; align-items: center; justify-content: space-between; color: #6d5e65; font-size: 12px; }
.lovemi-font-color-head button { border: 0; background: transparent; color: #a6526d; padding: 3px 0 3px 8px; font-size: 11px; }
.lovemi-font-color-head button:disabled { color: #b9aeb3; }
.lovemi-font-color-row { display: flex; align-items: center; gap: 8px; margin-top: 5px; }
.lovemi-font-color-row input[type="color"] { width: 46px; height: 32px; box-sizing: border-box; padding: 2px; border: 1px solid #dfd2d8; border-radius: 9px; background: #fff8fa; }
.lovemi-font-color-row output { color: #8b6673; font-size: 11px; white-space: nowrap; }
.lovemi-font-color-setting small { display: block; margin-top: 4px; color: #a08e97; font-size: 10px; line-height: 1.4; }
.lovemi-font-preview { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: #faf6f8; color: #4b3f45; font-size: 14px; line-height: 1.5; }
.lovemi-font-status { min-height: 18px; color: #8d7b84; font-size: 12px; text-align: center; }
.lovemi-font-status.is-error { color: #c84957; }
.lovemi-font-status.is-ok { color: #3b9467; }

.lovemi-font-footer {
    display: flex;
    gap: 8px;
    padding: 9px 11px calc(9px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
    border-top: 1px solid rgba(95, 68, 82, 0.1);
}

.lovemi-font-footer button { flex: 1; min-height: 40px; border: 1px solid #dfd2d8; border-radius: 12px; background: #fff; color: #6d5d65; font-size: 13px; }
.lovemi-font-footer button.is-primary { border-color: #d77f9b; background: #d77f9b; color: #fff; }
.lovemi-font-footer button:disabled { opacity: 0.55; }

html[data-appearance="dark"] .lovemi-font-panel { border-color: #4b3e46; background: rgba(31, 27, 32, 0.98); color: #eee7eb; }
html[data-appearance="dark"] .lovemi-font-header,
html[data-appearance="dark"] .lovemi-font-footer { border-color: #493d44; }
html[data-appearance="dark"] .lovemi-font-priority-tip { background: #3e2931; color: #e4a1b5; }
html[data-appearance="dark"] .lovemi-font-card { border-color: #4d4047; background: #282329; }
html[data-appearance="dark"] .lovemi-font-source,
html[data-appearance="dark"] .lovemi-font-url-row input,
html[data-appearance="dark"] .lovemi-font-size-row button,
html[data-appearance="dark"] .lovemi-font-color-row input[type="color"],
html[data-appearance="dark"] .lovemi-font-footer button { border-color: #51444b; background: #211d22; color: #e9e1e5; }
html[data-appearance="dark"] .lovemi-font-preview { background: #211d22; color: #e9e1e5; }

/* 用户字体覆盖层：选择“跟随系统 / 美化文件”时不挂 data 属性，因此原有字体完整保留。
   三个永不命中的 :not(#id) 只用于提高层叠优先级，确保后注入的美化 CSS 不能抢回字体。 */
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--narration *,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-narration-inline,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-narration-inline,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-narration *,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message.is-char .travel-offline-message-bubble .travel-reading-narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-narration .roadtrip-bubble,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-narration .roadtrip-bubble *,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-char .roadtrip-bubble .roadtrip-reading-narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-motion-narration,
html[data-lovemi-font-narration="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-motion-narration {
    font-family: 'LoveMiUserNarration', serif !important;
}

html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--dialogue *,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-dialogue-inline,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-voice-line-text,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-dialogue-inline,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-dialogue *,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble .travel-reading-dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-user .roadtrip-bubble,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-user .roadtrip-bubble *,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-char .roadtrip-bubble,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-char .roadtrip-bubble *,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message .roadtrip-bubble .roadtrip-reading-dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-dialogue,
html[data-lovemi-font-dialogue="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-bubble--motion-dialogue .lmc-reading-dialogue {
    font-family: 'LoveMiUserDialogue', sans-serif !important;
}

/* 独立字号覆盖层：只有用户主动调整的槽位才挂载 data 属性；跟随界面时完整保留各模块原字号。 */
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-narration-inline,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-narration-inline,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-reading-narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-narration .roadtrip-bubble,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-reading-narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-motion-narration,
html[data-lovemi-font-narration-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-motion-narration {
    font-size: var(--lovemi-font-narration-size) !important;
}

html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-dialogue-inline,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-voice-line-text,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-dialogue-inline,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-reading-dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-user .roadtrip-bubble,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-char .roadtrip-bubble,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-reading-dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-dialogue,
html[data-lovemi-font-dialogue-size="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-bubble--motion-dialogue .lmc-reading-dialogue {
    font-size: var(--lovemi-font-dialogue-size) !important;
}

/* 独立字色覆盖层：与字号同构，只有用户主动自定义的槽位才挂载 data 属性；
   不加 * 后代选择器，让旁白内嵌台词等子元素保留自身配色、其余靠继承生效。 */
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-narration-inline,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-narration-inline,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-reading-narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-narration .roadtrip-bubble,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-reading-narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-motion-narration,
html[data-lovemi-font-narration-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-motion-narration {
    color: var(--lovemi-font-narration-color) !important;
}

html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .chat-message-bubble--offline .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-dialogue-inline,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #chat-page.chat-page--offline-mode .offline-voice-line-text,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .chat-message-segment--dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) #offline-record-detail-page .offline-dialogue-inline,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-offline-message-bubble.is-dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-travel-overlay .travel-reading-dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-user .roadtrip-bubble,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-message.is-char .roadtrip-bubble,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-space-roadtrip-overlay .roadtrip-reading-dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .love-mi-cinema-overlay .lmc-bubble--char .lmc-reading-dialogue,
html[data-lovemi-font-dialogue-color="custom"] body:not(#lovemi-font-priority-1):not(#lovemi-font-priority-2):not(#lovemi-font-priority-3) .couple-ticketing-overlay .cinema-archive-bubble--motion-dialogue .lmc-reading-dialogue {
    color: var(--lovemi-font-dialogue-color) !important;
}

/* 模型只输出轻量 **...**，客户端线性转成 strong；不加载 Markdown 库，也不改写历史正文。 */
.offline-reading-emphasis {
    padding: 0 0.08em;
    border-radius: 0.18em;
    font-style: normal;
    font-weight: 750;
    text-decoration: none;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

#chat-page.chat-page--offline-mode .offline-reading-emphasis,
#offline-record-detail-page .offline-reading-emphasis {
    color: var(--lovemi-font-dialogue-color, #87425f);
    background: rgba(199, 102, 137, 0.12);
}

.couple-space-travel-overlay .offline-reading-emphasis,
.couple-space-roadtrip-overlay .offline-reading-emphasis {
    color: var(--lovemi-font-dialogue-color, #80425d);
    background: rgba(190, 99, 132, 0.12);
}

.love-mi-cinema-overlay .offline-reading-emphasis {
    color: var(--lovemi-font-dialogue-color, #ffd5e3);
    background: rgba(255, 123, 165, 0.14);
}

@media (max-width: 560px) {
    .lovemi-font-modal { padding: max(6px, var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 6px max(6px, var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); }
    .lovemi-font-panel { max-height: 100%; border-radius: 16px; }
}
